From 9e30f641320742f97012a29456531cdd991eaba1 Mon Sep 17 00:00:00 2001 From: spashabk-in Date: Thu, 15 Mar 2018 05:08:08 -0500 Subject: Check for checkstop during mpipl Implement check for system checkstop during MPIPL Change-Id: I220d5fc34406083002d3262acb140412739f3100 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55913 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: RAJA DAS Reviewed-by: Sachin Gupta --- src/sbefw/app/power/sbecmdmpipl.C | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'src/sbefw') diff --git a/src/sbefw/app/power/sbecmdmpipl.C b/src/sbefw/app/power/sbecmdmpipl.C index 23b6360f..47e76bcd 100644 --- a/src/sbefw/app/power/sbecmdmpipl.C +++ b/src/sbefw/app/power/sbecmdmpipl.C @@ -107,13 +107,22 @@ uint32_t sbeEnterMpipl(uint8_t *i_pArg) do { l_fapiRc = sbeExecuteIstep(SBE_ISTEP_MPIPL_START, l_minor); - if(l_fapiRc != FAPI2_RC_SUCCESS) + bool checkstop = isSystemCheckstop(); + if((l_fapiRc != FAPI2_RC_SUCCESS) || checkstop) { SBE_ERROR(SBE_FUNC "Failed in Mpipl Start in ChipOp Mode " "Minor: %d", l_minor); - l_respHdr.setStatus( SBE_PRI_GENERIC_EXECUTION_FAILURE, - SBE_SEC_GENERIC_FAILURE_IN_EXECUTION); - l_ffdc.setRc(l_fapiRc); + if(checkstop) + { + l_respHdr.setStatus( SBE_PRI_GENERIC_EXECUTION_FAILURE, + SBE_SEC_SYSTEM_CHECKSTOP); + } + else + { + l_respHdr.setStatus( SBE_PRI_GENERIC_EXECUTION_FAILURE, + SBE_SEC_GENERIC_FAILURE_IN_EXECUTION); + l_ffdc.setRc(l_fapiRc); + } // reset attribute. We do not want to reset register, so do not // use setMpIplMode uint8_t isMpipl = 0; @@ -186,13 +195,22 @@ uint32_t sbeContinueMpipl(uint8_t *i_pArg) for(uint8_t l_minor = istep[1]; l_minor <= istep[2]; l_minor++) { l_fapiRc = sbeExecuteIstep(istep[0], l_minor); - if(l_fapiRc != FAPI2_RC_SUCCESS) + bool checkstop = isSystemCheckstop(); + if((l_fapiRc != FAPI2_RC_SUCCESS) || checkstop) { SBE_ERROR(SBE_FUNC "Failed in Mpipl continue in ChipOp " "Mode Major [%d] Minor [%d]", istep[0], l_minor); - l_respHdr.setStatus( SBE_PRI_GENERIC_EXECUTION_FAILURE, - SBE_SEC_GENERIC_FAILURE_IN_EXECUTION); - l_ffdc.setRc(l_fapiRc); + if(checkstop) + { + l_respHdr.setStatus( SBE_PRI_GENERIC_EXECUTION_FAILURE, + SBE_SEC_SYSTEM_CHECKSTOP); + } + else + { + l_respHdr.setStatus( SBE_PRI_GENERIC_EXECUTION_FAILURE, + SBE_SEC_GENERIC_FAILURE_IN_EXECUTION); + l_ffdc.setRc(l_fapiRc); + } break; } } -- cgit v1.2.1