summaryrefslogtreecommitdiffstats
path: root/src/import/chips
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2016-10-18 15:02:44 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-10-24 16:34:07 -0400
commit0fdeb11ca84ce14a1069a2bbd0a186a11e6b2dcd (patch)
tree207db036c135d4f802b3bd1f563aaf8b1b20662d /src/import/chips
parentb0bebe12a162430afab285c18df9265831798f69 (diff)
downloadtalos-hostboot-0fdeb11ca84ce14a1069a2bbd0a186a11e6b2dcd.tar.gz
talos-hostboot-0fdeb11ca84ce14a1069a2bbd0a186a11e6b2dcd.zip
Improve error data for frequency mismatch from #V
Add missing PB Frequency value Add callout for target EQ Add specific LRP record being read Add PB freq value for all buckets Change-Id: I1443e9d85070788a8397c3ae704d3354f995b3ce Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31470 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31478 Reviewed-by: Hostboot Team <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')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_get_poundv_bucket_attr.C27
-rw-r--r--src/import/chips/p9/procedures/xml/error_info/p9_pm_get_poundv_bucket_errors.xml18
2 files changed, 38 insertions, 7 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_get_poundv_bucket_attr.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_get_poundv_bucket_attr.C
index 57bb161bd..d370f8e51 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_get_poundv_bucket_attr.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_get_poundv_bucket_attr.C
@@ -57,7 +57,6 @@ fapi2::ReturnCode p9_pm_get_poundv_bucket_attr(
fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_procParent =
i_target.getParent<fapi2::TARGET_TYPE_PROC_CHIP>();
-
//Need to determine which LRP record to read from depending on which
//bucket we are getting the power management data from. FapiPos will
//tell us which LRP record to use.
@@ -169,6 +168,9 @@ fapi2::ReturnCode p9_pm_get_poundv_bucket_attr(
// Set the size of the bucket
l_bucketSize = VERSION_3_BUCKET_SIZE;
+ //Save off some FFDC data about the #V data itself
+ uint16_t l_bucketNestFreqs[NUM_BUCKETS] = { 0, 0, 0, 0, 0, 0 };
+
// Version 3 uses the nest frequency to choose the bucket Id
// get the system target to find the NEST_FREQ_MHZ
fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> l_sysParent;
@@ -192,10 +194,11 @@ fapi2::ReturnCode p9_pm_get_poundv_bucket_attr(
{
FAPI_ERR("p9_pm_get_poundv_bucket_attr::"
" Multiple buckets (%d) reporting the same nest frequency"
- " Bucket Nest = %d Bucket ID = %d",
+ " Bucket Nest = %d Bucket ID = %d, First Bucket = %d",
l_numMatches,
l_buckets[i].pbFreq,
- (i + 1));
+ (i + 1),
+ l_currentBucket);
}
else
@@ -203,6 +206,9 @@ fapi2::ReturnCode p9_pm_get_poundv_bucket_attr(
l_currentBucket = &l_buckets[i];
}
}
+
+ //save FFDC in case we fail
+ l_bucketNestFreqs[i] = l_buckets[i].pbFreq;
}
if(l_numMatches == 1)
@@ -212,11 +218,20 @@ fapi2::ReturnCode p9_pm_get_poundv_bucket_attr(
else
{
- FAPI_ERR("p9_pm_get_poundv_bucket_attr::Invalid number of matching nest freqs found. Matches found = %d",
- l_numMatches );
+ FAPI_ERR("p9_pm_get_poundv_bucket_attr::Invalid number of matching nest freqs found for PBFreq=%d. Matches found = %d",
+ l_sysNestFreq, l_numMatches );
FAPI_ASSERT(false,
fapi2::INVALID_MATCHING_FREQ_NUMBER().
- set_MATCHES_FOUND(l_numMatches),
+ set_MATCHES_FOUND(l_numMatches).
+ set_DESIRED_FREQPB(l_sysNestFreq).
+ set_LRPREC(lrpRecord).
+ set_BUCKETA_FREQPB(l_bucketNestFreqs[0]).
+ set_BUCKETB_FREQPB(l_bucketNestFreqs[1]).
+ set_BUCKETC_FREQPB(l_bucketNestFreqs[2]).
+ set_BUCKETD_FREQPB(l_bucketNestFreqs[3]).
+ set_BUCKETE_FREQPB(l_bucketNestFreqs[4]).
+ set_BUCKETF_FREQPB(l_bucketNestFreqs[5]).
+ set_EQ(i_target),
"Matches found is NOT 1" );
}
}
diff --git a/src/import/chips/p9/procedures/xml/error_info/p9_pm_get_poundv_bucket_errors.xml b/src/import/chips/p9/procedures/xml/error_info/p9_pm_get_poundv_bucket_errors.xml
index 82c38dd09..3d67361f5 100644
--- a/src/import/chips/p9/procedures/xml/error_info/p9_pm_get_poundv_bucket_errors.xml
+++ b/src/import/chips/p9/procedures/xml/error_info/p9_pm_get_poundv_bucket_errors.xml
@@ -44,9 +44,25 @@
<hwpError>
<rc>RC_INVALID_MATCHING_FREQ_NUMBER</rc>
<description>
- Number of buckets with matching pbFreq is not equal to one
+ Found either zero or multiple buckets for the desired powerbus frequency
</description>
<ffdc>MATCHES_FOUND</ffdc>
+ <ffdc>DESIRED_FREQPB</ffdc>
+ <ffdc>LRPREC</ffdc>
+ <ffdc>BUCKETA_FREQPB</ffdc>
+ <ffdc>BUCKETB_FREQPB</ffdc>
+ <ffdc>BUCKETC_FREQPB</ffdc>
+ <ffdc>BUCKETD_FREQPB</ffdc>
+ <ffdc>BUCKETE_FREQPB</ffdc>
+ <ffdc>BUCKETF_FREQPB</ffdc>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ <callout>
+ <target>EQ</target>
+ <priority>LOW</priority>
+ </callout>
</hwpError>
<!-- ******************************************************************** -->
<hwpError>
OpenPOWER on IntegriCloud