FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/sysglue/flashboot.S @ 983:7166c8311b0d
tfc139 reworked to support both ARM and Thumb entry
author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
---|---|
date | Thu, 10 Dec 2015 08:07:47 +0000 |
parents | a8fc7526935e |
children | c7ca69bf84f3 |
rev | line source |
---|---|
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
1 /* |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
2 * This assembly module contains those bits which are specific to flashable |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
3 * image builds only. It puts bits of code into several different sections. |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
4 */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
5 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
6 #include "../include/config.h" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
7 |
636
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
8 #if FLASH_BOOT_VIA_BOOTROM |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
9 /* |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
10 * Put something sensible in the boot ROM overlay area, just for the |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
11 * heck of it, or for extra robustness. |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
12 */ |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
13 .section bootrom.overlay,"ax",%progbits |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
14 .code 32 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
15 .org 0 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
16 b BootROM_disabled_entry |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
17 #include "vectors.S" |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
18 BootROM_disabled_entry: |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
19 /* copy the boot ROM switch code to IRAM and jump to it */ |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
20 ldr r4, =__romswitch_flash_addr |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
21 ldr r5, =__romswitch_ram_addr |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
22 ldr r2, =__romswitch_size |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
23 1: ldr r0, [r4], #4 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
24 str r0, [r5], #4 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
25 subs r2, r2, #4 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
26 bhi 1b |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
27 ldr pc, =__romswitch_ram_addr |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
28 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
29 .section bootrom.switch,"ax",%progbits |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
30 .code 32 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
31 .org 0 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
32 @ enable the Calypso boot ROM |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
33 ldr r1, =0xFFFFFB10 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
34 mov r2, #0x0100 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
35 strh r2, [r1] |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
36 @ jump to it! |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
37 mov pc, #0 |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
38 #endif |
06ecb305f650
flashImage for BootROM-enabled targets: put something sensible at 0
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
635
diff
changeset
|
39 |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
40 .section flashboot.text,"ax",%progbits |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
41 .code 32 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
42 .org 0 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
43 #if FLASH_BOOT_VIA_BOOTROM |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
44 /* sane targets with Calypso boot ROM enabled by the PCB wiring */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
45 /* provide the necessary magic words for the boot ROM */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
46 .word 0 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
47 .word _Flash_boot_entry |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
48 #elif CONFIG_TARGET_C139 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
49 /* |
934
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
50 * On this target we'll put a patched version of Compal's boot code in |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
51 * flash sector 0 (the brickable one); the main fw images will then be |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
52 * flashed starting at 0x10000, which is where our modified boot code |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
53 * expects them to be. The interface between our hacked boot code and |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
54 * the main fw has been made to mimic TI's TCS211 reference fw. |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
55 */ |
934
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
56 #include "vectors.S" |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
57 .org 0x58 /* put _Flash_boot_entry at 0x10058 */ |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
58 #elif CONFIG_TARGET_C155 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
59 /* |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
60 * On this target the hand-off point between the bootloader and the main |
934
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
61 * fw image coincides with a flash erase block boundary, thus we can reuse |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
62 * the original bootloader without having to reflash the brickable sector |
a8fc7526935e
gsm-fw/sysglue/flashboot.S, C139 configuration: the interface between the
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents:
636
diff
changeset
|
63 * at all. The following bits will appear at 0x20000. |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
64 */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
65 .asciz "FreeCalypso firmware for C155/156 target" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
66 .org 0xE0 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
67 /* C155/156 bootloader jumps here */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
68 b _Flash_boot_entry |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
69 #include "vectors.S" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
70 #else |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
71 #error "Unsupported flash boot configuration" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
72 #endif |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
73 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
74 .globl _Flash_boot_entry |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
75 _Flash_boot_entry: |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
76 /* first order of business: configure flash and XRAM access */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
77 ldr r2, =0xFFFFFB00 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
78 #if CONFIG_TARGET_PIRELLI |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
79 mov r0, #0x00A4 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
80 strh r0, [r2, #0] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
81 strh r0, [r2, #2] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
82 strh r0, [r2, #6] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
83 #else |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
84 mov r0, #0x00A3 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
85 strh r0, [r2, #0] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
86 strh r0, [r2, #2] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
87 #endif |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
88 /* |
634
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
89 * On targets with 8 MiB flash (or XRAM) banks we need to switch the |
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
90 * CS4/ADD22 pin to the ADD22 function. We could do it for all targets |
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
91 * (not aware of any that need the pin to be CS4), but we strongly |
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
92 * prefer to have a consistent execution environment between flashImage |
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
93 * and ramImage, so let's only do this setting on those targets |
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
94 * on which we do it in ../../loadtools/scripts/*.init (for fc-xram). |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
95 */ |
635
658a83ff7221
gsm-fw/sysglue/flashboot.S: buglet in the previous change
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
634
diff
changeset
|
96 #if CONFIG_TARGET_PIRELLI || CONFIG_TARGET_C155 |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
97 ldr r1, =0xFFFEF006 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
98 mov r2, #0x0008 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
99 strh r2, [r1] |
634
1f54d2ba42c2
gsm-fw/sysglue/flashboot.S: be consistent with fc-xram for CS4/ADD22 switch
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
631
diff
changeset
|
100 #endif |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
101 /* we now have full access to all flash and RAM on the device */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
102 /* copy iram.text to where it's supposed to be */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
103 ldr r8, =__iramtext_flash_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
104 ldr r9, =__iramtext_ram_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
105 ldr r10, =__iramtext_size |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
106 1: ldmia r8!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
107 stmia r9!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
108 subs r10, r10, #0x20 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
109 bhi 1b |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
110 /* likewise copy .data from flash to XRAM */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
111 ldr r8, =__initdata_flash_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
112 ldr r9, =__initdata_ram_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
113 ldr r10, =__initdata_size |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
114 1: ldmia r8!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
115 stmia r9!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
116 subs r10, r10, #0x20 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
117 bhi 1b |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
118 /* boot path joins with fc-xram loadable builds */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
119 b _FlashorXram_entry |