summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory/lib/eff_config
diff options
context:
space:
mode:
authorBrian Silver <bsilver@us.ibm.com>2016-09-03 21:19:03 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2016-09-12 13:50:55 -0400
commit0f29aac88c66f0e5c36756b8fdafe2bf2fbd3dd1 (patch)
tree70d476c4074efa3ffcf323cc975d4738197338dc /src/import/chips/p9/procedures/hwp/memory/lib/eff_config
parent5a162834cb4e2fce195c169ece26eef87577f17f (diff)
downloadtalos-hostboot-0f29aac88c66f0e5c36756b8fdafe2bf2fbd3dd1.tar.gz
talos-hostboot-0f29aac88c66f0e5c36756b8fdafe2bf2fbd3dd1.zip
Add VPD decode and attributes for DQ and CKE maps
Fix include path in raw_card.C Change-Id: I1d02ed92d11667e639e832be72a86cdec5035a90 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29222 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+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: ANDRE A. MARIN <aamarin@us.ibm.com> Reviewed-by: Matt K. Light <mklight@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29224 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/eff_config')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/eff_config/eff_config.C36
1 files changed, 35 insertions, 1 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/eff_config.C b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/eff_config.C
index aeab68657..6a5c4a1b0 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/eff_config.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/eff_config/eff_config.C
@@ -3491,6 +3491,8 @@ fapi_try_exit:
fapi2::ReturnCode eff_config::decode_vpd(const fapi2::Target<TARGET_TYPE_MCS>& i_target)
{
uint8_t l_mr_blob[mss::VPD_KEYWORD_MAX] = {0};
+ uint8_t l_cke_blob[mss::VPD_KEYWORD_MAX] = {0};
+ uint8_t l_dq_blob[mss::VPD_KEYWORD_MAX] = {0};
std::vector<uint8_t*> l_mt_blobs(PORTS_PER_MCS, nullptr);
// For sanity. Not sure this will break us, but we're certainly making assumptions below.
@@ -3580,7 +3582,39 @@ fapi2::ReturnCode eff_config::decode_vpd(const fapi2::Target<TARGET_TYPE_MCS>& i
}
}
- FAPI_TRY( mss::eff_decode(i_target, l_mt_blobs, l_mr_blob) );
+ // Get CKE data
+ {
+ fapi2::VPDInfo<fapi2::TARGET_TYPE_MCS> l_vpd_info(fapi2::MemVpdData::CK);
+
+ // Check the max for giggles. Programming bug so we should assert.
+ FAPI_TRY( mss::getVPD(i_target, l_vpd_info, nullptr) );
+
+ if (l_vpd_info.iv_size > mss::VPD_KEYWORD_MAX)
+ {
+ FAPI_ERR("VPD MR keyword is too big for our array");
+ fapi2::Assert(false);
+ }
+
+ FAPI_TRY( mss::getVPD(i_target, l_vpd_info, &(l_cke_blob[0])) );
+ }
+
+ // Get DQ data
+ {
+ fapi2::VPDInfo<fapi2::TARGET_TYPE_MCS> l_vpd_info(fapi2::MemVpdData::DQ);
+
+ // Check the max for giggles. Programming bug so we should assert.
+ FAPI_TRY( mss::getVPD(i_target, l_vpd_info, nullptr) );
+
+ if (l_vpd_info.iv_size > mss::VPD_KEYWORD_MAX)
+ {
+ FAPI_ERR("VPD MR keyword is too big for our array");
+ fapi2::Assert(false);
+ }
+
+ FAPI_TRY( mss::getVPD(i_target, l_vpd_info, &(l_dq_blob[0])) );
+ }
+
+ FAPI_TRY( mss::eff_decode(i_target, l_mt_blobs, l_mr_blob, l_cke_blob, l_dq_blob) );
fapi_try_exit:
OpenPOWER on IntegriCloud