diff options
-rw-r--r-- | src/include/runtime/interface.h | 20 | ||||
-rw-r--r-- | src/usr/targeting/runtime/rt_targeting.C | 25 |
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 |