diff options
Diffstat (limited to 'src/usr/isteps')
-rw-r--r-- | src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C | 15 | ||||
-rw-r--r-- | src/usr/isteps/istep14/call_proc_exit_cache_contained.C | 24 | ||||
-rw-r--r-- | src/usr/isteps/istep14/call_proc_setup_bars.C | 15 |
3 files changed, 53 insertions, 1 deletions
diff --git a/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C b/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C index 6aba97bc5..f0828b072 100644 --- a/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C +++ b/src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C @@ -102,6 +102,11 @@ #include "../../secureboot/common/errlud_secure.H" #include <sbe/sbe_update.H> +#ifdef CONFIG_SECUREBOOT +#include <secureboot/service.H> +#include <scom/centaurScomCache.H> +#endif + // end includes for post sbe secureboot steps const uint64_t MS_TO_WAIT_FIRST = 2500; //(2.5 s) @@ -817,6 +822,16 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs ) validateSecuritySettings(); +#ifdef CONFIG_SECUREBOOT + if(SECUREBOOT::enabled()) + { + SECUREBOOT::CENTAUR_SECURITY::ScomCache& centaurCache = + SECUREBOOT::CENTAUR_SECURITY::ScomCache::getInstance(); + centaurCache.init(); + centaurCache.enableCache(); + } +#endif + TARGETING::TargetHandleList functionalProcChipList; getAllChips(functionalProcChipList, TYPE_PROC, true); diff --git a/src/usr/isteps/istep14/call_proc_exit_cache_contained.C b/src/usr/isteps/istep14/call_proc_exit_cache_contained.C index f018c452b..46ed22845 100644 --- a/src/usr/isteps/istep14/call_proc_exit_cache_contained.C +++ b/src/usr/isteps/istep14/call_proc_exit_cache_contained.C @@ -51,6 +51,11 @@ #include <util/misc.H> #include <hwas/common/hwas.H> +#ifdef CONFIG_SECUREBOOT +#include <secureboot/service.H> +#include <scom/centaurScomCache.H> +#endif + using namespace ISTEP; using namespace ISTEP_ERROR; using namespace ERRORLOG; @@ -69,6 +74,24 @@ void* call_proc_exit_cache_contained (void *io_pArgs) TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_exit_cache_contained entry" ); + errlHndl_t l_errl = nullptr; + +#ifdef CONFIG_SECUREBOOT + if(SECUREBOOT::enabled()) + { + SECUREBOOT::CENTAUR_SECURITY::ScomCache& centaurCache = + SECUREBOOT::CENTAUR_SECURITY::ScomCache::getInstance(); + + l_errl = centaurCache.verify(); + if(l_errl) + { + l_stepError.addErrorDetails(l_errl); + errlCommit(l_errl, HWPF_COMP_ID ); + } + + centaurCache.destroy(); + } +#endif // @@@@@ CUSTOM BLOCK: @@@@@ // figure out what targets we need @@ -87,7 +110,6 @@ void* call_proc_exit_cache_contained (void *io_pArgs) //Check that minimum hardware requirement is meet. //If not, log error and do not proceed bool l_bootable; - errlHndl_t l_errl = nullptr; l_errl = HWAS::checkMinimumHardware(l_sys, &l_bootable); if (!l_bootable && !l_errl) { diff --git a/src/usr/isteps/istep14/call_proc_setup_bars.C b/src/usr/isteps/istep14/call_proc_setup_bars.C index e42ba9a07..08d1708d3 100644 --- a/src/usr/isteps/istep14/call_proc_setup_bars.C +++ b/src/usr/isteps/istep14/call_proc_setup_bars.C @@ -22,6 +22,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ +#include <config.h> #include <errl/errlentry.H> #include <isteps/hwpisteperror.H> #include <initservice/isteps_trace.H> @@ -48,6 +49,10 @@ #include <attribute_ids.H> +#ifdef CONFIG_SECUREBOOT +#include <scom/centaurScomCache.H> +#endif + using namespace ISTEP_ERROR; using namespace ERRORLOG; @@ -188,6 +193,7 @@ void* call_proc_setup_bars (void *io_pArgs) } // end if !l_errl +#ifdef CONFIG_SECUREBOOT // Assuming no errors, secure any Centaurs if ( l_stepError.isNull() ) { @@ -247,7 +253,16 @@ void* call_proc_setup_bars (void *io_pArgs) } } } + + if(SECUREBOOT::CENTAUR_SECURITY::ScomCache::getInstance(). + cacheEnabled()) + { + SECUREBOOT::CENTAUR_SECURITY::ScomCache::getInstance(). + disableCache(); + } + } +#endif if ( l_errl ) { |