summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2016-09-20 16:22:57 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-09-23 12:07:00 -0400
commit5e28eb679db54fa4f0040dd712b311d441ed6ca2 (patch)
tree856c0b093ede5d9aa8b36d14e5eb0dac96be9f72
parent0e25c0479f1467b068fc1334295f15c4a1a2302e (diff)
downloadtalos-hostboot-5e28eb679db54fa4f0040dd712b311d441ed6ca2.tar.gz
talos-hostboot-5e28eb679db54fa4f0040dd712b311d441ed6ca2.zip
Changes for P9 SBE - Clean-up work from MRW
Finalize changes needed to correctly set MRW for SBE Update and SBE SEEPROMs. Check for receiving 0 as the Nest PLL Bucket ID. Change-Id: Ic6d47a8135ccc01f15d5d0d6a64736da31661090 RTC:161049 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29995 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Andres A. Lugo-Reyes <aalugore@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/usr/devicefw/associator.C11
-rw-r--r--src/usr/sbe/sbe_update.C10
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl36
-rw-r--r--src/usr/targeting/common/processMrw.pl2
4 files changed, 50 insertions, 9 deletions
diff --git a/src/usr/devicefw/associator.C b/src/usr/devicefw/associator.C
index 088deff90..a7bc7508e 100644
--- a/src/usr/devicefw/associator.C
+++ b/src/usr/devicefw/associator.C
@@ -298,7 +298,7 @@ namespace DeviceFW
// Check op type = i_opType registrations.
if (0 != ops[i_opType].offset)
{
- // Check access type = WILDCARD registrations.
+ // Check access type = i_opType registrations.
if(ops[i_opType].flag)
{
l_devRoute =
@@ -321,6 +321,15 @@ namespace DeviceFW
TRACDCOMP(g_traceBuffer, "findDeviceRoute did not find "
"i_opType=%d registration match", i_opType );
}
+ else
+ {
+ TRACDCOMP(g_traceBuffer, "findDeviceRoute, no op type %d "
+ "registrations, iv_routeMap=%d, routeMap=%p, "
+ "i_accessType=%d, offset=%d, ops=%p, "
+ "&ops[i_opType]=%p",
+ i_opType, iv_routeMap, routeMap, i_accessType,
+ routeMap[i_accessType].offset, ops, &ops[i_opType] );
+ }
} while(0);
return l_devRoute;
diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
index faf90c581..daffc76f3 100644
--- a/src/usr/sbe/sbe_update.C
+++ b/src/usr/sbe/sbe_update.C
@@ -4449,7 +4449,15 @@ namespace SBE
size_t sizeOfPll = sizeof(NEST_PLL_FREQ_LIST)/
sizeof(NEST_PLL_FREQ_LIST[0]);
-
+ // Put in an override if 0 is received -- @TODO RTC:161398 to remove
+ if (0 == l_scratch4.nestPllBucket)
+ {
+ // ID of 0 is invalid, so default ID to 3 instead
+ l_scratch4.nestPllBucket = 3;
+ TRACFCOMP(g_trac_sbe,
+ "Nest PLL bucket id is invalid, changed id to %d",
+ l_scratch4.nestPllBucket );
+ }
assert((uint8_t)(l_scratch4.nestPllBucket-1) < (uint8_t) sizeOfPll );
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index 632ec4f4b..7b70696c5 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -194,6 +194,8 @@ if ($build eq "fsp")
if ($outFile ne "")
{
+ # Uncomment to emit debug trace to STDERR
+ # print STDERR "Opening OUTFILE $outFile\n";
open OUTFILE, '+>', $outFile ||
die "ERROR: unable to create $outFile\n";
select OUTFILE;
@@ -2016,6 +2018,8 @@ for (my $do_core = 0, my $i = 0; $i <= $#STargets; $i++)
}
}
+ # Uncomment to emit debug trace to STDERR
+ # print STDERR "Running generate_proc for $proc\n";
generate_proc($proc, $is_master, $ipath, $lognode, $logid,
$proc_ordinal_id, \@fsi, \@altfsi, $fru_id, $hwTopology,
\%fapiPosH,\%voltageRails );
@@ -6439,6 +6443,8 @@ sub addEepromsProc
my $tmp_ct eq "";
# Loop through all i2c devices
+ # Uncomment to emit debug trace to STDERR
+ # print STDERR "Loop through all $#I2Cdevices i2c devices\n";
for my $i ( 0 .. $#I2Cdevices )
{
# FSP/Power systems:
@@ -6449,6 +6455,14 @@ sub addEepromsProc
if( ( !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROM")
&&
!($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROM1")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMB0")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMB1")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMC1")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMC3")
) ||
!($I2Cdevices[$i]{i2cm_node} == $node) )
{
@@ -6762,11 +6776,17 @@ sub addI2cBusSpeedArray
if ( $haveFSPs == 1 )
{
# Skip I2C devices that we don't care about
- if( ( !($I2Cdevices[$i]{i2cm_uid}
- eq "I2CM_PROC_PROM")
+ if( ( !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROM")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROM1")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMB0")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMB1")
+ &&
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMC1")
&&
- !($I2Cdevices[$i]{i2cm_uid}
- eq "I2CM_PROC_PROM1")
+ !($I2Cdevices[$i]{i2cm_uid} eq "I2CM_PROC_PROMC3")
&&
!( ($I2Cdevices[$i]{i2cm_uid}
eq "I2CM_HOTPLUG") &&
@@ -6842,8 +6862,12 @@ sub addI2cBusSpeedArray
$tmp_offset = ($tmp_engine * 3) + $tmp_port;
# @todo RTC 153696 - Default everything off except TPM until MRW is correct and simics model is complete
- # @todo RTC 138226 - Also except SBE SEEPROM until MRW is correct and simics model is complete
- if (($tmp_engine == 2 || $tmp_engine == 0) && $tmp_port == 0) {
+ # Also except SBE SEEPROM until MRW is correct and simics model is complete
+ if (($tmp_engine == 2 && $tmp_port == 0) ||
+ ($tmp_engine == 0 && $tmp_port == 0) ||
+ ($tmp_engine == 1 && $tmp_port == 1) ||
+ ($tmp_engine == 1 && $tmp_port == 0) ||
+ ($tmp_engine == 3 && $tmp_port == 1)) {
$tmp_speed = 400;
} else {
$tmp_speed = 0;
diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
index 75f1d4fe7..608637126 100644
--- a/src/usr/targeting/common/processMrw.pl
+++ b/src/usr/targeting/common/processMrw.pl
@@ -1245,7 +1245,7 @@ sub setEepromAttributes
"PHYS_PATH");
my $mem = $targetObj->getAttribute($conn_target->{DEST_PARENT},
"MEMORY_SIZE_IN_KB");
- my $count = 4; # @TODO RTC: 138226 Need place to get a chip count
+ my $count = 2; # default for VPD SEEPROMs
my $cycle = $targetObj->getAttribute($conn_target->{DEST_PARENT},
"WRITE_CYCLE_TIME");
my $page = $targetObj->getAttribute($conn_target->{DEST_PARENT},
OpenPOWER on IntegriCloud