summaryrefslogtreecommitdiffstats
path: root/src/include/usr/isteps
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2018-12-10 16:38:11 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-28 10:24:21 -0600
commit37e67698be56632c6505990dc3375136494d2a67 (patch)
treea23967962c1e31f9a2a8b7430fff1b10232241b2 /src/include/usr/isteps
parent80cea86add7ba742181cd272b16e10185b5e9a4d (diff)
downloadtalos-hostboot-37e67698be56632c6505990dc3375136494d2a67.tar.gz
talos-hostboot-37e67698be56632c6505990dc3375136494d2a67.zip
Framework for NVDIMM update
This includes framework to update the firmware running on the NV controller. The controller requires 12V power to update, so this function in inside hostboot. Change-Id: I0733d83ff6ba2fc3f026d49c72784b1295bd3eed RTC:201197 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69879 Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-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/include/usr/isteps')
-rw-r--r--src/include/usr/isteps/istep20list.H5
-rw-r--r--src/include/usr/isteps/nvdimm/nvdimm.H15
-rw-r--r--src/include/usr/isteps/nvdimm/nvdimmreasoncodes.H2
3 files changed, 21 insertions, 1 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
OpenPOWER on IntegriCloud