summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/runtime/interface.h20
-rw-r--r--src/usr/targeting/runtime/rt_targeting.C25
2 files changed, 40 insertions, 5 deletions
diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
index e436cc699..7258826ca 100644
--- a/src/include/runtime/interface.h
+++ b/src/include/runtime/interface.h
@@ -37,7 +37,7 @@
*/
/** Current interface version.
- * 0x9001: 9=P9, 002=Version 2
+ * 0x9002: 9=P9, 002=Version 2
*/
#define HOSTBOOT_RUNTIME_INTERFACE_VERSION 0x9002
@@ -866,10 +866,22 @@ typedef struct runtimeInterfaces
void (*firmware_notify)( uint64_t len,
void *data );
+ /**
+ * @brief Prepare for HBRT concurrent code update
+ *
+ * @details This call allows the Host to inform HBRT that a concurrent
+ * code update has been initiated. HBRT then prepares updated targeting
+ * data for use by the updated HBRT code.
+ *
+ * @return 0 on success else return code
+ * @platform FSP
+ */
+ int (*prepare_hbrt_update)( void );
+
// Reserve some space for future growth.
- // do NOT ever change this number, even if you add functions.
+ // Currently are decrementing this number as we add functions.
//
- // The value of 32 was somewhat arbitrarily chosen.
+ // The initial value of 32 was somewhat arbitrarily chosen.
//
// If either side modifies the interface.h file we're suppose to be able to
// tolerate the other side not supporting the function yet. The function
@@ -883,7 +895,7 @@ typedef struct runtimeInterfaces
// allocated with sufficient space and populated with NULL function
// pointers. 32 is big enough that we should not likely add that many
// functions from either direction in between any two levels of support.
- void (*reserved[22])(void);
+ void (*reserved[21])(void);
} runtimeInterfaces_t;
diff --git a/src/usr/targeting/runtime/rt_targeting.C b/src/usr/targeting/runtime/rt_targeting.C
index 372d2baf4..96a024ffe 100644
--- a/src/usr/targeting/runtime/rt_targeting.C
+++ b/src/usr/targeting/runtime/rt_targeting.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2016 */
+/* Contributors Listed Below - COPYRIGHT 2014,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -37,6 +37,7 @@
#include <arch/pirformat.H>
#include <runtime/customize_attrs_for_payload.H>
#include <runtime/rt_targeting.H>
+#include <runtime/interface.h>
#include <map>
#include <util/memoize.H>
@@ -171,4 +172,26 @@ errlHndl_t getHbTarget(
return Util::Memoize::memoize(_getHbTarget,i_rtTargetId,o_target);
}
+int hbrt_update_prep(void)
+{
+ int rc = 0;
+
+ return rc;
+}
+
+ //------------------------------------------------------------------------
+
+ struct registerRtTarg
+ {
+ registerRtTarg()
+ {
+/* Do not register interface until HB is ready for Host to call it
+ @TODO RTC: 181285 to enable the interface
+ runtimeInterfaces_t * rt_intf = getRuntimeInterfaces();
+ rt_intf->prepare_hbrt_update = &hbrt_update_prep; */
+ }
+ };
+
+ registerRtTarg g_registerRtTarg;
+
}; // End namespace RT_TARG
OpenPOWER on IntegriCloud