summaryrefslogtreecommitdiffstats
path: root/bootloader
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader')
-rw-r--r--bootloader/ipod.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/bootloader/ipod.c b/bootloader/ipod.c
index 5b8c0ee217..b1722086e1 100644
--- a/bootloader/ipod.c
+++ b/bootloader/ipod.c
@@ -415,7 +415,16 @@ void* main(void)
lcd_puts(0, line++, "Rockbox loaded.");
lcd_update();
memcpy((void*)DRAM_START,loadbuffer,rc);
- return (void*)DRAM_START;
+
+ /* Transfer execution directly to Rockbox - we don't want
+ to run the rest of the bootloader startup code. */
+ asm volatile(
+ "mov r0, #0x10000000 \n"
+ "mov pc, r0 \n"
+ );
+
+ /* We don't get here, but keep the compiler happy. */
+ return (void*)0;
}
}