commit f400e7a78dac28cbb9e6904cbb75184e06aeda83
parent 15d37b0609aad81a55e4791b03436d514d24ed07
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date: Fri, 12 Oct 2018 16:42:00 +0100
[arm64] Force C handler to switch trapframe and exit from EL3r
It makes sense to see the entire flow within the C code without having
to look at the low level assembly handler.
Change-Id: I0afd8fa01a3c27587634c5c8cfcc1de4e54f944d
Diffstat:
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/crt-none.s b/arch/arm64/crt-none.s
@@ -39,7 +39,7 @@ _start:
mov x0,sp
bl main
- ldr x0,=outsync
+ adr x0,outsync
b panic
_badtrap:
@@ -75,7 +75,8 @@ _synchdl:
mov x0,sp
bl synchdl
- b swtch
+ adr x0,outsync
+ b panic
outsync:
.asciz "out of sync"
diff --git a/arch/arm64/rom.c b/arch/arm64/rom.c
@@ -7,6 +7,7 @@ void
synchdl(struct trapframe *fp)
{
dbg("sync handler\n");
+ swtch(fp);
}
void