summaryrefslogtreecommitdiffstats
path: root/procedures/p9/vcs_workaround.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'procedures/p9/vcs_workaround.cpp')
-rw-r--r--procedures/p9/vcs_workaround.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/procedures/p9/vcs_workaround.cpp b/procedures/p9/vcs_workaround.cpp
index 07e7fd0..1cb51b5 100644
--- a/procedures/p9/vcs_workaround.cpp
+++ b/procedures/p9/vcs_workaround.cpp
@@ -39,6 +39,18 @@ void vcsWorkaround()
Targeting targets;
const auto& master = *(targets.begin());
+ // First determine if we need to run this workaround (not needed on chips
+ // which are not DD1.0)
+ // Mixing DD1.0 parts with other levels is not allowed so just look
+ // at the first chip
+ auto chipID = readReg(master, P9_FSI2PIB_CHIPID);
+ if (chipID != P9_DD10_CHIPID)
+ {
+ log<level::INFO>("P9 procedure vcsWorkaround not needed",
+ entry("CHIPID=0x%08X", chipID));
+ return;
+ }
+
log<level::INFO>("Running P9 procedure vcsWorkaround",
entry("NUM_PROCS=%d", targets.size()));
OpenPOWER on IntegriCloud