Merge pull request #674 from op-jenkins/op_update_137_10-5-2016

op-build update 10-5-2016
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index f22a3b1..cdff8ec 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -3,7 +3,7 @@
 # hostboot
 #
 ################################################################################
-HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= 19ef62a252501bca496ca39bfa11ee1d64ba1764
+HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= ce7726488f4e4767c3669fbbf17f0fd9a8846c92
 HOSTBOOT_VERSION_BRANCH_MASTER ?= 6ac254a49dc82a8c3007adb0d47c9feea75672b0
 
 HOSTBOOT_VERSION ?= $(if $(BR2_OPENPOWER_POWER9),$(HOSTBOOT_VERSION_BRANCH_MASTER),$(HOSTBOOT_VERSION_BRANCH_MASTER_P8))
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0004-target-pm-serverwiz1-and-2.patch b/openpower/package/hostboot/p9Patches/hostboot-0004-target-pm-serverwiz1-and-2.patch
deleted file mode 100644
index 0a15fc7..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0004-target-pm-serverwiz1-and-2.patch
+++ /dev/null
@@ -1,308 +0,0 @@
-From 7afb20f3484eb118855d2033e7308cfc4a07fae3 Mon Sep 17 00:00:00 2001
-From: Norm James <njames@us.ibm.com>
-Date: Mon, 12 Sep 2016 18:47:13 -0700
-Subject: [PATCH] Add ability to read old and new Serverwiz xml outputs.
-
-The new Serverwiz format added outer tags for performance
-reasons.  It also added attribute groups for accessing
-like attributes with one API call.
-
-Change-Id: I6b6c6de8defbc5c0f0c8c7d191836e69ac7bfc98
----
- src/usr/targeting/common/Targets.pm | 157 +++++++++++++++++++++++++++++-------
- 1 file changed, 126 insertions(+), 31 deletions(-)
-
-diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
-index 096db10..35f0842 100644
---- a/src/usr/targeting/common/Targets.pm
-+++ b/src/usr/targeting/common/Targets.pm
-@@ -26,6 +26,7 @@ package Targets;
- 
- use strict;
- use XML::Simple;
-+use XML::Parser;
- use Data::Dumper;
- 
- sub new
-@@ -43,9 +44,10 @@ sub new
-         force        => 0,
-         debug        => 0,
-         version      => "",
-+        xml_version  => 0,
-         errorsExist  => 0,
-         NUM_PROCS    => 0,
--        TOP_LEVEL    => "sys-0",
-+        TOP_LEVEL    => "",
-         TOPOLOGY     => undef,
-         report_log   => "",
-         vpd_num      => 0,
-@@ -87,9 +89,16 @@ sub loadXML
-     print "Loading MRW XML: $filename\n";
-     $self->{xml} =
-       XMLin($filename,forcearray => [ 'child_id', 'hidden_child_id', 'bus',
--                                      'property' ]);
-+                                      'property', 'field', 'attribute' ]);
-+
-+    if (defined($self->{xml}->{'enumerationTypes'}))
-+    {
-+          $self->{xml_version} = 1;
-+    }
-+
-     $self->storeEnumerations();
--    $self->buildHierarchy($self->{TOP_LEVEL});
-+    $self->storeGroups();
-+    $self->buildHierarchy();
-     $self->buildAffinity();
-     $self->{report_filename}=$filename.".rpt";
-     $self->{report_filename}=~s/\.xml//g;
-@@ -230,15 +239,31 @@ sub printAttribute
- sub storeEnumerations
- {
-     my $self = shift;
--
--    foreach my $enumType (keys(%{ $self->{xml}->{enumerationType} }))
-+    my $baseptr = $self->{xml}->{enumerationType};
-+    if ($self->{xml_version} == 1)
-+    {
-+        $baseptr = $self->{xml}->{enumerationTypes}->{enumerationType};
-+    }
-+    foreach my $enumType (keys(%{ $baseptr }))
-     {
-         foreach my $enum (
--            keys(%{$self->{xml}->{enumerationType}->{$enumType}->{enumerator}}))
-+            keys(%{$baseptr->{$enumType}->{enumerator}}))
-         {
-             $self->{enumeration}->{$enumType}->{$enum} =
--              $self->{xml}->{enumerationType}->{$enumType}->{enumerator}
--              ->{$enum}->{value};
-+              $baseptr->{$enumType}->{enumerator}->{$enum}->{value};
-+        }
-+    }
-+}
-+sub storeGroups
-+{
-+    my $self = shift;
-+    foreach my $grp (keys(%{ $self->{xml}->{attributeGroups}
-+        ->{attributeGroup} }))
-+    {
-+        foreach my $attr (@{$self->{xml}->{attributeGroups}
-+            ->{attributeGroup}->{$grp}->{'attribute'}})
-+        {
-+            $self->{groups}->{$grp}->{$attr} = 1;
-         }
-     }
- }
-@@ -277,13 +302,45 @@ sub buildHierarchy
-     my $self   = shift;
-     my $target = shift;
- 
--    my $old_path        = $self->{data}->{INSTANCE_PATH};
--    my $target_xml      = $self->{xml}->{'targetInstance'}{$target};
-+    my $instance_path = $self->{data}->{INSTANCE_PATH};
-+    if (!defined $instance_path)
-+    {
-+        $instance_path = "";
-+    }
-+    my $baseptr = $self->{xml}->{'targetInstance'};
-+    if ($self->{xml_version} == 1)
-+    {
-+        $baseptr = $self->{xml}->{'targetInstances'}->{'targetInstance'};
-+    }
-+    if ($target eq "")
-+    {
-+        ## find system target
-+        foreach my $t (keys(%{$baseptr}))
-+        {
-+            if ($baseptr->{$t}->{attribute}->{TYPE}->{default} eq "SYS")
-+            {
-+                $self->{TOP_LEVEL} = $t;
-+                $target = $t;
-+            }
-+        }
-+    }
-+    if ($target eq "")
-+    {
-+        die "Unable to find system top level target\n";
-+    }
-+    my $old_path        = $instance_path;
-+    my $target_xml      = $baseptr->{$target};
-     my $affinity_target = $target;
--    my $key             = $self->{data}->{INSTANCE_PATH} . "/" . $target;
-+    my $key             = $instance_path . "/" . $target;
- 
--    my $instance_path = $self->{data}->{INSTANCE_PATH};
--    $instance_path = "instance:" . substr($instance_path, 1);
-+    if ($instance_path ne "")
-+    {
-+        $instance_path = "instance:" . substr($instance_path, 1);
-+    }
-+    else
-+    {
-+        $instance_path = "instance:";
-+    }
-     $self->setAttribute($key, "INSTANCE_PATH", $instance_path);
-     $self->{data}->{TARGETS}->{$key}->{TARGET} = $target_xml;
-     $self->{data}->{INSTANCE_PATH} = $old_path . "/" . $target;
-@@ -321,9 +378,15 @@ sub buildHierarchy
-         }
-     }
-     ## global attributes overwrite local
--    foreach my $prop (keys %{$self->{xml}->{globalSetting}->{$key}->{property}})
-+    my $settingptr = $self->{xml}->{globalSetting};
-+    if ($self->{xml_version} == 1)
-     {
--        my $val=$self->{xml}->{globalSetting}->{$key}->{property}->
-+        $settingptr = $self->{xml}->{globalSettings}->{globalSetting};
-+    }
-+
-+    foreach my $prop (keys %{$settingptr->{$key}->{property}})
-+    {
-+        my $val=$settingptr->{$key}->{property}->
-                        {$prop}->{value};
-         $self->setAttribute($key, $prop, $val);
-     }
-@@ -413,8 +476,10 @@ sub buildAffinity
-             $node = -1;
- 
-             $self->{targeting}{SYS}[0]{KEY} = $target;
--            $self->setAttribute($target, "AFFINITY_PATH", "affinity:sys-0");
--            $self->setAttribute($target, "PHYS_PATH",     "physical:sys-0");
-+            $self->setAttribute($target, "AFFINITY_PATH",
-+                                         "affinity:".$self->{TOP_LEVEL});
-+            $self->setAttribute($target, "PHYS_PATH",
-+                                         "physical:".$self->{TOP_LEVEL});
-             $self->setAttribute($target, "ENTITY_INSTANCE","0");
-         }
-         elsif ($type eq "NODE")
-@@ -424,13 +489,13 @@ sub buildAffinity
-             $self->{dimm_tpos} = 0;
-             $self->{membuf_inst_num}=0;
-             $node++;
--            $node_phys = "physical:sys-0/node-$node";
--            $node_aff  = "affinity:sys-0/node-$node";
-+            $node_phys = "physical:".$self->{TOP_LEVEL}."/node-$node";
-+            $node_aff  = "affinity:".$self->{TOP_LEVEL}."/node-$node";
-             $self->{targeting}{SYS}[0]{NODES}[$node]{KEY} = $target;
-             $self->setAttribute($target, "AFFINITY_PATH",
--                "affinity:sys-0/node-$node");
-+                "affinity:".$self->{TOP_LEVEL}."/node-$node");
-             $self->setAttribute($target, "PHYS_PATH",
--                "physical:sys-0/node-$node");
-+                "physical:".$self->{TOP_LEVEL}."/node-$node");
-             $self->setHuid($target, 0, $node);
-             $self->setAttribute($target, "ENTITY_INSTANCE",$node);
-         }
-@@ -439,9 +504,11 @@ sub buildAffinity
-             $tpm++;
-             $self->{targeting}{SYS}[0]{NODES}[$node]{TPMS}[$tpm]{KEY} = $target;
-             $self->setAttribute($target, "AFFINITY_PATH",
--                                "affinity:sys-0/node-$node/tpm-$tpm");
-+                                "affinity:".$self->{TOP_LEVEL}.
-+                                "/node-$node/tpm-$tpm");
-             $self->setAttribute($target, "PHYS_PATH",
--                                "physical:sys-0/node-$node/tpm-$tpm");
-+                                "physical:".$self->{TOP_LEVEL}.
-+                                "/node-$node/tpm-$tpm");
-             $self->setHuid($target, 0, $tpm);
-             $self->setAttribute($target, "ENTITY_INSTANCE",$tpm);
-         }
-@@ -469,8 +536,10 @@ sub buildAffinity
-             $self->setHuid($target, 0, $node);
-             my $socket = $self->getTargetParent(
-                          $self->getTargetParent($target));
--            my $parent_affinity = "affinity:sys-0/node-$node/proc-$proc";
--            my $parent_physical = "physical:sys-0/node-$node/proc-$proc";
-+            my $parent_affinity = "affinity:".$self->{TOP_LEVEL}
-+                                  ."/node-$node/proc-$proc";
-+            my $parent_physical = "physical:".$self->{TOP_LEVEL}
-+                                  ."/node-$node/proc-$proc";
-             $self->setAttribute($target, "AFFINITY_PATH",  $parent_affinity);
-             $self->setAttribute($target, "PHYS_PATH",      $parent_physical);
-             $self->setAttribute($target, "POSITION",       $proc);
-@@ -619,8 +688,6 @@ sub processMcs
-         $self->setFsiAttributes($membuf,"FSICM",0,$proc_path,$fsi_port,0);
-         $self->setAttribute($unit, "DMI_REFCLOCK_SWIZZLE",$fsi_port);
-         my $dmi_swizzle =
--             $dmi_bus->{bus_attribute}->{DMI_REFCLOCK_SWIZZLE}->{default};
--        my $dmi_swizzle =
-              $self->getBusAttribute($unit,0,"DMI_REFCLOCK_SWIZZLE");
-         if ($dmi_swizzle ne "")
-         {
-@@ -974,7 +1041,8 @@ sub isBadAttribute
-     {
-         return 1;
-     }
--    if ($target_ptr->{ATTRIBUTES}->{$attribute}->{default} eq $badvalue)
-+    if (defined $badvalue &&
-+        $target_ptr->{ATTRIBUTES}->{$attribute}->{default} eq $badvalue)
-     {
-         return 1;
-     }
-@@ -1029,7 +1097,6 @@ sub getAttribute
-         printf("ERROR: getAttribute(%s,%s) | Attribute not defined\n",
-             $target, $attribute);
- 
--        #print Dumper($target_ptr);
-         $self->myExit(4);
-     }
-     if (ref($target_ptr->{ATTRIBUTES}->{$attribute}->{default}) eq "HASH")
-@@ -1038,6 +1105,30 @@ sub getAttribute
-     }
-     return $target_ptr->{ATTRIBUTES}->{$attribute}->{default};
- }
-+
-+sub getAttributeGroup
-+{
-+    my $self       = shift;
-+    my $target     = shift;
-+    my $group      = shift;
-+    my $target_ptr = $self->getTarget($target);
-+    if (!defined($self->{groups}->{$group})) {
-+        printf("ERROR: getAttributeGroup(%s,%s) | Group not defined\n",
-+            $target, $group);
-+        $self->myExit(4);
-+    }
-+    my %attr;
-+    foreach my $attribute (keys(%{$self->{groups}->{$group}}))
-+    {
-+        if (defined($target_ptr->{ATTRIBUTES}->{$attribute}->{default}))
-+        {
-+            $attr{$attribute} = $target_ptr->{ATTRIBUTES}->{$attribute};
-+        }
-+    }
-+    return \%attr;
-+}
-+
-+
- ## renames a target attribute
- sub renameAttribute
- {
-@@ -1141,6 +1232,8 @@ sub getBusAttribute
-     return $target_ptr->{CONNECTION}->{BUS}->[$busnum]->{bus_attribute}->{$attr}
-       ->{default};
- }
-+
-+
- ## returns a pointer to an array of children target names
- sub getTargetChildren
- {
-@@ -1216,7 +1309,10 @@ sub setMruid
- 
-     my $type          = $self->getType($target);
-     my $mru_prefix_id = $self->{enumeration}->{MRU_PREFIX}->{$type};
--    if ($mru_prefix_id eq "") { $mru_prefix_id = "0xFFFF"; }
-+    if (!defined $mru_prefix_id || $mru_prefix_id eq "")
-+    {
-+         $mru_prefix_id = "0xFFFF";
-+    }
-     if ($mru_prefix_id eq "0xFFFF") { return; }
-     my $index = 0;
-     if (defined($self->{mru_idx}->{$node}->{$type}))
-@@ -1486,4 +1582,3 @@ Prints to stdout log message is debug mode is turned on.
- Norman James <njames@us.ibm.com>
- 
- =cut
--
--- 
-1.8.2.2
-