diff options
author | Dzuy Nguyen <dzuy@us.ibm.com> | 2017-11-01 08:54:12 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-12-01 15:22:31 -0500 |
commit | c71ed1c414501ce568f914e38b2ddbbc9c258cb6 (patch) | |
tree | cb222fe6f89fc1905454576f0a75745cdc70282b /src/usr/hdat | |
parent | 6bc72e2973d1868fcccf74f696bcb9bf08a62951 (diff) | |
download | blackbird-hostboot-c71ed1c414501ce568f914e38b2ddbbc9c258cb6.tar.gz blackbird-hostboot-c71ed1c414501ce568f914e38b2ddbbc9c258cb6.zip |
Add support for OBUS PLL buckets
Add MRW support for ATTR_FREQ_O_MHZ attribute
Add MACRO functions for ATTR_OB[0-3]_PLL_BUCKET attribute
Change-Id: I75d02192bc09c9814fccadadb6aed69606508a58
RTC: 176188
CMVC-Prereq: 1039767
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48890
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/hdat')
-rw-r--r-- | src/usr/hdat/hdatutil.C | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/usr/hdat/hdatutil.C b/src/usr/hdat/hdatutil.C index 07af121f6..6c1549e82 100644 --- a/src/usr/hdat/hdatutil.C +++ b/src/usr/hdat/hdatutil.C @@ -27,6 +27,7 @@ #include <i2c/eepromif.H> #include <stdio.h> #include <p9_frequency_buckets.H> +#include <util/utilcommonattr.H> #define UINT16_IN_LITTLE_ENDIAN(x) (((x) >> 8) | ((x) << 8)) #define HDAT_VPD_RECORD_START_TAG 0x84 @@ -2003,14 +2004,20 @@ errlHndl_t hdatUpdateSMPLinkInfoData(hdatHDIFDataArray_t * i_SMPInfoFullPcrdHdrP do{ for(auto & l_SMPInfoEle : l_SMPLinkInfoCntr) { - uint8_t l_obusChipletPos = + uint8_t l_obusChipletPos = (uint8_t) l_SMPInfoEle.hdatSMPLinkBrickID / NUM_BRICKS_PER_OBUS; - uint32_t l_obusPllFreqBucket = 0; + uint8_t l_obusPllFreqBucket = 0; switch( l_obusChipletPos){ - case 0: { l_obusPllFreqBucket = i_pProcTarget->getAttr<ATTR_OB0_PLL_BUCKET>(); break;} - case 1: { l_obusPllFreqBucket = i_pProcTarget->getAttr<ATTR_OB1_PLL_BUCKET>(); break;} - case 2: { l_obusPllFreqBucket = i_pProcTarget->getAttr<ATTR_OB2_PLL_BUCKET>(); break;} - case 3: { l_obusPllFreqBucket = i_pProcTarget->getAttr<ATTR_OB3_PLL_BUCKET>(); break;} + case 0: + case 1: + case 2: + case 3: + { + l_errl = Util::getObusPllBucket(i_pProcTarget, + l_obusPllFreqBucket, + l_obusChipletPos); + break; + } default :{ HDAT_ERR(" Invalid obus Brick ID "); @@ -2034,7 +2041,7 @@ errlHndl_t hdatUpdateSMPLinkInfoData(hdatHDIFDataArray_t * i_SMPInfoFullPcrdHdrP HDAT_ERR(" Error in getting the PLL Freq bucket"); break; } - + if(l_obusPllFreqBucket >= OBUS_PLL_FREQ_BUCKETS) { HDAT_ERR(" Invalid obus Freq bucket "); @@ -2069,7 +2076,7 @@ errlHndl_t hdatUpdateSMPLinkInfoData(hdatHDIFDataArray_t * i_SMPInfoFullPcrdHdrP else if(l_chipModel == TARGETING::MODEL_CUMULUS) { if(l_chipECLevel == 0x10) - { + { l_freqList = const_cast<uint32_t *>(OBUS_PLL_FREQ_LIST_P9C_10); } } @@ -2093,7 +2100,7 @@ errlHndl_t hdatUpdateSMPLinkInfoData(hdatHDIFDataArray_t * i_SMPInfoFullPcrdHdrP //PLL bucket is 1 based (1,2,3), subtract 1 for 0 based array uint32_t l_pllfreq = *(l_freqList+l_obusPllFreqBucket -1); - + switch( l_pllfreq ){ case 1250:{l_SMPInfoEle.hdatSMPLinkSpeed = HDAT_OBUS_FREQ_20GBPS; break; }; case 1563:{l_SMPInfoEle.hdatSMPLinkSpeed = HDAT_OBUS_FREQ_25GBPS; break; }; |