diff options
author | crgeddes <crgeddes@us.ibm.com> | 2017-01-13 20:42:01 -0600 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2017-01-14 10:14:22 -0500 |
commit | 29684ba50d2cfefea4e20ec954d1b64c3b247974 (patch) | |
tree | 237f1a08a92a4fc2a3f07d83fd2818cd75f0129f /src/include | |
parent | 200e13aff211133665601c5378ec6e09741a6262 (diff) | |
download | talos-hostboot-29684ba50d2cfefea4e20ec954d1b64c3b247974.tar.gz talos-hostboot-29684ba50d2cfefea4e20ec954d1b64c3b247974.zip |
Disable bad MCAs based on CRP0:Lx keyword data
The CRP0 record has 8 records (L1-L8) that correspond to the 8 ports
(MCA targets) for the chip. One of the fields inside the keyword indicates
if the port is disabled. This field marks the MCA as non-functional, but
the MCA remains present.
Change-Id: Iccc943ad477a90a25aeaff67572b66126c759913
RTC:166354
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34885
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/hwas/common/deconfigGard.H | 3 | ||||
-rw-r--r-- | src/include/usr/hwas/common/hwas.H | 11 | ||||
-rw-r--r-- | src/include/usr/hwas/common/hwasCommon.H | 33 | ||||
-rw-r--r-- | src/include/usr/hwas/hwasplatreasoncodes.H | 4 |
4 files changed, 47 insertions, 4 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H index 7efb854cd..0c133f427 100644 --- a/src/include/usr/hwas/common/deconfigGard.H +++ b/src/include/usr/hwas/common/deconfigGard.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -163,6 +163,7 @@ public: DECONFIGURED_BY_PEC_DECONFIG, // BASE | 0x13 DECONFIGURED_BY_NO_CHILD_MCS, // BASE | 0x14 DECONFIGURED_BY_NO_PARENT_MCBIST, // BASE | 0x15 + DECONFIGURED_BY_DISABLED_PORT, // BASE | 0x16 // mask - these bits mean it's a PLID and not an enum DECONFIGURED_BY_PLID_MASK = 0xFFFF0000, diff --git a/src/include/usr/hwas/common/hwas.H b/src/include/usr/hwas/common/hwas.H index 891af5e3d..138a51887 100644 --- a/src/include/usr/hwas/common/hwas.H +++ b/src/include/usr/hwas/common/hwas.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -201,6 +201,15 @@ void setChipletGardsOnProc(TARGETING::Target * i_procTarget); */ void calculateEffectiveEC(); + +/** + * @brief Mark any MCA units that are present but have a disabled port as + * non-functional + * + * @return error log handle + */ +errlHndl_t markDisabledMcas(); + }; // end namespace #endif diff --git a/src/include/usr/hwas/common/hwasCommon.H b/src/include/usr/hwas/common/hwasCommon.H index b3fc5e17b..1aa4f12b1 100644 --- a/src/include/usr/hwas/common/hwasCommon.H +++ b/src/include/usr/hwas/common/hwasCommon.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -263,6 +263,37 @@ errlHndl_t platReadPR(const TARGETING::TargetHandle_t &i_target, // constants the platReadPR will use for looking at the VPD data const uint32_t VPD_VINI_PR_DATA_LENGTH = 8; //@deprecrated + +/** + * @brief platform specific code to determine the Lx vector of the input + * target. The platform specific code is responsible for returning the + * vector. The caller is responsible for allocating and de-allocating the + * space. + * + * @param[in] i_proc processor target to read the Lx keyword from + * @param[in] i_mca MCA target indicating which Lx keyword to read + * @param[out] o_lxData pointer to area that will hold the Lx keyword + * read from VPD; must be malloc'ed by the caller, + * and must be VPD_CRP0_LX_DATA_LENGTH in size. + * + * @return errlHndl_t valid errlHndl_t handle if there was an error + * NULL if no errors; + */ +errlHndl_t platReadLx(const TARGETING::TargetHandle_t &i_proc, + const TARGETING::TargetHandle_t &i_mca, + void *o_lxData); + +// constants the platReadLx will use for looking at the VPD data +const uint32_t VPD_CRP0_LX_HDR_LENGTH = 1; +const uint32_t VPD_CRP0_LX_DATA_LENGTH = 256; + +const uint32_t VPD_CRP0_LX_FREQ_INDEP_INDEX = 8; +const uint32_t VPD_CRP0_LX_PORT_DISABLED = 0; + +const uint8_t VPD_CRP0_LX_MIN_X = 1; +const uint8_t VPD_CRP0_LX_MAX_X = 8; + + /** * @brief platform specific code to read the Field Core Override * diff --git a/src/include/usr/hwas/hwasplatreasoncodes.H b/src/include/usr/hwas/hwasplatreasoncodes.H index 3ffcb9abb..9e6ea9611 100644 --- a/src/include/usr/hwas/hwasplatreasoncodes.H +++ b/src/include/usr/hwas/hwasplatreasoncodes.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2016 */ +/* Contributors Listed Below - COPYRIGHT 2014,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -37,6 +37,7 @@ namespace HWAS MOD_HOST_DISCOVER_TARGETS = 0x80, MOD_PLAT_DECONFIG_GARD = 0x81, MOD_PLAT_READIDEC = 0x82, + MOD_PLAT_READLX = 0x83, }; enum HwasPlatReasonCode @@ -47,6 +48,7 @@ namespace HWAS RC_TARGET_NOT_GARDABLE = HWAS_COMP_ID | 0x81, RC_GARD_REPOSITORY_FULL = HWAS_COMP_ID | 0x82, RC_BAD_CHIPID = HWAS_COMP_ID | 0x83, + RC_BAD_LX = HWAS_COMP_ID | 0x84, }; }; |