diff options
author | Ronald G. Minnich <rminnich@gmail.com> | 2013-03-07 15:23:45 -0800 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2013-03-08 22:03:37 +0100 |
commit | b21eaa74a656fa33f943f76ea0c53ca8374760f6 (patch) | |
tree | 0271598a31c34c9c36f236fef4760b3932380c08 /src/mainboard | |
parent | c2f2bd0a6d00a7f8df4005f148f67373db6d26d6 (diff) |
ARMV7 and Google/Snow: Add exception support code to the ramstage
This is previously used exception code from libpayload.
On startup it installs and then tests an exception handler.
The test is an unaligned memory operation.
Yes, we've seen what might be exceptions in the ramstage, and
it makes sense to handle them. This code is identical in structure
and operation to the previously committed payload exception handler,
though we reserve the right to change it as circumstances require.
The remaining question is whether we need it in romstage.
Change-Id: I24484686c33c9757af8ba171ebae9773828fb69d
Signed-off-by: Gabe Black <gabeblack@google.com>
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-on: http://review.coreboot.org/2614
Tested-by: build bot (Jenkins)
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Diffstat (limited to 'src/mainboard')
-rw-r--r-- | src/mainboard/google/snow/ramstage.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mainboard/google/snow/ramstage.c b/src/mainboard/google/snow/ramstage.c index 9f259ef30e..be5216f2b7 100644 --- a/src/mainboard/google/snow/ramstage.c +++ b/src/mainboard/google/snow/ramstage.c @@ -19,6 +19,7 @@ #include <console/console.h> #include <cbmem.h> +#include <arch/exception.h> #include <cpu/samsung/exynos5250/clk.h> #include <cpu/samsung/exynos5250/power.h> @@ -26,8 +27,10 @@ void hardwaremain(int boot_complete); void main(void) { console_init(); - printk(BIOS_INFO, "hello from ramstage\n"); + printk(BIOS_INFO, "hello from ramstage; now with deluxe exception handling.\n"); + /* this is going to move, but we must have it now and we're not sure where */ + exception_init(); /* place at top of physical memory */ high_tables_size = CONFIG_COREBOOT_TABLES_SIZE; high_tables_base = CONFIG_SYS_SDRAM_BASE + |