From e0a1b4a4f6d9bd7927fddcc508d24f9218dfbb13 Mon Sep 17 00:00:00 2001 From: Dean Sanner Date: Thu, 27 Apr 2017 09:32:02 -0500 Subject: Add support for remembering deconfigs without GUARD Currently on reconfig reboots only parts that are GUARDed are remembered and reapplied. - Add suport for a semi persisent PNOR partition, HB_VOLATILE which Hostboot uses to keep track of the reconfig reboots vs power off - Add a new GUARD type specifically for reconfig loops - Add RECALL_DECONFIG_ON_RECONFIG config flag to control what gets added to GUARD partition - During boot will add/clear guard records on deconfig based on config flags and semi persisent state. Change-Id: Iec636058cde8095c0c4216d1f95ae4fda554395e Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39780 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Reviewed-by: William G. Hoffa Tested-by: FSP CI Jenkins Reviewed-by: Stephen M. Cprek Reviewed-by: Daniel M. Crowell --- src/usr/isteps/istep16/call_host_ipl_complete.C | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/usr/isteps/istep16') diff --git a/src/usr/isteps/istep16/call_host_ipl_complete.C b/src/usr/isteps/istep16/call_host_ipl_complete.C index 1242367ef..87eca889b 100644 --- a/src/usr/isteps/istep16/call_host_ipl_complete.C +++ b/src/usr/isteps/istep16/call_host_ipl_complete.C @@ -46,6 +46,9 @@ #include #include +#include +#include + using namespace ERRORLOG; using namespace TARGETING; using namespace ISTEP; @@ -64,6 +67,26 @@ void* call_host_ipl_complete (void *io_pArgs) "call_host_ipl_complete entry" ); do { + //No more reconfig loops are supported from this point + //forward. Clean up the semi persistent area + // 1) clear magic number (so next boot thinks it is cold) + // 2) clear any reconfig specific gard records + Util::semiPersistData_t l_semiData; //inits to 0s + Util::writeSemiPersistData(l_semiData); + + l_err = HWAS::clearGardByType(HWAS::GARD_Reconfig); + if (l_err) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: clearGardByType( )", + l_err->reasonCode() ); + // Create IStep error log and cross ref error that occurred + l_stepError.addErrorDetails( l_err ); + errlCommit( l_err, ISTEP_COMP_ID ); + } + + + // Setup the TCEs needed for the FSP to DMA the PAYLOAD /* @TODO RTC 168745 - make this call when FSP is ready for TCE Support * and add check that we're on a FSP system -- cgit v1.2.1