summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwhs <whs@us.ibm.com>2016-04-28 07:25:54 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-19 09:12:18 -0400
commit1f28d29962ed0a5001caa30412388d586f2c74b3 (patch)
tree3d5df034f44a376594805899db8fccfdf0026c0f
parent163963f9c80111373daa1bdc23e26d299a0aa950 (diff)
downloadtalos-hostboot-1f28d29962ed0a5001caa30412388d586f2c74b3.tar.gz
talos-hostboot-1f28d29962ed0a5001caa30412388d586f2c74b3.zip
Changes related to packaging of memory vpd on Nimbus
Create a HWP to process MR and MT keyword to map to memory vpd keyword. Change specialization from MCS to MCA. Change-Id: I426e4c7600e2158737c82e3c2380518c392ada5b RTC: 144519 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/23775 Tested-by: Jenkins Server Reviewed-by: Brian R. Silver <bsilver@us.ibm.com> Tested-by: PPE CI Tested-by: Hostboot CI Reviewed-by: Daniel M. Crowell <dcrowell@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/23798 Tested-by: FSP CI Jenkins
-rw-r--r--src/import/chips/p9/procedures/xml/attribute_info/freq_attributes.xml14
-rw-r--r--src/import/hwpf/fapi2/include/fapi2_vpd_access.H24
-rw-r--r--src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml9
-rw-r--r--src/import/hwpf/fapi2/xml/attribute_info/system_attributes.xml13
4 files changed, 49 insertions, 11 deletions
diff --git a/src/import/chips/p9/procedures/xml/attribute_info/freq_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/freq_attributes.xml
index 6b4811b03..0494e5e6e 100644
--- a/src/import/chips/p9/procedures/xml/attribute_info/freq_attributes.xml
+++ b/src/import/chips/p9/procedures/xml/attribute_info/freq_attributes.xml
@@ -77,4 +77,18 @@
<platInit/>
</attribute>
<!-- ********************************************************************* -->
+ <attribute>
+ <id>ATTR_MEMVPD_POS</id>
+ <targetType>TARGET_TYPE_MCA</targetType>
+ <description>
+ The position of the MCA target's VPD selector data, relative to the EEPROM
+ that contains its data. For systems with a single EEPROM for all chips,
+ this should be equivalent to ATTR_FAPI_POS (the logical MCA position).
+ For systems with an EEPROM per chip, this value should be equivalent to
+ ATTR_CHIP_UNIT_POS.
+ </description>
+ <valueType>uint8</valueType>
+ <platInit/>
+ </attribute>
+ <!-- ********************************************************************* -->
</attributes>
diff --git a/src/import/hwpf/fapi2/include/fapi2_vpd_access.H b/src/import/hwpf/fapi2/include/fapi2_vpd_access.H
index b1d889b6a..daf8b006f 100644
--- a/src/import/hwpf/fapi2/include/fapi2_vpd_access.H
+++ b/src/import/hwpf/fapi2/include/fapi2_vpd_access.H
@@ -33,28 +33,32 @@
namespace fapi2
{
+/// constants for VPD Info
+constexpr uint64_t VPD_INFO_INVALID = 0xffffffffffffffff;
+
/// @brief Specialized class representing required VPDInfo to be used
-/// in collecting VPD for the MCS target type.
-/// @tparam T fapi2::TARGET_TYPE_MCS
+/// in collecting VPD for the MCA target type.
+/// @tparam T fapi2::TARGET_TYPE_MCA
template<>
-class VPDInfo<TARGET_TYPE_MCS>
+class VPDInfo<TARGET_TYPE_MCA>
{
public:
// @brief VPDInfo constructor
VPDInfo( const fapi2::MemVpdData& i_vpd_type)
: iv_vpd_type(i_vpd_type),
- iv_size(0), iv_freq(0), iv_rank_count_dimm_0(0),
- iv_rank_count_dimm_1(0), iv_dimm_drop_per_port(0)
+ iv_size(VPD_INFO_INVALID),
+ iv_freq_mhz(VPD_INFO_INVALID),
+ iv_rank_count_dimm_0(VPD_INFO_INVALID),
+ iv_rank_count_dimm_1(VPD_INFO_INVALID)
{};
// type of vpd field to return
fapi2::MemVpdData_t iv_vpd_type;
// size of the vpd data
size_t iv_size;
- uint64_t iv_freq;
+ uint64_t iv_freq_mhz;
uint64_t iv_rank_count_dimm_0;
uint64_t iv_rank_count_dimm_1;
- uint64_t iv_dimm_drop_per_port;
};
@@ -67,15 +71,15 @@ class VPDInfo<TARGET_TYPE_MCS>
/// @note passing nullptr for o_blob will return the size of the keyword
///
/// Example:
-/// fapi2::VPDInfo<fapi2::TARGET_TYPE_MCS> vpdInfo(MR_keyword);
-/// vpdInfo.iv_speed_bin = 2400_SPEED_BIN;
+/// fapi2::VPDInfo<fapi2::TARGET_TYPE_MCA> vpdInfo(MR_keyword);
+/// vpdInfo.iv_freq = 2667;
///
/// uint8_t * blob = NULL;
///
/// FAPI_TRY(getVPD( mcs, vpdInfo, blob ));
/// blob = static_cast<uint8_t *>(malloc(vpdInfo.iv_size));
/// FAPI_TRY(getVPD( mcs, vpdInfo, blob ));
-/// blob now contains the VPD data for the MCS.
+/// blob now contains the VPD data for the MCA.
///
template<TargetType T>
ReturnCode getVPD(const Target<T>& i_target,
diff --git a/src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml b/src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml
index adeadd9e0..88cd2e9c2 100644
--- a/src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml
+++ b/src/import/hwpf/fapi2/xml/attribute_info/hb_temp_defaults.xml
@@ -102,6 +102,15 @@
</attribute>
<attribute>
<id>ATTR_SDISN_SETUP</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>ATTR_MEMVPD_POS</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>ATTR_MEMVPD_FREQS_MHZ</id>
+ <default>0,0,0,0</default>
</attribute>
<attribute>
<id>ATTR_VPD_OVERRIDE_MT</id>
diff --git a/src/import/hwpf/fapi2/xml/attribute_info/system_attributes.xml b/src/import/hwpf/fapi2/xml/attribute_info/system_attributes.xml
index 3fa2ac231..4e3d9be64 100644
--- a/src/import/hwpf/fapi2/xml/attribute_info/system_attributes.xml
+++ b/src/import/hwpf/fapi2/xml/attribute_info/system_attributes.xml
@@ -7,7 +7,7 @@
<!-- -->
<!-- EKB Project -->
<!-- -->
-<!-- COPYRIGHT 2015 -->
+<!-- COPYRIGHT 2015,2016 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
@@ -40,4 +40,15 @@
<platInit/>
</attribute>
<!-- ********************************************************************* -->
+ <attribute>
+ <id>ATTR_MEMVPD_FREQS_MHZ</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ List of memory frequencies supported by the current system.
+ </description>
+ <valueType>uint32</valueType>
+ <array>4</array>
+ <platInit/>
+ </attribute>
+ <!-- ********************************************************************* -->
</attributes>
OpenPOWER on IntegriCloud