diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H | 12 | ||||
-rw-r--r-- | src/include/usr/hwpf/plat/fapiPlatAttributeService.H | 2 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C | 27 | ||||
-rw-r--r-- | src/usr/hwpf/test/hwpMBvpdAccessorTest.H | 26 |
4 files changed, 36 insertions, 31 deletions
diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H index 1838834cc..838db3940 100644 --- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H +++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H $ */ +/* $Source: src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.H $ */ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* COPYRIGHT International Business Machines Corp. 2012,2014 */ /* */ /* p1 */ /* */ @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: getMBvpdTermData.H,v 1.3 2013/10/21 18:54:14 whs Exp $ +// $Id: getMBvpdTermData.H,v 1.5 2014/02/08 11:36:19 whs Exp $ /** * @file getMBvpdTermData.H @@ -95,7 +95,9 @@ const uint8_t TERM_DATA_CHK60 = 0x40; // check version for keyword to use // TERM_DATA_CKE_PRI_MAP is a uint16 in the vpd data. It is returned as // as a uint32. The offset is incremented by only 2 to get the next vpd value. TERM_DATA_CKE_PRI_MAP = 0x36, //uint32_t [2] - TERM_DATA_CKE_PWR_MAP = 0x38, //uint32_t [2] +// TERM_DATA_CKE_PWR_MAP is a uint64_t composed of the uint32_t port 0 and +// port 1 values at this offset. The offset is incremented by 4. + TERM_DATA_CKE_PWR_MAP = 0x38, //uint64_t TERM_DATA_RLO = 0x3c|TERM_DATA_CHK60|TERM_DATA_LOW_NIBBLE, //uint8_t[2] TERM_DATA_WLO = 0x3c|TERM_DATA_CHK60|TERM_DATA_HIGH_NIBBLE, //uint8_t[2] TERM_DATA_GPO = 0x3d|TERM_DATA_CHK60, //uint8_t[2] @@ -150,7 +152,7 @@ template<>class MBvpdTermDataSize<fapi::TERM_DATA_CEN_SLEW_RATE_SPCKE> template<>class MBvpdTermDataSize<fapi::TERM_DATA_CKE_PRI_MAP> { public: typedef uint32_t Type[2]; }; template<>class MBvpdTermDataSize<fapi::TERM_DATA_CKE_PWR_MAP> - { public: typedef uint32_t Type[2]; }; + { public: typedef uint64_t Type ; }; template<>class MBvpdTermDataSize<fapi::TERM_DATA_RLO> { public: typedef uint8_t Type[2]; }; template<>class MBvpdTermDataSize<fapi::TERM_DATA_WLO> diff --git a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H index a06510ebf..b0e66e251 100644 --- a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H +++ b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H @@ -1474,7 +1474,7 @@ fapi::ReturnCode fapiPlatGetPciOscswitchConfig fapi::FAPI_RC_SUCCESS :\ (checkTermDataType<fapi::TERM_DATA_CKE_PWR_MAP>(VAL), \ fapi::platAttrSvc::fapiPlatGetTermData\ - (PTARGET, fapi::TERM_DATA_CKE_PWR_MAP , VAL, sizeof(VAL))) + (PTARGET, fapi::TERM_DATA_CKE_PWR_MAP , &VAL, sizeof(VAL))) //------------------------------------------------------------------------------ // MACROS to support MBVPD Slope Intercept attributes diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C index 365986955..c5e612eab 100644 --- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C +++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdTermData.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* COPYRIGHT International Business Machines Corp. 2012,2014 */ /* */ /* p1 */ /* */ @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: getMBvpdTermData.C,v 1.6 2013/10/31 18:03:28 whs Exp $ +// $Id: getMBvpdTermData.C,v 1.8 2014/02/10 19:57:04 whs Exp $ /** * @file getMBvpdTermData.C * @@ -457,18 +457,23 @@ fapi::ReturnCode getMBvpdTermData( } break; } - // return the uint16_t [2] attributes from the MT keyword buffer - // return the uint32_t [2] attributes from the MT keyword buffer + // return the uint64_t attributes from the MT keyword buffer // need to consider endian since they are word fields case TERM_DATA_CKE_PWR_MAP: { - uint32_t (* l_pVal)[2] = (uint32_t (*)[2])o_pVal; - for (uint8_t l_port=0; l_port<2;l_port++) - { - uint32_t * l_pWord = (uint32_t *)&l_pMtBuffer-> - mb_mba[l_pos].mba_port[l_port].port_attr[l_attrOffset]; - (*l_pVal)[l_port] = FAPI_BE32TOH(*l_pWord); - } + uint64_t (* l_pVal) = (uint64_t (*))o_pVal; + + uint32_t * l_pWord = (uint32_t *)&l_pMtBuffer-> + mb_mba[l_pos].mba_port[0].port_attr[l_attrOffset]; + uint32_t l_port0 = FAPI_BE32TOH(*l_pWord); + + l_pWord = (uint32_t *)&l_pMtBuffer-> + mb_mba[l_pos].mba_port[1].port_attr[l_attrOffset]; + uint32_t l_port1 = FAPI_BE32TOH(*l_pWord); + + (*l_pVal) = ( ((static_cast<uint64_t>(l_port0))<<32) | + (static_cast<uint64_t>(l_port1)) ); + break; } // return the uint16_t [2] attributes from the MT keyword buffer diff --git a/src/usr/hwpf/test/hwpMBvpdAccessorTest.H b/src/usr/hwpf/test/hwpMBvpdAccessorTest.H index eb0d54f64..a5b2f636f 100644 --- a/src/usr/hwpf/test/hwpMBvpdAccessorTest.H +++ b/src/usr/hwpf/test/hwpMBvpdAccessorTest.H @@ -1,11 +1,11 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/usr/hwpf/test/hwpmbvpdaccessortest.H $ */ +/* $Source: src/usr/hwpf/test/hwpMBvpdAccessorTest.H $ */ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* COPYRIGHT International Business Machines Corp. 2012,2014 */ /* */ /* p1 */ /* */ @@ -773,22 +773,21 @@ public: { fapi::ReturnCode l_fapirc; uint8_t val1[2][2] = {{0xFF,0xFF},{0xFF,0xFF}}; -#if HWPMBVPDACCESSORTEST_UT0 +#if HWPMBVPDACCESSORTEST_UT4 uint8_t val2[2][2][4]={ {{0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF}}, {{0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF}}}; uint8_t l_errorChk = 1; //do error checks just once uint8_t val4[2] = {0xFF,0xFF}; -#endif uint32_t val3[2] = {0xFFFFFFFF,0xFFFFFFFF}; -#if HWPMBVPDACCESSORTEST_UT4 uint8_t val5[2] = {0xFF,0xFF}; #endif -#if HWPMBVPDACCESSORTEST_UT0 + uint64_t val6 = 0xFFFFFFFFFFFFFFFF; + +#if HWPMBVPDACCESSORTEST_UT4 getMBvpdTermData_FP_t (l_getMBvpdTermData) = &getMBvpdTermData; #endif - TS_TRACE( "testGetTermData entry" ); TARGETING::TargetHandleList l_memBufList; @@ -1069,7 +1068,7 @@ public: TS_TRACE( "testGetTermData attr " "TERM_DATA_CEN_SLEW_RATE_SPCKE=0x%02x,0x%02x", val4[0], val4[1]); -#endif + // TERM_DATA_CKE_PRI_MAP val3[0] = 0xFFFFFFFF; val3[1] = 0xFFFFFFFF; @@ -1079,18 +1078,17 @@ public: TS_TRACE( "testGetTermData attr " "TERM_DATA_CKE_PRI_MAP=0x%08x,0x%08x", val3[0], val3[1]); +#endif -#if HWPMBVPDACCESSORTEST_UT4 // TERM_DATA_CKE_PWR_MAP - val3[0] = 0xFFFFFFFF; - val3[1] = 0xFFFFFFFF; + val6 = 0xFFFFFFFFFFFFFFFF; l_fapirc = FAPI_ATTR_GET(ATTR_VPD_CKE_PWR_MAP, - &l_fapi_mba_target, val3); + &l_fapi_mba_target, val6); if (l_fapirc) break; TS_TRACE( "testGetTermData attr " - "TERM_DATA_CKE_PWR_MAP=0x%08x,0x%08x", - val3[0], val3[1]); + "TERM_DATA_CKE_PWR_MAP=0x%016lx", val6); +#if HWPMBVPDACCESSORTEST_UT4 // TERM_DATA_RLO l_fapirc = FAPI_ATTR_GET(ATTR_VPD_RLO, &l_fapi_mba_target, val5); |