Fixed bootloaders accepting flash writes to the bootloader region (thanks to NicoHood).
[pub/USBasp.git] / Bootloaders / MassStorage / BootloaderAPITable.S
index 2aded74..d15766d 100644 (file)
@@ -1,13 +1,13 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2011.\r
+     Copyright (C) Dean Camera, 2018.\r
 \r
   dean [at] fourwalledcubicle [dot] com\r
            www.lufa-lib.org\r
 */\r
 \r
 /*\r
 \r
   dean [at] fourwalledcubicle [dot] com\r
            www.lufa-lib.org\r
 */\r
 \r
 /*\r
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2018  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
   Permission to use, copy, modify, distribute, and sell this\r
   software and its documentation for any purpose is hereby granted\r
 \r
   Permission to use, copy, modify, distribute, and sell this\r
   software and its documentation for any purpose is hereby granted\r
   this software.\r
 */\r
 \r
   this software.\r
 */\r
 \r
+#if AUX_BOOT_SECTION_SIZE > 0\r
+#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation).\r
+\r
+; Trampoline to jump over the AUX bootloader section to the start of the bootloader,\r
+; on devices where an AUX bootloader section is used.\r
+.section .boot_aux_trampoline, "ax"\r
+.global Boot_AUX_Trampoline\r
+Boot_AUX_Trampoline:\r
+       jmp BOOT_START_ADDR\r
+#endif\r
+\r
 ; Trampolines to actual API implementations if the target address is outside the\r
 ; range of a rjmp instruction (can happen with large bootloader sections)\r
 .section .apitable_trampolines, "ax"\r
 ; Trampolines to actual API implementations if the target address is outside the\r
 ; range of a rjmp instruction (can happen with large bootloader sections)\r
 .section .apitable_trampolines, "ax"\r
@@ -48,15 +59,15 @@ BootloaderAPI_Trampolines:
                jmp BootloaderAPI_ReadLock\r
        BootloaderAPI_WriteLock_Trampoline:\r
                jmp BootloaderAPI_WriteLock\r
                jmp BootloaderAPI_ReadLock\r
        BootloaderAPI_WriteLock_Trampoline:\r
                jmp BootloaderAPI_WriteLock\r
-       BootloaderAPU_UNUSED1:\r
+       BootloaderAPI_UNUSED1:\r
                ret\r
                ret\r
-       BootloaderAPU_UNUSED2:\r
+       BootloaderAPI_UNUSED2:\r
                ret\r
                ret\r
-       BootloaderAPU_UNUSED3:\r
+       BootloaderAPI_UNUSED3:\r
                ret\r
                ret\r
-       BootloaderAPU_UNUSED4:\r
+       BootloaderAPI_UNUSED4:\r
                ret\r
                ret\r
-       BootloaderAPU_UNUSED5:\r
+       BootloaderAPI_UNUSED5:\r
                ret\r
 \r
 \r
                ret\r
 \r
 \r
@@ -73,11 +84,11 @@ BootloaderAPI_JumpTable:
        rjmp BootloaderAPI_ReadFuse_Trampoline\r
        rjmp BootloaderAPI_ReadLock_Trampoline\r
        rjmp BootloaderAPI_WriteLock_Trampoline\r
        rjmp BootloaderAPI_ReadFuse_Trampoline\r
        rjmp BootloaderAPI_ReadLock_Trampoline\r
        rjmp BootloaderAPI_WriteLock_Trampoline\r
-       rjmp BootloaderAPU_UNUSED1 ; UNUSED ENTRY 1\r
-       rjmp BootloaderAPU_UNUSED2 ; UNUSED ENTRY 2\r
-       rjmp BootloaderAPU_UNUSED3 ; UNUSED ENTRY 3\r
-       rjmp BootloaderAPU_UNUSED4 ; UNUSED ENTRY 4\r
-       rjmp BootloaderAPU_UNUSED5 ; UNUSED ENTRY 5\r
+       rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1\r
+       rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2\r
+       rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3\r
+       rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4\r
+       rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5\r
 \r
 \r
 \r
 \r
 \r
 \r