From 21fc8a22550254563195fb2b233fcca77335baa6 Mon Sep 17 00:00:00 2001 From: Sangeetha T S Date: Tue, 16 May 2017 02:27:34 -0500 Subject: [PATCH] Level 3: Stop GPE, PGPE procedures Change-Id: I12e5191f4503010f870e7b3a27f366d2479823e4 RTC: 139534 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40537 Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: AMIT J. TENDOLKAR Reviewed-by: Gregory S. Still Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41978 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- .../procedures/hwp/pm/p9_pm_pstate_gpe_init.C | 47 +++--- .../procedures/hwp/pm/p9_pm_pstate_gpe_init.H | 12 +- .../procedures/hwp/pm/p9_pm_stop_gpe_init.C | 156 ++++++++++++++---- .../procedures/hwp/pm/p9_pm_stop_gpe_init.H | 18 +- .../p9_pm_pstate_gpe_init_errors.xml | 34 +++- .../error_info/p9_pm_stop_gpe_init_errors.xml | 62 +++++++ 6 files changed, 257 insertions(+), 72 deletions(-) diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C index 10877ae543c..14e778ae0ab 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C @@ -26,18 +26,21 @@ /// @file p9_pm_pstate_gpe_init.C /// @brief Stop, reset and initalize/start the Pstate GPE /// -// *HWP HWP Owner: Greg Still -// *HWP BackupHWP Owner: Amit Kumar -// *HWP FW Owner: Sangeetha T S -// *HWP Team: PM -// *HWP Level: 2 -// *HWP Consumed by: FSP:HS +// *HWP HWP Owner : Greg Still +// *HWP Backup Owner : Rahul Batra +// *HWP FW Owner : Prem S Jha +// *HWP Team : PM +// *HWP Level : 3 +// *HWP Consumed by : HS // ----------------------------------------------------------------------------- // Includes // ----------------------------------------------------------------------------- #include #include +#include +#include +#include // ----------------------------------------------------------------------------- // Constants @@ -74,13 +77,13 @@ fapi2::ReturnCode pstate_gpe_init( fapi2::buffer l_ivpr; uint32_t l_xsr_halt_condition = 0; uint32_t l_timeout_counter = TIMEOUT_COUNT; - const fapi2::Target FAPI_SYSTEM; fapi2::ATTR_PSTATEGPE_BOOT_COPIER_IVPR_OFFSET_Type l_ivpr_offset = 0; fapi2::ATTR_VDD_AVSBUS_BUSNUM_Type l_avsbus_number = 0; fapi2::ATTR_VDD_AVSBUS_RAIL_Type l_avsbus_rail = 0; fapi2::ATTR_SYSTEM_PSTATES_MODE_Type l_pstates_mode = 0; - + std::vector l_pgpe_base_addr; + l_pgpe_base_addr.push_back( PGPE_BASE_ADDRESS ); FAPI_IMP(">> pstate_gpe_init......"); @@ -152,7 +155,6 @@ fapi2::ReturnCode pstate_gpe_init( FAPI_TRY(fapi2::putScom(i_target, PU_GPE2_GPETSEL_SCOM, l_data64)); // Program XCR to ACTIVATE PGPE - // @todo RTC 146665 Operations to PPEs should use a p9ppe namespace FAPI_INF(" Starting the PGPE..."); l_xcr.flush<0>().insertFromRight(p9hcd::HARD_RESET, 1, 3); FAPI_TRY(putScom(i_target, PU_GPE2_PPE_XIXCR, l_xcr)); @@ -192,18 +194,19 @@ fapi2::ReturnCode pstate_gpe_init( ((l_xsr_halt_condition == p9hcd::DEBUG_HALT || l_xsr_halt_condition == p9hcd::DBCR_HALT) )), fapi2::PSTATE_GPE_INIT_DEBUG_HALT() - .set_CHIP(i_target), + .set_CHIP(i_target) + .set_PGPE_BASE_ADDRESS(l_pgpe_base_addr) + .set_PGPE_STATE_MODE(HALT), "Pstate GPE Debug Halt detected"); - // @todo 146665 Need to collect PGPE state. Operations to PPEs should - // use a p9ppe namespace class when created - // When PGPE fails to boot, assert out FAPI_ASSERT((l_timeout_counter != 0 && l_occ_scratch2.getBit() == 1 && l_xsr_iar.getBit() != 1), fapi2::PSTATE_GPE_INIT_TIMEOUT() - .set_CHIP(i_target), + .set_CHIP(i_target) + .set_PGPE_BASE_ADDRESS(l_pgpe_base_addr) + .set_PGPE_STATE_MODE(HALT), "Pstate GPE Init timeout"); if(l_occ_scratch2.getBit()) @@ -245,7 +248,6 @@ fapi2::ReturnCode pstate_gpe_init( FAPI_INF(" PGPE booting is disabled and is NOT running!!!!"); } - fapi_try_exit: FAPI_IMP("<< pstate_gpe_init......"); return fapi2::current_err; @@ -267,20 +269,18 @@ fapi2::ReturnCode pstate_gpe_reset( fapi2::buffer l_data64; uint32_t l_timeout_in_MS = 100; + std::vector l_pgpe_base_addr; + l_pgpe_base_addr.push_back( PGPE_BASE_ADDRESS ); FAPI_IMP(">> pstate_gpe_reset..."); // Program XCR to HALT PGPE - // @todo This should be replaced by a call to a common PPE service class - // ppeGPE2(3); - // GPE2.hard_reset(); FAPI_INF(" Send HALT command via XCR..."); l_data64.flush<0>().insertFromRight(p9hcd::HALT, 1, 3); FAPI_TRY(putScom(i_target, PU_GPE2_PPE_XIXCR, l_data64)); // Now wait for PGPE to be halted. - // @todo This loop should be replace by a call to a common PPE service class // FAPI_TRY(GPE2.is_halted(&b_halted_state, // timeout_value_ns, // timeout_value_simcycles)); @@ -297,8 +297,10 @@ fapi2::ReturnCode pstate_gpe_reset( // When PGPE fails to halt, then assert ot FAPI_ASSERT((l_timeout_in_MS != 0), fapi2::PSTATE_GPE_RESET_TIMEOUT() - .set_CHIP(i_target), - "PSTATE GPE Init timeout"); + .set_CHIP(i_target) + .set_PGPE_BASE_ADDRESS(l_pgpe_base_addr) + .set_PGPE_STATE_MODE(SNAPSHOT), + "PSTATE GPE Reset timeout"); FAPI_TRY(getScom(i_target, PU_OCB_OCI_OCCS2_SCOM, l_data64)); FAPI_INF(" Clear PGPE_ACTIVE in OCC Flag Register..."); @@ -339,7 +341,7 @@ fapi2::ReturnCode p9_pm_pstate_gpe_init( fapi2::PSTATE_GPE_PBA_INIT_FAILED() .set_CHIP(i_target) .set_MODE(p9pm::PM_INIT), - "PBA setup failed"); + "PBA Setup Failed" ); } // Reset the PSTATE GPE @@ -351,7 +353,6 @@ fapi2::ReturnCode p9_pm_pstate_gpe_init( // Unsupported Mode else { - FAPI_ERR("Unknown mode %x passed to p9_pstate_gpe_init.", i_mode); FAPI_ASSERT(false, fapi2::PSTATE_GPE_BAD_MODE() .set_BADMODE(i_mode), diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.H b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.H index c6c4636cf77..f308fed8af9 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.H +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.H @@ -26,12 +26,12 @@ /// @file p9_pm_pstate_gpe_init.H /// @brief Initialize the STOP GPE Engine in the OCC /// -// *HWP HWP Owner: Greg Still -// *HWP BackupHWP Owner: Amit Kumar -// *HWP FW Owner: Sangeetha T S -// *HWP Team: PM -// *HWP Level: 2 -// *HWP Consumed by: FSP:HS +// *HWP HWP Owner : Greg Still +// *HWP Backup Owner : Rahul Batra +// *HWP FW Owner : Prem S Jha +// *HWP Team : PM +// *HWP Level : 3 +// *HWP Consumed by : HS /// /// High-level procedure flow: /// @verbatim diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C index a4bec9442fc..9920b0962ae 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C @@ -25,12 +25,12 @@ /// @file p9_pm_stop_gpe_init.C /// @brief Initialize the Stop GPE and related functions -// *HWP HWP Owner : Amit Kumar -// *HWP Backup HWP Owner: Greg Still -// *HWP FW Owner : Bilicon Patil -// *HWP Team : PM -// *HWP Level : 1 -// *HWP Consumed by : HS +// *HWP HWP Owner : Greg Still +// *HWP Backup Owner : David Du +// *HWP FW Owner : Prem S Jha +// *HWP Team : PM +// *HWP Level : 3 +// *HWP Consumed by : HS /// /// High-level procedure flow: @@ -56,11 +56,21 @@ // Includes // ----------------------------------------------------------------------------- +#include +#include #include #include #include #include #include +#include +#include +#include +#include +#include +#include +#include + //#include @todo RTC 147996 to incorporate PPE state removing strings. @@ -78,8 +88,6 @@ static const uint32_t SGPE_POLLTIME_MS = 20; // Guess at this time static const uint32_t SGPE_POLLTIME_MCYCLES = 2; // Guess at this time static const uint32_t TIMEOUT_COUNT = SGPE_TIMEOUT_MS / SGPE_POLLTIME_MS; -static const uint64_t GPE3_BASE_ADDRESS = 0x00066010; -static const uint64_t SGPE_BASE_ADDRESS = GPE3_BASE_ADDRESS; @@ -96,6 +104,10 @@ fapi2::ReturnCode stop_gpe_reset( fapi2::ReturnCode stop_corecache_setup( const fapi2::Target& i_target); +fapi2::ReturnCode get_functional_chiplet_info( + const fapi2::Target& i_target , + std::vector& o_ppe_addr_list, + std::vector< fapi2::Target >& o_eq_target_list ); // ----------------------------------------------------------------------------- // Function definitions // ----------------------------------------------------------------------------- @@ -113,7 +125,7 @@ fapi2::ReturnCode p9_pm_stop_gpe_init( const fapi2::Target& i_target, const p9pm::PM_FLOW_MODE i_mode) { - FAPI_IMP("> p9_pm_stop_gpe_init"); + FAPI_IMP(">> p9_pm_stop_gpe_init"); const char* PM_MODE_NAME_VAR; //Defines storage for PM_MODE_NAME FAPI_INF("Executing p9_stop_gpe_init in mode %s", PM_MODE_NAME(i_mode)); @@ -316,7 +328,7 @@ fapi2::ReturnCode p9_pm_stop_gpe_init( } fapi_try_exit: - FAPI_INF("< p9_pm_stop_gpe_init"); + FAPI_INF("<< p9_pm_stop_gpe_init"); return fapi2::current_err; } @@ -342,8 +354,13 @@ fapi2::ReturnCode stop_gpe_init( fapi2::buffer l_slave_cfg; uint32_t l_ivpr_offset; uint32_t l_timeout_in_MS = TIMEOUT_COUNT; + std::vector l_ppe_base_addr_list; + std::vector< fapi2::Target > l_eq_list; + + FAPI_IMP(">> stop_gpe_init"); - FAPI_IMP(">> stop_gpe_init......"); + FAPI_TRY( get_functional_chiplet_info( i_target, l_ppe_base_addr_list, l_eq_list ), + "Failed to get PPE Base Address List and Func EQ List" ); // First check if SGPE_ACTIVE is not set in OCCFLAG register FAPI_TRY(getScom(i_target, PU_OCB_OCI_OCCFLG_SCOM, l_occ_flag)); @@ -368,7 +385,6 @@ fapi2::ReturnCode stop_gpe_init( FAPI_TRY(putScom(i_target, PU_GPE3_GPEIVPR_SCOM, l_ivpr)); // Program XCR to ACTIVATE SGPE - // @todo 146665 Operations to PPEs should use a p9ppe namespace when created l_xcr.flush<0>().insertFromRight(p9hcd::HARD_RESET, 1 , 3); FAPI_TRY(putScom(i_target, PU_GPE3_PPE_XIXCR, l_xcr)); l_xcr.flush<0>().insertFromRight(p9hcd::TOGGLE_XSR_TRH, 1 , 3); @@ -393,7 +409,7 @@ fapi2::ReturnCode stop_gpe_init( l_iar, l_ir, l_timeout_in_MS); - fapi2::delay(SGPE_POLLTIME_MS * 1000 * 1000, SGPE_POLLTIME_MCYCLES * 1000 * 1000); + fapi2::delay(SGPE_POLLTIME_MS * 1000, SGPE_POLLTIME_MCYCLES * 1000 * 1000); } while((!((l_occ_flag.getBit() == 1) && (l_xsr.getBit() == 0))) && @@ -404,15 +420,31 @@ fapi2::ReturnCode stop_gpe_init( FAPI_INF("SGPE was activated successfully!!!!"); } - // @todo 146665 Operations to PPEs should use a p9ppe namespace when created - FAPI_ASSERT((l_timeout_in_MS != 0), - fapi2::STOP_GPE_INIT_TIMEOUT() - .set_CHIP(i_target), - "STOP GPE Init timeout"); + if( 0 == l_timeout_in_MS ) + { + // SGPE failed to boot or one more CME failed to boot. + // We need to collec the FFDC. Let us clear the atomic + // lock first to enable collection of CME's FFDC. + + for( auto eq : l_eq_list ) + { + p9_clear_atomic_lock( eq ); + } + + FAPI_ASSERT( false, + fapi2::STOP_GPE_INIT_TIMEOUT() + .set_CHIP(i_target) + .set_OCC_FLAG_REG_VAL( l_occ_flag ) + .set_XSR_REG_VAL( l_xsr ) + .set_PPE_STATE_MODE(HALT) + .set_PPE_BASE_ADDRESS_LIST(l_ppe_base_addr_list), + "STOP GPE Init Timeout"); + } + fapi_try_exit: - FAPI_IMP("<< stop_gpe_init......"); + FAPI_IMP("<< stop_gpe_init"); return fapi2::current_err; } @@ -433,33 +465,46 @@ fapi2::ReturnCode stop_gpe_reset( fapi2::buffer l_data64; uint32_t l_timeout_in_MS = 100; + std::vector l_ppe_base_addr_list; + std::vector< fapi2::Target > l_eq_list; FAPI_IMP(">> stop_gpe_reset..."); + FAPI_TRY( get_functional_chiplet_info( i_target, l_ppe_base_addr_list, l_eq_list ), + "Failed to get PPE Base Address List and Func EQ List" ); // Program XCR to HALT SGPE - // @todo This should be replace by a call to a common PPE service class - // ppegpe3(3); - // gpe3.hard_reset(); FAPI_INF(" Send HALT command via XCR..."); l_data64.flush<0>().insertFromRight(p9hcd::HALT, 1, 3); FAPI_TRY(putScom(i_target, PU_GPE3_PPE_XIXCR, l_data64)); //Now wait for SGPE to be halted. - // @todo This loop should be replace by a call to a common PPE service class - // FAPI_TRY(gpe3.is_halted(&b_halted_state, timeout_value_ns, timeout_value_simcycles)); FAPI_INF(" Poll for HALT State via XSR..."); do { FAPI_TRY(getScom(i_target, PU_GPE3_GPEXIXSR_SCOM, l_data64)); - fapi2::delay(SGPE_POLLTIME_MS * 1000 * 1000, SGPE_POLLTIME_MCYCLES * 1000 * 1000); + fapi2::delay(SGPE_POLLTIME_MS * 1000, SGPE_POLLTIME_MCYCLES * 1000 * 1000); } while((l_data64.getBit() == 0) && (--l_timeout_in_MS != 0)); - FAPI_ASSERT((l_timeout_in_MS != 0), - fapi2::STOP_GPE_RESET_TIMEOUT() - .set_CHIP(i_target), - "STOP GPE Init timeout"); + if( 0 == l_timeout_in_MS ) + { + // SGPE Reset Failed. + // We need to collect the FFDC. Let us clear the atomic + // lock first to enable collection of CME's FFDC. + + for( auto eq : l_eq_list ) + { + p9_clear_atomic_lock( eq ); + } + + FAPI_ASSERT( false, + fapi2::STOP_GPE_RESET_TIMEOUT() + .set_CHIP(i_target) + .set_PPE_STATE_MODE(HALT) + .set_PPE_BASE_ADDRESS_LIST(l_ppe_base_addr_list), + "STOP Reset Timeout"); + } FAPI_INF(" Clear SGPE_ACTIVE in OCC Flag Register..."); l_data64.flush<0>().setBit(); @@ -501,3 +546,56 @@ fapi2::ReturnCode stop_corecache_setup( return fapi2::current_err; } + +// @brief Returns target for all functional EQ and base address of SGPE and all functional CMEs +// @param[in] i_target fapi2 target for P9 chip +// @param[out] o_ppe_addr_list list of base addresses for CMEs and SGPE +// @param[out] o_eq_target_list list of EQ target +// @return fapi2 return code +// @note instead of getting functional status from platform targeting, for better reliability +// we shall use value of QCSR register. +fapi2::ReturnCode get_functional_chiplet_info( + const fapi2::Target& i_target, + std::vector& o_ppe_addr_list, + std::vector< fapi2::Target >& o_eq_target_list ) +{ + + FAPI_INF(">> get_functional_chiplet_info"); + + fapi2::buffer l_qcsrBuf; + uint8_t l_exPos = 0; + + auto l_ex_vector = i_target.getChildren( fapi2::TARGET_STATE_PRESENT ); + FAPI_TRY(getScom(i_target, PU_OCB_OCI_QCSR_SCOM, l_qcsrBuf)); + FAPI_INF( "QCS Val 0x%16llX", l_qcsrBuf ); + + o_ppe_addr_list.push_back( SGPE_BASE_ADDRESS ); + + for ( auto ex : l_ex_vector ) + { + FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS, ex, l_exPos )); + + if( l_qcsrBuf.getBit( l_exPos ) ) + { + FAPI_INF("Func EX %d ", l_exPos ); + o_ppe_addr_list.push_back( getCmeBaseAddress( l_exPos ) ); + fapi2::Target< fapi2::TARGET_TYPE_EQ > l_parentEq = ex.getParent(); + std::vector< fapi2::Target< fapi2::TARGET_TYPE_EQ > >::iterator l_eq; + l_eq = std::find ( o_eq_target_list.begin(), o_eq_target_list.end(), l_parentEq ); + + if ( l_eq != o_eq_target_list.end() ) + { + continue; + } + + FAPI_INF("Func EQ %d ", (l_exPos >> 1 ) ); + o_eq_target_list.push_back( l_parentEq ); + } + + } + +fapi_try_exit: + FAPI_INF("<< get_functional_chiplet_info"); + return fapi2::current_err; +} + diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.H b/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.H index 905830bdbc5..9f484267ad9 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.H +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -26,12 +26,12 @@ /// @file p9_pm_stop_gpe_init.H /// @brief Initialize the STOP GPE Engine in the OCC /// -// *HWP HWP Owner: Amit Kumar -// *HWP Backup HWP Owner: Greg Still -// *HWP FW Owner: Bilicon Patil -// *HWP Team: PM -// *HWP Level: 1 -// *HWP Consumed by: FSP:HS +// *HWP Owner : Greg Still +// *HWP Backup Owner : David Du +// *HWP FW Owner : Prem S Jha +// *HWP Team : PM +// *HWP Level : 3 +// *HWP Consumed by : HS /// ///----------------------------------------------------------------------------- @@ -44,10 +44,6 @@ #include #include -#include -#include -#include -#include // function pointer typedef definition for HWP call support typedef fapi2::ReturnCode (*p9_pm_stop_gpe_init_FP_t) ( diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_pm_pstate_gpe_init_errors.xml b/src/import/chips/p9/procedures/xml/error_info/p9_pm_pstate_gpe_init_errors.xml index f4a92a76435..4afc2d06a0b 100644 --- a/src/import/chips/p9/procedures/xml/error_info/p9_pm_pstate_gpe_init_errors.xml +++ b/src/import/chips/p9/procedures/xml/error_info/p9_pm_pstate_gpe_init_errors.xml @@ -22,8 +22,15 @@ - + @@ -42,11 +49,16 @@ Pstate GPE init timed out while waiting for PGPE Active in OCC SCRATCH2. + CHIP + PGPE_BASE_ADDRESS + PGPE_STATE_MODE PGPE_FFDC_REGISTERS CHIP TARGET_TYPE_PROC_CHIP + + p9_collect_ppe_state, CHIP, PGPE_STATE_MODE, PGPE_BASE_ADDRESS CHIP LOW @@ -78,11 +90,18 @@ Pstate GPE init detected a Debug Halt condition. This should only assert in a development debug environment. + CHIP + PGPE_BASE_ADDRESS + PGPE_STATE_MODE + PGPE_FFDC_REGISTERS CHIP TARGET_TYPE_PROC_CHIP + + p9_collect_ppe_state, CHIP, PGPE_STATE_MODE, PGPE_BASE_ADDRESS + CHIP LOW @@ -97,11 +116,18 @@ RC_PSTATE_GPE_RESET_TIMEOUT Pstate GPE init timed out while waiting for HALT status in XSR register. + CHIP + PGPE_BASE_ADDRESS + PGPE_STATE_MODE + PGPE_FFDC_REGISTERS CHIP TARGET_TYPE_PROC_CHIP + + p9_collect_ppe_state, CHIP, PGPE_STATE_MODE, PGPE_BASE_ADDRESS + CODE LOW @@ -114,10 +140,11 @@ RC_PSTATE_GPE_PBA_INIT_FAILED - Pstate GPE called to p9_pm_pba_init failed. + p9_pm_pba_init failed in PM_INIT mode. - TARGET MODE + CHIP + CODE LOW @@ -131,6 +158,7 @@ CHIP TARGET_TYPE_PROC_CHIP + diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_pm_stop_gpe_init_errors.xml b/src/import/chips/p9/procedures/xml/error_info/p9_pm_stop_gpe_init_errors.xml index 414996d1345..278e5b56a6e 100644 --- a/src/import/chips/p9/procedures/xml/error_info/p9_pm_stop_gpe_init_errors.xml +++ b/src/import/chips/p9/procedures/xml/error_info/p9_pm_stop_gpe_init_errors.xml @@ -22,6 +22,15 @@ + + @@ -29,6 +38,10 @@ Unknown mode passed to p9_pm_stop_gpe_init. BADMODE + + CODE + HIGH + @@ -60,22 +73,53 @@ RC_STOP_GPE_INIT_TIMEOUT Stop GPE init timed out while waiting for SGPE Active in OCCFLG register. + + CHIP + PPE_STATE_MODE + OCC_FLAG_REG_VAL + XSR_REG_VAL + + p9_collect_ppe_state, CHIP, PPE_STATE_MODE, PPE_BASE_ADDRESS_LIST + SGPE_FFDC_REGISTERS CHIP TARGET_TYPE_PROC_CHIP + + + CODE + HIGH + + + CHIP + LOW + RC_STOP_GPE_RESET_TIMEOUT Stop GPE init timedout while waiting for HALT status in XSR register. + CHIP + PPE_STATE_MODE + SGPE_FFDC_REGISTERS CHIP TARGET_TYPE_PROC_CHIP + + p9_collect_ppe_state, CHIP, PPE_STATE_MODE, PPE_BASE_ADDRESS_LIST + + + CODE + LOW + + + CHIP + HIGH + @@ -83,11 +127,20 @@ Stop GPE called to p9_pm_pfet_init failed. MODE + CHIP SGPE_FFDC_REGISTERS CHIP TARGET_TYPE_PROC_CHIP + + CODE + LOW + + + CHIP + HIGH + @@ -95,6 +148,7 @@ Stop GPE called to p9_pm_pba_init failed. MODE + CHIP PBA_FFDC_REGISTERS CHIP @@ -105,6 +159,14 @@ CHIP TARGET_TYPE_PROC_CHIP + + CODE + LOW + + + CHIP + HIGH +