diff options
| author | Bill Schwartz <whs@us.ibm.com> | 2013-10-29 19:16:43 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-11-08 15:21:50 -0600 |
| commit | c811df7983a6dbb0d56b96badb58ed785ddd0b72 (patch) | |
| tree | fc7c1dccec5b4a282be1df4e446e43b1f73fb066 /src/usr/hwpf/test | |
| parent | 06fdca58e18f8a6dae366a12e03b97c7b28d5742 (diff) | |
| download | talos-hostboot-c811df7983a6dbb0d56b96badb58ed785ddd0b72.tar.gz talos-hostboot-c811df7983a6dbb0d56b96badb58ed785ddd0b72.zip | |
Centaur VPD Attributes: Version, 2N_Mode_Enabled, and Address Mirroring
ATTR_VPD_VERSION - add attribute and hwp accessor to return Record VINI
Keyword VZ
ATTR_VPD_DRAM_2N_MODE_ENABLED - add attribute and new HWP accessor using
MR hwp accessor to retrieve DRAM_2N_MODE.
ATTR_VPD_DRAM_ADDRESS_MIRRORING - Change from DIMM to MBA target
Change-Id: I05875c5e89966906a928d3c82925e33507962db9
RTC: 89859
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/6949
Tested-by: Jenkins Server
Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com>
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/test')
| -rw-r--r-- | src/usr/hwpf/test/fapiwinkletest.H | 202 |
1 files changed, 185 insertions, 17 deletions
diff --git a/src/usr/hwpf/test/fapiwinkletest.H b/src/usr/hwpf/test/fapiwinkletest.H index aadce24e2..118dccef6 100644 --- a/src/usr/hwpf/test/fapiwinkletest.H +++ b/src/usr/hwpf/test/fapiwinkletest.H @@ -48,6 +48,8 @@ #include <mvpd_accessors/getMBvpdAddrMirrorData.H> #include <mvpd_accessors/getMBvpdTermData.H> #include <mvpd_accessors/getMBvpdSlopeInterceptData.H> +#include <mvpd_accessors/getMBvpdVersion.H> +#include <mvpd_accessors/getMBvpdDram2NModeEnabled.H> #include <errl/errlmanager.H> #include <errl/errlentry.H> @@ -407,21 +409,21 @@ public: } /** - * @brief call getMBvpdAddrMirrorData to fetch memory buffer AM attributes + * @brief call getMBvpdVersion to fetch vpd version * */ - void testGetAddrMirrorData() + void testGetVersion() { fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); - getMBvpdAddrMirrorData_FP_t (l_getMBvpdAddrMirrorData) - = &getMBvpdAddrMirrorData; + getMBvpdVersion_FP_t (l_getMBvpdVersion) + = &getMBvpdVersion; - TS_TRACE( "testGetAddrMirrorData entry" ); + TS_TRACE( "testGetVersion entry" ); TARGETING::TargetHandleList l_memBufList; getAllChips(l_memBufList, TYPE_MEMBUF); - TS_TRACE( "testGetAddrMirrorData l_memBufList.size()=%d", + TS_TRACE( "testGetVersion l_memBufList.size()=%d", l_memBufList.size() ); // loop thru memory buffers #if UNITTESTfwt @@ -435,7 +437,7 @@ public: getChildAffinityTargets(l_mbaList,l_memBufList[l_mbNum], CLASS_UNIT,TYPE_MBA,false); - TS_TRACE( "testGetAddrMirrorData l_mbaBufList.size()=%d", + TS_TRACE( "testGetVersion l_mbaBufList.size()=%d", l_mbaList.size()); // loop thru all the mbas (should be 2) @@ -450,7 +452,7 @@ public: getChildAffinityTargets(l_dimmList,l_mbaList[l_mbaNum], CLASS_LOGICAL_CARD,TYPE_DIMM,false); - TS_TRACE( "testGetAddrMirrorData l_dimmList.size()=%d", + TS_TRACE( "testGetVersion l_dimmList.size()=%d", l_dimmList.size()); // cast OUR type of target to a FAPI type of target. @@ -458,20 +460,18 @@ public: (const_cast<TARGETING::Target*>(l_mbaList[l_mbaNum]))); // verify HWP accessor - uint8_t l_val[2][2] = {{0xFF,0xFF},{0xFF,0xFF}}; + uint32_t l_val = 0xffffffff; - l_fapirc = (*l_getMBvpdAddrMirrorData)(l_fapi_mba_target,l_val); + l_fapirc = (*l_getMBvpdVersion)(l_fapi_mba_target,l_val); if (l_fapirc) { - TS_FAIL( "fapiGetAddrMirrorData: HWP accessor fail rc=0x%x", + TS_FAIL( "fapiGetVersion: HWP accessor fail rc=0x%x", static_cast<uint32_t>(l_fapirc) ); fapiLogError(l_fapirc); } else { - TS_TRACE( "testGetAddrMirrorData accessor " - "(0x%02x,0x%02x),(0x%02x,0x%02x)", - l_val[0][0], l_val[0][1], l_val[1][0], l_val[1][1]); + TS_TRACE( "testGetVersion accessor 0x%08x",l_val); } // loop thru all the DIMMs (should be 4) @@ -483,7 +483,7 @@ public: #endif for (; l_dimmNum < l_dimmList.size(); l_dimmNum++ ) { - uint8_t l_val = 0xFF; +// uint32_t l_val = 0xFFFFFFFF; // dump physical path to target EntityPath l_path; @@ -496,18 +496,186 @@ public: (const_cast<TARGETING::Target*>(l_dimmList[l_dimmNum]))); // verify getting all attributes - l_fapirc = FAPI_ATTR_GET(ATTR_VPD_DRAM_ADDRESS_MIRRORING, + l_fapirc = FAPI_ATTR_GET(ATTR_VPD_VERSION, &l_fapi_dimm_target, l_val); - TS_TRACE( "testGetAddrMirrorData attribute %d 0x%02x", + TS_TRACE( "testGetVersion attribute %d 0x%08x", l_dimmNum,l_val); } if (l_fapirc) { + TS_FAIL( "fapiGetVersion: FAPI_ATTR_GET fail rc=0x%x", + static_cast<uint32_t>(l_fapirc) ); + fapiLogError(l_fapirc); + } + } + } + + TS_TRACE( "testGetVersion exit" ); + + } + + /** + * @brief call getMBvpdDram2NModeEnabled to retrieve 2N mode + * + */ + void testGetDram2NModeEnabled() + { + fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + getMBvpdDram2NModeEnabled_FP_t (l_getMBvpdDram2NModeEnabled) + = &getMBvpdDram2NModeEnabled; + + TS_TRACE( "testGetDram2NModeEnabled entry" ); + + TARGETING::TargetHandleList l_memBufList; + getAllChips(l_memBufList, TYPE_MEMBUF); + + TS_TRACE( "testGetDram2NModeEnabled l_memBufList.size()=%d", + l_memBufList.size() ); + // loop thru memory buffers +#if UNITTESTfwt + uint8_t l_mbNum = 0; // check them all in unit test +#else + uint8_t l_mbNum = (l_memBufList.size() > 0) ? l_memBufList.size()-1 : 0; +#endif + for (; l_mbNum < l_memBufList.size(); l_mbNum++ ) + { + TARGETING::TargetHandleList l_mbaList; + getChildAffinityTargets(l_mbaList,l_memBufList[l_mbNum], + CLASS_UNIT,TYPE_MBA,false); + + TS_TRACE( "testGetDram2NModeEnabled l_mbaBufList.size()=%d", + l_mbaList.size()); + + // loop thru all the mbas (should be 2) +#if UNITTESTfwt + uint8_t l_mbaNum = 0; // check them all in unit test +#else + uint8_t l_mbaNum = (l_mbaList.size() > 0) ? l_mbaList.size()-1:0 ; +#endif + for (; l_mbaNum < l_mbaList.size(); l_mbaNum++ ) + { + // cast OUR type of target to a FAPI type of target. + fapi::Target l_fapi_mba_target( TARGET_TYPE_MBA_CHIPLET, + (const_cast<TARGETING::Target*>(l_mbaList[l_mbaNum]))); + + // verify HWP accessor + uint8_t l_val = 0xFF; + + l_fapirc = (*l_getMBvpdDram2NModeEnabled) + (l_fapi_mba_target,l_val); + if (l_fapirc) + { + TS_FAIL("fapiGetDram2NModeEnabled:HWP accessor fail rc=0x%x", + static_cast<uint32_t>(l_fapirc) ); + fapiLogError(l_fapirc); + } + else + { + TS_TRACE("testGetDram2NModeEnabled accessor 0x%02x", + l_val); + } + // verify attribute + l_fapirc = FAPI_ATTR_GET(ATTR_VPD_DRAM_2N_MODE_ENABLED, + &l_fapi_mba_target, + l_val); + if (l_fapirc) + { + TS_FAIL("fapiGetDram2NModeEnabled:" + " FAPI_ATTR_GET fail rc=0x%x", + static_cast<uint32_t>(l_fapirc) ); + fapiLogError(l_fapirc); + } + else + { + TS_TRACE( "testGetDram2NModeEnabled attribute 0x%02x", + l_val); + } + } + } + + TS_TRACE( "testGetDram2NModeEnabled exit" ); + + } + + + /** + * @brief call getMBvpdAddrMirrorData to fetch memory buffer AM attributes + * + */ + void testGetAddrMirrorData() + { + fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + getMBvpdAddrMirrorData_FP_t (l_getMBvpdAddrMirrorData) + = &getMBvpdAddrMirrorData; + + TS_TRACE( "testGetAddrMirrorData entry" ); + + TARGETING::TargetHandleList l_memBufList; + getAllChips(l_memBufList, TYPE_MEMBUF); + + TS_TRACE( "testGetAddrMirrorData l_memBufList.size()=%d", + l_memBufList.size() ); + // loop thru memory buffers +#if UNITTESTfwt + uint8_t l_mbNum = 0; // check them all in unit test +#else + uint8_t l_mbNum = (l_memBufList.size() > 0) ? l_memBufList.size()-1 : 0; +#endif + for (; l_mbNum < l_memBufList.size(); l_mbNum++ ) + { + TARGETING::TargetHandleList l_mbaList; + getChildAffinityTargets(l_mbaList,l_memBufList[l_mbNum], + CLASS_UNIT,TYPE_MBA,false); + + TS_TRACE( "testGetAddrMirrorData l_mbaBufList.size()=%d", + l_mbaList.size()); + + // loop thru all the mbas (should be 2) +#if UNITTESTfwt + uint8_t l_mbaNum = 0; // check them all in unit test +#else + uint8_t l_mbaNum = (l_mbaList.size() > 0) ? l_mbaList.size()-1:0 ; +#endif + for (; l_mbaNum < l_mbaList.size(); l_mbaNum++ ) + { + // cast OUR type of target to a FAPI type of target. + fapi::Target l_fapi_mba_target( TARGET_TYPE_MBA_CHIPLET, + (const_cast<TARGETING::Target*>(l_mbaList[l_mbaNum]))); + + // verify HWP accessor + uint8_t l_val[2][2] = {{0xFF,0xFF},{0xFF,0xFF}}; + + l_fapirc = (*l_getMBvpdAddrMirrorData)(l_fapi_mba_target,l_val); + if (l_fapirc) + { + TS_FAIL( "fapiGetAddrMirrorData: HWP accessor fail rc=0x%x", + static_cast<uint32_t>(l_fapirc) ); + fapiLogError(l_fapirc); + } + else + { + TS_TRACE( "testGetAddrMirrorData accessor " + "(0x%02x,0x%02x),(0x%02x,0x%02x)", + l_val[0][0], l_val[0][1], l_val[1][0], l_val[1][1]); + } + + // verify attribute + l_fapirc = FAPI_ATTR_GET(ATTR_VPD_DRAM_ADDRESS_MIRRORING, + &l_fapi_mba_target, + l_val); + if (l_fapirc) + { TS_FAIL( "fapiGetAddrMirrorData: FAPI_ATTR_GET fail rc=0x%x", static_cast<uint32_t>(l_fapirc) ); fapiLogError(l_fapirc); } + else + { + TS_TRACE( "testGetAddrMirrorData attribute " + "(0x%02x,0x%02x),(0x%02x,0x%02x)", + l_val[0][0], l_val[0][1], l_val[1][0], l_val[1][1]); + } } } |

