diff options
Diffstat (limited to 'procedures/p9/vcs_workaround.cpp')
-rw-r--r-- | procedures/p9/vcs_workaround.cpp | 12 |
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())); |