summaryrefslogtreecommitdiffstats
path: root/bootloader/ipod.c
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2006-01-05 17:02:48 +0000
committerDave Chapman <dave@dchapman.com>2006-01-05 17:02:48 +0000
commitcb7e695ef9d0166b77f14d6d260733f0ff888f13 (patch)
treed43209034aaffbe28ce5fbc3b4c59cdd5187a3b6 /bootloader/ipod.c
parent5a313efa0c685c52116e008b0e0fa132c05fd9bb (diff)
downloadrockbox-cb7e695ef9d0166b77f14d6d260733f0ff888f13.tar.gz
rockbox-cb7e695ef9d0166b77f14d6d260733f0ff888f13.tar.bz2
rockbox-cb7e695ef9d0166b77f14d6d260733f0ff888f13.zip
iPod: Fix the bootloader so it can load and run the original Apple firmware again. The Rockbox firmware was doing too much to the hardware so we remove most of the initialisation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8301 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'bootloader/ipod.c')
-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;
}
}