diff options
author | Raja Das <rajadas2@in.ibm.com> | 2018-01-07 20:59:32 -0600 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2018-01-19 03:45:11 -0500 |
commit | 56882277747caed6530c617bc9ffe53323c06a93 (patch) | |
tree | c2d3c5c91997157e1b5f9d7d37b06053fdf0047b /src/import/chips | |
parent | c68fb43ecf21c311d912b89dbc0f55d49ec78bc4 (diff) | |
download | talos-sbe-56882277747caed6530c617bc9ffe53323c06a93.tar.gz talos-sbe-56882277747caed6530c617bc9ffe53323c06a93.zip |
Register FFDC call is handled within machine_check_handler
Within the PK interrupt vector, if you have a function call from
one function to another, it needs branch link instruction, but
since the BL is already being used to jump from software context
to the PK Vectored Interrupt context, the function call from within
will corrupt the Link register.
For interrupts like data_storage, instruction_storage,
alignment_exception and program_exception, the save-off will
capture the LR registers to indicate which interrupt was getting
executed when halt happened. For Machine check handler, LR won't be
valid.
Change-Id: Iee17b37acd438c7bee2c956cac2de3ce64d04441
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51587
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: Soma Bhanutej <soma.bhanu@in.ibm.com>
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51588
Diffstat (limited to 'src/import/chips')
-rw-r--r-- | src/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_exceptions.S | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_exceptions.S b/src/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_exceptions.S index ce463ebb..eaf96a3a 100644 --- a/src/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_exceptions.S +++ b/src/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_exceptions.S @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -58,8 +58,10 @@ __vectors: ### will be forwarded to the program exception handler. __machine_check: - PPE_CAPTURE_INTERRUPT_FFDC - + ### PPE_CAPTURE_INTERRUPT_FFDC is called within machine_check_handler + ### There is a branch issue if the PPE_CAPTURE_INTERRUPT_FFDC is called + ### from outside, so an work around, FFDC is captured within machine + ### check handler. PPE42_MACHINE_CHECK_HANDLER ############################################################ @@ -106,7 +108,6 @@ __instruction_storage: PPE42_INSTRUCTION_STORAGE_HANDLER - ############################################################ # 0x00A0 : External Interrupt ############################################################ |