From 0fdeb11ca84ce14a1069a2bbd0a186a11e6b2dcd Mon Sep 17 00:00:00 2001 From: Dan Crowell Date: Tue, 18 Oct 2016 15:02:44 -0500 Subject: 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 Reviewed-by: Martin Gloff Tested-by: Hostboot CI Reviewed-by: Andres A. Lugo-Reyes Reviewed-by: Jennifer A. Stofer Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31478 Reviewed-by: Hostboot Team Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- .../hwp/pm/p9_pm_get_poundv_bucket_attr.C | 27 +++++++++++++++++----- .../error_info/p9_pm_get_poundv_bucket_errors.xml | 18 ++++++++++++++- 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 l_procParent = i_target.getParent(); - //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 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 @@ RC_INVALID_MATCHING_FREQ_NUMBER - Number of buckets with matching pbFreq is not equal to one + Found either zero or multiple buckets for the desired powerbus frequency MATCHES_FOUND + DESIRED_FREQPB + LRPREC + BUCKETA_FREQPB + BUCKETB_FREQPB + BUCKETC_FREQPB + BUCKETD_FREQPB + BUCKETE_FREQPB + BUCKETF_FREQPB + + CODE + HIGH + + + EQ + LOW + -- cgit v1.2.3