summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/isteps/istep21list.H1
-rw-r--r--src/include/usr/isteps/pm/pm_common_ext.H40
-rw-r--r--src/include/usr/runtime/runtime_reasoncodes.H3
3 files changed, 44 insertions, 0 deletions
diff --git a/src/include/usr/isteps/istep21list.H b/src/include/usr/isteps/istep21list.H
index de8dfd99d..0132fc358 100644
--- a/src/include/usr/isteps/istep21list.H
+++ b/src/include/usr/isteps/istep21list.H
@@ -123,6 +123,7 @@ const DepModInfo g_istep21Dependancies = {
DEP_LIB(libdevtree.so),
DEP_LIB(libruntime.so),
DEP_LIB(libp9_cpuWkup.so),
+ DEP_LIB(libpm.so),
NULL
}
};
diff --git a/src/include/usr/isteps/pm/pm_common_ext.H b/src/include/usr/isteps/pm/pm_common_ext.H
index bd8e87633..be7e9e9b0 100644
--- a/src/include/usr/isteps/pm/pm_common_ext.H
+++ b/src/include/usr/isteps/pm/pm_common_ext.H
@@ -30,6 +30,23 @@
namespace HBPM
{
/**
+ * @brief Enumeration of the load PM complex mode
+ * LOAD == i_mode
+ * - Call pm_reset first
+ * - Load OCC lid, write OCC config data, build Pstate
+ * Parameter Blocks, and load Hcode reference image lid
+ * RELOAD == i_mode
+ * - Reload OCC lid, rewrite OCC config data, build Pstate
+ * Parameter Blocks, and rebuild Hcode
+ */
+ enum loadPmMode
+ {
+ PM_LOAD = 0x0,
+ PM_RELOAD = 0x1,
+ PM_UNKNOWN = 0xFF,
+ };
+
+ /**
* @brief Convert HOMER physical address space to a vitual address
* @param[in] i_proc_target Processsor target
* @param[in] i_phys_addr Physical address
@@ -38,6 +55,29 @@ namespace HBPM
void *convertHomerPhysToVirt( TARGETING::Target* i_proc_target,
uint64_t i_phys_addr);
+ /**
+ * @brief Load PM Complex for all proc targets.
+ *
+ * @param[in] i_mode Load / Reload
+ *
+ * @return errlHndl_t Error log of loadPMAll failed
+ */
+ errlHndl_t loadPMAll(loadPmMode i_mode);
+
+ /**
+ * @brief Start PM Complex for all proc targets.
+ *
+ * @return errlHndl_t Error log if startPMAll failed
+ */
+ errlHndl_t startPMAll();
+
+ /**
+ * @brief Reset PM Complex for all proc targets.
+ *
+ * @return errlHndl_t Error log if resetPMAll failed
+ */
+ errlHndl_t resetPMAll();
+
} //namespace HBPM ends
#endif
diff --git a/src/include/usr/runtime/runtime_reasoncodes.H b/src/include/usr/runtime/runtime_reasoncodes.H
index ab75d4bfd..afff1c07b 100644
--- a/src/include/usr/runtime/runtime_reasoncodes.H
+++ b/src/include/usr/runtime/runtime_reasoncodes.H
@@ -54,6 +54,8 @@ namespace RUNTIME
MOD_CUST_COMP_NON_PHYP_RT_TARGET = 0x12,
MOD_CUST_CONF_HBRT_HYP_IDS = 0x13,
MOD_POPULATE_RTDATABYNODE = 0x14, /**< populate_hbruntime.C */
+
+ MOD_PM_RT_LOAD_PM_COMPLEX = 0x15, /**< rt_pm.C */
};
enum RuntimeReasonCode
@@ -87,6 +89,7 @@ namespace RUNTIME
RT_TARGET_TYPE_NOT_SUPPORTED = RUNTIME_COMP_ID | 0x1A,
RT_NO_PROC_TARGET = RUNTIME_COMP_ID | 0x1B,
RC_UNMAP_FAIL = RUNTIME_COMP_ID | 0x1C,
+ RC_PM_RT_UNKNOWN_MODE = RUNTIME_COMP_ID | 0x1D,
};
enum UserDetailsTypes
OpenPOWER on IntegriCloud