FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/sysglue/flashboot.S @ 876:c9f353b5d70c
rvinterf/asyncshell/rxctl.c: buglet in the implementation of dis/enable commands
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sat, 30 May 2015 07:50:05 +0000 |
parents | 06ecb305f650 |
children | a8fc7526935e |
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 /* |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
50 * On this target we are going to put a special flash boot stage at 0x2000, |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
51 * and then the actual gsm-fw image at the flash erase block boundary |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
52 * at 0x10000. The following bits will be read by our intermediate |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
53 * flash boot stage. |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
54 */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
55 .asciz "FreeCalypso" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
56 .word _Flash_boot_entry |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
57 #elif CONFIG_TARGET_C155 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
58 /* |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
59 * On this target the hand-off point between the bootloader and the main |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
60 * fw image coincides with a flash erase block boundary, thus no need |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
61 * for an intermediate flash boot stage. The following bits will appear |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
62 * at 0x20000. |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
63 */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
64 .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
|
65 .org 0xE0 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
66 /* C155/156 bootloader jumps here */ |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
67 b _Flash_boot_entry |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
68 #include "vectors.S" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
69 #else |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
70 #error "Unsupported flash boot configuration" |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
71 #endif |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
72 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
73 .globl _Flash_boot_entry |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
74 _Flash_boot_entry: |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
75 /* 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
|
76 ldr r2, =0xFFFFFB00 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
77 #if CONFIG_TARGET_PIRELLI |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
78 mov r0, #0x00A4 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
79 strh r0, [r2, #0] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
80 strh r0, [r2, #2] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
81 strh r0, [r2, #6] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
82 #else |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
83 mov r0, #0x00A3 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
84 strh r0, [r2, #0] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
85 strh r0, [r2, #2] |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
86 #endif |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
87 /* |
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
|
88 * 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
|
89 * 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
|
90 * (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
|
91 * 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
|
92 * 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
|
93 * 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
|
94 */ |
635
658a83ff7221
gsm-fw/sysglue/flashboot.S: buglet in the previous change
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
634
diff
changeset
|
95 #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
|
96 ldr r1, =0xFFFEF006 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
97 mov r2, #0x0008 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
98 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
|
99 #endif |
631
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
100 /* 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
|
101 /* 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
|
102 ldr r8, =__iramtext_flash_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
103 ldr r9, =__iramtext_ram_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
104 ldr r10, =__iramtext_size |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
105 1: ldmia r8!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
106 stmia r9!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
107 subs r10, r10, #0x20 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
108 bhi 1b |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
109 /* 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
|
110 ldr r8, =__initdata_flash_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
111 ldr r9, =__initdata_ram_addr |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
112 ldr r10, =__initdata_size |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
113 1: ldmia r8!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
114 stmia r9!, {r0-r7} |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
115 subs r10, r10, #0x20 |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
116 bhi 1b |
7cf154cd3891
gsm-fw/sysglue: prep for building flashable images
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff
changeset
|
117 /* 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
|
118 b _FlashorXram_entry |