FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/sysglue/flashboot.S @ 837:80959c73a21b
gdi: ffs_coat.c compiles
| author | Space Falcon <falcon@ivan.Harhan.ORG> | 
|---|---|
| date | Sat, 25 Apr 2015 19:25:47 +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 | 
