summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/ppe
diff options
context:
space:
mode:
authorRaja Das <rajadas2@in.ibm.com>2018-01-07 20:59:32 -0600
committerSachin Gupta <sgupta2m@in.ibm.com>2018-01-19 03:45:11 -0500
commit56882277747caed6530c617bc9ffe53323c06a93 (patch)
treec2d3c5c91997157e1b5f9d7d37b06053fdf0047b /src/import/chips/p9/procedures/ppe
parentc68fb43ecf21c311d912b89dbc0f55d49ec78bc4 (diff)
downloadtalos-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/p9/procedures/ppe')
-rw-r--r--src/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_exceptions.S9
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
############################################################
OpenPOWER on IntegriCloud