diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/usr/isteps/istep13list.H | 5 | ||||
| -rw-r--r-- | src/include/usr/isteps/istep14list.H | 6 | ||||
| -rw-r--r-- | src/include/usr/isteps/istep21list.H | 5 | ||||
| -rw-r--r-- | src/include/usr/isteps/nvdimm/nvdimm.H | 20 | ||||
| -rw-r--r-- | src/include/usr/vpd/spdenums.H | 5 |
5 files changed, 30 insertions, 11 deletions
diff --git a/src/include/usr/isteps/istep13list.H b/src/include/usr/isteps/istep13list.H index fd0430c6c..d4788913d 100644 --- a/src/include/usr/isteps/istep13list.H +++ b/src/include/usr/isteps/istep13list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2017 */ +/* Contributors Listed Below - COPYRIGHT 2012,2019 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -296,6 +296,9 @@ const DepModInfo g_istep13Dependancies = { DEP_LIB(libistep13.so), DEP_LIB(libisteps_mss.so), DEP_LIB(libcen.so), +#ifdef CONFIG_NVDIMM + DEP_LIB(libnvdimm.so), +#endif NULL } }; diff --git a/src/include/usr/isteps/istep14list.H b/src/include/usr/isteps/istep14list.H index 1a2058167..bf5b00453 100644 --- a/src/include/usr/isteps/istep14list.H +++ b/src/include/usr/isteps/istep14list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2018 */ +/* Contributors Listed Below - COPYRIGHT 2012,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -169,7 +169,11 @@ namespace INITSERVICE { ISTEPNAME(14,04,"mss_power_cleanup"), ISTEP_14::call_mss_power_cleanup, +#ifdef CONFIG_NVDIMM + { START_FN, EXT_IMAGE, MPIPL_OP | NORMAL_IPL_OP, true } +#else { START_FN, EXT_IMAGE, NORMAL_IPL_OP, true } +#endif }, { ISTEPNAME(14,05,"proc_setup_bars"), diff --git a/src/include/usr/isteps/istep21list.H b/src/include/usr/isteps/istep21list.H index 582ecf292..fabfc4be6 100644 --- a/src/include/usr/isteps/istep21list.H +++ b/src/include/usr/isteps/istep21list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2018 */ +/* Contributors Listed Below - COPYRIGHT 2012,2019 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -132,6 +132,9 @@ const DepModInfo g_istep21Dependancies = { #ifndef CONFIG_FSP_BUILD DEP_LIB(libnvram.so), #endif +#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 c1df3033e..6f6b46541 100644 --- a/src/include/usr/isteps/nvdimm/nvdimm.H +++ b/src/include/usr/isteps/nvdimm/nvdimm.H @@ -29,7 +29,7 @@ namespace NVDIMM { -enum +enum nvdimm_err_status { NSTD_VAL_NOPRSV = 0x08, // memory valid, contents not preserved (genesis) NSTD_VAL_NOPRSV_MASK = 0xF7, @@ -41,6 +41,7 @@ enum NSTD_ERR_NOBKUP_MASK = 0xFE, NSTD_ERR = 0x03, // NSTD_ERR_NOPRSV+NSTD_ERR_NOBKUP }; + #ifndef __HOSTBOOT_RUNTIME /** * @brief Entry function to NVDIMM management @@ -76,7 +77,6 @@ errlHndl_t nvdimmEraseNF(TARGETING::Target *i_nvdimm); */ void nvdimmSetStatusFlag(TARGETING::Target *i_nvdimm, const uint8_t i_status_flag); - #ifdef __HOSTBOOT_RUNTIME /** @@ -89,15 +89,16 @@ void nvdimmSetStatusFlag(TARGETING::Target *i_nvdimm, const uint8_t i_status_fla bool nvdimmInErrorState(TARGETING::Target *i_nvdimm); /** - * @brief This function arms the trigger to enable backup in the event - * of power loss (DDR Reset_n goes low) + * @brief This function arms/disarms the trigger based on i_state * * @param[in] i_nvdimm - nvdimm target with NV controller * + * @param[in] i_state - true to arm, false to disarm + * * @return errlHndl_t - Null if successful, otherwise a pointer to * the error log. */ -errlHndl_t nvdimmArmResetN(TARGETING::Target *i_nvdimm); +errlHndl_t nvdimmChangeArmState(TARGETING::Target *i_nvdimm, bool i_state); /** * @brief Arms the trigger to enable backup in the event of a power loss @@ -113,7 +114,6 @@ errlHndl_t nvdimmArmResetN(TARGETING::Target *i_nvdimm); */ bool nvdimmArm(TARGETING::TargetHandleList &i_nvdimmTargetList); - /** * @brief NVDIMM protection state * @@ -139,6 +139,14 @@ enum nvdimm_protection_t errlHndl_t notifyNvdimmProtectionChange(TARGETING::Target* i_target, const nvdimm_protection_t i_state); #endif +/** + * @brief Entry function to NVDIMM initialization + * - Checks for ready state + * - Waits for the ongoing backup to complete + * - Disarms the trigger for draminit + * @param i_target nvdimm target + */ +void nvdimm_init(TARGETING::Target *i_nvdimm); } diff --git a/src/include/usr/vpd/spdenums.H b/src/include/usr/vpd/spdenums.H index 9decbe862..bd6418d5e 100644 --- a/src/include/usr/vpd/spdenums.H +++ b/src/include/usr/vpd/spdenums.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2013,2016 */ +/* Contributors Listed Below - COPYRIGHT 2013,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -142,7 +142,8 @@ enum MODULE_REVISION_CODE_DDR4 = MODULE_REVISION_CODE, DRAM_STEPPING = SPD_FIRST_NORM_KEYWORD | 0x57, MANUFACTURING_SECTION_CRC = SPD_FIRST_NORM_KEYWORD | 0x58, - SPD_LAST_NORM_KEYWORD = SPD_FIRST_NORM_KEYWORD | 0x58, + NVM_INIT_TIME = SPD_FIRST_NORM_KEYWORD | 0x59, + SPD_LAST_NORM_KEYWORD = SPD_FIRST_NORM_KEYWORD | 0x59, // ============================================================== // Module Specific Keywords (Available for both DDR3 and DDR4 DIMMs) |

