blob: 29d244409897b98cf9374af8e8480fda06fcfe07 [file] [log] [blame]
Prachi Guptaa40a3ac2016-11-29 23:17:19 -06001From 85b90b1ceae68b9f473a12b652bdaf2c8d78a007 Mon Sep 17 00:00:00 2001
2From: Prachi Gupta <pragupta@us.ibm.com>
3Date: Wed, 7 Dec 2016 10:44:25 -0600
4Subject: [PATCH 4/4] Add Hacked values for VPD attributes
5
6Change-Id: Ida797dba646f0110637521daf27dfeea0f730959
7---
8 src/usr/targeting/common/Targets.pm | 14 ++++++++
9 src/usr/targeting/common/processMrw.pl | 61 ++++++++++++++++++++++++++++++++++
10 2 files changed, 75 insertions(+)
11
12diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
13index 42780dd..25fe0cb 100644
14--- a/src/usr/targeting/common/Targets.pm
15+++ b/src/usr/targeting/common/Targets.pm
16@@ -1655,6 +1655,20 @@ sub getAttributeField
17 }
18
19 ## returns an attribute from a bus
20+sub setBusAttribute
21+{
22+ my $self = shift;
23+ my $target = shift;
24+ my $busnum = shift;
25+ my $attr = shift;
26+ my $value = shift;
27+ my $target_ptr = $self->getTarget($target);
28+ $target_ptr->{CONNECTION}->{BUS}->[$busnum]->{bus_attribute}->{$attr}->{default}
29+ = $value;
30+ $self->log($target, "Setting Attribute (BusNum=$busnum): $attr=$value");
31+}
32+
33+## returns an attribute from a bus
34 sub getBusAttribute
35 {
36 my $self = shift;
37diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
38index 312582d..bfe33a4 100644
39--- a/src/usr/targeting/common/processMrw.pl
40+++ b/src/usr/targeting/common/processMrw.pl
41@@ -538,6 +538,7 @@ sub processProcessor
42 $targetObj->setAttributeField($target, "SCOM_SWITCHES", "useXscom", "0");
43
44 processMembufVpdAssociation($targetObj,$target);
45+ processNodeVpd($targetObj, $target);
46 setupBars($targetObj,$target);
47 }
48
49@@ -1110,10 +1111,70 @@ sub processOcc
50 $targetObj->setAttribute($target,"OCC_MASTER_CAPABLE",$master_capable);
51 }
52
53+#@FIXME: This is just a hack to get the witherspoon xml to compile
54+sub processNodeVpd
55+{
56+ my $targetObj = shift;
57+ my $target = shift; #proc target
58+ my $name = "EEPROM_VPD_PRIMARY_INFO";
59+ foreach my $child (@{$targetObj->getTargetChildren($target)})
60+ {
61+ if ($targetObj->getType($child) eq "MCBIST")
62+ {
63+ foreach my $mcs (@{$targetObj->getTargetChildren($child)})
64+ {
65+ if ($targetObj->getType($mcs) eq "MCS")
66+ {
67+ my $path = "physical:sys-0/node-0";
68+ my $port = 0x02;
69+ my $addr = 0xE0;
70+ my $engine = 1;
71+ my $offset = 0x01;
72+ my $mem = 0x01;
73+ my $count = 2;
74+ my $page = 0x50;
75+ my $cycle = 0x05;
76+ $targetObj->setAttributeField($mcs, $name, "i2cMasterPath", $path);
77+ $targetObj->setAttributeField($mcs, $name, "port", $port);
78+ $targetObj->setAttributeField($mcs, $name, "devAddr", $addr);
79+ $targetObj->setAttributeField($mcs, $name, "engine", $engine);
80+ $targetObj->setAttributeField($mcs, $name, "byteAddrOffset", $offset);
81+ $targetObj->setAttributeField($mcs, $name, "maxMemorySizeKB", $mem);
82+ $targetObj->setAttributeField($mcs, $name, "chipCount", $count);
83+ $targetObj->setAttributeField($mcs, $name, "writePageSize", $page);
84+ $targetObj->setAttributeField($mcs, $name, "writeCycleTime", $cycle);
85+ }
86+
87+ }
88+ }
89+ }
90+
91+}
92+
93 sub processMembufVpdAssociation
94 {
95 my $targetObj = shift;
96 my $target = shift;
97+ my $dimms=$targetObj->findConnections($target,"I2C","SPD");
98+ if ($dimms ne "") {
99+ foreach my $dimm (@{$dimms->{CONN}}) {
100+ my $dimm_target = $targetObj->getTargetParent($dimm->{DEST_PARENT});
101+
102+ #@FIXME: hacked value for now
103+ my $addr = $targetObj->setBusAttribute($dimm->{SOURCE},
104+ $dimm->{BUS_NUM}, "I2C_ADDRESS", 0xE0);
105+
106+ setEepromAttributes($targetObj,
107+ "EEPROM_VPD_PRIMARY_INFO",$dimm_target,
108+ $dimm);
109+ my $i2cMasterPath = $targetObj->getAttributeField($dimm_target,
110+ "EEPROM_VPD_PRIMARY_INFO", "i2cMasterPath");
111+
112+ $targetObj->setAttributeField($dimm_target,"TEMP_SENSOR_I2C_CONFIG",
113+ "i2cMasterPath", $i2cMasterPath);
114+ }
115+ }
116+
117 my $vpds=$targetObj->findConnections($target,"I2C","VPD");
118 if ($vpds ne "" ) {
119 my $vpd = $vpds->{CONN}->[0];
120--
1211.8.2.2
122