summaryrefslogtreecommitdiffstats
path: root/src/usr/fapi2/test
diff options
context:
space:
mode:
authorAndre Marin <aamarin@us.ibm.com>2019-07-23 12:32:07 -0500
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-08-08 17:08:12 -0500
commit9fb424b8af396bb626c28105b4383fc22aeccd94 (patch)
tree39c761004e6f89f880743d7c556d423ab80126a6 /src/usr/fapi2/test
parent4a6e203860f5b8cfeb7de3740b06f9bbaf2d5f1e (diff)
downloadblackbird-hostboot-9fb424b8af396bb626c28105b4383fc22aeccd94.tar.gz
blackbird-hostboot-9fb424b8af396bb626c28105b4383fc22aeccd94.zip
Change return size of the DDR4 DDIMM SPD
Change-Id: If531b0ce88692f6900e414012c44de578acea2b7 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80826 Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/fapi2/test')
-rw-r--r--src/usr/fapi2/test/fapi2SpdTestCxx.H102
1 files changed, 101 insertions, 1 deletions
diff --git a/src/usr/fapi2/test/fapi2SpdTestCxx.H b/src/usr/fapi2/test/fapi2SpdTestCxx.H
index 2ccd457dc..feb84f619 100644
--- a/src/usr/fapi2/test/fapi2SpdTestCxx.H
+++ b/src/usr/fapi2/test/fapi2SpdTestCxx.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -37,6 +37,7 @@
#include <errl/errlentry.H>
#include <devicefw/driverif.H>
#include <fapi2_spd_access.H>
+#include <vpd/spdenums.H>
using namespace TARGETING;
@@ -107,6 +108,105 @@ class SPDTest: public CxxTest::TestSuite
break;
}
+ uint8_t l_memModule = 0x0;
+ size_t l_memSize = sizeof(uint8_t);
+
+ auto l_errl = deviceRead(i_pTarget,
+ (void *)&l_memModule,
+ l_memSize,
+ DEVICE_SPD_ADDRESS(SPD::MODULE_TYPE));
+
+ if ( l_errl )
+ {
+ TS_FAIL( "testGetSPD- Failed to deviceRead with HUID= 0x%x",
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+
+ uint8_t l_memGen = 0x0;
+ l_errl = deviceRead(i_pTarget,
+ (void *)&l_memGen,
+ l_memSize,
+ DEVICE_SPD_ADDRESS(SPD::BASIC_MEMORY_TYPE));
+
+ if ( l_errl )
+ {
+ TS_FAIL( "testGetSPD- Failed to deviceRead with HUID= 0x%x",
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+
+ auto l_chipModel = i_pTarget->getAttr<TARGETING::ATTR_MODEL>();
+
+ if( l_chipModel == TARGETING::MODEL_AXONE )
+ {
+ // Assumes Axone is strictly DDR4, so not taking into
+ // account DDR3 or any other DRAM generation
+ if( l_memModule == SPD::MEM_DDIMM )
+ {
+ if ( l_size != SPD::DDIMM_DDR4_SPD_SIZE )
+ {
+ TS_FAIL( "testGetSPD- expected size %d != actual size %d with HUID= 0x%x",
+ SPD::DDIMM_DDR4_SPD_SIZE,
+ l_size,
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+ }
+ else
+ {
+ if ( l_size != SPD::DDR4_SPD_SIZE )
+ {
+ TS_FAIL( "testGetSPD- expected size %d != actual size %d with HUID= 0x%x",
+ SPD::DDR4_SPD_SIZE,
+ l_size,
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+ }
+ }
+ else if ( l_chipModel == TARGETING::MODEL_NIMBUS )
+ {
+ // Nimbus only suppported DDR4 and SPD size was
+ // DIMM BASE_MODULE_TYPE agnostic.
+ if ( l_size != SPD::DDR4_SPD_SIZE )
+ {
+ TS_FAIL( "testGetSPD- expected size %d != actual size %d with HUID= 0x%x",
+ SPD::DDR4_SPD_SIZE,
+ l_size,
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+ }
+ else if( l_chipModel == TARGETING::MODEL_CUMULUS )
+ {
+ // BASE_MODULE_TYPE (RDIMM, LRDIMM, etc) isn't being
+ // taken into account because the SPD size isn't dependent
+ // on it for Cumulus.
+ if( l_memGen == SPD::MEM_DDR4 )
+ {
+ if ( l_size != SPD::DDR4_SPD_SIZE )
+ {
+ TS_FAIL( "testGetSPD- expected size %d != actual size %d with HUID= 0x%x",
+ SPD::DDR4_SPD_SIZE,
+ l_size,
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+ }
+ else
+ {
+ if ( l_size != SPD::DDR3_SPD_SIZE )
+ {
+ TS_FAIL( "testGetSPD- expected size %d != actual size %d with HUID= 0x%x",
+ SPD::DDR3_SPD_SIZE,
+ l_size,
+ TARGETING::get_huid(i_pTarget));
+ break;
+ }
+ }
+ }
+
FAPI_DBG("getSPD: SPD data for DIMM with HUID=0x%.8X Size %d Blob %d",
TARGETING::get_huid(i_pTarget),
l_size,
OpenPOWER on IntegriCloud