From a96914fab1c366bb8945fbd08c44e90ecbc0454b Mon Sep 17 00:00:00 2001 From: Corey Swenson Date: Wed, 25 Sep 2019 22:33:26 -0500 Subject: Add support for NVDIMM secure erase verify Add nvdimm operations to interface Add wrapper for factory default function Add secure erase verify start function Add secure erase verify status function Change-Id: I84774e679593e7df1907c1a442c831b2f4df88d9 CQ:SW475562 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/84301 Reviewed-by: Matt Derksen Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Roland Veloz Reviewed-by: Daniel M Crowell --- src/usr/isteps/nvdimm/nvdimm.H | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'src/usr/isteps/nvdimm/nvdimm.H') diff --git a/src/usr/isteps/nvdimm/nvdimm.H b/src/usr/isteps/nvdimm/nvdimm.H index 1e4e1596c..e66e42470 100644 --- a/src/usr/isteps/nvdimm/nvdimm.H +++ b/src/usr/isteps/nvdimm/nvdimm.H @@ -305,18 +305,23 @@ enum i2cReg : uint16_t BPM_PAYLOAD_LENGTH = 0x442, BPM_REG_ERR_STATUS = 0x443, BPM_REG_PAYLOAD_START = 0x444, - ENCRYPTION_COMMAND = 0x51F, - ENCRYPTION_CONFIG_STATUS = 0x520, - ENCRYPTION_ACCESS_KEY_SET = 0x521, - ENCRYPTION_ACCESS_KEY_VERIFY = 0x522, - ENCRYPTION_ACCESS_KEY_UNLOCK = 0x523, - ENCRYPTION_RAMDOM_STRING_SET = 0x524, - ENCRYPTION_RANDOM_STRING_VERIFY = 0x525, - ENCRYPTION_ERASE_KEY_SET = 0x526, - ENCRYPTION_ERASE_KEY_VERIFY = 0x527, - ENCRYPTION_ERASE_KEY_TEST = 0x528, + ERASE_VERIFY_CONTROL = 0x51A, + ERASE_VERIFY_STATUS = 0x51B, + ERASE_VERIFY_RESULT_LSB = 0x51C, + ERASE_VERIFY_RESULT_MSB = 0x51D, + ERASE_VERIFY_TEST = 0x51E, + ENCRYPTION_COMMAND = 0x51F, + ENCRYPTION_CONFIG_STATUS = 0x520, + ENCRYPTION_ACCESS_KEY_SET = 0x521, + ENCRYPTION_ACCESS_KEY_VERIFY = 0x522, + ENCRYPTION_ACCESS_KEY_UNLOCK = 0x523, + ENCRYPTION_RAMDOM_STRING_SET = 0x524, + ENCRYPTION_RANDOM_STRING_VERIFY = 0x525, + ENCRYPTION_ERASE_KEY_SET = 0x526, + ENCRYPTION_ERASE_KEY_VERIFY = 0x527, + ENCRYPTION_ERASE_KEY_TEST = 0x528, ENCRYPTION_ERASE_KEY_TEST_VERIFY = 0x529, - ENCRYPTION_KEY_VALIDATION = 0x52A, + ENCRYPTION_KEY_VALIDATION = 0x52A, }; // i2cReg macros @@ -715,6 +720,17 @@ void nvdimmSetEncryptionError(TARGETING::Target *i_nvdimm); errlHndl_t nvdimmResetController(TARGETING::Target *i_nvdimm); +/** + * @brief Helper function to factory reset NVDIMM + * + * @param[in] i_nvdimm - nvdimm target + * + * @return errlHndl_t - Null if successful, otherwise a pointer to + * the error log + */ +errlHndl_t nvdimm_factory_reset(TARGETING::Target *i_nvdimm); + + #ifndef __HOSTBOOT_RUNTIME /** -- cgit v1.2.1