annotate gsm-fw/sysglue/flashboot.S @ 1017:759b3cbf46aa

doc/TCH-special-feature: document written
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Mon, 21 Mar 2016 06:05:57 +0000
parents c7ca69bf84f3
children 4c80a6e6723f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
997
c7ca69bf84f3 gsm-fw: trivial support for c11x target
Mychaela Falconia <falcon@ivan.Harhan.ORG>
parents: 934
diff changeset
48 #elif CONFIG_TARGET_C139 || CONFIG_TARGET_C11X
631
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