diff options
author | Amaury Pouly <pamaury@rockbox.org> | 2011-07-02 02:12:10 +0000 |
---|---|---|
committer | Amaury Pouly <pamaury@rockbox.org> | 2011-07-02 02:12:10 +0000 |
commit | 82ecc75e68ee3edc22514c8a33aa7774e02fd4d4 (patch) | |
tree | 3b2d842062e0a7d69dbf7cb9281414fdb280060a /firmware/target/arm/imx233/crt0.S | |
parent | fed77808c5b3efa1a8e6ac10647845da6847f48a (diff) | |
download | rockbox-82ecc75e68ee3edc22514c8a33aa7774e02fd4d4.tar.gz rockbox-82ecc75e68ee3edc22514c8a33aa7774e02fd4d4.zip |
imx233/fuze+: make config.h more correct, remove logo from bootloader, update linker file and crt0 to produce a single blob into dram
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30111 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx233/crt0.S')
-rw-r--r-- | firmware/target/arm/imx233/crt0.S | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/firmware/target/arm/imx233/crt0.S b/firmware/target/arm/imx233/crt0.S index 836c3e88cb..e233d439e0 100644 --- a/firmware/target/arm/imx233/crt0.S +++ b/firmware/target/arm/imx233/crt0.S | |||
@@ -23,10 +23,8 @@ | |||
23 | 23 | ||
24 | .section .vectors,"ax",%progbits | 24 | .section .vectors,"ax",%progbits |
25 | .code 32 | 25 | .code 32 |
26 | .global start | ||
27 | start: | ||
28 | /* most handlers are in DRAM which is too far away for a relative jump */ | 26 | /* most handlers are in DRAM which is too far away for a relative jump */ |
29 | ldr pc, =newstart | 27 | ldr pc, =start |
30 | ldr pc, =undef_instr_handler | 28 | ldr pc, =undef_instr_handler |
31 | ldr pc, =software_int_handler | 29 | ldr pc, =software_int_handler |
32 | ldr pc, =prefetch_abort_handler | 30 | ldr pc, =prefetch_abort_handler |
@@ -36,8 +34,39 @@ start: | |||
36 | ldr pc, =fiq_handler | 34 | ldr pc, =fiq_handler |
37 | 35 | ||
38 | .text | 36 | .text |
39 | newstart: | 37 | .global start |
38 | start: | ||
40 | msr cpsr_c, #0xd3 /* enter supervisor mode, disable IRQ/FIQ */ | 39 | msr cpsr_c, #0xd3 /* enter supervisor mode, disable IRQ/FIQ */ |
40 | /* Zero out IBSS */ | ||
41 | ldr r2, =_iedata | ||
42 | ldr r3, =_iend | ||
43 | mov r4, #0 | ||
44 | 1: | ||
45 | cmp r3, r2 | ||
46 | strhi r4, [r2], #4 | ||
47 | bhi 1b | ||
48 | |||
49 | /* Copy the IRAM */ | ||
50 | /* must be done before bss is zeroed */ | ||
51 | ldr r2, =_iramcopy | ||
52 | ldr r3, =_iramstart | ||
53 | ldr r4, =_iramend | ||
54 | 1: | ||
55 | cmp r4, r3 | ||
56 | ldrhi r5, [r2], #4 | ||
57 | strhi r5, [r3], #4 | ||
58 | bhi 1b | ||
59 | |||
60 | /* Initialise bss section to zero */ | ||
61 | ldr r2, =_edata | ||
62 | ldr r3, =_end | ||
63 | mov r4, #0 | ||
64 | 1: | ||
65 | cmp r3, r2 | ||
66 | strhi r4, [r2], #4 | ||
67 | bhi 1b | ||
68 | |||
69 | |||
41 | /* Set up some stack and munge it with 0xdeadbeef */ | 70 | /* Set up some stack and munge it with 0xdeadbeef */ |
42 | ldr sp, =stackend | 71 | ldr sp, =stackend |
43 | ldr r2, =stackbegin | 72 | ldr r2, =stackbegin |