diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/usr/isteps/istep21list.H | 1 | ||||
| -rw-r--r-- | src/include/usr/isteps/pm/pm_common_ext.H | 40 | ||||
| -rw-r--r-- | src/include/usr/runtime/runtime_reasoncodes.H | 3 |
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 |

