summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/test
diff options
context:
space:
mode:
authorBill Schwartz <whs@us.ibm.com>2013-10-29 19:16:43 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-11-08 15:21:50 -0600
commitc811df7983a6dbb0d56b96badb58ed785ddd0b72 (patch)
treefc7c1dccec5b4a282be1df4e446e43b1f73fb066 /src/usr/hwpf/test
parent06fdca58e18f8a6dae366a12e03b97c7b28d5742 (diff)
downloadtalos-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.H202
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]);
+ }
}
}
OpenPOWER on IntegriCloud