From 06d0a08aa27fa9e28cc300fbd2814fd9b84d59cf Mon Sep 17 00:00:00 2001 From: Corey Swenson Date: Wed, 17 Apr 2019 15:57:46 -0500 Subject: Add NVDIMM key attributes and generate keys 3 keys, 32 bytes each, random numbers generated by TPM hardware. 2 attributes for keys, 1 stored in FW 1 stored in anchor card. 1 attribute for enable/disable encryption. Change-Id: Ie3c258f06204e68c2d65b8d5fea294da5264d597 RTC:208342 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76126 Tested-by: Jenkins Server Reviewed-by: Matt Derksen Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- src/include/usr/isteps/nvdimm/nvdimm.H | 11 ++++++++++- src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src/include') diff --git a/src/include/usr/isteps/nvdimm/nvdimm.H b/src/include/usr/isteps/nvdimm/nvdimm.H index 567299925..864ef187f 100644 --- a/src/include/usr/isteps/nvdimm/nvdimm.H +++ b/src/include/usr/isteps/nvdimm/nvdimm.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2018 */ +/* Contributors Listed Below - COPYRIGHT 2018,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -72,6 +72,15 @@ bool nvdimm_update(TARGETING::TargetHandleList &i_nvdimmList); #endif +/** + * @brief Entry function to NVDIMM generate keys + * Generate encryption keys if required and set the FW key attribute + * + * @param[in] i_nvdimmList - list of nvdimm targets + * + */ +void nvdimm_gen_keys(TARGETING::TargetHandleList &i_nvdimmList); + /** * @brief This function erases image on the nvdimm target * diff --git a/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H b/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H index 0b1680d92..f84581896 100644 --- a/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H +++ b/src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H @@ -85,6 +85,8 @@ enum nvdimmModuleId VALIDATE_FW_IMAGE = 0x23, WAIT_FW_OPS_BLOCK_RECEIVED = 0x24, NVDIMM_IS_UPDATE_NEEDED = 0x25, + NVDIMM_RUN_UPDATE_USING_LID = 0x26, + NVDIMM_GEN_KEYS = 0x27, }; /** @@ -135,6 +137,9 @@ enum nvdimmReasonCode NVDIMM_BLOCK_NOT_RECEIVED = NVDIMM_COMP_ID | 0x25, // Block data not received NVDIMM_FW_OPS_NOT_SUCCESSFUL = NVDIMM_COMP_ID | 0x26, // Unsuccessful Firmware Operation NVDIMM_UPDATE_NOT_SUPPORTED = NVDIMM_COMP_ID | 0x27, // NV controller cannot be updated + NVDIMM_START_UPDATE = NVDIMM_COMP_ID | 0x28, // start update + NVDIMM_UPDATE_COMPLETE = NVDIMM_COMP_ID | 0x29, // update completed + NVDIMM_TPM_NOT_FOUND = NVDIMM_COMP_ID | 0x30, // TPM not found }; enum UserDetailsTypes -- cgit v1.2.3