| From 85b90b1ceae68b9f473a12b652bdaf2c8d78a007 Mon Sep 17 00:00:00 2001 |
| From: Prachi Gupta <pragupta@us.ibm.com> |
| Date: Wed, 7 Dec 2016 10:44:25 -0600 |
| Subject: [PATCH 4/4] Add Hacked values for VPD attributes |
| |
| Change-Id: Ida797dba646f0110637521daf27dfeea0f730959 |
| --- |
| src/usr/targeting/common/Targets.pm | 14 ++++++++ |
| src/usr/targeting/common/processMrw.pl | 61 ++++++++++++++++++++++++++++++++++ |
| 2 files changed, 75 insertions(+) |
| |
| diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm |
| index 42780dd..25fe0cb 100644 |
| --- a/src/usr/targeting/common/Targets.pm |
| +++ b/src/usr/targeting/common/Targets.pm |
| @@ -1655,6 +1655,20 @@ sub getAttributeField |
| } |
| |
| ## returns an attribute from a bus |
| +sub setBusAttribute |
| +{ |
| + my $self = shift; |
| + my $target = shift; |
| + my $busnum = shift; |
| + my $attr = shift; |
| + my $value = shift; |
| + my $target_ptr = $self->getTarget($target); |
| + $target_ptr->{CONNECTION}->{BUS}->[$busnum]->{bus_attribute}->{$attr}->{default} |
| + = $value; |
| + $self->log($target, "Setting Attribute (BusNum=$busnum): $attr=$value"); |
| +} |
| + |
| +## returns an attribute from a bus |
| sub getBusAttribute |
| { |
| my $self = shift; |
| diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl |
| index 312582d..bfe33a4 100644 |
| --- a/src/usr/targeting/common/processMrw.pl |
| +++ b/src/usr/targeting/common/processMrw.pl |
| @@ -538,6 +538,7 @@ sub processProcessor |
| $targetObj->setAttributeField($target, "SCOM_SWITCHES", "useXscom", "0"); |
| |
| processMembufVpdAssociation($targetObj,$target); |
| + processNodeVpd($targetObj, $target); |
| setupBars($targetObj,$target); |
| } |
| |
| @@ -1110,10 +1111,70 @@ sub processOcc |
| $targetObj->setAttribute($target,"OCC_MASTER_CAPABLE",$master_capable); |
| } |
| |
| +#@FIXME: This is just a hack to get the witherspoon xml to compile |
| +sub processNodeVpd |
| +{ |
| + my $targetObj = shift; |
| + my $target = shift; #proc target |
| + my $name = "EEPROM_VPD_PRIMARY_INFO"; |
| + foreach my $child (@{$targetObj->getTargetChildren($target)}) |
| + { |
| + if ($targetObj->getType($child) eq "MCBIST") |
| + { |
| + foreach my $mcs (@{$targetObj->getTargetChildren($child)}) |
| + { |
| + if ($targetObj->getType($mcs) eq "MCS") |
| + { |
| + my $path = "physical:sys-0/node-0"; |
| + my $port = 0x02; |
| + my $addr = 0xE0; |
| + my $engine = 1; |
| + my $offset = 0x01; |
| + my $mem = 0x01; |
| + my $count = 2; |
| + my $page = 0x50; |
| + my $cycle = 0x05; |
| + $targetObj->setAttributeField($mcs, $name, "i2cMasterPath", $path); |
| + $targetObj->setAttributeField($mcs, $name, "port", $port); |
| + $targetObj->setAttributeField($mcs, $name, "devAddr", $addr); |
| + $targetObj->setAttributeField($mcs, $name, "engine", $engine); |
| + $targetObj->setAttributeField($mcs, $name, "byteAddrOffset", $offset); |
| + $targetObj->setAttributeField($mcs, $name, "maxMemorySizeKB", $mem); |
| + $targetObj->setAttributeField($mcs, $name, "chipCount", $count); |
| + $targetObj->setAttributeField($mcs, $name, "writePageSize", $page); |
| + $targetObj->setAttributeField($mcs, $name, "writeCycleTime", $cycle); |
| + } |
| + |
| + } |
| + } |
| + } |
| + |
| +} |
| + |
| sub processMembufVpdAssociation |
| { |
| my $targetObj = shift; |
| my $target = shift; |
| + my $dimms=$targetObj->findConnections($target,"I2C","SPD"); |
| + if ($dimms ne "") { |
| + foreach my $dimm (@{$dimms->{CONN}}) { |
| + my $dimm_target = $targetObj->getTargetParent($dimm->{DEST_PARENT}); |
| + |
| + #@FIXME: hacked value for now |
| + my $addr = $targetObj->setBusAttribute($dimm->{SOURCE}, |
| + $dimm->{BUS_NUM}, "I2C_ADDRESS", 0xE0); |
| + |
| + setEepromAttributes($targetObj, |
| + "EEPROM_VPD_PRIMARY_INFO",$dimm_target, |
| + $dimm); |
| + my $i2cMasterPath = $targetObj->getAttributeField($dimm_target, |
| + "EEPROM_VPD_PRIMARY_INFO", "i2cMasterPath"); |
| + |
| + $targetObj->setAttributeField($dimm_target,"TEMP_SENSOR_I2C_CONFIG", |
| + "i2cMasterPath", $i2cMasterPath); |
| + } |
| + } |
| + |
| my $vpds=$targetObj->findConnections($target,"I2C","VPD"); |
| if ($vpds ne "" ) { |
| my $vpd = $vpds->{CONN}->[0]; |
| -- |
| 1.8.2.2 |
| |