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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/dualboot.S index fae13df..932e91a 100644 uclcopy: orr r1, r1, #(1<<16) str r1, [r0] - -#ifdef SANSA_CLIPV2 /* TODO : remove this check when we'll have an USB driver */ - ldr r0, =GPIOA - mov r1, #0 - str r1, [r0, #0x400] - ldr r1, [r0, #(4*(1<<6))] - cmp r1, #0 - bne boot_of -#endif /* Here are model specific tests for dual boot (test left button) */ #ifdef SANSA_CLIP uclcopy: #error No target-specific key check defined! #endif -#if defined(SANSA_CLIPPLUS) || defined(SANSA_FUZEV2) - /* 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 - * on those models, but not on c200v2 - */ - - - ldr r0, =CGU_PROC - mov r1, #0 - str r1, [r0] @ fclk = 24MHz - - ldr r0, =CGU_PERI - ldr r1, [r0] - /* enable i2c audio master clock */ - orr r1, r1, #(1<<17) - /* pclk = fclk = 24MHz */ - bic r1, r1, #0x7f - str r1, [r0] - - ldr r0, =I2C_BASE - /* disable i2c interrupts */ - mov r1, #0 - str r1, [r0, #I2C_IMR] - /* setup prescaler */ - mov r1, #I2C_PRESCALER_LOW - str r1, [r0, #I2C_CPSR0] - mov r1, #I2C_PRESCALER_HIGH - str r1, [r0, #I2C_CPSR1] - /* setup i2c slave address */ - mov r1, #(AS3514_I2C_ADDR << 1) - str r1, [r0, #I2C_SLAD0] - mov r2, #0x51 - str r2, [r0, #I2C_CNTRL] - - /* wait for not busy */ -1: - ldr r1, [r0, #I2C_SR] - tst r1, #1 - bne 1b - - /* wait a bit (~100ms) else detection fails */ - mov r1, #0x80000 -1: subs r1, r1, #1 - bne 1b - - /* start read of irq_enrd0 */ - mov r1, #AS3514_IRQ_ENRD0 - str r1, [r0, #I2C_SADDR] - orr r2, r2, #(1 << 1) - str r2, [r0, #I2C_CNTRL] - mov r1, #1 - str r1, [r0, #I2C_DACNT] - - /* wait for transfer to finish */ -1: - ldr r1, [r0, #I2C_DACNT] - cmp r1, #0 - bne 1b - - /* load result and test USB_STATUS bit */ - ldr r1, [r0, #I2C_DATA] - tst r1, #(1 << 3) - bne boot_of - - -#endif - - /* The dualboot button was not held, so we boot rockbox */ ldr r0, ucl_rb_end /* Address of compressed image */ ldr r1, ucl_rb_size /* Compressed size */ |