summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep06
diff options
context:
space:
mode:
authorwhs <whs@us.ibm.com>2016-03-14 16:31:27 -0500
committerStephen Cprek <smcprek@us.ibm.com>2016-04-21 13:51:47 -0500
commit9dee05c3d4c801d74972216a8c501e5c1c3fc2b6 (patch)
tree4acaf595a78857f595acdd9b17f03fd118411079 /src/usr/isteps/istep06
parent25bc87d9fc30db27f8c78019858f832c92d69097 (diff)
downloadtalos-hostboot-9dee05c3d4c801d74972216a8c501e5c1c3fc2b6.tar.gz
talos-hostboot-9dee05c3d4c801d74972216a8c501e5c1c3fc2b6.zip
VPD Caching broken on multiple socket, single CVPD systems (Barreleye)
Invalidate Centaur Pnor sections if the section is invalid for all targets that share that section. Keep a section if any target sharing the section finds the section valid. Fixes: open-power/hostboot#29 Change-Id: I14302e38f1d39f3bb4e1857267e1547d1a06302b Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22047 Tested-by: Jenkins Server Reviewed-by: A. P. Williams III <iawillia@us.ibm.com> Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22153 Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep06')
-rw-r--r--src/usr/isteps/istep06/host_discover_targets.C11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/usr/isteps/istep06/host_discover_targets.C b/src/usr/isteps/istep06/host_discover_targets.C
index 6ed27ce31..b13c6f529 100644
--- a/src/usr/isteps/istep06/host_discover_targets.C
+++ b/src/usr/isteps/istep06/host_discover_targets.C
@@ -42,6 +42,7 @@
#include <hwas/common/hwasCommon.H>
#include <hwas/common/hwas_reasoncodes.H>
#include <hwas/hwasPlat.H>
+#include <vpd/vpd_if.H>
namespace ISTEP_06
{
@@ -75,6 +76,16 @@ void* host_discover_targets( void *io_pArgs )
l_err = HWAS::discoverTargets();
}
+#if (defined(CONFIG_MEMVPD_READ_FROM_HW)&&defined(CONFIG_MEMVPD_READ_FROM_PNOR))
+ // Now that all targets have completed presence detect and vpd access,
+ // invalidate PNOR::CENTAUR_VPD sections where all the targets sharing a
+ // VPD_REC_NUM are invalid.
+ if (NULL == l_err) //discoverTargets worked
+ {
+ l_err = VPD::validateSharedPnorCache();
+ }
+#endif
+
if (l_err)
{
// Create IStep error log and cross reference occurred error
OpenPOWER on IntegriCloud