X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/43a3350981f74aaa7455798d287465265f9e19d8..6fa8da4e561ee920f66ece42ce7e937a5399626d:/Bootloaders/CDC/BootloaderAPITable.S diff --git a/Bootloaders/CDC/BootloaderAPITable.S b/Bootloaders/CDC/BootloaderAPITable.S index b1d1b0571..a5d0b098e 100644 --- a/Bootloaders/CDC/BootloaderAPITable.S +++ b/Bootloaders/CDC/BootloaderAPITable.S @@ -1,48 +1,91 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2011. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -; Bootloader API Jump Table -.section .apitable, "ax" -.org 0 +; +; LUFA Library +; Copyright (C) Dean Camera, 2012. +; +; dean [at] fourwalledcubicle [dot] com +; www.lufa-lib.org +; + +; Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) +; +; Permission to use, copy, modify, distribute, and sell this +; software and its documentation for any purpose is hereby granted +; without fee, provided that the above copyright notice appear in +; all copies and that both that the copyright notice and this +; permission notice and warranty disclaimer appear in supporting +; documentation, and that the name of the author not be used in +; advertising or publicity pertaining to distribution of the +; software without specific, written prior permission. +; +; The author disclaim all warranties with regard to this +; software, including all implied warranties of merchantability +; and fitness. In no event shall the author be liable for any +; special, indirect or consequential damages or any damages +; whatsoever resulting from loss of use, data or profits, whether +; in an action of contract, negligence or other tortious action, +; arising out of or in connection with the use or performance of +; this software. + + + +; Trampolines to actual API implementations if the target address is outside the +; range of a rjmp instruction (can happen with large bootloader sections) +.section .apitable_trampolines, "ax" +.global BootloaderAPI_Trampolines +BootloaderAPI_Trampolines: + + BootloaderAPI_ErasePage_Trampoline: + jmp BootloaderAPI_ErasePage + BootloaderAPI_WritePage_Trampoline: + jmp BootloaderAPI_WritePage + BootloaderAPI_FillWord_Trampoline: + jmp BootloaderAPI_FillWord + BootloaderAPI_ReadSignature_Trampoline: + jmp BootloaderAPI_ReadSignature + BootloaderAPI_ReadFuse_Trampoline: + jmp BootloaderAPI_ReadFuse + BootloaderAPI_ReadLock_Trampoline: + jmp BootloaderAPI_ReadLock + BootloaderAPI_WriteLock_Trampoline: + jmp BootloaderAPI_WriteLock + BootloaderAPU_UNUSED1: + ret + BootloaderAPU_UNUSED2: + ret + BootloaderAPU_UNUSED3: + ret + BootloaderAPU_UNUSED4: + ret + BootloaderAPU_UNUSED5: + ret + + ; API function jump table +.section .apitable_jumptable, "ax" .global BootloaderAPI_JumpTable BootloaderAPI_JumpTable: - rjmp BootloaderAPI_ErasePage - rjmp BootloaderAPI_WritePage - rjmp BootloaderAPI_FillWord - rjmp BootloaderAPI_ReadSignature - rjmp BootloaderAPI_ReadFuse - rjmp BootloaderAPI_ReadLock - rjmp BootloaderAPI_WriteLock - -; Bootloader table signature -.org 30 - .word 0xDCFB + + rjmp BootloaderAPI_ErasePage_Trampoline + rjmp BootloaderAPI_WritePage_Trampoline + rjmp BootloaderAPI_FillWord_Trampoline + rjmp BootloaderAPI_ReadSignature_Trampoline + rjmp BootloaderAPI_ReadFuse_Trampoline + rjmp BootloaderAPI_ReadLock_Trampoline + rjmp BootloaderAPI_WriteLock_Trampoline + rjmp BootloaderAPU_UNUSED1 ; UNUSED ENTRY 1 + rjmp BootloaderAPU_UNUSED2 ; UNUSED ENTRY 2 + rjmp BootloaderAPU_UNUSED3 ; UNUSED ENTRY 3 + rjmp BootloaderAPU_UNUSED4 ; UNUSED ENTRY 4 + rjmp BootloaderAPU_UNUSED5 ; UNUSED ENTRY 5 + + + +; Bootloader table signatures and information +.section .apitable_signatures, "ax" +.global BootloaderAPI_Signatures +BootloaderAPI_Signatures: + + .long BOOT_START_ADDR ; Start address of the bootloader + .word 0xDFB1 ; Signature for the DFU class bootloader, V1 + .word 0xDCFB ; Signature for a LUFA class bootloader