summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r--src/usr/hwpf/hwp/start_payload/start_payload.C26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.C b/src/usr/hwpf/hwp/start_payload/start_payload.C
index 7d28ae0b0..0428000ac 100644
--- a/src/usr/hwpf/hwp/start_payload/start_payload.C
+++ b/src/usr/hwpf/hwp/start_payload/start_payload.C
@@ -87,6 +87,8 @@
#include <algorithm>
#include <config.h>
#include <ipmi/ipmiwatchdog.H>
+#include <vpd/vpd_if.H>
+
// Uncomment these files as they become available:
// #include "host_start_payload/host_start_payload.H"
@@ -351,6 +353,30 @@ void* call_host_runtime_setup( void *io_pArgs )
// break from do loop if error occured
break;
}
+
+#ifdef CONFIG_PNOR_TWO_SIDE_SUPPORT
+ // We also need to wipe the cache out after booting from the
+ // golden side of pnor
+ PNOR::SideInfo_t l_pnorInfo;
+ l_err = PNOR::getSideInfo( PNOR::WORKING, l_pnorInfo );
+ if( l_err )
+ {
+ // commit the error but keep going
+ errlCommit(l_err, ISTEP_COMP_ID);
+ // force the caches to get wiped out just in case
+ l_pnorInfo.isGolden = true;
+ }
+ if( l_pnorInfo.isGolden )
+ {
+ // Invalidate the VPD Caches for all targets
+ l_err = VPD::invalidateAllPnorCaches(true);
+ if (l_err)
+ {
+ break;
+ }
+ }
+#endif
+
}
else if( is_sapphire_load() )
{
OpenPOWER on IntegriCloud