Thank you to anyone who has already donated - your generous donations helped make three months of treatment possible.
My brother Nate continues to fight stage IV Hodgkin's lymphoma. He's just 31, with a wife and baby girl. They have no active income (since he's been unable to return to work), no insurance, and cannot afford the treatment he needs. Nate and his family need your help. Please consider a donation, every dollar helps. Thanks.
diff --git a/rbutil/mkamsboot/dualboot.c b/rbutil/mkamsboot/dualboot.c index 6aa4429..e283a8e 100644 unsigned char dualboot_fuze[204] = { 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0d, 0xc8 }; -unsigned char dualboot_clipv2[248] = { +unsigned char dualboot_clipv2[408] = { 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1f, 0xe5, 0x24, 0x10, 0x1f, 0xe5, 0x01, 0x20, 0x40, 0xe0, 0x18, 0x30, 0x1f, 0xe5, 0x01, 0x40, 0x50, 0xe4, 0x01, 0x40, 0x43, 0xe4, 0x00, 0x00, 0x52, 0xe1, 0xfb, 0xff, 0xff, 0x1a, - 0x2c, 0x30, 0x0f, 0xe5, 0xa0, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, - 0x00, 0x10, 0x80, 0xe5, 0x94, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, - 0x00, 0x11, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x13, 0x00, 0x00, 0x1a, 0x80, 0x00, 0x9f, 0xe5, - 0x38, 0x10, 0xa0, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x08, 0x10, 0xa0, 0xe3, 0x20, 0x10, 0x80, 0xe5, - 0x10, 0x10, 0xa0, 0xe3, 0x40, 0x10, 0x80, 0xe5, 0x20, 0x10, 0xa0, 0xe3, 0x80, 0x10, 0x80, 0xe5, - 0x00, 0x10, 0xa0, 0xe3, 0x40, 0x10, 0x80, 0xe5, 0x05, 0x10, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2, - 0xfd, 0xff, 0xff, 0x1a, 0x04, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x02, 0x00, 0x00, 0x0a, - 0xa4, 0x00, 0x1f, 0xe5, 0xa4, 0x10, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0xb8, 0x00, 0x1f, 0xe5, - 0xb8, 0x10, 0x1f, 0xe5, 0xb0, 0x30, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, - 0x01, 0x20, 0x50, 0xe4, 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, - 0x01, 0x00, 0x83, 0xe2, 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, - 0x00, 0x00, 0x0b, 0xc8, 0x00, 0x00, 0x0e, 0xc8 + 0x2c, 0x30, 0x0f, 0xe5, 0x3c, 0x01, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x18, 0x81, 0xe3, + 0x00, 0x10, 0x80, 0xe5, 0x30, 0x01, 0x9f, 0xe5, 0x00, 0x14, 0x90, 0xe5, 0x08, 0x10, 0xc1, 0xe3, + 0x80, 0x10, 0x81, 0xe3, 0x00, 0x14, 0x80, 0xe5, 0x80, 0x10, 0xa0, 0xe3, 0x00, 0x12, 0x80, 0xe5, + 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1, 0x01, 0x10, 0x81, 0xe2, 0x32, 0x00, 0x51, 0xe3, + 0xfb, 0xff, 0xff, 0xba, 0x20, 0x20, 0x90, 0xe5, 0x7f, 0x10, 0xa0, 0xe3, 0x00, 0x12, 0x80, 0xe5, + 0x00, 0x10, 0xa0, 0xe3, 0x00, 0x00, 0xa0, 0xe1, 0x01, 0x10, 0x81, 0xe2, 0x0a, 0x00, 0x51, 0xe3, + 0xfb, 0xff, 0xff, 0xba, 0x00, 0x14, 0x90, 0xe5, 0x80, 0x10, 0xc1, 0xe3, 0x00, 0x14, 0x80, 0xe5, + 0x00, 0x00, 0x52, 0xe3, 0x27, 0x00, 0x00, 0x0a, 0xd0, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, + 0x00, 0x10, 0x80, 0xe5, 0xbc, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x02, 0x18, 0x81, 0xe3, + 0x7f, 0x10, 0xc1, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0xb4, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0xa0, 0xe3, + 0x24, 0x10, 0x80, 0xe5, 0x3c, 0x10, 0xa0, 0xe3, 0x1c, 0x10, 0x80, 0xe5, 0x00, 0x10, 0xa0, 0xe3, + 0x20, 0x10, 0x80, 0xe5, 0x8c, 0x10, 0xa0, 0xe3, 0x04, 0x10, 0x80, 0xe5, 0x51, 0x20, 0xa0, 0xe3, + 0x0c, 0x20, 0x80, 0xe5, 0x30, 0x10, 0x90, 0xe5, 0x01, 0x00, 0x11, 0xe3, 0xfc, 0xff, 0xff, 0x1a, + 0x02, 0x17, 0xa0, 0xe3, 0x01, 0x10, 0x51, 0xe2, 0xfd, 0xff, 0xff, 0x1a, 0x25, 0x10, 0xa0, 0xe3, + 0x44, 0x10, 0x80, 0xe5, 0x02, 0x20, 0x82, 0xe3, 0x0c, 0x20, 0x80, 0xe5, 0x01, 0x10, 0xa0, 0xe3, + 0x10, 0x10, 0x80, 0xe5, 0x10, 0x10, 0x90, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0xfc, 0xff, 0xff, 0x1a, + 0x00, 0x10, 0x90, 0xe5, 0x08, 0x00, 0x11, 0xe3, 0x02, 0x00, 0x00, 0x1a, 0x40, 0x01, 0x1f, 0xe5, + 0x40, 0x11, 0x1f, 0xe5, 0x01, 0x00, 0x00, 0xea, 0x54, 0x01, 0x1f, 0xe5, 0x54, 0x11, 0x1f, 0xe5, + 0x4c, 0x31, 0x1f, 0xe5, 0x02, 0x50, 0x83, 0xe2, 0x01, 0x40, 0x43, 0xe0, 0x01, 0x20, 0x50, 0xe4, + 0x01, 0x20, 0x43, 0xe4, 0x04, 0x00, 0x53, 0xe1, 0xfb, 0xff, 0xff, 0x1a, 0x01, 0x00, 0x83, 0xe2, + 0x00, 0x20, 0xa0, 0xe3, 0x15, 0xff, 0x2f, 0xe1, 0x14, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x0b, 0xc8, + 0x10, 0x00, 0x0f, 0xc8, 0x00, 0x00, 0x07, 0xc8 }; unsigned char dualboot_clipplus[340] = { 0x06, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/rbutil/mkamsboot/dualboot.h b/rbutil/mkamsboot/dualboot.h index 76d4641..9e199d2 100644 extern unsigned char dualboot_e200v2[204]; extern unsigned char dualboot_c200v2[400]; extern unsigned char dualboot_m200v4[180]; extern unsigned char dualboot_fuze[204]; -extern unsigned char dualboot_clipv2[248]; +extern unsigned char dualboot_clipv2[408]; extern unsigned char dualboot_clipplus[340]; extern unsigned char dualboot_fuzev2[332]; diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S index 77fb4de..bc5f5f9 100644 uclcopy: /* TODO : M200V4 ? */ -#if defined(SANSA_CLIP) || defined(SANSA_CLIPV2) +#if defined(SANSA_CLIP) #define USB_PIN 6 #elif defined(SANSA_FUZE) || defined(SANSA_E200V2) #define USB_PIN 3 uclcopy: .set row, (1<<4) /* enable output on D4 */ .set col, (1<<0) /* read keyscan column D0 */ - ldr r0, =GPIOD - mov r1, #((1<<5)|(1<<4)|(1<<3)) /* all rows as output */ + ldr r0, =GPIOA + + ldr r1, [r0, #0x400] + bic r1, r1, #(1<<3) @ A3 in + orr r1, r1, #(1<<7) @ A7 out str r1, [r0, #0x400] - /* all rows high */ - mov r1, #(1<<3) - str r1, [r0, #(4*(1<<3))] - mov r1, #(1<<4) - str r1, [r0, #(4*(1<<4))] - mov r1, #(1<<5) - str r1, [r0, #(4*(1<<5))] + mov r1, #(1<<7) + str r1, [r0, #0x200] @ A7 = 1 - mov r1, #0 /* button row low */ - str r1, [r0, #(4*row)] + mov r1, #0 +1: nop + add r1, r1, #1 + cmp r1, #50 + blt 1b - mov r1, #5 /* small delay */ -1: subs r1, r1, #1 - bne 1b + ldr r2, [r0, #0x20] @ read A3 - ldr r1, [r0, #(4*col)] + mov r1, #0x7f + str r1, [r0, #0x200] @ A7 = 0 - cmp r1, #0 + mov r1, #0 +1: nop + add r1, r1, #1 + cmp r1, #10 + blt 1b + + ldr r1, [r0, #0x400] + bic r1, r1, #(1<<7) @ A7 in + str r1, [r0, #0x400] + + cmp r2, #0 beq boot_of #elif defined(SANSA_E200V2) || defined(SANSA_FUZE) ldr r0, =GPIOC uclcopy: #error No target-specific key check defined! #endif -#if defined(SANSA_CLIPPLUS) || defined(SANSA_FUZEV2) +#if defined(SANSA_CLIPPLUS) || defined(SANSA_FUZEV2) || defined(SANSA_CLIPV2) /* Check for USB after buttons because I trust more the GPIO code than * the i2c code. * Also it seems we need to wait a bit before detecting USB connection [fun@kru /media/bordel/rockbox/rbuti