diff options
author | whs <whs@us.ibm.com> | 2016-03-14 16:31:27 -0500 |
---|---|---|
committer | Stephen Cprek <smcprek@us.ibm.com> | 2016-04-21 13:51:47 -0500 |
commit | 9dee05c3d4c801d74972216a8c501e5c1c3fc2b6 (patch) | |
tree | 4acaf595a78857f595acdd9b17f03fd118411079 /src/usr/isteps/istep06 | |
parent | 25bc87d9fc30db27f8c78019858f832c92d69097 (diff) | |
download | talos-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.C | 11 |
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 |