diff options
Diffstat (limited to 'src/include/usr')
-rw-r--r-- | src/include/usr/isteps/istep20list.H | 5 | ||||
-rw-r--r-- | src/include/usr/isteps/nvdimm/nvdimm.H | 15 | ||||
-rw-r--r-- | src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H | 2 | ||||
-rw-r--r-- | src/include/usr/util/utillidmgr.H | 8 | ||||
-rw-r--r-- | src/include/usr/vpd/spdenums.H | 6 |
5 files changed, 32 insertions, 4 deletions
diff --git a/src/include/usr/isteps/istep20list.H b/src/include/usr/isteps/istep20list.H index a12f9bdea..117ff4606 100644 --- a/src/include/usr/isteps/istep20list.H +++ b/src/include/usr/isteps/istep20list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2017 */ +/* Contributors Listed Below - COPYRIGHT 2012,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -92,6 +92,9 @@ const DepModInfo g_istep20Dependancies = { DEP_LIB(libistep20.so), DEP_LIB(libxz.so), DEP_LIB(libruntime.so), +#ifdef CONFIG_NVDIMM + DEP_LIB(libnvdimm.so), +#endif NULL } }; diff --git a/src/include/usr/isteps/nvdimm/nvdimm.H b/src/include/usr/isteps/nvdimm/nvdimm.H index 6f6b46541..567299925 100644 --- a/src/include/usr/isteps/nvdimm/nvdimm.H +++ b/src/include/usr/isteps/nvdimm/nvdimm.H @@ -54,6 +54,21 @@ enum nvdimm_err_status * **/ void nvdimm_restore(TARGETING::TargetHandleList &i_nvdimmList); + + +/** + * @brief Entry function for updating NV controller code on the NVDIMMs + * Each nvdimm will be checked for a possible update. The update + * will be performed if the dimm is a known type and its version level + * does not match its corresponding lid's version level. + * + * @param[in] i_nvdimmList - list of nvdimm targets + * + * @return true if no errors were logged, else false + * + **/ +bool nvdimm_update(TARGETING::TargetHandleList &i_nvdimmList); + #endif diff --git a/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H b/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H index 0b48e94a0..f0da5af87 100644 --- a/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H +++ b/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H @@ -73,6 +73,7 @@ enum nvdimmModuleId NVDIMM_ARM_ERASE = 0x17, NVDIMM_CHECK_READY = 0x18, NOTIFY_NVDIMM_PROTECTION_CHG = 0x19, + NVDIMM_RUN_UPDATE = 0x1A, }; /** @@ -112,6 +113,7 @@ enum nvdimmReasonCode NVDIMM_RESTORE_FAILED = NVDIMM_COMP_ID | 0x1A, // Failure to restore NVDIMM_NOT_READY = NVDIMM_COMP_ID | 0x1B, // NVDIMM not ready for host to access NVDIMM_NULL_FIRMWARE_REQUEST_PTR = NVDIMM_COMP_ID | 0x1C, // Firmware request is NULL + NVDIMM_UNSUPPORTED_NVDIMM_TYPE = NVDIMM_COMP_ID | 0x1D, // Unsupported NVDIMM type for update }; enum UserDetailsTypes diff --git a/src/include/usr/util/utillidmgr.H b/src/include/usr/util/utillidmgr.H index 29e317233..abd77a81f 100644 --- a/src/include/usr/util/utillidmgr.H +++ b/src/include/usr/util/utillidmgr.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2013,2018 */ +/* Contributors Listed Below - COPYRIGHT 2013,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -61,6 +61,12 @@ enum LidId HCODE_CONTAINER_LIDID = 0x80d0000c, HWREFIMG_RINGOVD_LIDID = 0x81e00620, TARGETING_BINARY_LIDID = 0x81e00630, + + // two lids for 16GB and 32GB NVDIMMs + // @todo RTC 201197 - update when valid lids are created + NVDIMM_16GB_LIDID = 0xBADBAD16, + NVDIMM_32GB_LIDID = 0xBADBAD32, + INVALID_LIDID = 0xFFFFFFFF }; diff --git a/src/include/usr/vpd/spdenums.H b/src/include/usr/vpd/spdenums.H index bd6418d5e..fd3df0aea 100644 --- a/src/include/usr/vpd/spdenums.H +++ b/src/include/usr/vpd/spdenums.H @@ -143,7 +143,9 @@ enum DRAM_STEPPING = SPD_FIRST_NORM_KEYWORD | 0x57, MANUFACTURING_SECTION_CRC = SPD_FIRST_NORM_KEYWORD | 0x58, NVM_INIT_TIME = SPD_FIRST_NORM_KEYWORD | 0x59, - SPD_LAST_NORM_KEYWORD = SPD_FIRST_NORM_KEYWORD | 0x59, + RAW_MODULE_PRODUCT_ID = SPD_FIRST_NORM_KEYWORD | 0x5a, + RAW_MODULE_MANUFACTURER_ID = SPD_FIRST_NORM_KEYWORD | 0x5b, + SPD_LAST_NORM_KEYWORD = SPD_FIRST_NORM_KEYWORD | 0x5b, // ============================================================== // Module Specific Keywords (Available for both DDR3 and DDR4 DIMMs) @@ -343,7 +345,7 @@ enum }; enum -{ +{ // These are LRDIMM values for Module Type attribute // according to ver3 and ver4 JEDEC specs JEDEC_VER3_LRDIMM_VAL = 0x0b, |