commit eb6a0bebd47db7fc59c919e60dd1bca589d9a547
parent 96ad2b238e40149b13e29222f5f8e493b6bdad4b
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date: Fri, 12 Oct 2018 14:37:30 +0100
Merge "[arch/arm64] Join rom and ram image crt"
Diffstat:
4 files changed, 79 insertions(+), 154 deletions(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
@@ -10,10 +10,10 @@ LIBDEP = $(LIBDIR)/librmu.a $(LIBDIR)/libc.a
all: $(TARGET)
-rom-crt-$(SYS).s ram-crt-$(SYS).s: cdeps
+crt-none.s: cdeps
./cdeps | ed -s $@
-ram-crt-$(SYS).o rom-crt-$(SYS).o: macros.s
+ram-crt-none.o rom-crt-none.o: macros.s crt-none.s
$(BINDIR)/romfw.elf: $(ROMOBJS) $(LIBDEP)
$(LD) $(RCODE_LDFLAGS) $(ROMOBJS) $(LIBS) -o $@
diff --git a/arch/arm64/crt-none.s b/arch/arm64/crt-none.s
@@ -0,0 +1,75 @@
+ .include "macros.s"
+
+/* TODO: extract data section address from RSCB */
+BSS = 0x2E00F000
+BSSSIZ = 1024
+PAGESIZ = 4096
+FRAMESIZ= 288
+
+ .text
+ .globl _start
+_start:
+ msr spsel,#1
+ ldr x0,=BSS
+ mov x1,#(PAGESIZ-16) /* Stack grows down towards BSS */
+ add x0,x0,x1
+ mov sp,x0
+ mov x29,sp
+
+ adr x0,vectbl
+ msr S3_6_C12_C0_6,x0 /* VBAR_R */
+ isb
+ bl enaabt
+ isb
+
+ bl _uart_init
+ stp xzr,xzr,[x29] /* zero FP/LR to terminate backtrace */
+ ldr x0,=BSS
+ mov x1,#0
+ mov x2,BSSSIZ
+ bl memset
+
+ mov x0,#FRAMESIZ
+ mov x1,sp
+ sub x1,x1,x0
+ mov sp,x1
+
+ mrs x0,rvbar_el3
+ bl main
+ ldr x0,=outsync
+ b panic
+
+outsync:
+ .asciz "out of sync"
+
+/* Top level arm64 Sync exception handler */
+_synchdl:
+ handler synchdl
+
+ .align 11
+vectbl:
+ /* Current EL with SP0 */
+ vempty /* Sync */
+ vempty /* IRQ/vIRQ */
+ vempty /* FIQ/vFIQ */
+ vempty /* SError/VSError */
+
+ /* Current EL with SPx */
+ vempty /* Sync */
+ vempty /* IRQ/vIRQ */
+ vempty /* FIQ/vFIQ */
+ vempty /* SError/VSError */
+
+ /* Lower EL using AArch64 */
+ vector _synchdl /* Sync */
+ vempty /* IRQ/vIRQ */
+ vempty /* FIQ/vFIQ */
+ vempty /* SError/VSError */
+
+ /* Lower EL using AArch32 */
+ vector _synchdl /* Sync */
+ vempty /* IRQ/vIRQ */
+ vempty /* FIQ/vFIQ */
+ vempty /* SError/VSError */
+
+badtrap: .asciz "bad exception"
diff --git a/arch/arm64/ram-crt-none.s b/arch/arm64/ram-crt-none.s
@@ -1,77 +1,2 @@
.file "ram-crt-none.s"
-
- .include "macros.s"
-
-/* TODO: extract data section address from RSCB */
-BSS = 0x2E00F000
-BSSSIZ = 1024
-PAGESIZ = 4096
-FRAMESIZ= 288
-
- .text
- .globl _start
-_start:
- msr spsel,#1
- ldr x0,=BSS
- mov x1,#(PAGESIZ-16) /* Stack grows down towards BSS */
- add x0,x0,x1
- mov sp,x0
- mov x29,sp
-
- adr x0,vectbl
- msr S3_6_C12_C0_6,x0 /* VBAR_R */
- isb
- bl enaabt
- isb
-
- bl _uart_init
- stp xzr,xzr,[x29] /* zero FP/LR to terminate backtrace */
- ldr x0,=BSS
- mov x1,#0
- mov x2,BSSSIZ
- bl memset
-
- mov x0,#FRAMESIZ
- mov x1,sp
- sub x1,x1,x0
- mov sp,x1
-
- mrs x0,rvbar_el3
- bl main
- ldr x0,=outsync
- b panic
-
-outsync:
- .asciz "out of sync"
-
-/* Top level arm64 Sync exception handler */
-_synchdl:
- handler synchdl
-
- .align 11
-vectbl:
- /* Current EL with SP0 */
- vempty /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
- /* Current EL with SPx */
- vempty /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
- /* Lower EL using AArch64 */
- vector _synchdl /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
- /* Lower EL using AArch32 */
- vector _synchdl /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
-badtrap: .asciz "bad exception"
+ .include "crt-none.s"
diff --git a/arch/arm64/rom-crt-none.s b/arch/arm64/rom-crt-none.s
@@ -1,77 +1,2 @@
.file "rom-crt-none.s"
-
- .include "macros.s"
-
-/* TODO: extract data section address from RSCB */
-BSS = 0x2E00F000
-BSSSIZ = 1024
-PAGESIZ = 4096
-FRAMESIZ= 288
-
- .text
- .globl _start
-_start:
- msr spsel,#1
- ldr x0,=BSS
- mov x1,#(PAGESIZ-16) /* Stack grows down towards BSS */
- add x0,x0,x1
- mov sp,x0
- mov x29,sp
-
- adr x0,vectbl
- msr S3_6_C12_C0_6,x0 /* VBAR_R */
- isb
- bl enaabt
- isb
-
- bl _uart_init
- stp xzr,xzr,[x29] /* zero FP/LR to terminate backtrace */
- ldr x0,=BSS
- mov x1,#0
- mov x2,BSSSIZ
- bl memset
-
- mov x0,#FRAMESIZ
- mov x1,sp
- sub x1,x1,x0
- mov sp,x1
-
- mrs x0,rvbar_el3
- bl main
- ldr x0,=outsync
- b panic
-
-outsync:
- .asciz "out of sync"
-
-/* Top level arm64 Sync exception handler */
-_synchdl:
- handler synchdl
-
- .align 11
-vectbl:
- /* Current EL with SP0 */
- vempty /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
- /* Current EL with SPx */
- vempty /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
- /* Lower EL using AArch64 */
- vector _synchdl /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
- /* Lower EL using AArch32 */
- vector _synchdl /* Sync */
- vempty /* IRQ/vIRQ */
- vempty /* FIQ/vFIQ */
- vempty /* SError/VSError */
-
-badtrap: .asciz "bad exception"
+ .include "crt-none.s"