aboutsummaryrefslogtreecommitdiff
path: root/src/arch/arm64/include
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2014-08-21 10:31:00 -0700
committerPatrick Georgi <pgeorgi@google.com>2015-03-27 08:03:38 +0100
commit69761cd1652954e4344f6f8926392572d2f5a8d6 (patch)
tree88e8a7dcae3358765e6e2624224e0e19fb4f39c3 /src/arch/arm64/include
parent1af7b5ddf116ac1cb3c7acf5a116b60f7a942f4a (diff)
arm64: Make exceptions work
BUG=chrome-os-partner:31515 BRANCH=None TEST=test_exception generates a page fault which is handled by the exception handler and execution continues after eret from the exception Change-Id: Ie550492d2ed21b2c3009b5627f1e1a37429e6af0 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: e29fe77745d10e840c02498e54a0c53835530e5e Original-Change-Id: I29b7dabaece9b11a04ee3628d83513d30eb07b1d Original-Signed-off-by: Furquan Shaikh <furquan@google.com> Original-Reviewed-on: https://chromium-review.googlesource.com/213661 Original-Tested-by: Furquan Shaikh <furquan@chromium.org> Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Original-Commit-Queue: Furquan Shaikh <furquan@chromium.org> Reviewed-on: http://review.coreboot.org/9000 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/arch/arm64/include')
-rw-r--r--src/arch/arm64/include/armv8/arch/exception.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/arch/arm64/include/armv8/arch/exception.h b/src/arch/arm64/include/armv8/arch/exception.h
index 5987d85af4..b33e20fa1b 100644
--- a/src/arch/arm64/include/armv8/arch/exception.h
+++ b/src/arch/arm64/include/armv8/arch/exception.h
@@ -32,7 +32,15 @@
#include <stdint.h>
+struct exception_state
+{
+ uint64_t elr;
+ uint64_t esr;
+ uint64_t regs[31];
+} __attribute__((packed));
+
void exception_init(void);
-void set_vbar(uint64_t vbar);
+void set_vbar(void *vbar);
+void exception_dispatch(struct exception_state *state, int idx);
#endif