summaryrefslogtreecommitdiffstats
path: root/src/import/chips
diff options
context:
space:
mode:
authorJacob Harvey <jlharvey@us.ibm.com>2017-01-13 10:27:20 -0600
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-01-25 18:46:48 -0500
commit88d44d222b5dffc2a0c5dc88a9805639b40550cc (patch)
tree389c6c4dc6b673eca1de8a6b9664840f08c65058 /src/import/chips
parent38aa7b996846d5b403fa96e27799bfab1abf13a8 (diff)
downloadtalos-hostboot-88d44d222b5dffc2a0c5dc88a9805639b40550cc.tar.gz
talos-hostboot-88d44d222b5dffc2a0c5dc88a9805639b40550cc.zip
L3 work for volt and freq_systems
Change-Id: If35a855130a5f6d06f8e1a480623a26f9cec2e14 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34838 Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Brian R. Silver <bsilver@us.ibm.com> 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: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35059 Reviewed-by: Hostboot Team <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>
Diffstat (limited to 'src/import/chips')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C64
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.H6
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H4
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C10
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.H4
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C21
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.H4
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config.xml121
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml155
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_freq.xml37
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_volt.xml4
11 files changed, 255 insertions, 175 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C b/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C
index eb1cb3661..7ef64d723 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -30,7 +30,7 @@
// *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com>
// *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: HB:FSP
#include <vector>
@@ -169,8 +169,10 @@ bool deconfigure(const fapi2::Target<TARGET_TYPE_MCBIST>& i_target,
.set_MSS_FREQ(i_dimm_speed)
.set_NEST_FREQ(i_nest_freq)
.set_MCS_TARGET(l_mcs),
- "Deconfiguring %s",
- mss::c_str(l_mcs) );
+ "Deconfiguring %s due to unequal frequencies: mss: %d, nest: %d",
+ mss::c_str(l_mcs),
+ i_dimm_speed,
+ i_nest_freq );
}// end for
}// end if
@@ -280,8 +282,11 @@ fapi2::ReturnCode select_sync_mode(const std::map< fapi2::Target<TARGET_TYPE_MCB
break;
default:
+ // Switches on an enum class
+ // The only valid speed_equality values are NOT_EQUAL and EQUAL.
+ // If it's something else ,I think it's a code error and really shouldn't be possible, thus fapi2::Assert below
FAPI_ERR("Invalid speed_equality parameter!");
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
+ fapi2::Assert(false);
break;
}// end switch
@@ -362,7 +367,7 @@ fapi2::ReturnCode supported_freqs_helper(const fapi2::Target<TARGET_TYPE_MCS>& i
io_freqs.clear();
// This magic number isn't the number of frequencies supported by the hardware, it's the number
- // of frequencies in the attribute or VPD. They may be different (see *1 below)
+ // of frequencies in the attribute or VPD. They may be different
if (i_freqs.size() != NUM_VPD_FREQS)
{
FAPI_ERR("incorrect number of frequencies for %s (%d)", mss::c_str(i_target), i_freqs.size());
@@ -372,7 +377,7 @@ fapi2::ReturnCode supported_freqs_helper(const fapi2::Target<TARGET_TYPE_MCS>& i
FAPI_INF("unsorted supported freqs %d %d %d %d",
i_freqs[0], i_freqs[1], i_freqs[2], i_freqs[3]);
- // (*1) This is the number of elelments in the max_allowed_dimm_freq attribute, not the frequencies of
+ // This is the number of elements in the max_allowed_dimm_freq attribute, not the frequencies of
// the system. Hence the magic number.
if (i_max_freqs.size() != NUM_MAX_FREQS)
{
@@ -389,12 +394,13 @@ fapi2::ReturnCode supported_freqs_helper(const fapi2::Target<TARGET_TYPE_MCS>& i
const auto l_dimms = mss::find_targets<TARGET_TYPE_DIMM>(p);
uint64_t l_dimms_on_port = l_dimms.size();
- // Just a quick check but we're in deep yogurt if this triggers
- if (l_dimms_on_port > MAX_DIMM_PER_PORT)
- {
- FAPI_ERR("seeing %d DIMM on port %s", l_dimms_on_port, mss::c_str(p));
- fapi2::Assert(false);
- }
+ FAPI_ASSERT( (l_dimms_on_port <= MAX_DIMM_PER_PORT),
+ fapi2::MSS_TOO_MANY_DIMMS_ON_PORT()
+ .set_DIMM_COUNT(l_dimms_on_port)
+ .set_MCA_TARGET(p),
+ "Seeing %d DIMM on port %s",
+ l_dimms_on_port,
+ mss::c_str(p));
for (const auto& d : l_dimms)
{
@@ -404,11 +410,13 @@ fapi2::ReturnCode supported_freqs_helper(const fapi2::Target<TARGET_TYPE_MCS>& i
FAPI_TRY( mss::eff_num_master_ranks_per_dimm(d, l_num_master_ranks) );
// Just a quick check but we're in deep yogurt if this triggers
- if (l_num_master_ranks > MAX_PRIMARY_RANKS_PER_PORT)
- {
- FAPI_ERR("seeing %d primary ranks on DIMM %s", l_num_master_ranks, mss::c_str(d));
- fapi2::Assert(false);
- }
+ FAPI_ASSERT( (l_num_master_ranks <= MAX_RANK_PER_DIMM),
+ fapi2::MSS_TOO_MANY_PRIMARY_RANKS_ON_DIMM()
+ .set_RANK_COUNT(l_num_master_ranks)
+ .set_DIMM_TARGET(p),
+ "seeing %d primary ranks on DIMM %s",
+ l_dimms_on_port,
+ mss::c_str(d));
FAPI_INF("%s rank config %d drop %d yields max freq attribute index of %d (%d)",
mss::c_str(d), l_num_master_ranks, l_dimms_on_port,
@@ -417,13 +425,15 @@ fapi2::ReturnCode supported_freqs_helper(const fapi2::Target<TARGET_TYPE_MCS>& i
l_index = l_indexes[l_dimms_on_port - 1][l_num_master_ranks - 1];
- // Just a quick check but we're in deep yogurt if this triggers
- if (l_index > NUM_MAX_FREQS)
- {
- FAPI_ERR("seeing %d index for %d DIMM and %d ranks on DIMM %s",
- l_index, l_dimms_on_port, l_num_master_ranks, mss::c_str(d));
- fapi2::Assert(false);
- }
+ FAPI_ASSERT( (l_index < NUM_MAX_FREQS),
+ fapi2::MSS_FREQ_INDEX_TOO_LARGE()
+ .set_INDEX(l_index)
+ .set_NUM_MAX_FREQS(NUM_MAX_FREQS),
+ "seeing %d index for %d DIMM and %d ranks on DIMM %s",
+ l_index,
+ l_dimms_on_port,
+ l_num_master_ranks,
+ mss::c_str(d));
l_our_max_freq = std::min(l_our_max_freq, i_max_freqs[l_index]);
}
@@ -460,7 +470,7 @@ fapi2::ReturnCode supported_freqs_helper(const fapi2::Target<TARGET_TYPE_MCS>& i
// Sort it so we know supported min is io_freq.begin and supported max is io_freq.end - 1
std::sort(io_freqs.begin(), io_freqs.end());
- // If we have an empty set, we have a pro'lem
+ // If we have an empty set, we have a problem
FAPI_ASSERT(io_freqs.size() != 0,
fapi2::MSS_VPD_FREQ_MAX_FREQ_EMPTY_SET()
.set_MSS_VPD_FREQ_0(i_freqs[0])
@@ -487,7 +497,7 @@ fapi_try_exit:
/// @param[in] reference to a std::vector<uint32_t> of freqs
/// @return bool, true iff input freq is supported
///
-fapi2::ReturnCode is_freq_supported(const uint32_t i_freq, const std::vector<uint32_t>& i_freqs)
+bool is_freq_supported(const uint32_t i_freq, const std::vector<uint32_t>& i_freqs)
{
return std::binary_search(i_freqs.begin(), i_freqs.end(), i_freq);
}
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.H b/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.H
index beae6c17a..15f926c1b 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/freq/sync.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -29,7 +29,7 @@
// *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com>
// *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: HB:FSP
#ifndef _MSS_SYNC_H_
@@ -124,7 +124,7 @@ fapi2::ReturnCode supported_freqs(const fapi2::Target<fapi2::TARGET_TYPE_MCS>& i
/// @param[in] reference to a std::vector<uint32_t> of freqs
/// @return bool, true iff input freq is supported
///
-fapi2::ReturnCode is_freq_supported(const uint32_t i_freq, const std::vector<uint32_t>& i_freqs);
+bool is_freq_supported(const uint32_t i_freq, const std::vector<uint32_t>& i_freqs);
}// mss
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
index 62651ccf5..35e145c54 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -30,7 +30,7 @@
// *HWP HWP Owner: Brian Silver <bsilver@us.ibm.com>
// *HWP HWP Backup: Jacob Harvey <jlharvey@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: HB:FSP
#ifndef _MSS_COUNT_DIMM_H_
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C
index 713dff705..9342a9d1c 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -30,7 +30,7 @@
// *HWP HWP Owner: Andre A. Marin <aamarin@us.ibm.com>
// *HWP FW Owner: Brian Silver <bsilver@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: FSP:HB
#include <vector>
#include <map>
@@ -64,12 +64,12 @@ extern "C"
// attributes for the PHY, etc. If there is even one DIMM on any of this list of MCBIST,
// we do the right thing.
uint64_t l_dimm_count = 0;
- std::for_each( i_targets.begin(), i_targets.end(),
+ std::for_each( i_targets.begin(),
+ i_targets.end(),
[&l_dimm_count](const fapi2::Target<TARGET_TYPE_MCBIST>& i_target)
{
l_dimm_count += mss::count_dimm(i_target);
- }
- );
+ } );
if (l_dimm_count == 0)
{
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.H b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.H
index 2ffa262c9..da847e7ff 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.H
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -30,7 +30,7 @@
// *HWP HWP Owner: Andre A. Marin <aamarin@us.ibm.com>
// *HWP FW Owner: Brian Silver <bsilver@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: FSP:HB
#ifndef FREQ_SYSTEM_H_
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C b/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C
index 4673896ef..fcaa3f305 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -31,7 +31,7 @@
// *HWP HWP Backup: Andre A. Marin <aamarin@us.ibm.com>
// *HWP FW Owner: Brian Silver <bsilver@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: FSP:HB
#include <p9_mss_volt.H>
@@ -61,12 +61,11 @@ using fapi2::FAPI2_RC_SUCCESS;
extern "C"
{
-
-///
-/// @brief Calculate and save off rail voltages
-/// @param[in] i_targets vector of controllers (e.g., MCS)
-/// @return FAPI2_RC_SUCCESS iff ok
-///
+ ///
+ /// @brief Calculate and save off rail voltages
+ /// @param[in] i_targets vector of controllers (e.g., MCS)
+ /// @return FAPI2_RC_SUCCESS iff ok
+ ///
fapi2::ReturnCode p9_mss_volt( const std::vector< fapi2::Target<TARGET_TYPE_MCS> >& i_targets )
{
// Loop through MCS
@@ -82,7 +81,7 @@ extern "C"
// Get dimms for each MCS
for ( const auto& l_dimm : mss::find_targets<TARGET_TYPE_DIMM> (l_mcs))
{
- const auto& l_dimm_pos = mss::pos(l_dimm);
+ const auto l_dimm_pos = mss::pos(l_dimm);
// Find decoder factory for this dimm position
auto l_it = l_factory_caches.find(l_dimm_pos);
@@ -117,8 +116,8 @@ extern "C"
// Set the attributes for this MCS, values are in mss_const.H
// TK : will need to change attribute target according to voltage rails in the future
FAPI_TRY (mss::set_voltage_attributes (l_mcs,
- uint64_t(mss::DDR4_NOMINAL_VOLTAGE),
- uint64_t(mss::DDR4_VPP_VOLTAGE)),
+ mss::DDR4_NOMINAL_VOLTAGE,
+ mss::DDR4_VPP_VOLTAGE),
"Failed to set volt attributes");
} // mcs
diff --git a/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.H b/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.H
index 15a75a1a6..dd3257d22 100644
--- a/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.H
+++ b/src/import/chips/p9/procedures/hwp/memory/p9_mss_volt.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -31,7 +31,7 @@
// *HWP HWP Backup: Andre A. Marin <aamarin@us.ibm.com>
// *HWP FW Owner: Brian Silver <bsilver@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: FSP:HB
#ifndef MSS_VOLT_H_
diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config.xml b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config.xml
index 51d7a8e8c..fe18b55a2 100644
--- a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config.xml
+++ b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config.xml
@@ -24,13 +24,13 @@
<!-- IBM_PROLOG_END_TAG -->
<!-- -->
-<!-- @file memory_mss_timing.xml -->
+<!-- @file memory_mss_eff_config.xml -->
<!-- @brief Error xml for timing.H -->
<!-- -->
<!-- *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com> -->
<!-- *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com> -->
<!-- *HWP Team: Memory -->
-<!-- *HWP Level: 1 -->
+<!-- *HWP Level: 2 -->
<!-- *HWP Consumed by: HB:FSP -->
<!-- -->
@@ -131,115 +131,6 @@
</hwpError>
<hwpError>
- <rc>RC_MSS_NO_POWER_THERMAL_ATTR_FOUND</rc>
- <description>
- There was no match or value found in decoding the power thermal attributes
- </description>
- <ffdc>GENERATED_KEY</ffdc>
- <callout>
- <target>DIMM_TARGET</target>
- <priority>HIGH</priority>
- </callout>
- <deconfigure>
- <target>DIMM_TARGET</target>
- </deconfigure>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_NO_DATABUS_UTILIZATION</rc>
- <description>
- There are 2 DIMMS on the port but both have 0 databus utilization
- </description>
- <ffdc>PORT_DATABUS_UTIL</ffdc>
- <callout>
- <target>MCA_TARGET</target>
- <priority>HIGH</priority>
- </callout>
- <deconfigure>
- <target>MCA_TARGET</target>
- </deconfigure>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_CALC_POWER_CURVE_DIVIDE_BY_ZERO</rc>
- <description>
- Denominator equals 0
- </description>
- <ffdc>PORT_DATABUS_UTIL</ffdc>
- <ffdc>UTIL_CONVERSION</ffdc>
- <ffdc>IDLE_UTIL</ffdc>
- <callout>
- <target>MCA_TARGET</target>
- <priority>HIGH</priority>
- </callout>
- <deconfigure>
- <target>MCA_TARGET</target>
- </deconfigure>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_CALC_PORT_POWER_EXCEEDS_MAX</rc>
- <description>
- The calculated port power from equalizing throttles exceeds the maximum allowed power
- </description>
- <ffdc>CALCULATED_PORT_POWER</ffdc>
- <ffdc>MAX_POWER_ALLOWED</ffdc>
- <ffdc>PORT_POS</ffdc>
- <callout>
- <procedure>CODE</procedure>
- <priority>HIGH</priority>
- </callout>
- <callout>
- <childTargets>
- <parent>MCA_TARGET</parent>
- <childType>TARGET_TYPE_DIMM</childType>
- <childNumber>EX_NUMBER_IN_ERROR</childNumber>
- </childTargets>
- <priority>MEDIUM</priority>
- </callout>
- <deconfigure>
- <childTargets>
- <parent>MCA_TARGET</parent>
- <childType>TARGET_TYPE_DIMM</childType>
- <childNumber>EX_NUMBER_IN_ERROR</childNumber>
- </childTargets>
- </deconfigure>
- </hwpError>
- <hwpError>
- <rc>RC_MSS_SLOT_UTIL_EXCEEDS_PORT</rc>
- <description>
- The memory throttle per slot (DIMM) exceeds the allowed throttle for the port
- </description>
- <ffdc>SLOT_UTIL</ffdc>
- <ffdc>PORT_UTIL</ffdc>
- <callout>
- <procedure>CODE</procedure>
- <priority>HIGH</priority>
- </callout>
- <deconfigure>
- <target>MCA_TARGET</target>
- </deconfigure>
- </hwpError>
-
- <hwpError>
- <rc>RC_MSS_SPLIT_UTIL_CALC_ERROR</rc>
- <description>
- Error when splitting up the memory port's utilization
- </description>
- <ffdc>MAX_TOTAL_UTIL</ffdc>
- <ffdc>DIMM_COUNT</ffdc>
- <ffdc>SLOT_UTIL</ffdc>
- <ffdc>PORT_UTIL</ffdc>
- <callout>
- <procedure>CODE</procedure>
- <priority>HIGH</priority>
- </callout>
- <deconfigure>
- <target>MCA_TARGET</target>
- </deconfigure>
- </hwpError>
-
- <hwpError>
<rc>RC_MSS_INVALID_LRDIMM_DB</rc>
<description>
Error with the LRDIMM databuffer type
@@ -300,7 +191,7 @@
<deconfigure>
<target>DIMM_TARGET</target>
</deconfigure>
- </hwpError>
+ </hwpError>
<hwpError>
<rc>RC_MSS_ERROR_CREATING_EFF_CONFIG_DIMM_OBJECT</rc>
@@ -318,10 +209,4 @@
<target>DIMM_TARGET</target>
</deconfigure>
</hwpError>
-
-
-
-
-
-
</hwpErrors>
diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml
new file mode 100644
index 000000000..c8dec633a
--- /dev/null
+++ b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml
@@ -0,0 +1,155 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_eff_config_thermal.xml $ -->
+<!-- -->
+<!-- OpenPOWER HostBoot Project -->
+<!-- -->
+<!-- Contributors Listed Below - COPYRIGHT 2015,2017 -->
+<!-- [+] International Business Machines Corp. -->
+<!-- -->
+<!-- -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License"); -->
+<!-- you may not use this file except in compliance with the License. -->
+<!-- You may obtain a copy of the License at -->
+<!-- -->
+<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
+<!-- -->
+<!-- Unless required by applicable law or agreed to in writing, software -->
+<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
+<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -->
+<!-- implied. See the License for the specific language governing -->
+<!-- permissions and limitations under the License. -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+
+<!-- -->
+<!-- @file memory_mss_timing.xml -->
+<!-- @brief Error xml for timing.H -->
+<!-- -->
+<!-- *HWP HWP Owner: Jacob Harvey <jlharvey@us.ibm.com> -->
+<!-- *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com> -->
+<!-- *HWP Team: Memory -->
+<!-- *HWP Level: 2 -->
+<!-- *HWP Consumed by: HB:FSP -->
+<!-- -->
+
+<hwpErrors>
+
+ <hwpError>
+ <rc>RC_MSS_NO_POWER_THERMAL_ATTR_FOUND</rc>
+ <description>
+ There was no match or value found in decoding the power thermal attributes
+ </description>
+ <ffdc>GENERATED_KEY</ffdc>
+ <callout>
+ <target>DIMM_TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>DIMM_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_NO_DATABUS_UTILIZATION</rc>
+ <description>
+ There are 2 DIMMS on the port but both have 0 databus utilization
+ </description>
+ <ffdc>PORT_DATABUS_UTIL</ffdc>
+ <callout>
+ <target>MCA_TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>MCA_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_CALC_POWER_CURVE_DIVIDE_BY_ZERO</rc>
+ <description>
+ Denominator equals 0
+ </description>
+ <ffdc>PORT_DATABUS_UTIL</ffdc>
+ <ffdc>UTIL_CONVERSION</ffdc>
+ <ffdc>IDLE_UTIL</ffdc>
+ <callout>
+ <target>MCA_TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>MCA_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_CALC_PORT_POWER_EXCEEDS_MAX</rc>
+ <description>
+ The calculated port power from equalizing throttles exceeds the maximum allowed power
+ </description>
+ <ffdc>CALCULATED_PORT_POWER</ffdc>
+ <ffdc>MAX_POWER_ALLOWED</ffdc>
+ <ffdc>PORT_POS</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <childTargets>
+ <parent>MCA_TARGET</parent>
+ <childType>TARGET_TYPE_DIMM</childType>
+ <childNumber>EX_NUMBER_IN_ERROR</childNumber>
+ </childTargets>
+ <priority>MEDIUM</priority>
+ </callout>
+ <deconfigure>
+ <childTargets>
+ <parent>MCA_TARGET</parent>
+ <childType>TARGET_TYPE_DIMM</childType>
+ <childNumber>EX_NUMBER_IN_ERROR</childNumber>
+ </childTargets>
+ </deconfigure>
+</hwpError>
+
+<hwpError>
+ <rc>RC_MSS_SLOT_UTIL_EXCEEDS_PORT</rc>
+ <description>
+ The memory throttle per slot (DIMM) exceeds the allowed throttle for the port
+ </description>
+ <ffdc>SLOT_UTIL</ffdc>
+ <ffdc>PORT_UTIL</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>MCA_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_SPLIT_UTIL_CALC_ERROR</rc>
+ <description>
+ Error when splitting up the memory port's utilization
+ </description>
+ <ffdc>MAX_TOTAL_UTIL</ffdc>
+ <ffdc>DIMM_COUNT</ffdc>
+ <ffdc>SLOT_UTIL</ffdc>
+ <ffdc>PORT_UTIL</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>MCA_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_MAX_DIMMS_ON_VMEM_REGULATOR_NOT_SET</rc>
+ <description>
+ MRW attribute mrw_max_number_dimms_possible_per_vmem_regulator equals 0
+ </description>
+ </hwpError>
+</hwpErrors>
diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_freq.xml b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_freq.xml
index 7fd0c2d47..967fb11d1 100644
--- a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_freq.xml
+++ b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_freq.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- OpenPOWER HostBoot Project -->
<!-- -->
-<!-- Contributors Listed Below - COPYRIGHT 2015,2016 -->
+<!-- Contributors Listed Below - COPYRIGHT 2015,2017 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
@@ -30,7 +30,7 @@
<!-- *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com> -->
<!-- *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com> -->
<!-- *HWP Team: Memory -->
-<!-- *HWP Level: 1 -->
+<!-- *HWP Level: 3 -->
<!-- *HWP Consumed by: HB:FSP -->
<!-- -->
@@ -115,7 +115,6 @@
<ffdc>NEST_FREQ</ffdc>
</hwpError>
- <!-- TK - Should this be FFDC or just return FAPI2_RC_FALSE? - AAM -->
<hwpError>
<rc>RC_MSS_UNSUPPORTED_FREQ_CALCULATED</rc>
<description>The frequency calculated with spd data is not supported by the jedec standards.</description>
@@ -163,4 +162,36 @@
</deconfigure>
</hwpError>
+ <hwpError>
+ <rc>RC_MSS_TOO_MANY_DIMMS_ON_PORT</rc>
+ <description>There seem to be too many dimms on the port</description>
+ <ffdc>DIMM_COUNT</ffdc>
+ <callout>
+ <target>MCA_TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>MCA_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_TOO_MANY_PRIMARY_RANKS_ON_DIMM</rc>
+ <description>There seem to be too many primary ranks seen on the dimm</description>
+ <ffdc>RANK_COUNT</ffdc>
+ <callout>
+ <target>DIMM_TARGET</target>
+ <priority>HIGH</priority>
+ </callout>
+ <deconfigure>
+ <target>DIMM_TARGET</target>
+ </deconfigure>
+ </hwpError>
+
+ <hwpError>
+ <rc>RC_MSS_FREQ_INDEX_TOO_LARGE</rc>
+ <description>Error calculating the index into max_freq array</description>
+ <ffdc>INDEX</ffdc>
+ <ffdc>NUM_MAX_FREQS</ffdc>
+ </hwpError>
</hwpErrors>
diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_volt.xml b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_volt.xml
index 333faa46e..d7ab24885 100644
--- a/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_volt.xml
+++ b/src/import/chips/p9/procedures/xml/error_info/p9_memory_mss_volt.xml
@@ -5,7 +5,7 @@
<!-- -->
<!-- OpenPOWER HostBoot Project -->
<!-- -->
-<!-- Contributors Listed Below - COPYRIGHT 2015,2016 -->
+<!-- Contributors Listed Below - COPYRIGHT 2015,2017 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
@@ -30,7 +30,7 @@
<!-- *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com> -->
<!-- *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com> -->
<!-- *HWP Team: Memory -->
-<!-- *HWP Level: 1 -->
+<!-- *HWP Level: 2 -->
<!-- *HWP Consumed by: HB:FSP -->
<!-- -->
OpenPOWER on IntegriCloud