diff --git a/rbutil/mkamsboot/dualboot.c b/rbutil/mkamsboot/dualboot.c index 25c0c4e48f..015e580213 100644 --- a/rbutil/mkamsboot/dualboot.c +++ b/rbutil/mkamsboot/dualboot.c @@ -126,8 +126,8 @@ unsigned char dualboot_clipplus[256] = { 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x80, 0x00, 0x9f, 0xe5, 0x01, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x04, 0x10, 0x80, 0xe5, 0x7d, 0x1f, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x68, 0x00, 0x9f, 0xe5, 0x20, 0x10, 0x90, 0xe5, - 0x64, 0x00, 0x9f, 0xe5, 0x08, 0x20, 0x90, 0xe5, 0x01, 0x20, 0x82, 0xe1, 0x00, 0x10, 0xa0, 0xe3, - 0x04, 0x10, 0x80, 0xe5, 0x48, 0x00, 0x9f, 0xe5, 0x00, 0x14, 0x80, 0xe5, 0x00, 0x00, 0x52, 0xe3, + 0x64, 0x00, 0x9f, 0xe5, 0x08, 0x20, 0x90, 0xe5, 0x01, 0x20, 0x82, 0xe1, 0x50, 0x00, 0x9f, 0xe5, + 0x00, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5, 0x00, 0x14, 0x80, 0xe5, 0x00, 0x00, 0x52, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0x8c, 0x00, 0x1f, 0xe5, 0x8c, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0xa0, 0x00, 0x1f, 0xe5, 0xa0, 0x10, 0x1f, 0xe5, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S index dfda5b3bf0..0189a5be78 100644 --- a/rbutil/mkamsboot/dualboot/dualboot.S +++ b/rbutil/mkamsboot/dualboot/dualboot.S @@ -157,7 +157,8 @@ uclcopy: cmp r1, #0 /* C3 = #0 means button pressed */ beq boot_of #elif defined(SANSA_CLIPPLUS) - @ Assumes GPIOB_DIR is 0x00 on reset + @ All GPIO_DIR == 0x00 from reset + @ Set B0 ldr r0, =GPIOB mov r1, #(1<<0) @ pin 0 str r1, [r0, #0x400] @ GPIOB(0) = output @@ -176,12 +177,10 @@ uclcopy: orr r2, r2, r1 @ c3 || A1 - @ Unset GPIOB(0) + @ Unset GPIOB(0) & Restore GPIOB_DIR + ldr r0, =GPIOB mov r1, #0 str r1, [r0, #4*(1<<0)] @ write 0 to GPIOB(0) B0 unset - - @ restore GPIOB_DIR to 0x00 - ldr r0, =GPIOB str r1, [r0, #0x400] @ Restore GPIOB_DIR to 0x00 cmp r2, #0 @ test input from pins