diff options
| author | Andre Marin <aamarin@us.ibm.com> | 2019-07-23 12:32:07 -0500 |
|---|---|---|
| committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-08-08 17:08:12 -0500 |
| commit | 9fb424b8af396bb626c28105b4383fc22aeccd94 (patch) | |
| tree | 39c761004e6f89f880743d7c556d423ab80126a6 /src/usr/fapi2/test | |
| parent | 4a6e203860f5b8cfeb7de3740b06f9bbaf2d5f1e (diff) | |
| download | blackbird-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.H | 102 |
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, |

