diff options
author | Gabe Black <gabeblack@google.com> | 2013-12-16 04:07:50 -0800 |
---|---|---|
committer | Marc Jones <marc.jones@se-eng.com> | 2014-12-09 18:39:14 +0100 |
commit | 97345dbc6c2f031158f249b3dda89200784b86b4 (patch) | |
tree | 9d5dfc98cd2f06269500d250d6c4f62fa38fce24 /payloads/libpayload/include/arm | |
parent | 20cdb2439f7e76f78d2618220fc1a0061afd57cd (diff) |
libpayload: ARM: Keep track of the CPSR when exceptions happen.
Use the SPSR to extract and inject CPSR values when an exception happens and
pass that information to exception hooks.
The register structure GDB expects when using its remote protocol has a spot
for the CPSR.
BUG=None
TEST=Built and booted on link, nyan.
BRANCH=None
Original-Change-Id: Id950fb09d72fb0f81e4eef2489c0849ce5dd8aca
Original-Signed-off-by: Gabe Black <gabeblack@google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/180253
Original-Reviewed-by: Gabe Black <gabeblack@chromium.org>
Original-Tested-by: Gabe Black <gabeblack@chromium.org>
Original-Commit-Queue: Gabe Black <gabeblack@chromium.org>
(cherry picked from commit 8e7014f24a580f84c91fa7b0369dfa922918adcc)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Change-Id: I49357fb6a65edeff7a9a48d54254308a6b0efdb7
Reviewed-on: http://review.coreboot.org/7657
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'payloads/libpayload/include/arm')
-rw-r--r-- | payloads/libpayload/include/arm/arch/exception.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/payloads/libpayload/include/arm/arch/exception.h b/payloads/libpayload/include/arm/arch/exception.h index 13fda57aa7..c6864a5ad2 100644 --- a/payloads/libpayload/include/arm/arch/exception.h +++ b/payloads/libpayload/include/arm/arch/exception.h @@ -36,6 +36,7 @@ void set_vbar(uint32_t vbar); struct exception_state { + uint32_t cpsr; uint32_t regs[16]; } __attribute__((packed)); |