diff options
author | Bill Schwartz <whs@us.ibm.com> | 2013-11-20 07:50:29 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-12-06 09:52:28 -0600 |
commit | fd95cabecf413f579457779a32b903cf9f789b77 (patch) | |
tree | b8e4ae21101bd6d4c47870ade5495e7be28fb8a4 /src/usr/hwpf/test/fapiwinkletest.H | |
parent | a96e2080968c59e11745fc1d1ee55ab910821bc9 (diff) | |
download | talos-hostboot-fd95cabecf413f579457779a32b903cf9f789b77.tar.gz talos-hostboot-fd95cabecf413f579457779a32b903cf9f789b77.zip |
SENSOR_MAP FAPI attributes should come from Centaur VPD (MW)
Add hwp accessor for primary and secondary sensor map from VSPD keyword MW
Change-Id: I7f64632c32236ecb29f5fd177bd5d8e9e356d7ae
RTC: 91776
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7344
Tested-by: Jenkins Server
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/test/fapiwinkletest.H')
-rw-r--r-- | src/usr/hwpf/test/fapiwinkletest.H | 105 |
1 files changed, 96 insertions, 9 deletions
diff --git a/src/usr/hwpf/test/fapiwinkletest.H b/src/usr/hwpf/test/fapiwinkletest.H index 118dccef6..faae88919 100644 --- a/src/usr/hwpf/test/fapiwinkletest.H +++ b/src/usr/hwpf/test/fapiwinkletest.H @@ -27,6 +27,8 @@ // set to 1 for doing unit tests, set to 0 for production #define UNITTESTfwt 0 #define UNITTEST2fwt 0 +#define HWPMBVPDACCESSORTEST_UT0 0 // 0 = just one chip, 1 = all +#define HWPMBVPDACCESSORTEST_UT7 0 // 0 = min sensor map tests /** * @file fapiwinkletest.H @@ -50,6 +52,7 @@ #include <mvpd_accessors/getMBvpdSlopeInterceptData.H> #include <mvpd_accessors/getMBvpdVersion.H> #include <mvpd_accessors/getMBvpdDram2NModeEnabled.H> +#include <mvpd_accessors/getMBvpdSensorMap.H> #include <errl/errlmanager.H> #include <errl/errlentry.H> @@ -72,7 +75,7 @@ public: */ void testGetMvpd() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; uint8_t *l_pdRRecord = NULL; uint32_t l_pdRLen = 0; @@ -173,7 +176,7 @@ public: */ void testGetMBvpd() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; uint8_t *l_pRecord = NULL; uint32_t l_len = 0; @@ -305,7 +308,7 @@ public: */ void testGetSlopeInterceptData() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; getMBvpdSlopeInterceptData_FP_t (l_getMBvpdSlopeInterceptData) = &getMBvpdSlopeInterceptData; uint32_t l_val = 0xFFFFFFFF; @@ -409,12 +412,96 @@ public: } /** + * @brief call getMBvpdSensorMap to fetch sensor map + * attributes from the MW keyword + * + */ + void testGetSensorMap() + { + fapi::ReturnCode l_fapirc; + uint8_t l_val = 0xFF; + + TS_TRACE( "testGetSensorMap entry" ); + + TARGETING::TargetHandleList l_memBufList; + getAllChips(l_memBufList, TYPE_MEMBUF); + + TS_TRACE( "testGetSensorMap l_memBufList.size()=%d", + l_memBufList.size() ); + // loop thru memory buffers +#if HWPMBVPDACCESSORTEST_UT0 + 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++ ) + { + // make a local copy of the memory buffer target + TARGETING::Target* l_mb_target = l_memBufList[l_mbNum]; + + // dump physical path to target + EntityPath l_path; + l_path = l_mb_target->getAttr<ATTR_PHYS_PATH>(); + l_path.dump(); + + // cast OUR type of target to a FAPI type of target. + fapi::Target l_fapi_mb_target( + TARGET_TYPE_MEMBUF_CHIP, + (const_cast<TARGETING::Target*>(l_mb_target)) ); + +#if HWPMBVPDACCESSORTEST_UT7 + // test accessor directly + getMBvpdSensorMap_FP_t (l_getMBvpdSensorMap) = &getMBvpdSensorMap; + + // Primary Sensor Map + l_fapirc = (*l_getMBvpdSensorMap)(l_fapi_mb_target, + fapi::SENSOR_MAP_PRIMARY, l_val); + if (l_fapirc) break; + TS_TRACE( "testSensorMap accessor " + "SENSOR_MAP_PRIMARY=0x%02x", l_val); + + // Secondary Sensor Map + l_fapirc = (*l_getMBvpdSensorMap)(l_fapi_mb_target, + fapi::SENSOR_MAP_SECONDARY, l_val); + if (l_fapirc) break; + TS_TRACE( "testSensorMap accessor " + "SENSOR_MAP_SECONDARY=0x%02x", l_val); + + // test attribute + // Primary Sensor Map + l_fapirc = FAPI_ATTR_GET(ATTR_VPD_CDIMM_SENSOR_MAP_PRIMARY, + &l_fapi_mb_target, l_val); + if (l_fapirc) break; + TS_TRACE( "testSensorMap attr " + "SENSOR_MAP_PRIMARY=0x%02x", l_val); +#endif + + // Secondary Sensor Map + l_fapirc = FAPI_ATTR_GET(ATTR_VPD_CDIMM_SENSOR_MAP_SECONDARY, + &l_fapi_mb_target, l_val); + if (l_fapirc) break; + TS_TRACE( "testSensorMap attr " + "SENSOR_MAP_SECONDARY=0x%02x", l_val); + } + + if (l_fapirc) + { + TS_FAIL( "fapiGetSensorMap: FAPI_ATTR_GET fail rc=0x%x", + static_cast<uint32_t>(l_fapirc) ); + fapiLogError(l_fapirc); + } + + TS_TRACE( "testGetSensorMap exit" ); + + } + + /** * @brief call getMBvpdVersion to fetch vpd version * */ void testGetVersion() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; getMBvpdVersion_FP_t (l_getMBvpdVersion) = &getMBvpdVersion; @@ -521,7 +608,7 @@ public: */ void testGetDram2NModeEnabled() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; getMBvpdDram2NModeEnabled_FP_t (l_getMBvpdDram2NModeEnabled) = &getMBvpdDram2NModeEnabled; @@ -605,7 +692,7 @@ public: */ void testGetAddrMirrorData() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; getMBvpdAddrMirrorData_FP_t (l_getMBvpdAddrMirrorData) = &getMBvpdAddrMirrorData; @@ -689,7 +776,7 @@ public: */ void testGetTermData() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; uint8_t val1[2][2] = {{0xFF,0xFF},{0xFF,0xFF}}; #if UNITTESTfwt uint8_t val2[2][2][4]={ @@ -1054,7 +1141,7 @@ public: */ void testGetPhaseRotatorData() { - fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); + fapi::ReturnCode l_fapirc; const uint8_t PORT_SIZE = 2; uint8_t l_attr_eff_cen_phase_rot[PORT_SIZE]; @@ -1584,7 +1671,7 @@ public: */ void testRepairRings() { - fapi::ReturnCode l_fapirc = fapi::FAPI_RC_SUCCESS; + fapi::ReturnCode l_fapirc; uint8_t *l_pRingBuf = NULL; uint32_t l_ringBufsize = 0; uint32_t l_ringId = 0; |