summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2017-10-10 14:33:50 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-10-19 22:22:27 -0400
commitb950ea3af7bc174d5ff5b1c9617cb2c8be742d17 (patch)
treed0e168502c4397ef53007c7b13331729661f9a9c /src
parent01de34913eb48a7ccc06eddfe3ac68a5be9c0dd1 (diff)
downloadtalos-hostboot-b950ea3af7bc174d5ff5b1c9617cb2c8be742d17.tar.gz
talos-hostboot-b950ea3af7bc174d5ff5b1c9617cb2c8be742d17.zip
Concurrent code update of HBRT - Runtime Interface
Create the runtime interface for PHYP to call. Change-Id: I1ec7ca2df4491b5a6fa83e12261679165d177a27 RTC: 180906 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48209 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: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-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