diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2016-11-17 15:57:19 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-12-20 11:58:40 -0500 |
commit | 17003aae2a9797e990fb2a6869d77967db9c1633 (patch) | |
tree | 5e5efdbf8b62e2536bd5748e3d33dcbb90347e61 /src/import/chips/p9/procedures/hwp/accessors | |
parent | cec9b06e89d027d084bac7876604efbcb7d297eb (diff) | |
download | talos-hostboot-17003aae2a9797e990fb2a6869d77967db9c1633.tar.gz talos-hostboot-17003aae2a9797e990fb2a6869d77967db9c1633.zip |
Improve detection and description for MEMVPD_POS issues
Updated attribute description based on changes to requirements
Added explicit check for invalid data to improve debug
Change-Id: Ie22287166855be1e0d99a52cc4a3ad89d354acfa
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32793
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Brian R. Silver <bsilver@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33833
Reviewed-by: Hostboot Team <hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/accessors')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/accessors/p9_get_mem_vpd_keyword.C | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/accessors/p9_get_mem_vpd_keyword.C b/src/import/chips/p9/procedures/hwp/accessors/p9_get_mem_vpd_keyword.C index 4b392e682..8a7e7f6ce 100644 --- a/src/import/chips/p9/procedures/hwp/accessors/p9_get_mem_vpd_keyword.C +++ b/src/import/chips/p9/procedures/hwp/accessors/p9_get_mem_vpd_keyword.C @@ -117,6 +117,9 @@ struct mappingDqRow_t // DQ map entries following header const size_t DQ_MAP_SIZE = 36; const size_t DQ_BLOB_SIZE = 160; +// VPD format only supports up to 16 unique MCS entries +constexpr fapi2::ATTR_MEMVPD_POS_Type MAX_MEMVPD_POS = 16; + extern "C" { @@ -240,6 +243,15 @@ extern "C" i_target, l_mcsPos), "p9_get_mem_vpd_keyword: get ATTR_MEMVPD_POS failed"); + // verify we have a valid MEMVPD_POS + FAPI_ASSERT(l_mcsPos < MAX_MEMVPD_POS, + fapi2::GET_MEM_VPD_POS_OUT_OF_RANGE(). + set_MCS_POS(l_mcsPos). + set_MAX_MEMVPD_POS(MAX_MEMVPD_POS). + set_TARGET(i_target). + set_VPDTYPE(i_vpd_info.iv_vpd_type), + "ATTR_MEMVPD_POS out of range (=%d)", + l_mcsPos); l_mcsMask = (MAPPING_LAYOUT_MCS_0 >> l_mcsPos); //zero based FAPI_DBG ("p9_get_mem_vpd_keyword: mca position = %d mask=0x%04x", l_mcsPos, l_mcsMask); |