[coreboot-gerrit] New patch to review for coreboot: 3012088 arm64: add exception_hwinit()

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Mar 26 10:48:34 CET 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9017

-gerrit

commit 3012088d4dda4ee0702da3d3cbde348e2ed062a0
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Wed Aug 27 16:45:12 2014 -0500

    arm64: add exception_hwinit()
    
    exception_hwinit() provides a path for just setting the hardware
    state. This allows for other CPUs but the boot CPU for setting up
    the appropriate vector table.
    
    BUG=chrome-os-partner:31545
    BRANCH=None
    TEST=Built and booted to the kernel.
    
    Change-Id: Ifd44ab697bce5cd351f05069519785dc80e2b866
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 76a1c9cb3df930b28469608ecb5c35be7ccdadd1
    Original-Change-Id: Ib09c813b49a4f00daca0b53d9dca972251fcf476
    Original-Signed-off-by: Aaron Durbin <adurbin at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/214773
    Original-Reviewed-by: Furquan Shaikh <furquan at chromium.org>
---
 src/arch/arm64/armv8/exception.c              | 9 +++++++--
 src/arch/arm64/include/armv8/arch/exception.h | 2 ++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/arch/arm64/armv8/exception.c b/src/arch/arm64/armv8/exception.c
index 4b4d7b7..d9a63c3 100644
--- a/src/arch/arm64/armv8/exception.c
+++ b/src/arch/arm64/armv8/exception.c
@@ -127,11 +127,16 @@ static uint64_t test_exception(void)
 	return 0;
 }
 
-void exception_init(void)
+void exception_hwinit(void)
 {
 	extern void *exception_table;
-
 	set_vbar(&exception_table);
+}
+
+void exception_init(void)
+{
+	/* Load the exception table. */
+	exception_hwinit();
 
 	printk(BIOS_DEBUG, "ARM64: Exception handlers installed.\n");
 
diff --git a/src/arch/arm64/include/armv8/arch/exception.h b/src/arch/arm64/include/armv8/arch/exception.h
index b33e20f..abb8093 100644
--- a/src/arch/arm64/include/armv8/arch/exception.h
+++ b/src/arch/arm64/include/armv8/arch/exception.h
@@ -39,6 +39,8 @@ struct exception_state
 	uint64_t regs[31];
 } __attribute__((packed));
 
+/* Initialize the exception handling on the current CPU. */
+void exception_hwinit(void);
 void exception_init(void);
 void set_vbar(void *vbar);
 void exception_dispatch(struct exception_state *state, int idx);



More information about the coreboot-gerrit mailing list