annotate src/cs/system/main/gcc/bootentry.S @ 112:fdecfb3bd860

.../drv_app/r2d/r2d_*.c: LCD include case fixes from Magnetite R2D is not used in Selenite, but we strive to keep the two source trees in sync as much as possible to reduce the diffs.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 13 Oct 2018 16:56:22 +0000
parents 2de9e5f46550
children 2c82c413775f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
89
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This assembly module is our counterpart to TI's int.s: all boot entry
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * point code that needs to be at the beginning of the flash resides here.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include "asm_defs.h"
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include "fc-target.cfg"
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #if defined(FLASH) && !defined(CONFIG_TARGET_COMPAL)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 /*
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 * Put something sensible in the boot ROM overlay area, just for the
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 * heck of it, or for extra robustness.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 .section bootrom.overlay,"ax",%progbits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 .code 32
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 .org 0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 b BootROM_disabled_entry
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 #include "vectors.S"
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 BootROM_disabled_entry:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 /* copy the boot ROM switch code to IRAM and jump to it */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 ldr r4, =__romswitch_flash_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 ldr r5, =__romswitch_ram_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 ldr r2, =__romswitch_size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 1: ldr r0, [r4], #4
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 str r0, [r5], #4
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 subs r2, r2, #4
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 bhi 1b
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 ldr pc, =__romswitch_ram_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 .section bootrom.switch,"ax",%progbits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 .code 32
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 .org 0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 @ enable the Calypso boot ROM
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 ldr r1, =0xFFFFFB10
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 mov r2, #0x0100
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 strh r2, [r1]
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 @ jump to it!
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 mov pc, #0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 #endif
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 .section .inttext,"ax",%progbits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 .code 32
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 #ifdef FLASH
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 .org 0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 #ifndef CONFIG_TARGET_COMPAL
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 /* sane targets with Calypso boot ROM enabled by the PCB wiring */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 /* provide the necessary magic words for the boot ROM */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 .word 0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 .word _Firmware_boot_entry
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 #elif defined(CONFIG_TARGET_C139) || defined(CONFIG_TARGET_C11X)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 /*
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 * On this target we'll put a patched version of Compal's boot code in
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 * flash sector 0 (the brickable one); the main fw images will then be
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 * flashed starting at 0x10000, which is where our modified boot code
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 * expects them to be. The interface between our hacked boot code and
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 * the main fw has been made to mimic TI's TCS211 reference fw.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 #include "vectors.S"
90
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
60 .org 0x58 /* entry point at 0x10058 */
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
61 b _Firmware_boot_entry
89
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 #elif defined(CONFIG_TARGET_C155)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 /*
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 * On this target the hand-off point between the bootloader and the main
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 * fw image coincides with a flash erase block boundary, thus we can reuse
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 * the original bootloader without having to reflash the brickable sector
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 * at all. The following bits will appear at 0x20000.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 .asciz "FreeCalypso firmware for C155/156 target"
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 .org 0xE0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 /* C155/156 bootloader jumps here */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 b _Firmware_boot_entry
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 #include "vectors.S"
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74 #else
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75 #error "Unsupported flash boot configuration"
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 #endif
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77 #endif
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 /* definitions from TI's int.s */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81 #define IRQ_STACK_SIZE 128
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 #define FIQ_STACK_SIZE 512
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83 #define SYSTEM_SIZE 1024
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 #define TIMER_SIZE 1024
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 #define TIMER_PRIORITY 2
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86
90
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
87 @ TI's literal pool before the entry point
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
88
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
89 addrCS0: .word 0xfffffb00 @ CS0 address space
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
90
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
91 EX_MPU_CONF_REG: .word 0xFFFEF006 @ Extended MPU configuration register address
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
92 EX_FLASH_VALUE: .short 0x0008 @ set bit to enable A22
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
93
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
94 .balign 4
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
95
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
96 CNTL_ARM_CLK_REG: .word 0xFFFFFD00 @ CNTL_ARM_CLK register address
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
97 DPLL_CNTRL_REG: .word 0xFFFF9800 @ DPLL control register address
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
98 EXTRA_CONTROL_REG: .word 0xFFFFFB10 @ Extra Control register CONF address
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
99 MPU_CTL_REG: .word 0xFFFFFF08 @ MPU_CTL register address
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
100
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
101 CNTL_ARM_CLK_RST: .short 0x1081 @ Initialization of CNTL_ARM_CLK register
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
102 @ Use DPLL, Divide by 1
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
103 DPLL_CONTROL_RST: .short 0x2002 @ Configure DPLL in default state
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
104 DISABLE_DU_MASK: .short 0x0800 @ Mask to Disable the DU module
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
105 ENABLE_DU_MASK: .short 0xF7FF @ Mask to Enable the DU module
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
106 MPU_CTL_RST: .short 0x0000 @ Reset value of MPU_CTL register - All protections disabled
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
107
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
108 CS0_MEM_REG: .short 0x2a1 @ 1 Dummy Cycle 16 bit 1 WS SW BP enable
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
109 CS1_MEM_REG: .short 0x2a1 @ 1 Dummy Cycle 16 bit 1 WS SW BP enable
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
110 CS2_MEM_REG: .short 0x2a1 @ 1 Dummy Cycle 16 bit 1 WS SW BP enable
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
111 CS3_MEM_REG: .short 0x283 @ 1 Dummy Cycle 8 bit 3 WS SW BP enable
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
112 CS4_MEM_REG: .short 0xe85 @ default reset value
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
113 CS6_MEM_REG: .short 0x2c0 @ Internal RAM init : 0 WS, 32 bits, little, write enable
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
114 CS7_MEM_REG: .short 0x040 @ Internal BOOT ROM init : 0 WS, 32 bits, little, write disable
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
115 CTL_MEM_REG: .short 0x02a @ rhea strobe 0/1 + API access size adaptation
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
116
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
117 .balign 4
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
118
89
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 .globl _Firmware_boot_entry
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 _Firmware_boot_entry:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121 @ TI's code from int.s follows
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 @ Configure DPLL register with reset value
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 ldr r1,DPLL_CNTRL_REG @ Load address of DPLL register in R1
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 ldrh r2,DPLL_CONTROL_RST @ Load DPLL reset value in R2
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 strh r2,[r1] @ Store DPLL reset value in DPLL register
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131 @ Wait that DPLL goes in BYPASS mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 Wait_DPLL_Bypass:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 ldr r2,[r1] @ Load DPLL register
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 and r2,r2,#1 @ Perform a mask on bit 0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 cmp r2,#1 @ Compare DPLL lock bit
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 beq Wait_DPLL_Bypass @ Wait Bypass mode (i.e. bit[0]='0')
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 @ Configure CNTL_ARM_CLK register with reset value: DPLL is used to
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 @ generate ARM clock with division factor of 1.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 ldr r1,CNTL_ARM_CLK_REG @ Load address of CNTL_ARM_CLK register in R1
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 ldrh r2,CNTL_ARM_CLK_RST @ Load CNTL_ARM_CLK reset value in R2
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 strh r2,[r1] @ Store CNTL_ARM_CLK reset value in CNTL_ARM_CLK register
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 @ Disable/Enable the DU module by setting/resetting bit 11 to '1'/'0'
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 ldr r1,EXTRA_CONTROL_REG @ Load address of Extra Control register CONF
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 ldrh r2,ENABLE_DU_MASK @ Load mask to write in Extra Control register CONF
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 ldrh r0,[r1] @ Load Extra Control register CONF in r0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153 and r0,r0,r2 @ Enable DU module
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 strh r0,[r1] @ Store configuration in Extra Control register CONF
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157 @ Disable all MPU protections
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159 ldr r1,MPU_CTL_REG @ Load address of MPU_CTL register
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 ldrh r2,MPU_CTL_RST @ Load reset value of MPU_CTL register
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 strh r2,[r1] @ Store reset value of MPU_CTL register
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 @ MEMIF timing setup
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165 ldr r1,addrCS0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 ldrh r2,CS0_MEM_REG @ ROM initialization
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 strh r2,[r1] @ CS0
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 ldrh r2,CS1_MEM_REG @ RAM Initialization
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 strh r2,[r1,#2] @ CS1
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 ldrh r2,CS2_MEM_REG @ RAM Initialization
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 strh r2,[r1,#4] @ CS2
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175 ldrh r2,CS3_MEM_REG @ Parallel I/O on B-Sample
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 strh r2,[r1,#6] @ CS3 (unused on EVA4?)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178 ldrh r2,CS4_MEM_REG @ Latch on B-Sample
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 strh r2,[r1,#0xa] @ CS4 (unused on EVA4)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 ldrh r2,CS6_MEM_REG @ Internal SRAM initialization
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 strh r2,[r1,#0xc] @ CS6 Internal RAM
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 ldrh r2,CS7_MEM_REG @ Internal SRAM initialization
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 strh r2,[r1,#0x8] @ CS7 Internal Boot ROM
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 ldrh r2,CTL_MEM_REG @ API-RHEA configuration
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 strh r2,[r1,#0xe]
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 @ enable ADD22
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 ldr r1,EX_MPU_CONF_REG
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 ldrh r2,[r1]
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 ldr r0,EX_FLASH_VALUE
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 orr r0, r0, r2
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 strh r0,[r1]
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 /* Ensure that the processor is in supervisor mode. */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 MRS a1,CPSR @ Pickup current CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 BIC a1,a1,#MODE_MASK @ Clear the mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 ORR a1,a1,#SUP_MODE @ Set the supervisor mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 ORR a1,a1,#LOCKOUT @ Ensure IRQ and FIQ interrupts are
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 @ locked out
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 MSR CPSR,a1 @ Setup the new CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 /*
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 * FreeCalypso Selenite: if this is a flash build,
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 * copy IRAM code and .data from flash to RAM.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 #ifdef FLASH
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 /* copy iram.text to where it's supposed to be */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 ldr r8, =__iramtext_flash_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 ldr r9, =__iramtext_ram_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 ldr r10, =__iramtext_size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 1: ldmia r8!, {r0-r7}
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 stmia r9!, {r0-r7}
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 subs r10, r10, #0x20
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 bhi 1b
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 /* likewise copy .data from flash to XRAM */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222 ldr r8, =__initdata_flash_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 ldr r9, =__initdata_ram_addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224 ldr r10, =__initdata_size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 1: ldmia r8!, {r0-r7}
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 stmia r9!, {r0-r7}
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 subs r10, r10, #0x20
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 bhi 1b
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 #endif
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 /* Both flash and XRAM builds: zero .bss */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 ldr r0, =__intbss_start
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 ldr r1, =__intbss_size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235 bl bzero
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 ldr r0, =__extbss_start
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 ldr r1, =__extbss_size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 bl bzero
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 @ TI's int.s code continues
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 @ Initialize the system stack pointers. This is done after the BSS is
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 @ cleared because the TCD_System_Stack pointer is a BSS variable! It is
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245 @ assumed that the .cmd file is written to direct where these stacks should
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 @ be allocated and to align them on double word boundaries.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 LDR a1,StackSegment @ Pickup the begining address from .cmd file
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 @ (is aligned on 8 byte boundary)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 MOV a2,#SYSTEM_SIZE @ Pickup system stack size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251 SUB a2,a2,#4 @ Subtract one word for first addr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 ADD a3,a1,a2 @ Build start of system stack area
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 MOV v7,a1 @ Setup initial stack limit
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 LDR a4,System_Limit @ Pickup system stack limit address
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 STR v7,[a4, #0] @ Save stack limit
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 MOV sp,a3 @ Setup initial stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 LDR a4,System_Stack @ Pickup system stack address
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 STR sp,[a4, #0] @ Save stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 MOV a2,#IRQ_STACK_SIZE @ Pickup IRQ stack size in bytes
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
260 ADD a3,a3,a2 @ Allocate IRQ stack area
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
261 MRS a1,CPSR @ Pickup current CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
262 BIC a1,a1,#MODE_MASK @ Clear the mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
263 ORR a1,a1,#IRQ_MODE @ Set the IRQ mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
264 MSR CPSR,a1 @ Move to IRQ mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
265 MOV sp,a3 @ Setup IRQ stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
266 MOV a2,#FIQ_STACK_SIZE @ Pickup FIQ stack size in bytes
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
267 ADD a3,a3,a2 @ Allocate FIQ stack area
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
268 MRS a1,CPSR @ Pickup current CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
269 BIC a1,a1,#MODE_MASK @ Clear the mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
270 ORR a1,a1,#FIQ_MODE @ Set the FIQ mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
271 MSR CPSR,a1 @ Move to the FIQ mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
272 MOV sp,a3 @ Setup FIQ stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
273
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
274 MRS a1,CPSR @ Pickup current CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
275 BIC a1,a1,#MODE_MASK @ Clear the mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
276 ORR a1,a1,#ABORT_MODE @ Set the Abort mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
277 MSR CPSR,a1 @ Move to the Abort mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
278 LDR sp,Exception_Stack @ Setup Abort stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
279
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
280 MRS a1,CPSR @ Pickup current CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
281 BIC a1,a1,#MODE_MASK @ Clear the mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
282 ORR a1,a1,#UNDEF_MODE @ Set the Undefined mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
283 MSR CPSR,a1 @ Move to the Undefined mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
284 LDR sp,Exception_Stack @ Setup Undefined stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
285 @ (should never be used)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
286
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
287 @ go to Supervisor Mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
288 MRS a1,CPSR @ Pickup current CPSR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
289 BIC a1,a1,#MODE_MASK @ Clear mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
290 ORR a1,a1,#SUP_MODE @ Set the supervisor mode bits
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
291 MSR CPSR,a1 @ All interrupt stacks are setup,
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
292 @ return to supervisor mode
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
293 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
294 @ /* Define the global data structures that need to be initialized by this
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
295 @ routine. These structures are used to define the system timer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
296 @ management HISR. */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
297 @ TMD_HISR_Stack_Ptr = (VOID *) a3;
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
298 @ TMD_HISR_Stack_Size = TIMER_SIZE;
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
299 @ TMD_HISR_Priority = TIMER_PRIORITY;
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
300 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
301 @ TMD_HISR_Stack_Ptr points at the top (the lowest address) of the allocated
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
302 @ area. The Timer HISR (called "SYSTEM H") and its related stack will be created
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
303 @ in TMI_Initialize(). The current stack pointer will be set at the bottom (the
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
304 @ lowest address) of the expected area.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
305
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
306 LDR a4,HISR_Stack_Ptr @ Pickup variable's address
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
307 ADD a3,a3,#4 @ Increment to next available word
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
308 STR a3,[a4, #0] @ Setup timer HISR stack pointer
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
309 MOV a2,#TIMER_SIZE @ Pickup the timer HISR stack size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
310 BIC a2,a2,#3 @ Insure word alignment
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
311 ADD a3,a3,a2 @ Allocate the timer HISR stack
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
312 @ from available memory
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
313 LDR a4,HISR_Stack_Size @ Pickup variable's address
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
314 STR a2,[a4, #0] @ Setup timer HISR stack size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
315 MOV a2,#TIMER_PRIORITY @ Pickup timer HISR priority (0-2)
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
316 LDR a4,HISR_Priority @ Pickup variable's address
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
317 STR a2,[a4, #0] @ Setup timer HISR priority
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
318
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
319 /* TI's original code called f_load_int_mem() at this point */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
320 /* let's do our internal ROM enable step here */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
321
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
322 ldr r1, EXTRA_CONTROL_REG
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
323 ldrh r0, [r1, #0]
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
324 bic r0, #0x0300
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
325 orr r0, #0x0100
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
326 strh r0, [r1, #0]
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
327
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
328 @ We now fill up the System, IRQ, FIQ and System Timer HISR stacks with 0xFE for
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
329 @ checking the status of the stacks later.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
330 @ inputs:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
331 @ a3 still has the bottom of all four stacks and is aligned.
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
332 @ algorithm:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
333 @ We start from the top of all four stacks (*System_Limit), which is
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
334 @ necessarily aligned. We store 0xFEFEFEFE until we have filled the
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
335 @ bottom of the fourth stack
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
336 @ outputs:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
337 @ memory has 0xFE on all four stacks: System, FIQ, IRQ and System Timer HISR
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
338 @ a3 still has the bottom of all four stacks
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
339
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
340 LDR a2,System_Limit @ pickup system stack limit address
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
341 LDR a1,[a2] @ a1 = StackSegment
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
342 LDR a4,=0xFEFEFEFE
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
343
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
344 fill_stack:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
345 STR a4,[a1],#4 @ store a word and increment by four
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
346 CMP a1,a3 @ is this the last address?
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
347 BLT fill_stack @ if not, loop back
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
348
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
349 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
350 @ /* Call INC_Initialize with a pointer to the first available memory
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
351 @ address after the compiler's global data. This memory may be used
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
352 @ by the application. */
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
353 @ INC_Initialize(first_available_memory);
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
354 @
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
355 MOV a1,a3 @ Pass the first available memory
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
356 B INC_Initialize @ to high-level initialization
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
357
90
2de9e5f46550 .../main/gcc/bootentry.S: the literal pool needs to be arranged
Mychaela Falconia <falcon@freecalypso.org>
parents: 89
diff changeset
358 @ literal pool from int.s (after the code)
89
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
359
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
360 StackSegment:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
361 .word _Stack_segment_start
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
362
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
363 System_Limit:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
364 .word TCT_System_Limit
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
365
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
366 System_Stack:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
367 .word TCD_System_Stack
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
368
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
369 HISR_Stack_Ptr:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
370 .word TMD_HISR_Stack_Ptr
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
371
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
372 HISR_Stack_Size:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
373 .word TMD_HISR_Stack_Size
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
374
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
375 HISR_Priority:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
376 .word TMD_HISR_Priority
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
377
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
378 Exception_Stack:
b398f288d20a src/cs/system/main/gcc/bootentry.S: written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
379 .word _Except_Stack_SP