diff options
author | Greg Still <stillgs@us.ibm.com> | 2018-03-01 10:56:01 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-03-16 13:37:35 -0400 |
commit | 9b5cfe7260efe3cb7b66c8c14c38ea1ba9595e46 (patch) | |
tree | 9b1aafde98cd8137c7e309333eb3b922703a143c /src/import/chips/p9/procedures | |
parent | 68f67bd7aab5d3f3713da2a2078a85187778ec3a (diff) | |
download | talos-hostboot-9b5cfe7260efe3cb7b66c8c14c38ea1ba9595e46.tar.gz talos-hostboot-9b5cfe7260efe3cb7b66c8c14c38ea1ba9595e46.zip |
PM: Enhance p9_pm_pss_init for reset error logging
- Added informational error logs if failures were detected but the reset to the
hardware proceeded anyway
- Done based on a P8 field observation where such logs would have been
beneficial
Change-Id: I334887b178a0974def353fe2b98362fe87afd6ae
CQ: SW419455
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54941
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54943
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures')
3 files changed, 64 insertions, 23 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.C index 55ae05979..7840c2bff 100755 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.C +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -36,6 +36,8 @@ // Includes // ----------------------------------------------------------------------------- #include <p9_pm_pss_init.H> +#include <p9_misc_scom_addresses.H> +#include <p9_misc_scom_addresses_fld.H> // ----------------------------------------------------------------------------- // Function prototypes @@ -310,14 +312,14 @@ fapi2::ReturnCode pm_pss_reset( FAPI_TRY(fapi2::getScom(i_target, PU_SPIPSS_ADC_STATUS_REG, l_data64)); // ADC on-going complete - if (l_data64.getBit<0>() == 0) + if (l_data64.getBit<PU_SPIPSS_ADC_STATUS_REG_HWCTRL_ONGOING>() == 0) { FAPI_INF("All frames sent from ADC to the APSS device."); break; } // ADC error - FAPI_ASSERT(l_data64.getBit<7>() != 1, + FAPI_ASSERT(!l_data64.getBit<PU_SPIPSS_ADC_STATUS_REG_HWCTRL_FSM_ERR>(), fapi2::PM_PSS_ADC_ERROR() .set_CHIP(i_target) .set_POLLCOUNT(l_pollcount), @@ -328,7 +330,7 @@ fapi2::ReturnCode pm_pss_reset( } // Write attempted while Bridge busy - if(l_data64.getBit<5>() == 1) + if(l_data64.getBit<PU_SPIPSS_ADC_STATUS_REG_HWCTRL_WRITE_WHILE_FSM_BUSY_ERR>() == 1) { FAPI_INF("SPIP2S Write While Bridge Busy bit asserted. May cause " "undefined bridge behavior. Will be cleared during reset"); @@ -360,7 +362,7 @@ fapi2::ReturnCode pm_pss_reset( } // P2S error - FAPI_ASSERT(l_data64.getBit<7>() != 1, + FAPI_ASSERT(!l_data64.getBit<PU_SPIPSS_P2S_STATUS_REG_FSM_ERR>(), fapi2::PM_PSS_P2S_ERROR() .set_CHIP(i_target) .set_POLLCOUNT(l_pollcount), @@ -370,19 +372,20 @@ fapi2::ReturnCode pm_pss_reset( fapi2::delay(l_pss_poll_interval_us * 1000, 1000); } - // write attempted while bridge busy - if (l_data64.getBit<5>() == 1) - { - FAPI_INF("SPIP2S Write While Bridge Busy bit asserted. " - "Will be cleared with coming reset"); - } - - // Poll timeout - if (l_pollcount >= l_max_polls) - { - FAPI_INF("WARNING: SPI P2S did not go to idle in at least %d us. " - "Reset of PSS macro is commencing anyway", l_pss_timeout_us); - } + FAPI_ASSERT_NOEXIT(!l_data64.getBit<PU_SPIPSS_P2S_STATUS_REG_WRITE_WHILE_BRIDGE_BUSY_ERR>(), + fapi2::PM_PSS_ADC_WRITE_WHILE_BUSY() + .set_CHIP(i_target) + .set_POLLCOUNT(l_pollcount), + "SPIP2S Write While Bridge Busy bit asserted. Will be cleared with coming reset"); + + FAPI_ASSERT_NOEXIT(l_pollcount < l_max_polls, + fapi2::PM_PSS_ADC_TIMEOUT() + .set_CHIP(i_target) + .set_POLLCOUNT(l_pollcount) + .set_MAXPOLLS(l_max_polls) + .set_TIMEOUTUS(l_pss_timeout_us), + "SPI P2S did not go to idle in at least % d us. " + "Reset of PSS macro is commencing anyway", l_pss_timeout_us ); // ****************************************************************** // - Resetting both ADC and P2S bridge @@ -391,7 +394,8 @@ fapi2::ReturnCode pm_pss_reset( FAPI_INF("Resetting P2S and ADC bridges."); l_data64.flush<0>(); - l_data64.setBit<1>(); + // Need to write 01 + l_data64.setBit < PU_SPIPSS_ADC_RESET_REGISTER_HWCTRL + 1 > (); FAPI_TRY(fapi2::putScom(i_target, PU_SPIPSS_ADC_RESET_REGISTER, l_data64), "Error: Could not reset ADC bridge"); @@ -406,6 +410,6 @@ fapi2::ReturnCode pm_pss_reset( "Error: Could not clear the P2S reset register"); fapi_try_exit: - FAPI_IMP("<< pm_pss_reset"); + FAPI_IMP(" << pm_pss_reset"); return fapi2::current_err; } diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.H b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.H index efb7c53f6..1b21bbe0b 100755 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.H +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pss_init.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -78,7 +78,6 @@ //------------------------------------------------------------------------------ #include <fapi2.H> #include <p9_pm.H> -#include <p9_misc_scom_addresses.H> typedef fapi2::ReturnCode (*p9_pm_pss_init_FP_t) (const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&, diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_pm_pss_errors.xml b/src/import/chips/p9/procedures/xml/error_info/p9_pm_pss_errors.xml index 4e830f492..fe96bed21 100644 --- a/src/import/chips/p9/procedures/xml/error_info/p9_pm_pss_errors.xml +++ b/src/import/chips/p9/procedures/xml/error_info/p9_pm_pss_errors.xml @@ -5,7 +5,7 @@ <!-- --> <!-- OpenPOWER HostBoot Project --> <!-- --> -<!-- Contributors Listed Below - COPYRIGHT 2015,2017 --> +<!-- Contributors Listed Below - COPYRIGHT 2015,2018 --> <!-- [+] International Business Machines Corp. --> <!-- --> <!-- --> @@ -55,6 +55,44 @@ </hwpError> <!-- *********************************************************************** --> <hwpError> + <rc>RC_PM_PSS_ADC_WRITE_WHILE_BUSY</rc> + <description>SPI ADC was written while the bridge was busy. Cleared with + coming reset. + </description> + <ffdc>CHIP</ffdc> + <ffdc>POLLCOUNT</ffdc> + <collectRegisterFfdc> + <id>PSS_FFDC_REGISTERS</id> + <target>CHIP</target> + <targetType>TARGET_TYPE_PROC_CHIP</targetType> + </collectRegisterFfdc> + <callout> + <target>CODE</target> + <priority>HIGH</priority> + </callout> + </hwpError> + <!-- *********************************************************************** --> + <hwpError> + <rc>RC_PM_PSS_ADC_TIMEOUT</rc> + <description>SPIADC timed waiting to be quiesced. The SPIADC will be reset + anyway so as to attempt to recover the interface. + </description> + <ffdc>CHIP</ffdc> + <ffdc>POLLCOUNT</ffdc> + <ffdc>MAXPOLLS</ffdc> + <ffdc>TIMEOUTUS</ffdc> + <collectRegisterFfdc> + <id>PSS_FFDC_REGISTERS</id> + <target>CHIP</target> + <targetType>TARGET_TYPE_PROC_CHIP</targetType> + </collectRegisterFfdc> + <callout> + <target>CHIP</target> + <priority>HIGH</priority> + </callout> + </hwpError> + <!-- *********************************************************************** --> + <hwpError> <rc>RC_PM_PSS_P2S_ERROR</rc> <description>SPIP2S error bit asserted waiting for operation to complete. </description> |