summaryrefslogtreecommitdiffstats
path: root/rbutil/mkamsboot/dualboot
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-02-26 13:55:17 +0000
committerThomas Martitz <kugel@rockbox.org>2010-02-26 13:55:17 +0000
commitf6540e800db616a783a13bc47b7f5710c004bf71 (patch)
tree95ea7ee56408cb778258d5816c1a69161047eef1 /rbutil/mkamsboot/dualboot
parent92f0aa85fcdffc83a0e06f50c0580d5932075c43 (diff)
downloadrockbox-f6540e800db616a783a13bc47b7f5710c004bf71.tar.gz
rockbox-f6540e800db616a783a13bc47b7f5710c004bf71.zip
Sansa Fuzev2: Add mkamsboot and dualboot support. The bootloader doesn't work, but pressing |<< or inserting USB to boot the OF does.
It should be pretty safe to run test code on it now. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24924 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/mkamsboot/dualboot')
-rw-r--r--rbutil/mkamsboot/dualboot/Makefile7
-rw-r--r--rbutil/mkamsboot/dualboot/dualboot.S10
2 files changed, 13 insertions, 4 deletions
diff --git a/rbutil/mkamsboot/dualboot/Makefile b/rbutil/mkamsboot/dualboot/Makefile
index 8a441c9237..cc788f1fe5 100644
--- a/rbutil/mkamsboot/dualboot/Makefile
+++ b/rbutil/mkamsboot/dualboot/Makefile
@@ -4,8 +4,8 @@ CC=gcc
# adding a new target. mkamsboot.c also needs to be edited to refer to these
# new images.
-BOOTOBJS = nrv2e_d8.o dualboot_clip.o dualboot_e200v2.o dualboot_c200v2.o dualboot_m200v4.o dualboot_fuze.o dualboot_clipv2.o dualboot_clipplus.o
-BOOTBINS = nrv2e_d8.arm-bin dualboot_clip.arm-bin dualboot_e200v2.arm-bin dualboot_c200v2.arm-bin dualboot_m200v4.arm-bin dualboot_fuze.arm-bin dualboot_clipv2.arm-bin dualboot_clipplus.arm-bin
+BOOTOBJS = nrv2e_d8.o dualboot_clip.o dualboot_e200v2.o dualboot_c200v2.o dualboot_m200v4.o dualboot_fuze.o dualboot_clipv2.o dualboot_clipplus.o dualboot_fuzev2.o
+BOOTBINS = nrv2e_d8.arm-bin dualboot_clip.arm-bin dualboot_e200v2.arm-bin dualboot_c200v2.arm-bin dualboot_m200v4.arm-bin dualboot_fuze.arm-bin dualboot_clipv2.arm-bin dualboot_clipplus.arm-bin dualboot_fuzev2.arm-bin
all: ../dualboot.h ../dualboot.c
@@ -32,6 +32,9 @@ dualboot_clipv2.o: dualboot.S
dualboot_clipplus.o: dualboot.S
arm-elf-gcc -DSANSA_CLIPPLUS -c -o dualboot_clipplus.o dualboot.S
+dualboot_fuzev2.o: dualboot.S
+ arm-elf-gcc -DSANSA_FUZEV2 -c -o dualboot_fuzev2.o dualboot.S
+
# Rules for the ucl unpack function
nrv2e_d8.o: nrv2e_d8.S
arm-elf-gcc -DPURE_THUMB -c -o nrv2e_d8.o nrv2e_d8.S
diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S
index a27ab34d85..84d2fcee4d 100644
--- a/rbutil/mkamsboot/dualboot/dualboot.S
+++ b/rbutil/mkamsboot/dualboot/dualboot.S
@@ -83,7 +83,7 @@ uclcopy:
#define USB_PIN 1 /* FIXME: not correct on some c200v2s */
#elif defined(SANSA_CLIP) || defined(SANSA_CLIPV2)
#define USB_PIN 6
-#elif defined(SANSA_FUZE) || defined(SANSA_E200V2)
+#elif defined(SANSA_FUZE) || defined(SANSA_E200V2) || defined(SANSA_FUZEV2)
#define USB_PIN 3
#endif
@@ -143,14 +143,20 @@ uclcopy:
cmp r1, #0
beq boot_of
-#elif defined(SANSA_E200V2) || defined(SANSA_FUZE)
+#elif defined(SANSA_E200V2) || defined(SANSA_FUZE) || defined(SANSA_FUZEV2)
ldr r0, =GPIOC
mov r1, #0
str r1, [r0, #0x400]
ldr r1, [r0, #0x20] /* read pin C3 */
cmp r1, #0 /* C3 = #0 means button pressed */
+#ifdef SANSA_FUZEV2
+ /* the logic is reversed on the fuzev2 */
+ bne boot_of
+#else
beq boot_of
+#endif /* SANSA_FUZEV2 */
+
#elif defined(SANSA_CLIPPLUS)
@ read pins
ldr r0, =GPIOC