summaryrefslogtreecommitdiffstats
path: root/src/build/buildpnor/PnorUtils.pm
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-08-14 10:02:43 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-09-14 22:29:41 -0400
commit9acfce99596f12dcc60952f8506a77e542609cbf (patch)
treec0053f3d4c74e412f598c7d704da02c4c83bc0de /src/build/buildpnor/PnorUtils.pm
parent16887e07aa54b19b64f8c754d41b6076fe72464f (diff)
downloadtalos-hostboot-9acfce99596f12dcc60952f8506a77e542609cbf.tar.gz
talos-hostboot-9acfce99596f12dcc60952f8506a77e542609cbf.zip
Clear ECC sections marked "clearOnEccErr" on error
- Add the capability for Hostboot to recover (with reboot) when it consumes an ECC error - PNOR layout needs to be updated to flag the recoverable sections (generally cached or throw away data like *VPD HBEL, and GUARD partitions) - Upon bad ECC detection, Hostboot will check partition flag and if set, it will clear and write good ECC to PNOR. It will then throw the normal error and terminate, waiting for the BMC to issue a reboot Change-Id: Ie4f4c0637d3962e9d4871e84a0bda8c256a74440 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44608 Reviewed-by: Stephen M. Cprek <smcprek@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: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/build/buildpnor/PnorUtils.pm')
-rw-r--r--src/build/buildpnor/PnorUtils.pm2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/build/buildpnor/PnorUtils.pm b/src/build/buildpnor/PnorUtils.pm
index 4c7e0a9fe..d6c796882 100644
--- a/src/build/buildpnor/PnorUtils.pm
+++ b/src/build/buildpnor/PnorUtils.pm
@@ -156,6 +156,7 @@ sub loadPnorLayout
my $sha512perEC = (exists $sectionEl->{sha512perEC} ? "yes" : "no");
my $preserved = (exists $sectionEl->{preserved} ? "yes" : "no");
my $reprovision = (exists $sectionEl->{reprovision} ? "yes" : "no");
+ my $clearOnEccErr = (exists $sectionEl->{clearOnEccErr} ? "yes" : "no");
my $readOnly = (exists $sectionEl->{readOnly} ? "yes" : "no");
if (($i_testRun == 0) && ($sectionEl->{testonly}[0] eq "yes"))
{
@@ -182,6 +183,7 @@ sub loadPnorLayout
$$i_pnorLayoutRef{sections}{$physicalOffset}{sha512perEC} = $sha512perEC;
$$i_pnorLayoutRef{sections}{$physicalOffset}{preserved} = $preserved;
$$i_pnorLayoutRef{sections}{$physicalOffset}{reprovision} = $reprovision;
+ $$i_pnorLayoutRef{sections}{$physicalOffset}{clearOnEccErr} = $clearOnEccErr;
$$i_pnorLayoutRef{sections}{$physicalOffset}{readOnly} = $readOnly;
#store the physical offsets of each section in a hash, so, it is easy
OpenPOWER on IntegriCloud