diff options
Diffstat (limited to 'utils/AMS/hacking/test.S')
| -rw-r--r-- | utils/AMS/hacking/test.S | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/utils/AMS/hacking/test.S b/utils/AMS/hacking/test.S index 79d23de..a4757b4 100644 --- a/utils/AMS/hacking/test.S +++ b/utils/AMS/hacking/test.S @@ -16,10 +16,11 @@ .word 0 /* These values are filled in by mkamsboot - don't move them from offset 0x20 */ -ucl_unpack: .word 0 /* Entry point (plus 1 - for thumb) of ucl_unpack */ -ucl_start: .word 0 /* Start of the ucl-compressed OF image */ +ucl_unpack: .word 0 /* Entry point (plus 1 - for thumb) of ucl_unpack after copy*/ +ucl_start: .word 0 /* Start of the ucl-compressed OF image after copy */ ucl_size: .word 0 /* Length in bytes of the compressed OF image */ - +copy_start: .word 0 /* Start of the copy of the ucl_unpack function */ +copy_size: .word 0 /* uclunpack_size + ucl_paddedsize */ start: /* A delay loop - just to prove we're running */ @@ -29,25 +30,23 @@ loop: subs r1, r1, #1 /* First copy the compressed firmware to unused RAM */ - ldr r0, ucl_start /* Source */ - ldr r1, ucl_size /* Source length */ + ldr r0, copy_start /* Source */ + ldr r1, copy_size /* Source length */ mov r2, #0x40000 /* Destination end */ sub r2, r2, r1 memcpy: - ldrb r3, [r0] - strb r3, [r2] - adds r0, r0, #1 - adds r2, r2, #1 + ldrb r3, [r0], #1 + strb r3, [r2], #1 cmp r2, #0x40000 /* Stop when we reached dest_end */ bne memcpy - sub r0, r2, r1 /* Point to the compressed firmware */ - /* Call the ucl decompress function, which will branch to 0x0 */ /* on completion */ + ldr r0, ucl_start /* Address of compressed image */ + ldr r1, ucl_size /* Compressed size */ mov r2, #0 /* Destination */ ldr r3, ucl_unpack |