summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/runtime/interface.h5
-rw-r--r--src/include/usr/isteps/pm/pm_common_ext.H25
-rw-r--r--src/include/usr/runtime/runtime_reasoncodes.H5
-rw-r--r--src/include/usr/scom/scomif.H49
4 files changed, 79 insertions, 5 deletions
diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
index f5eb2cba1..316bd2d03 100644
--- a/src/include/runtime/interface.h
+++ b/src/include/runtime/interface.h
@@ -407,7 +407,8 @@ typedef struct hostInterfaces
* @pre HBRT is responsible for enabling special wakeup on the
* associated core(s) before calling this interface
*
- * @param i_homer start address of the homer image
+ * @param i_chipId processor chip ID
+ plus ID type, always proc (0x0)
* @param i_section runtime section to update
* (passthru to pore_gen_scom)
* @param i_operation type of operation to perform
@@ -419,7 +420,7 @@ typedef struct hostInterfaces
* Any value other than 0 on failure.
* @platform FSP, OpenPOWER
*/
- int (*hcode_scom_update)( uint64_t i_homer,
+ int (*hcode_scom_update)( uint64_t i_chipId,
uint32_t i_section,
uint32_t i_operation,
uint64_t i_scomAddr,
diff --git a/src/include/usr/isteps/pm/pm_common_ext.H b/src/include/usr/isteps/pm/pm_common_ext.H
index c503ada82..0d024ac43 100644
--- a/src/include/usr/isteps/pm/pm_common_ext.H
+++ b/src/include/usr/isteps/pm/pm_common_ext.H
@@ -31,13 +31,15 @@ namespace HBPM
{
/**
* @brief Enumeration of the load PM complex mode
- * LOAD == i_mode
+ * LOAD
* - 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
* - Reload OCC lid, rewrite OCC config data, build Pstate
* Parameter Blocks, and rebuild Hcode
+ * UNKNOWN
+ * - Unknown PM load type, do not load OCC/HCODE
*/
enum loadPmMode
{
@@ -88,6 +90,25 @@ namespace HBPM
*/
errlHndl_t getRingOvd(void*& io_overrideImg);
+#if __HOSTBOOT_RUNTIME
+ /**
+ * @brief Modify the SCOM restore section of the HCODE image with the
+ * given register data
+ * @param i_section Runtime section to update
+ * (passthru to pore_gen_scom)
+ * @param i_operation Type of operation to perform
+ * (passthru to pore_gen_scom)
+ * @param i_target Target owning the scom address
+ * @param i_rel_scom_addr Fully qualified scom address
+ * @param i_scom_data Data for operation
+ * @return errlHndl_t
+ */
+ errlHndl_t hcode_update( uint32_t i_section,
+ uint32_t i_operation,
+ TARGETING::Target* i_target,
+ uint64_t i_rel_scom_addr,
+ uint64_t i_scom_data );
+#endif
} //namespace HBPM ends
#endif
diff --git a/src/include/usr/runtime/runtime_reasoncodes.H b/src/include/usr/runtime/runtime_reasoncodes.H
index afff1c07b..469d2a6b2 100644
--- a/src/include/usr/runtime/runtime_reasoncodes.H
+++ b/src/include/usr/runtime/runtime_reasoncodes.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2016 */
+/* Contributors Listed Below - COPYRIGHT 2012,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -56,6 +56,7 @@ namespace RUNTIME
MOD_POPULATE_RTDATABYNODE = 0x14, /**< populate_hbruntime.C */
MOD_PM_RT_LOAD_PM_COMPLEX = 0x15, /**< rt_pm.C */
+ MOD_PM_RT_HCODE_UPDATE = 0x16, /**< rt_pm.C */
};
enum RuntimeReasonCode
@@ -90,6 +91,8 @@ namespace RUNTIME
RT_NO_PROC_TARGET = RUNTIME_COMP_ID | 0x1B,
RC_UNMAP_FAIL = RUNTIME_COMP_ID | 0x1C,
RC_PM_RT_UNKNOWN_MODE = RUNTIME_COMP_ID | 0x1D,
+ RC_PM_RT_INTERFACE_ERR = RUNTIME_COMP_ID | 0x1E,
+ RC_PM_RT_HCODE_UPDATE_ERR = RUNTIME_COMP_ID | 0x1F,
};
enum UserDetailsTypes
diff --git a/src/include/usr/scom/scomif.H b/src/include/usr/scom/scomif.H
new file mode 100644
index 000000000..4bba1112b
--- /dev/null
+++ b/src/include/usr/scom/scomif.H
@@ -0,0 +1,49 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/scom/scomif.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __SCOMIF_H
+#define __SCOMIF_H
+
+namespace SCOM
+{
+
+/**
+ * @brief This function translates a relative scom address
+ * to an absolute scom address
+ *
+ * @param[in] i_target SCom target
+ * @param[in|out] io_addr SCom address
+ * @param[out] o_needsWakeup Enable SW before scom
+ * @param[in] i_opMode Defaults to 0 (Standard)
+ * @return errlHndl_t
+ */
+errlHndl_t scomTranslate(TARGETING::Target * &i_target,
+ uint64_t & io_addr,
+ bool & o_needsWakeup,
+ uint64_t i_opMode = 0);
+
+
+}; // end namespace SCOM
+
+#endif // end __SCOMIF_H
OpenPOWER on IntegriCloud