9os

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
March/arm64/Makefile | 4++--
Aarch/arm64/crt-none.s | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
March/arm64/ram-crt-none.s | 77+----------------------------------------------------------------------------
March/arm64/rom-crt-none.s | 77+----------------------------------------------------------------------------
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"