diff options
author | Marty Gloff <mgloff@us.ibm.com> | 2016-09-20 16:22:57 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-09-23 12:07:00 -0400 |
commit | 5e28eb679db54fa4f0040dd712b311d441ed6ca2 (patch) | |
tree | 856c0b093ede5d9aa8b36d14e5eb0dac96be9f72 | |
parent | 0e25c0479f1467b068fc1334295f15c4a1a2302e (diff) | |
download | talos-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.C | 11 | ||||
-rw-r--r-- | src/usr/sbe/sbe_update.C | 10 | ||||
-rwxr-xr-x | src/usr/targeting/common/genHwsvMrwXml.pl | 36 | ||||
-rw-r--r-- | src/usr/targeting/common/processMrw.pl | 2 |
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}, |