Fixes to get witherspoon xml working with latest hb
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0008-Add-Hacked-values-for-VPD-attributes.patch b/openpower/package/hostboot/p9Patches/hostboot-0008-Add-Hacked-values-for-VPD-attributes.patch
new file mode 100644
index 0000000..29d2444
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0008-Add-Hacked-values-for-VPD-attributes.patch
@@ -0,0 +1,122 @@
+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
+