/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2013.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
- The author disclaim all warranties with regard to this
+ The author disclaims 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
this software.
*/
-; Bootloader API Jump Table
-.section .apitable, "ax"
-
; Trampolines to actual API implementations if the target address is outside the
; range of a rjmp instruction (can happen with large bootloader sections)
-.org 0
-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
+.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
-.org (96 - 32)
+.section .apitable_jumptable, "ax"
.global BootloaderAPI_JumpTable
BootloaderAPI_JumpTable:
+
rjmp BootloaderAPI_ErasePage_Trampoline
rjmp BootloaderAPI_WritePage_Trampoline
rjmp BootloaderAPI_FillWord_Trampoline
rjmp BootloaderAPU_UNUSED4 ; UNUSED ENTRY 4
rjmp BootloaderAPU_UNUSED5 ; UNUSED ENTRY 5
+
+
; Bootloader table signatures and information
-.org (96 - 8)
-BootloaderAPI_Signatures:
+.section .apitable_signatures, "ax"
.global BootloaderAPI_Signatures
+BootloaderAPI_Signatures:
+
.long BOOT_START_ADDR ; Start address of the bootloader
- .word 0xCDC1 ; Signature for the CDC class bootloader, V1
+ .word 0xDF00 ; Signature for the CDC class bootloader
.word 0xDCFB ; Signature for a LUFA class bootloader