Update master-next branch to point to latest hostboot changes

This commit makes the following changes to the op-build's master-next
branch:
-- Updates the the level of hostboot package
-- Updates the level of habanero-xml package
-- Deletes/Updates/Adds patches for hostboot package
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
index 0ab244c..557a7da 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HABANERO_XML_VERSION ?= 4173b205b0a7dfd18a97f3a0d5319c9aad893035
+HABANERO_XML_VERSION ?= b7f0e388bba972fcdcf749f9bb8e31bc9e1022c0
 HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
 
 HABANERO_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/hostboot-0002-Do-not-fail-IPL-for-missing-OSYS-SS-data.patch b/openpower/package/hostboot/hostboot-0002-Do-not-fail-IPL-for-missing-OSYS-SS-data.patch
deleted file mode 100644
index 804f62a..0000000
--- a/openpower/package/hostboot/hostboot-0002-Do-not-fail-IPL-for-missing-OSYS-SS-data.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 632df20fb598f38c246eb6ce93d972a9cbec4145 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Wed, 1 Apr 2015 10:29:25 -0500
-Subject: [PATCH] Do not fail IPL for missing OSYS:SS data
-
-Older planar vpd vintages may not have the OSYS record filled
-in.  We should allow the system to boot in this case but log
-an error pointing to the planar in need of update.
-
-CQ: SW201885
-Change-Id: Ia4f6440551b4bb6d4a849d24290c19667f3a6c6b
----
- src/usr/devtree/bld_devtree.C |    7 +++++--
- src/usr/errl/errlentry.C      |    1 +
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/src/usr/devtree/bld_devtree.C b/src/usr/devtree/bld_devtree.C
-index 622178a..a73c812 100644
---- a/src/usr/devtree/bld_devtree.C
-+++ b/src/usr/devtree/bld_devtree.C
-@@ -1197,10 +1197,13 @@ errlHndl_t bld_fdt_system(devTree * i_dt, bool i_smallTree)
-                 }
-             }
-         }
--        // just commit any errors we get, this isn't critical
-+        // just delete any errors we get, this isn't critical
-         if( errhdl )
-         {
--            errlCommit(errhdl, DEVTREE_COMP_ID);
-+            // since there are old parts out in the wild without
-+            //  this data, we can't log an error
-+            delete errhdl;
-+            errhdl = NULL;
-         }
- 
-         if( !foundvpd ) //serial number not found, default to unavailable
-diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C
-index 2d604ce..967638f 100644
---- a/src/usr/errl/errlentry.C
-+++ b/src/usr/errl/errlentry.C
-@@ -94,6 +94,7 @@ struct epubTargetTypeToSub_t
- // Target type to subsystem table.
- static const epubTargetTypeToSub_t TARGET_TO_SUBSYS_TABLE[] =
- {
-+    { TARGETING::TYPE_NODE             , EPUB_CEC_HDW_SUBSYS       },
-     { TARGETING::TYPE_DIMM             , EPUB_MEMORY_DIMM          },
-     { TARGETING::TYPE_MEMBUF           , EPUB_MEMORY_SUBSYS        },
-     { TARGETING::TYPE_PROC             , EPUB_PROCESSOR_SUBSYS     },
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0003-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch b/openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0003-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
rename to openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
diff --git a/openpower/package/hostboot/hostboot-0005-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch b/openpower/package/hostboot/hostboot-0003-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0005-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch
rename to openpower/package/hostboot/hostboot-0003-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch
diff --git a/openpower/package/hostboot/hostboot-0007_mss_thermal_undo.patch b/openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0007_mss_thermal_undo.patch
rename to openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch
diff --git a/openpower/package/hostboot/hostboot-0015-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch b/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
similarity index 93%
rename from openpower/package/hostboot/hostboot-0015-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
rename to openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
index 83dca55..6f1b80c 100644
--- a/openpower/package/hostboot/hostboot-0015-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
+++ b/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
@@ -1,11 +1,10 @@
-From 5bda70dc5e135261f5393858959056b44332885b Mon Sep 17 00:00:00 2001
+From 1674da76fadc52f8c6aff6d8435536dd33b7417f Mon Sep 17 00:00:00 2001
 From: Bill Hoffa <wghoffa@us.ibm.com>
 Date: Mon, 30 Mar 2015 15:11:28 -0500
-Subject: [PATCH 6/7] Add PNOR Version Information to IPMI Fru Inventory
+Subject: [PATCH] Add PNOR Version Information to IPMI Fru Inventory
 
 Change-Id: Ib49fe67e9c6631b2b7ea0005e692c9aea6d84057
 RTC:123353
-(cherry picked from commit 90f8e938932e867283e28cade6741b6bf968602c)
 ---
  src/usr/ipmi/ipmifruinv.C                          | 207 +++++++++++++++++++++
  src/usr/ipmi/ipmifruinvprvt.H                      |  47 +++++
@@ -14,18 +13,18 @@
  4 files changed, 263 insertions(+)
 
 diff --git a/src/usr/ipmi/ipmifruinv.C b/src/usr/ipmi/ipmifruinv.C
-index c6c7a30..b376ebf 100644
+index 4f0d7d7..aaf62d1 100644
 --- a/src/usr/ipmi/ipmifruinv.C
 +++ b/src/usr/ipmi/ipmifruinv.C
-@@ -36,6 +36,7 @@
- #include "ipmifru.H"
+@@ -37,6 +37,7 @@
  #include "ipmifruinvprvt.H"
  #include <stdio.h>
+ #include <assert.h>
 +#include <pnor/pnorif.H>
  
  extern trace_desc_t * g_trac_ipmi;
  
-@@ -83,6 +84,10 @@ IpmiFruInv *IpmiFruInv::Factory(TARGETING::TargetHandleList i_targets,
+@@ -84,6 +85,10 @@ IpmiFruInv *IpmiFruInv::Factory(TARGETING::TargetHandleList i_targets,
              // @todo-RTC:117702
              l_fru = new backplaneIpmiFruInv(l_target, i_targets, i_updateData);
              break;
@@ -36,7 +35,7 @@
          default:
              assert(false,
                  "IpmiFruInv::Factory: No support for target type given: [%08x]",
-@@ -926,6 +931,199 @@ errlHndl_t backplaneIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
+@@ -927,6 +932,199 @@ errlHndl_t backplaneIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
      return l_errl;
  }
  
@@ -76,7 +75,7 @@
 +        //Set formatting data that goes at the beginning of the record
 +        preFormatProcessing(io_data, true);
 +
-+        uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 3,'I','B','M',
++        uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_NULL,
 +                            IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 18, 'O','p','e',
 +                            'n','P','O','W','E','R',' ','F','i','r','m','w','a',
 +                            'r','e', IPMIFRUINV::TYPELENGTH_BYTE_NULL};
@@ -102,7 +101,7 @@
 +        //First determine number of bytes in PNOR Version string
 +        //  with the caveat there is a max record size allowed, so
 +        //  the string will be cut off if too long
-+        //Also, remove whitespace/newline chars
++        //Also, remove newline chars
 +        while ((l_numBytes < IPMIFRUINV::MAX_RECORD_SIZE -
 +                              (uint8_t(sizeof(l_data) / sizeof(uint8_t))) -
 +                              IPMIFRUINV::COMMON_HEADER_FORMAT_SIZE - 8)
@@ -236,14 +235,14 @@
  void IpmiFruInv::addEcidData(const TARGETING::TargetHandle_t& i_target,
                               const TARGETING::ATTR_ECID_type& i_ecidInfo,
                               std::vector<uint8_t> &io_data)
-@@ -993,6 +1191,15 @@ void IPMIFRUINV::setData(bool i_updateData)
+@@ -997,6 +1195,15 @@ void IPMIFRUINV::setData(bool i_updateData)
              IPMIFRUINV::gatherClearData(pSys, frusToClear);
          }
  
 +        //Get System FW FRU_ID if available
 +        uint32_t l_systemFwFruId;
 +        bool hasSystemFwFruId =
-+                            pSys->tryGetAttr<TARGETING::ATTR_BMC_FRU_ID>(l_systemFwFruId);
++                  pSys->tryGetAttr<TARGETING::ATTR_BMC_FRU_ID>(l_systemFwFruId);
 +        if (hasSystemFwFruId)
 +        {
 +            l_potentialFrus.push_back(std::make_pair(pSys, l_systemFwFruId));
@@ -316,10 +315,10 @@
 +
  #endif
 diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
-index c961ebe..bbf02dd 100644
+index ec256de..17729cd 100644
 --- a/src/usr/targeting/common/xmltohb/attribute_types.xml
 +++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
-@@ -11425,6 +11425,14 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
+@@ -11659,6 +11659,14 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
  </attribute>
  
  <attribute>
@@ -335,10 +334,10 @@
      <description>
        Set to 1 by HWSV to indicate that attribute overrides exist in a PLCK IPL
 diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
-index 6dc4e58..b4b9a30 100644
+index 15d7921..82ec014 100644
 --- a/src/usr/targeting/common/xmltohb/target_types.xml
 +++ b/src/usr/targeting/common/xmltohb/target_types.xml
-@@ -305,6 +305,7 @@
+@@ -300,6 +300,7 @@
      <attribute><id>MNFG_TH_CEN_L4_CACHE_CES</id></attribute>
      <attribute><id>OPT_MEMMAP_GROUP_POLICY</id></attribute>
      <attribute><id>FRU_ID</id></attribute>
diff --git a/openpower/package/hostboot/hostboot-0020-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch b/openpower/package/hostboot/hostboot-0006-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0020-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch
rename to openpower/package/hostboot/hostboot-0006-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch
diff --git a/openpower/package/hostboot/hostboot-0006_POWER_CONTROL_CAPABLE.patch b/openpower/package/hostboot/hostboot-0006_POWER_CONTROL_CAPABLE.patch
deleted file mode 100644
index e7a902b..0000000
--- a/openpower/package/hostboot/hostboot-0006_POWER_CONTROL_CAPABLE.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From c474b26291b009f7a9c97e2bf94ad2917f11b1b9 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Sun, 22 Mar 2015 23:03:57 -0500
-Subject: [PATCH] Add support for POWER_CONTROL_CAPABLE to ISDIMMs
-
-Change-Id: If9de980385cac7706b321a9fefc1158dc540b7e0
----
- .../usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H     |   11 +++-
- .../hwp/mvpd_accessors/getControlCapableData.C     |   54 ++++++++++----------
- src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C     |   16 ++++++
- src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttrData.C |    3 +
- 4 files changed, 55 insertions(+), 29 deletions(-)
-
-diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
-index 07ea5fc..810cb40 100644
---- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
-+++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
-@@ -46,11 +46,14 @@ namespace getAttrData
-     const uint8_t NUM_PORTS = 2;   //Each MBA has 2 ports
-     const uint8_t NUM_DIMMS = 2;   //Each port has 2 DIMMs
-     const uint8_t NUM_RANKS = 4;   //Number of ranks
--    const uint8_t PORT_SECTION_SIZE = 64; //Each port has 64 bytes
-+    //Each port has 64 bytes of space, but only 62 bytes is useable
-+    const uint8_t PORT_SECTION_SIZE = 64; 
-+    const uint8_t PORT_SECTION_USED = 62; 
- 
-     struct port_attributes
-     {
--       uint8_t port_attr[PORT_SECTION_SIZE];
-+       uint8_t port_attr[PORT_SECTION_USED];
-+       uint8_t nonport_data[PORT_SECTION_SIZE-PORT_SECTION_USED];
-     };
-     struct mba_attributes
-     {
-@@ -102,6 +105,7 @@ namespace getAttrData
-         UINT32_BY2        =0x0004,   // uint32_t [2]
-         UINT32_BY2_BY2    =0x0005,   // uint32_t [2][2]
-         UINT64            =0x0006,   // uint64_t
-+        UINT8             =0x0007,   // uint8_t  
-     };
-     const uint16_t OUTPUT_TYPE_MASK = 0x00FF;
- 
-@@ -111,6 +115,7 @@ namespace getAttrData
-     typedef uint32_t UINT32_BY2_t [2];
-     typedef uint32_t UINT32_BY2_BY2_t [2][2];
-     typedef uint64_t UINT64_t;
-+    typedef uint8_t UINT8_t;
- 
-     //  Special processing
-     //  Rules:
-@@ -343,6 +348,8 @@ template<>class MBvpdAttrDataType<fapi::ATTR_VPD_TSYS_ADR>
-     { public: typedef fapi::ATTR_VPD_TSYS_ADR_Type Type; };
- template<>class MBvpdAttrDataType<fapi::ATTR_VPD_TSYS_DP18>
-     { public: typedef fapi::ATTR_VPD_TSYS_DP18_Type Type; };
-+template<>class MBvpdAttrDataType<fapi::ATTR_VPD_POWER_CONTROL_CAPABLE>
-+    { public: typedef fapi::ATTR_VPD_POWER_CONTROL_CAPABLE_Type Type; };
- 
- 
- // Template function that checks that the type is as expected.
-diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C b/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C
-index 4e4fe02..90afda6 100644
---- a/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C
-+++ b/src/usr/hwpf/hwp/mvpd_accessors/getControlCapableData.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2014                             */
-+/* Contributors Listed Below - COPYRIGHT 2014,2015                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -40,38 +40,38 @@ fapi::ReturnCode getControlCapableData(
-                 const fapi::Target &i_mbTarget,
-                 uint8_t & o_val)
- {
--    //Record:VSPD, Keyword:MR, offset: 253, 1 byte.
--    const uint32_t MR_KEYWORD_SIZE = 255;
-+    fapi::ReturnCode l_rc;
- 
--    struct mr_keyword
--    {
--        uint8_t filler[253];
--        uint8_t position; //offset 253
--        uint8_t extraFiller[MR_KEYWORD_SIZE-sizeof(filler)-sizeof(position)];
--    };
--
--    fapi::ReturnCode l_fapirc;
--    mr_keyword * l_pMrBuffer = new mr_keyword;
--    uint32_t l_MrBufsize = MR_KEYWORD_SIZE;
--    do{
--
--        l_fapirc = fapiGetMBvpdField(fapi::MBVPD_RECORD_VSPD,
--                    fapi::MBVPD_KEYWORD_MR,
--                    i_mbTarget,
--                    reinterpret_cast<uint8_t *>(l_pMrBuffer),
--                    l_MrBufsize);
--        if(l_fapirc)
-+    FAPI_DBG("getControlCapableData: start");
-+    do {
-+        // ATTR_VPD_POWER_CONTROL_CAPABLE is at the membuf level, but the
-+        //  getMBvpdAttr() function takes a mba, so need to do a
-+        //  conversion
-+        std::vector<fapi::Target> l_mbas;
-+        l_rc = fapiGetChildChiplets( i_mbTarget,
-+                                     fapi::TARGET_TYPE_MBA_CHIPLET,
-+                                     l_mbas );
-+        if( l_rc )
-         {
--            FAPI_ERR("getControlCapableData: Read of MR Keyword failed");
-+            FAPI_ERR("getControlCapableData: fapiGetChildChiplets failed");
-             break;
-         }
--        o_val = l_pMrBuffer->position;
- 
--    }while(0);
-+        // If we don't have any functional MBAs then we will fail in
-+        //  the other function so just return a default value here
-+        if( l_mbas.empty() )
-+        {
-+            o_val = fapi::ENUM_ATTR_VPD_POWER_CONTROL_CAPABLE_NONE;
-+            break;
-+        }
- 
--    delete l_pMrBuffer;
--    l_pMrBuffer = NULL;
-+        // Call a VPD Accessor HWP to get the data
-+        FAPI_EXEC_HWP(l_rc, getMBvpdAttr,
-+                      l_mbas[0], ATTR_VPD_POWER_CONTROL_CAPABLE,
-+                      &o_val, sizeof(ATTR_VPD_POWER_CONTROL_CAPABLE_Type));
-+    } while(0);
-+    FAPI_ERR("getControlCapableData: end");
- 
--    return l_fapirc;
-+    return l_rc;
- }
- }
-diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C
-index b13e4f9..7be8ed2 100644
---- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C
-+++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C
-@@ -976,6 +976,22 @@ fapi::ReturnCode returnValue (const MBvpdAttrDef*   i_pAttrDef,
-             (*(UINT64_t*)o_pVal) = l_value;
-             break ;
-         }
-+        case  UINT8:            // uint8_t
-+        {
-+            // make sure return value size is correct
-+            if (sizeof(UINT8_t) != i_valSize)
-+            {
-+                l_fapirc = sizeMismatch(sizeof(UINT8_t),
-+                                        i_valSize,
-+                                        i_pAttrDef->iv_attrId);
-+                break; //return with error
-+            }
-+
-+            // only 1 value is present, it isn't stored per mba/port
-+            uint8_t l_value = (reinterpret_cast<uint8_t*>(i_pBuffer))[l_attrOffset];
-+            (*(UINT8_t*)o_pVal) = l_value;
-+            break ;
-+        }
-         default: // Hard to do, but needs to be caught
-             FAPI_ERR("returnValue: invalid output type 0x%04x for"
-                        " attribute ID 0x%08x",
-diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttrData.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttrData.C
-index 4b18e40..5a599b5 100644
---- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttrData.C
-+++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttrData.C
-@@ -178,6 +178,9 @@ const MBvpdAttrDef g_MBVPD_ATTR_DEF_array [] =
-     {ATTR_VPD_DRAM_2N_MODE_ENABLED,ALL_DIMM,ALL_VER,MBVPD_KEYWORD_MR,48,UINT8_BY2,0},
-     {ATTR_VPD_TSYS_ADR,ALL_DIMM,ALL_VER,MBVPD_KEYWORD_MR,49,UINT8_BY2|PORT00,0},
-     {ATTR_VPD_TSYS_DP18,ALL_DIMM,ALL_VER,MBVPD_KEYWORD_MR,49,UINT8_BY2|PORT11,0},
-+
-+// Membuf-level data that is stored within MR
-+    {ATTR_VPD_POWER_CONTROL_CAPABLE,ALL_DIMM,ALL_VER,MBVPD_KEYWORD_MR,253,UINT8,0},
- };
- 
- const uint32_t g_MBVPD_ATTR_DEF_array_size =
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch b/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch
new file mode 100644
index 0000000..8a14eda
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch
@@ -0,0 +1,30 @@
+From 5b26d8a2da4c8bba72781e45ec89572843f55f35 Mon Sep 17 00:00:00 2001
+From: Mike Baiocchi <baiocchi@us.ibm.com>
+Date: Tue, 21 Apr 2015 13:23:36 -0500
+Subject: [PATCH] Fix Bug in mss_setup_bars
+
+There was an update made to mss_setup_bars.C to fix memory corruption, but
+this commit corrects an issue that was missed by this initial update.
+
+Change-Id: I32889a5d07b33f5496e5ea12ec50a0f26d0e1561
+CQ: SW296125
+---
+ src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C
+index 274dfdc..6c58193 100644
+--- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C
++++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C
+@@ -615,7 +615,7 @@ fapi::ReturnCode mss_setup_bars(const fapi::Target& i_pu_target,   std::vector<f
+                     if(mcs_sz !=  sizeInfo.MCS_size[group_data[i][j]])
+                     {
+                           FAPI_INF(" Group %zd will not be configured as MCS %d is not valid grouped size is %d , present MCS size is %d \n",i,group_data[i][j],mcs_sz, sizeInfo.MCS_size[group_data[i][j]]);
+-                          for(uint8_t k = 0; k<32;k++) { group_data[i][k]=0; }
++                          for(uint8_t k = 0; k<16;k++) { group_data[i][k]=0; }
+                      }
+                }
+            }
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch b/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch
new file mode 100644
index 0000000..8f8a15e
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch
@@ -0,0 +1,38 @@
+From 0134ed35efb10842f8a1d59d456e39338e63eaea Mon Sep 17 00:00:00 2001
+From: Mike Baiocchi <baiocchi@us.ibm.com>
+Date: Tue, 21 Apr 2015 16:41:38 -0500
+Subject: [PATCH] Limit attribute NPU_MMIO_BAR_BASE_ADDR to Naples-based
+ systems
+
+This commit limits the use of the NPU_MMIO_BAR_BASE_ADDR to the
+systems for which it is defined.
+
+Change-Id: I7eab012a84611365e8e6cb6c44b49c4a4ffac8e4
+---
+ src/usr/targeting/common/processMrw.pl | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
+index 3515841..5d44e74 100644
+--- a/src/usr/targeting/common/processMrw.pl
++++ b/src/usr/targeting/common/processMrw.pl
+@@ -580,10 +580,15 @@ sub setupBars
+     my $proc   = $targetObj->getAttribute($target, "FABRIC_CHIP_ID");
+     $targetObj->{TOPOLOGY}->{$node}->{$proc}++;
+ 
+-    my @bars=("NPU_MMIO_BAR_BASE_ADDR","FSP_BASE_ADDR","PSI_BRIDGE_BASE_ADDR",
++    my @bars=("FSP_BASE_ADDR","PSI_BRIDGE_BASE_ADDR",
+               "INTP_BASE_ADDR","PHB_BASE_ADDRS","PCI_BASE_ADDRS_32",
+               "PCI_BASE_ADDRS_64","RNG_BASE_ADDR","IBSCOM_PROC_BASE_ADDR");
+ 
++    # Attribute only valid in naples-based systems
++    if (!$targetObj->isBadAttribute($target,"NPU_MMIO_BAR_BASE_ADDR") ) {
++          push(@bars,"NPU_MMIO_BAR_BASE_ADDR");
++    }
++
+     foreach my $bar (@bars)
+     {
+         my ($num,$base,$node_offset,$proc_offset,$offset) = split(/,/,
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0008-Update-SBE-Update-IPMI-Watchdog-call-to-use-HARD_RES.patch b/openpower/package/hostboot/hostboot-0008-Update-SBE-Update-IPMI-Watchdog-call-to-use-HARD_RES.patch
deleted file mode 100644
index 9911d22..0000000
--- a/openpower/package/hostboot/hostboot-0008-Update-SBE-Update-IPMI-Watchdog-call-to-use-HARD_RES.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a048585e96058e9bf1ba43853de3a6b70053d740 Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Thu, 26 Mar 2015 13:16:18 -0500
-Subject: [PATCH 1/5] Update SBE Update IPMI Watchdog call to use HARD_RESET
- action
-
-This commit updates how the SBE Update code will setup the IPMI
-watchdog timer before calling doShutdown().  Rather than using
-NO_ACTIONS, the updated code will use the HARD_RESET action.
-
-Change-Id: Id251307aa76259d8a290a92d9e9f3418b181bc3e
-RTC: 124679
-(cherry picked from commit 815998ab802c19ade01cdc71a9e59946eedf1ab1)
----
- src/usr/sbe/sbe_resolve_sides.C | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/sbe/sbe_resolve_sides.C b/src/usr/sbe/sbe_resolve_sides.C
-index 49d2c25..26ac4e6 100644
---- a/src/usr/sbe/sbe_resolve_sides.C
-+++ b/src/usr/sbe/sbe_resolve_sides.C
-@@ -1350,7 +1350,7 @@ void sbePreShutdownIpmiCalls( void )
-                                static_cast<uint8_t>
-                                           (IPMIWATCHDOG::DO_NOT_STOP |
-                                            IPMIWATCHDOG::BIOS_FRB2), // default
--                               IPMIWATCHDOG::NO_ACTIONS); // boot count reset
-+                               IPMIWATCHDOG::TIMEOUT_HARD_RESET);
-         if(err)
-         {
-                TRACFCOMP( g_trac_sbe,
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0009-Reject-IPMI-events-which-arent-destined-for-the-host.patch b/openpower/package/hostboot/hostboot-0009-Reject-IPMI-events-which-arent-destined-for-the-host.patch
deleted file mode 100644
index 6676254..0000000
--- a/openpower/package/hostboot/hostboot-0009-Reject-IPMI-events-which-arent-destined-for-the-host.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 1e70ee010552ad835b03751ebf4788e367bcecd4 Mon Sep 17 00:00:00 2001
-From: Brian Silver <bsilver@us.ibm.com>
-Date: Thu, 26 Mar 2015 15:34:54 -0500
-Subject: [PATCH 2/5] Reject IPMI events which aren't destined for the host
-
-Change-Id: I378e0763c5ca8c13830d0e6c057b24e6beb5dc8c
-(cherry picked from commit e7b68743f7d2a160fd1dd3019f5614860576de64)
----
- src/include/usr/ipmi/ipmiif.H |  8 ++++
- src/usr/ipmi/ipmirp.C         | 92 +++++++++++++++++++++++++++----------------
- 2 files changed, 65 insertions(+), 35 deletions(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 56e3c53..e65252a 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -88,6 +88,14 @@ namespace IPMI
-         NETFUN_NONE     = (0x30 << 2),
-     };
- 
-+    // SMS_ATN OEM Event constants
-+    enum oem_event
-+    {
-+        OEM_VALID_NETFUN      = 0x3a,
-+        OEM_VALID_SEL_ID      = 0x5555,
-+        OEM_VALID_RECORD_TYPE = 0xC0,
-+    };
-+
-     // IPMI Completion Codes
-     enum completion_code
-     {
-diff --git a/src/usr/ipmi/ipmirp.C b/src/usr/ipmi/ipmirp.C
-index 5925d45..de1b219 100644
---- a/src/usr/ipmi/ipmirp.C
-+++ b/src/usr/ipmi/ipmirp.C
-@@ -331,46 +331,68 @@ void IpmiRP::postEvent(IPMI::oemSEL* i_event)
- {
-     // Called in the context of the RP message loop, mutex locked
- 
--    // Check to see if this event has a queue registered
--    IPMI::event_q_t::iterator it = iv_eventq.find(i_event->iv_cmd[0]);
-+    do {
-+        // Check to see if event is valid. AMI recomends we check the netfun,
-+        // the SEL id, and the record id. If they don't match, we're allowed
-+        // to consider this an unhandled message.
-+        if ( (i_event->iv_netfun      != IPMI::OEM_VALID_NETFUN) ||
-+             (i_event->iv_record      != IPMI::OEM_VALID_SEL_ID) ||
-+             (i_event->iv_record_type != IPMI::OEM_VALID_RECORD_TYPE) )
-+        {
-+            IPMI_TRAC("rejecting event netfun: 0x%x record: 0x%x record type: 0x%x cmd: 0x%x",
-+                      i_event->iv_netfun,
-+                      i_event->iv_record,
-+                      i_event->iv_record_type,
-+                      i_event->iv_cmd[0]);
- 
--    msg_q_t outq = (it == iv_eventq.end()) ? iv_last_chanceq : it->second;
-+            // ... and clean up the memory for the caller
-+            delete i_event;
-+            break;
-+        }
- 
--    // Create a message to send asynchronously to the event handler queue
--    // Assign the event to the message, the caller will delete the message
--    // and the event.
--    msg_t* msg = msg_allocate();
--    msg->type = IPMI::TYPE_EVENT;
--    msg->extra_data = i_event;
-+        // Check to see if this event has a queue registered
-+        IPMI::event_q_t::iterator it = iv_eventq.find(i_event->iv_cmd[0]);
-+        msg_q_t outq = (it == iv_eventq.end()) ? iv_last_chanceq : it->second;
- 
--    IPMI_TRAC("queuing event %x:%x for handler",
--              i_event->iv_netfun, i_event->iv_cmd[0])
--    int rc = msg_send(outq, msg);
-+        // Create a message to send asynchronously to the event handler queue
-+        // Assign the event to the message, the caller will delete the message
-+        // and the event.
-+        msg_t* msg = msg_allocate();
-+        msg->type = IPMI::TYPE_EVENT;
-+        msg->extra_data = i_event;
- 
--    if (rc)
--    {
--        /* @errorlog tag
--         * @errortype       ERRL_SEV_UNRECOVERABLE
--         * @moduleid        IPMI::MOD_IPMISRV_SEND
--         * @reasoncode      IPMI::RC_INVALID_SEND
--         * @userdata1       rc from msq_send()
--         * @devdesc         msg_send() failed
--         * @custdesc        Firmware error during IPMI event handling
--         */
--        errlHndl_t err =
--            new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
--                                    IPMI::MOD_IPMISRV_SEND,
--                                    IPMI::RC_INVALID_SEND,
--                                    rc,
--                                    0,
--                                    true);
--        err->collectTrace(IPMI_COMP_NAME);
--        errlCommit(err, IPMI_COMP_ID);
-+        IPMI_TRAC("queuing event %x:%x for handler",
-+                  i_event->iv_netfun, i_event->iv_cmd[0])
-+            int rc = msg_send(outq, msg);
- 
--        // ... and clean up the memory for the caller
--        delete i_event;
--        msg_free(msg);
--    }
-+        if (rc)
-+        {
-+            /* @errorlog tag
-+             * @errortype       ERRL_SEV_UNRECOVERABLE
-+             * @moduleid        IPMI::MOD_IPMISRV_SEND
-+             * @reasoncode      IPMI::RC_INVALID_SEND
-+             * @userdata1       rc from msq_send()
-+             * @devdesc         msg_send() failed
-+             * @custdesc        Firmware error during IPMI event handling
-+             */
-+            errlHndl_t err =
-+                new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
-+                                        IPMI::MOD_IPMISRV_SEND,
-+                                        IPMI::RC_INVALID_SEND,
-+                                        rc,
-+                                        0,
-+                                        true);
-+            err->collectTrace(IPMI_COMP_NAME);
-+            errlCommit(err, IPMI_COMP_ID);
-+
-+            // ... and clean up the memory for the caller
-+            delete i_event;
-+            msg_free(msg);
-+        }
-+
-+    } while(0);
-+
-+    return;
- }
- 
- /**
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch b/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch
new file mode 100644
index 0000000..5779f22
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch
@@ -0,0 +1,29 @@
+From bc07c585c41d4c6119d8608af27ab7ad1acdaab8 Mon Sep 17 00:00:00 2001
+From: Mike Baiocchi <baiocchi@us.ibm.com>
+Date: Wed, 22 Apr 2015 10:31:08 -0500
+Subject: [PATCH] Add targeting support for backplane VPD
+
+Only the targeting support required by "Updated VPD_REC_NUM numbering"
+
+Change-Id: Ifa095f719b35de2cfae9344496dee63aea190334
+RTC: 118373
+---
+ src/usr/targeting/common/xmltohb/target_types.xml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
+index 82ec014..759b73e 100644
+--- a/src/usr/targeting/common/xmltohb/target_types.xml
++++ b/src/usr/targeting/common/xmltohb/target_types.xml
+@@ -913,6 +913,8 @@
+     <attribute><id>FRU_ID</id></attribute>
+     <attribute><id>TPM_PRIMARY_INFO</id></attribute>
+     <attribute><id>TPM_BACKUP_INFO</id></attribute>
++    <attribute><id>EEPROM_VPD_PRIMARY_INFO</id></attribute>
++    <attribute><id>VPD_REC_NUM</id></attribute>
+ </targetType>
+ 
+ <targetType>
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0012-Cap-off-the-TRACFBIN-such-that-nothing-exceeds-64-by.patch b/openpower/package/hostboot/hostboot-0012-Cap-off-the-TRACFBIN-such-that-nothing-exceeds-64-by.patch
deleted file mode 100644
index fd60ef3..0000000
--- a/openpower/package/hostboot/hostboot-0012-Cap-off-the-TRACFBIN-such-that-nothing-exceeds-64-by.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7cd4c46c4b6689dcd16f7667076283abf14ef575 Mon Sep 17 00:00:00 2001
-From: Elizabeth Liner <eliner@us.ibm.com>
-Date: Mon, 30 Mar 2015 12:41:45 -0500
-Subject: [PATCH 08/10] Cap off the TRACFBIN such that nothing exceeds 64 bytes
-
-Change-Id: If8f08d1602b4437aa0e72e6d2e8d99ca615a2c77
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16762
-Tested-by: Jenkins Server
-Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-(cherry picked from commit 56ab0ee178b8277c4cc7e24e8535802821b4cba7)
----
- src/include/usr/trace/interface.H | 17 ++++++++++++-----
- src/include/usr/trace/trace.H     |  3 +++
- 2 files changed, 15 insertions(+), 5 deletions(-)
-
-diff --git a/src/include/usr/trace/interface.H b/src/include/usr/trace/interface.H
-index 3ef8575..4115ec2 100644
---- a/src/include/usr/trace/interface.H
-+++ b/src/include/usr/trace/interface.H
-@@ -218,13 +218,20 @@ const uint32_t TRACE_FIELD   = 0;       //Indicates trace is field
- */
- #define TRACFBIN(des,printf_string,address,len) \
-     { \
-+        /*TODO: RTC 124618 - remove this block once issue is resolved*/ \
-+        uint16_t l_length = len; \
-+        if(l_length > MAX_WORKING_TRACBIN_SIZE) \
-+        { \
-+            l_length = MAX_WORKING_TRACBIN_SIZE; \
-+            TRACFCOMP(des,"Shrinking to max size in TRACFBIN"); \
-+        } \
-         __TRACE_HASH_STRUCTURES(printf_string); \
-         TRACE::trace_adal_write_bin((des), \
--                                    &__traceData_codeInfo, \
--                                    __LINE__, \
--                                    address, \
--                                    len, \
--                                    TRACE_FIELD); \
-+                                &__traceData_codeInfo, \
-+                                __LINE__, \
-+                                address, \
-+                                l_length, \
-+                                TRACE_FIELD); \
-     }
- 
- /**
-diff --git a/src/include/usr/trace/trace.H b/src/include/usr/trace/trace.H
-index fdcce88..bf5421c 100644
---- a/src/include/usr/trace/trace.H
-+++ b/src/include/usr/trace/trace.H
-@@ -42,6 +42,9 @@ const uint32_t TRACE_DEBUG_OFF   = 0;       //< Set to this when debug trace off
- const uint32_t TRAC_COMP_SIZE    = 16;      //< Max component name size
- const uint32_t TRAC_MAX_ARGS     = 9;       //< Max number of arguments in trace
- 
-+//TODO: RTC 124618 - remove this block once issue is resolved
-+const uint16_t MAX_WORKING_TRACBIN_SIZE = 64; //< Max working tracBin size
-+
- typedef uint32_t trace_hash_val;    //< Hash values are 32 bits.
- 
- 
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0014-Update-VPD-Fields-Use-for-Fru-Inventory.patch b/openpower/package/hostboot/hostboot-0014-Update-VPD-Fields-Use-for-Fru-Inventory.patch
deleted file mode 100644
index b048484..0000000
--- a/openpower/package/hostboot/hostboot-0014-Update-VPD-Fields-Use-for-Fru-Inventory.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-From 1521a501ada30fd69606829b8f551547d7d882cd Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Mon, 30 Mar 2015 11:09:17 -0500
-Subject: [PATCH 5/5] Update VPD Fields Use for Fru Inventory
-
-Change-Id: Iaa4802e72e355acd03cb88e58c40d1069dd76ef5
-RTC:125044
-(cherry picked from commit 8a7427bd44bd4742a53412e6894cc2294d893012)
----
- src/usr/ipmi/ipmifruinv.C     | 97 +++++++++++++++++--------------------------
- src/usr/ipmi/ipmifruinvprvt.H |  6 ++-
- 2 files changed, 42 insertions(+), 61 deletions(-)
-
-diff --git a/src/usr/ipmi/ipmifruinv.C b/src/usr/ipmi/ipmifruinv.C
-index 7c9eb85..c6c7a30 100644
---- a/src/usr/ipmi/ipmifruinv.C
-+++ b/src/usr/ipmi/ipmifruinv.C
-@@ -35,6 +35,7 @@
- #include <ipmi/ipmifruinv.H>
- #include "ipmifru.H"
- #include "ipmifruinvprvt.H"
-+#include <stdio.h>
- 
- extern trace_desc_t * g_trac_ipmi;
- 
-@@ -401,7 +402,7 @@ errlHndl_t isdimmIpmiFruInv::buildProductInfoArea(std::vector<uint8_t> &io_data)
-         l_errl = addVpdData(io_data, SPD::BASIC_MEMORY_TYPE);
-         if (l_errl) { break; }
-         //Set Product Part/Model Number
--        l_errl = addVpdData(io_data, SPD::MODULE_PART_NUMBER);
-+        l_errl = addVpdData(io_data, SPD::MODULE_PART_NUMBER, true);
-         if (l_errl) { break; }
-         //Set Product Version
-         l_errl = addVpdData(io_data, SPD::MODULE_REVISION_CODE);
-@@ -411,8 +412,7 @@ errlHndl_t isdimmIpmiFruInv::buildProductInfoArea(std::vector<uint8_t> &io_data)
-         if (l_errl) { break; }
- 
-         //Add Asset Tag
--        io_data.push_back(uint8_t(1)); //Asset Tag is One Byte for now
--        io_data.push_back(uint8_t(0));
-+        io_data.push_back(uint8_t(0)); //No Asset Tag needed - O bytes
- 
-         //FRU File ID - Empty
-         io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-@@ -434,7 +434,8 @@ errlHndl_t isdimmIpmiFruInv::buildProductInfoArea(std::vector<uint8_t> &io_data)
- }
- 
- errlHndl_t isdimmIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
--                                     uint8_t i_keyword)
-+                                     uint8_t i_keyword,
-+                                     bool i_ascii)
- {
-     size_t     l_vpdSize = 0;
-     errlHndl_t l_errl = NULL;
-@@ -463,12 +464,22 @@ errlHndl_t isdimmIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
-             uint8_t l_offset = io_data.size();
-             io_data.resize(l_offset + 1 + l_vpdSize);
- 
--            //Add on the data to the type/length byte indicating it is binary
--            io_data.at(l_offset) = l_vpdSize;
-+            //Add on the data to the type/length byte indicating it is ascii
-+            // otherwise leave it as binary
-+            if (i_ascii)
-+            {
-+                io_data.at(l_offset) = l_vpdSize
-+                                       + IPMIFRUINV::TYPELENGTH_BYTE_ASCII;
-+            }
-+            else
-+            {
-+                io_data.at(l_offset) = l_vpdSize;
-+            }
-+            l_offset += 1;
- 
-             //Read the VPD data directly into fru inventory data buffer
--            l_errl = deviceRead(iv_target,&io_data[l_offset+1], l_vpdSize,
--                        DEVICE_SPD_ADDRESS(i_keyword));
-+            l_errl = deviceRead(iv_target,&io_data[l_offset], l_vpdSize,
-+                       DEVICE_SPD_ADDRESS(i_keyword));
-         }
-         else
-         {
-@@ -534,10 +545,10 @@ errlHndl_t procIpmiFruInv::buildBoardInfoArea(std::vector<uint8_t> &io_data)
-         l_errl = addVpdData(io_data, MVPD::VINI, MVPD::DR, true);
-         if (l_errl) { break; }
-         //Set Board Info serial number
--        l_errl = addVpdData(io_data, MVPD::VINI, MVPD::SN);
-+        l_errl = addVpdData(io_data, MVPD::VRML, MVPD::SN, true);
-         if (l_errl) { break; }
-         //Set Board part number
--        l_errl = addVpdData(io_data, MVPD::VINI, MVPD::FN);
-+        l_errl = addVpdData(io_data, MVPD::VRML, MVPD::PN, true);
-         if (l_errl) { break; }
-         //Set Board FRU File ID
-         l_errl = addVpdData(io_data, MVPD::VINI, MVPD::VZ);
-@@ -760,47 +771,18 @@ errlHndl_t backplaneIpmiFruInv::buildBoardInfoArea(
- 
-         //Set Product Name - ascii formatted data
-         //@fixme RTC Story 118373
--        l_errl = addVpdData(io_data, CVPD::OSYS, CVPD::DR, true);
--
--        //Support Legacy VPD without OSYS record
--        if (l_errl)
--        {
--
--            TRACFCOMP(g_trac_ipmi,
--                      "backplaneIpmiFruInv::buildChassisBoardInfoArea - "
--                      " Using Legacy Chassis VPD Data without OSYS record");
--
--            //Delete errorlog and use Legacy VPD Fields
--            delete l_errl;
--            l_errl = NULL;
--            //Set Product Name - ascii formatted data
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::DR, true);
--            if (l_errl) { break; }
--
--            //Set Product Serial number - ascii formatted data
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VS, true);
--            if (l_errl) { break; }
--
--            //Set Product Part number - ascii formatted data
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VP, true);
--            if (l_errl) { break; }
-+        l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::DR, true);
-+        if (l_errl) { break; }
- 
--        }
--        else
--        {
--            //Set serial number - ascii formatted field
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OSYS, CVPD::SS, true);
--            if (l_errl) { break; }
-+        //Set Product Serial number - ascii formatted data
-+        //@fixme RTC Story 118373
-+        l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VS, true);
-+        if (l_errl) { break; }
- 
--            //Set chassis part number - ascii formatted field
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OSYS, CVPD::MM, true);
--            if (l_errl) { break; }
--        }
-+        //Set Product Part number - ascii formatted data
-+        //@fixme RTC Story 118373
-+        l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VP, true);
-+        if (l_errl) { break; }
- 
-         //Push Fru File ID Byte - NULL
-         io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-@@ -950,22 +932,19 @@ void IpmiFruInv::addEcidData(const TARGETING::TargetHandle_t& i_target,
- {
-     // Create Custom ECID Field
-     // - First put in 'ECID:' to make it obvious what this is
--    uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 5,'E','C','I','D',
--                                   ':', IPMIFRUINV::TYPELENGTH_BYTE_NULL + 16};
-+    uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 21,'E','C','I','D',
-+                                    ':'};
- 
-     // @todo-RTC:124687 - Refactor multiple reallocations
-     io_data.insert( io_data.end(),
-                     &l_data[0],
-                     &l_data[0] + (uint8_t(sizeof(l_data) / sizeof(uint8_t))));
- 
--    uint8_t* l_vDataPtr = (uint8_t*) &i_ecidInfo[0];
--    //Insert first 64 bits of ECID data
--    io_data.insert(io_data.end(),
--                &l_vDataPtr[0], &l_vDataPtr[0]+8);
--    l_vDataPtr = (uint8_t*) &i_ecidInfo[1];
--    //Insert second 64 bits of ECID data
--    io_data.insert(io_data.end(),
--        &l_vDataPtr[0], &l_vDataPtr[0]+8);
-+    char l_ecidAscii[33];
-+    sprintf(l_ecidAscii, "%.16llX%.16llX", i_ecidInfo[0], i_ecidInfo[1]);
-+
-+    uint8_t* l_vDataPtr = (uint8_t*) &l_ecidAscii[0];
-+    io_data.insert(io_data.end(), &l_vDataPtr[0], &l_vDataPtr[0]+16);
- 
-     return;
- }
-diff --git a/src/usr/ipmi/ipmifruinvprvt.H b/src/usr/ipmi/ipmifruinvprvt.H
-index aed5dfc..2573a84 100644
---- a/src/usr/ipmi/ipmifruinvprvt.H
-+++ b/src/usr/ipmi/ipmifruinvprvt.H
-@@ -303,9 +303,11 @@ class isdimmIpmiFruInv : public IpmiFruInv
-      *        record
-      * @param[in/out] data, The container with record data
-      * @param[in] keyword, Indicates where in the VPD to get more data
--
-+     * @param[in] ascii, Indicates if VPD field is in ascii format or not
-      */
--    errlHndl_t addVpdData(std::vector<uint8_t> &io_data, uint8_t i_keyword);
-+    errlHndl_t addVpdData(std::vector<uint8_t> &io_data,
-+                          uint8_t i_keyword,
-+                          bool i_ascii=false);
- 
- };
- 
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0017-Fix-I2C-Reset-to-resolve-I2C-Bus-Arbitration-Lost-Er.patch b/openpower/package/hostboot/hostboot-0017-Fix-I2C-Reset-to-resolve-I2C-Bus-Arbitration-Lost-Er.patch
deleted file mode 100644
index 757f701..0000000
--- a/openpower/package/hostboot/hostboot-0017-Fix-I2C-Reset-to-resolve-I2C-Bus-Arbitration-Lost-Er.patch
+++ /dev/null
@@ -1,306 +0,0 @@
-From 3f630837040bae961612214307d2903e65af9e5d Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Thu, 2 Apr 2015 13:42:00 -0500
-Subject: [PATCH 05/10] Fix I2C Reset to resolve I2C Bus Arbitration Lost
- Errors
-
-This commit fixes 2 bugs where the full "Force Reset and Unlock"
-I2C reset procedure used to both avoid and recover from I2C Bus
-Arbitration Lost errors was not being performed correctly on any
-ports but port 0.
-
-Change-Id: Ie967d81917e9b942d5cb516856075ebdb5029487
-CQ: SW297864
-(cherry picked from commit 01ee7107170c867d25af2485b75307e3bfa87339)
----
- src/include/usr/i2c/i2creasoncodes.H |   1 +
- src/usr/i2c/i2c.C                    | 182 ++++++++++++++++++++++++-----------
- src/usr/i2c/i2c.H                    |   4 +-
- 3 files changed, 130 insertions(+), 57 deletions(-)
-
-diff --git a/src/include/usr/i2c/i2creasoncodes.H b/src/include/usr/i2c/i2creasoncodes.H
-index a63e8d5..454ef15 100644
---- a/src/include/usr/i2c/i2creasoncodes.H
-+++ b/src/include/usr/i2c/i2creasoncodes.H
-@@ -58,6 +58,7 @@ enum i2cModuleId
-     I2C_SETUP_MASTERS                   = 0x08,
-     I2C_SEND_SLAVE_STOP                 = 0x09,
-     I2C_PROCESS_ACTIVE_MASTERS          = 0x0A,
-+    I2C_FORCE_RESET_AND_UNLOCK          = 0x0B,
- };
- 
- 
-diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
-index bc4bb7b..ee7e5e3 100755
---- a/src/usr/i2c/i2c.C
-+++ b/src/usr/i2c/i2c.C
-@@ -1925,6 +1925,11 @@ errlHndl_t i2cForceResetAndUnlock( TARGETING::Target * i_target,
- {
- 
-     errlHndl_t err = NULL;
-+    mode_reg_t mode;
-+    uint64_t l_speed = I2C_BUS_SPEED_FROM_MRW;
-+
-+    // I2C Bus Speed Array
-+    TARGETING::ATTR_I2C_BUS_SPEED_ARRAY_type speed_array;
- 
-     TRACDCOMP( g_trac_i2c,
-                ENTER_MRK"i2cForceResetAndUnlock()" );
-@@ -1932,62 +1937,122 @@ errlHndl_t i2cForceResetAndUnlock( TARGETING::Target * i_target,
-     do
-     {
- 
--        // enable diagnostic mode
--        // set bit in mode register
--        mode_reg_t diagnostic;
--
--        diagnostic.diag_mode = 0x1;
--
--        err = i2cRegisterOp( DeviceFW::WRITE,
--                             i_target,
--                             &diagnostic.value,
--                             I2C_REG_MODE,
--                             i_args );
--
--        if( err )
-+        // Get I2C Bus Speed Array attribute.  It will be used to determine
-+        // which engine/port combinations have devices on them
-+        if (  !( i_target->tryGetAttr<TARGETING::ATTR_I2C_BUS_SPEED_ARRAY>
-+                                          (speed_array) ) )
-         {
-             TRACFCOMP( g_trac_i2c,
--                       ERR_MRK"I2C Enable Diagnostic mode Failed!!" );
-+                       ERR_MRK"i2cForceResetAndUnlock() - Cannot find "
-+                       "ATTR_I2C_BUS_SPEED_ARRAY needed for operation");
-+            /*@
-+             * @errortype
-+             * @reasoncode     I2C_ATTRIBUTE_NOT_FOUND
-+             * @severity       ERRORLOG_SEV_UNRECOVERABLE
-+             * @moduleid       I2C_FORCE_RESET_AND_UNLOCK
-+             * @userdata1      Target for the attribute
-+             * @userdata2      <UNUSED>
-+             * @devdesc        ATTR_I2C_BUS_SPEED_ARRAY not found
-+             * @custdesc       I2C configuration data missing
-+             */
-+            err = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_UNRECOVERABLE,
-+                                           I2C_FORCE_RESET_AND_UNLOCK,
-+                                           I2C_ATTRIBUTE_NOT_FOUND,
-+                                           TARGETING::get_huid(i_target),
-+                                           0x0,
-+                                           true /*Add HB SW Callout*/ );
-+
-+            err->collectTrace( I2C_COMP_NAME, 256);
-+
-             break;
-         }
- 
-+        // Need to send slave stop to all ports with a device on the engine
-+        for( uint32_t port = 0; port < P8_MASTER_PORTS; port++ )
-+        {
- 
--        //toggle clock line
--        err = i2cToggleClockLine( i_target,
--                                  i_args );
-+            // Only send stop to a port if there are devices on it
-+            l_speed = speed_array[i_args.engine][port];
-+            if ( l_speed == 0 )
-+            {
-+                continue;
-+            }
- 
--        if( err )
--        {
--            break;
--        }
-+            TRACUCOMP( g_trac_i2c,
-+                       INFO_MRK"i2cForceResetAndUnlock() - Performing op on "
-+                       "engine=%d, port=%d",
-+                       i_args.engine, port);
- 
--        //manually send stop signal
--        err = i2cSendStopSignal( i_target,
--                                  i_args );
-+            // Clear mode register
-+            mode.value = 0x0ull;
- 
--        if( err )
--        {
--            break;
--        }
-+            // set port in mode register
-+            mode.port_num = port;
- 
--        //disable diagnostic mode
--        //set bit in mode register
--        diagnostic.diag_mode = 0x0;
-+            // enable diagnostic mode in mode register
-+            mode.diag_mode = 0x1;
- 
--        err = i2cRegisterOp( DeviceFW::WRITE,
--                             i_target,
--                             &diagnostic.value,
--                             I2C_REG_MODE,
--                             i_args );
-+            err = i2cRegisterOp( DeviceFW::WRITE,
-+                                 i_target,
-+                                 &mode.value,
-+                                 I2C_REG_MODE,
-+                                 i_args );
- 
-+            if( err )
-+            {
-+                TRACFCOMP( g_trac_i2c,
-+                           ERR_MRK"I2C Enable Diagnostic mode Failed!!" );
- 
--        if( err )
--        {
--            TRACFCOMP( g_trac_i2c,
--                       ERR_MRK"I2C disable Diagnostic mode Failed!!" );
--            break;
--        }
- 
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+
-+            //toggle clock line
-+            err = i2cToggleClockLine( i_target,
-+                                      i_args );
-+
-+            if( err )
-+            {
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+            //manually send stop signal
-+            err = i2cSendStopSignal( i_target,
-+                                     i_args );
-+
-+            if( err )
-+            {
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+            // disable diagnostic mode in mode register
-+            mode.diag_mode = 0x0;
-+
-+            err = i2cRegisterOp( DeviceFW::WRITE,
-+                                 i_target,
-+                                 &mode.value,
-+                                 I2C_REG_MODE,
-+                                 i_args );
-+
-+
-+            if( err )
-+            {
-+                TRACFCOMP( g_trac_i2c,
-+                           ERR_MRK"I2C disable Diagnostic mode Failed!!" );
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+
-+        } // end of port for loop
- 
-     }while(0);
- 
-@@ -2036,8 +2101,10 @@ errlHndl_t i2cReset ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                //error trying to force a reset break
--                break;
-+                // We still want to send the slave stop command since the
-+                // initial reset completed above.
-+                // So just commit the log here and let the function continue.
-+                errlCommit( err, I2C_COMP_ID );
-             }
-         }
- 
-@@ -2114,13 +2181,6 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
-         // Need to send slave stop to all ports with a device on the engine
-         for( uint32_t port = 0; port < P8_MASTER_PORTS; port++ )
-         {
--            // Only do port 0 for FSI I2C
--            if ( ( i_args.switches.useFsiI2C == 1 ) &&
--                 ( port != 0 ) )
--            {
--                break;
--            }
--
-             // Only send stop to a port if there are devices on it
-             l_speed = speed_array[i_args.engine][port];
-             if ( l_speed == 0 )
-@@ -2139,7 +2199,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
-                                        i_args );
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-             mode.bit_rate_div = i_args.bit_rate_divisor;
-@@ -2156,7 +2219,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-             cmd.value = 0x0ull;
-@@ -2174,7 +2240,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-             // Now wait for cmd Complete
-@@ -2183,7 +2252,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-         } // end of port for-loop
-diff --git a/src/usr/i2c/i2c.H b/src/usr/i2c/i2c.H
-index c3e5278..4a74663 100755
---- a/src/usr/i2c/i2c.H
-+++ b/src/usr/i2c/i2c.H
-@@ -723,8 +723,8 @@ errlHndl_t i2cSendStopSignal(TARGETING::Target * i_target,
- 
- /**
-  * @brief This function will reset the I2C Master engine specified
-- *      by the args.  It will also then initiate a Stop cmd to the
-- *      slave device.
-+ *      by the args.  It will also end the sequence by initiating a Stop
-+ *      cmd to all ports on the engine that have a slave device.
-  *
-  * @param[in] i_target - The I2C master target.
-  *
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0018-Fix-constant-refresh-of-vpd-cache.patch b/openpower/package/hostboot/hostboot-0018-Fix-constant-refresh-of-vpd-cache.patch
deleted file mode 100644
index ac16f09..0000000
--- a/openpower/package/hostboot/hostboot-0018-Fix-constant-refresh-of-vpd-cache.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 5f06da05527c3ef2d9ee709e912c5840eb366e87 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Thu, 2 Apr 2015 12:29:45 -0500
-Subject: [PATCH 04/10] Fix constant refresh of vpd cache
-
-Code was inadvertantly detecting mismatched pnor cache contents
-on every boot.
-
-Change-Id: I631dc758e03316a28d13f6d19032c1a76e3cffc1
-(cherry picked from commit 0d95414e03ff337404a3e20fd421fd8b4272ebc5)
----
- src/usr/vpd/ipvpd.C | 18 ++++++++++++------
- src/usr/vpd/ipvpd.H |  5 ++++-
- src/usr/vpd/vpd.C   |  2 +-
- 3 files changed, 17 insertions(+), 8 deletions(-)
-
-diff --git a/src/usr/vpd/ipvpd.C b/src/usr/vpd/ipvpd.C
-index a0682d2..2cefb6e 100644
---- a/src/usr/vpd/ipvpd.C
-+++ b/src/usr/vpd/ipvpd.C
-@@ -397,6 +397,9 @@ errlHndl_t IpVpdFacade::cmpPnorToSeeprom ( TARGETING::Target * i_target,
-                     l_dataSeeprom,
-                     l_sizePnor ) != 0 )
-         {
-+            TRACFCOMP( g_trac_vpd, "cmpPnorToSeeprom found mismatch for HUID %.8X 0x%X:0x%X", TARGETING::get_huid(i_target), i_record, i_keyword );
-+            TRACFBIN( g_trac_vpd, "EEPROM", l_dataSeeprom, l_sizeSeeprom );
-+            TRACFBIN( g_trac_vpd, "PNOR", l_dataPnor, l_sizePnor );
-             break;
-         }
- 
-@@ -898,8 +901,9 @@ bool IpVpdFacade::hasVpdPresent( TARGETING::Target * i_target,
-         }
- 
-         vpdPresent = recordPresent( recordName,
--                                recordOffset,
--                                i_target );
-+                                    recordOffset,
-+                                    i_target,
-+                                    VPD::AUTOSELECT );
- 
-     }while( 0 );
- 
-@@ -918,7 +922,8 @@ bool IpVpdFacade::hasVpdPresent( TARGETING::Target * i_target,
- // ------------------------------------------------------------------
- bool IpVpdFacade::recordPresent( const char * i_record,
-                                  uint16_t & o_offset,
--                                 TARGETING::Target * i_target )
-+                                 TARGETING::Target * i_target,
-+                                 VPD::vpdCmdTarget i_location )
- {
-     errlHndl_t err = NULL;
-     uint64_t tmpOffset = 0x0;
-@@ -946,7 +951,7 @@ bool IpVpdFacade::recordPresent( const char * i_record,
-                              RECORD_BYTE_SIZE,
-                              record,
-                              i_target,
--                             VPD::AUTOSELECT );
-+                             i_location );
-             tmpOffset += RECORD_BYTE_SIZE;
- 
-             if( err )
-@@ -963,7 +968,7 @@ bool IpVpdFacade::recordPresent( const char * i_record,
-                                  RECORD_ADDR_BYTE_SIZE,
-                                  &o_offset,
-                                  i_target,
--                                 VPD::AUTOSELECT );
-+                                 i_location );
-                 if( err )
-                 {
-                     break;
-@@ -1003,7 +1008,8 @@ errlHndl_t IpVpdFacade::findRecordOffsetPnor ( const char * i_record,
- 
-     matchFound = recordPresent( i_record,
-                                 offset,
--                                i_target );
-+                                i_target,
-+                                i_args.location );
- 
-     if( !matchFound )
-     {
-diff --git a/src/usr/vpd/ipvpd.H b/src/usr/vpd/ipvpd.H
-index 2350bdd..7c2090c 100644
---- a/src/usr/vpd/ipvpd.H
-+++ b/src/usr/vpd/ipvpd.H
-@@ -353,11 +353,14 @@ class IpVpdFacade
-      *
-      * @param[in] i_target - The target to retrieve the data for.
-      *
-+     * @param[in] i_location - VPD location to fetch data from (PNOR/SEEPROM)
-+     *
-      * @return bool - True if the record is found, False otherwise.
-      */
-     bool recordPresent( const char * i_record,
-                         uint16_t & offset,
--                        TARGETING::Target * i_target );
-+                        TARGETING::Target * i_target,
-+                        VPD::vpdCmdTarget i_location );
- 
-     /**
-      * @brief This function will read the VPD TOC to find the offset where the
-diff --git a/src/usr/vpd/vpd.C b/src/usr/vpd/vpd.C
-index 3533af9..963025f 100755
---- a/src/usr/vpd/vpd.C
-+++ b/src/usr/vpd/vpd.C
-@@ -533,7 +533,7 @@ errlHndl_t ensureCacheIsInSync ( TARGETING::Target * i_target )
-         // If we did not match, we need to load SEEPROM VPD data into PNOR
-         if( l_matchPN && l_matchSN )
-         {
--            TRACFCOMP(g_trac_vpd,"VPD::ensureCacheIsInSync: PNOR_PN/SN = SEEPROM_PN/SN for target %.8X",TARGETING::get_huid(i_target));
-+            TRACFCOMP(g_trac_vpd,"VPD::ensureCacheIsInSync: PNOR_PN/SN == SEEPROM_PN/SN for target %.8X",TARGETING::get_huid(i_target));
-         }
-         else
-         {
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0019-Fix-TX_MSBSWAP-attribute-for-Firestone.patch b/openpower/package/hostboot/hostboot-0019-Fix-TX_MSBSWAP-attribute-for-Firestone.patch
deleted file mode 100644
index fbdfbda..0000000
--- a/openpower/package/hostboot/hostboot-0019-Fix-TX_MSBSWAP-attribute-for-Firestone.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 42ad0709dfe4c053498660fe9bc884126082c2d6 Mon Sep 17 00:00:00 2001
-From: Norman James <njames@us.ibm.com>
-Date: Tue, 17 Mar 2015 23:49:24 -0500
-Subject: [PATCH] Serverwiz2: TX_MSBSWAP and PEER_PATH fix
-
-Change-Id: I733f9c09837482469365b4de533f3560d049d0a6
----
- src/usr/targeting/common/Targets.pm    |  7 +++++++
- src/usr/targeting/common/processMrw.pl | 29 ++++++++++++++++-------------
- 2 files changed, 23 insertions(+), 13 deletions(-)
-
-diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
-index 29f6bcb..ea5ffde 100644
---- a/src/usr/targeting/common/Targets.pm
-+++ b/src/usr/targeting/common/Targets.pm
-@@ -338,8 +338,15 @@ sub buildHierarchy
-     {
-         foreach my $b (@{ $target_xml->{bus} })
-         {
-+            if (ref($b->{dest_path}) eq "HASH") {
-+                $b->{dest_path}="";
-+            }
-+            if (ref($b->{source_path}) eq "HASH") {
-+                $b->{source_path}="";
-+            }
-             my $source_target =
-               $key . "/" . $b->{source_path} . $b->{source_target};
-+
-             my $dest_target = $key . "/" . $b->{dest_path} . $b->{dest_target};
-             my $bus_type    = $b->{bus_type};
-             push(
-diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
-index 691cbcb..7133534 100644
---- a/src/usr/targeting/common/processMrw.pl
-+++ b/src/usr/targeting/common/processMrw.pl
-@@ -667,11 +667,15 @@ sub processAbus
-     my $target    = shift;
- 
-     my $found_abus = 0;
--   $targetObj->setAttribute($target, "PEER_PATH","physical:na");
--   $targetObj->setAttribute($target, "EI_BUS_TX_LANE_INVERT","0");
--   $targetObj->setAttribute($target, "EI_BUS_TX_MSBSWAP","0");
--   # $targetObj->setAttribute($target, "PEER_TARGET","");
--
-+    if ($targetObj->isBadAttribute($target, "PEER_PATH"))
-+    {
-+        $targetObj->setAttribute($target, "PEER_PATH","physical:na");
-+    }
-+    $targetObj->setAttribute($target, "EI_BUS_TX_LANE_INVERT","0");
-+    if ($targetObj->isBadAttribute($target, "EI_BUS_TX_MSBSWAP"))
-+    {
-+        $targetObj->setAttribute($target, "EI_BUS_TX_MSBSWAP","0");
-+    }
-     my $abus_child_conn = $targetObj->getFirstConnectionDestination($target);
-     if ($abus_child_conn ne "")
-     {
-@@ -787,12 +791,12 @@ sub processPcie
- 
-     #iop_swap{iop}{clk swap}{clk group reversal}
-     $iop_swap{0}{0}{'00'}=$t[0];
--    $iop_swap{0}{0}{'01'}=$t[1];
--    $iop_swap{0}{0}{'10'}=$t[2];
-+    $iop_swap{0}{0}{'10'}=$t[1];
-+    $iop_swap{0}{0}{'01'}=$t[2];
-     $iop_swap{0}{0}{'11'}=$t[3];
-     $iop_swap{0}{1}{'00'}=$t[4];
--    $iop_swap{0}{1}{'01'}=$t[5];
--    $iop_swap{0}{1}{'10'}=$t[6];
-+    $iop_swap{0}{1}{'10'}=$t[5];
-+    $iop_swap{0}{1}{'01'}=$t[6];
-     $iop_swap{0}{1}{'11'}=$t[7];
- 
-     $iop_swap{1}{0}{'00'}=$t[8];
-@@ -800,8 +804,8 @@ sub processPcie
-     $iop_swap{1}{0}{'10'}=$t[10];
-     $iop_swap{1}{0}{'11'}=$t[11];
-     $iop_swap{1}{1}{'00'}=$t[12];
--    $iop_swap{1}{1}{'01'}=$t[13];
--    $iop_swap{1}{1}{'10'}=$t[14];
-+    $iop_swap{1}{1}{'10'}=$t[13];
-+    $iop_swap{1}{1}{'01'}=$t[14];
-     $iop_swap{1}{1}{'11'}=$t[15];
- 
-     my @lane_eq;
-@@ -958,13 +962,12 @@ sub processMembufVpdAssociation
- {
-     my $targetObj = shift;
-     my $target    = shift;
--
-     my $vpds=$targetObj->findConnections($target,"I2C","VPD");
-     if ($vpds ne "" ) {
-         my $vpd = $vpds->{CONN}->[0];
--
-         my $membuf_assocs=$targetObj->findConnections($vpd->{DEST_PARENT},
-                           "LOGICAL_ASSOCIATION","MEMBUF");
-+
-         if ($membuf_assocs ne "") {
-             foreach my $membuf_assoc (@{$membuf_assocs->{CONN}}) {
-                 my $membuf_target = $membuf_assoc->{DEST_PARENT};
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0021-Fix-more-than-2-PT-keywords-in-MVPD-VTOC.patch b/openpower/package/hostboot/hostboot-0021-Fix-more-than-2-PT-keywords-in-MVPD-VTOC.patch
deleted file mode 100644
index 2e8a811..0000000
--- a/openpower/package/hostboot/hostboot-0021-Fix-more-than-2-PT-keywords-in-MVPD-VTOC.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From d64701a8932f53511485f23b8acfb9c564b72297 Mon Sep 17 00:00:00 2001
-From: Matt Ploetz <maploetz@us.ibm.com>
-Date: Wed, 15 Apr 2015 14:51:11 -0500
-Subject: [PATCH] Fix for firestone vpd cache
-
-Change-Id: Ica112e3d5d131b0171b7b54d85a3810582a08e27
----
- src/usr/vpd/ipvpd.C | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/vpd/ipvpd.C b/src/usr/vpd/ipvpd.C
-index b409c50..3738c61 100644
---- a/src/usr/vpd/ipvpd.C
-+++ b/src/usr/vpd/ipvpd.C
-@@ -1333,7 +1333,7 @@ IpVpdFacade::getRecordListSeeprom ( std::list<TocPtRecord> & o_recList,
-     offset = le16toh( toc_rec->record_offset ) + 1;  // skip 'large resource'
- 
-     // Read the PT keyword(s) from the VTOC
--    for (uint16_t index = 0; index < 2; ++index)
-+    for (uint16_t index = 0; index < 3; ++index)
-     {
-         pt_len = sizeof(l_buffer);
-         err = retrieveKeyword( "PT",
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index aa689ce..5f423da 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= f18b0d9ab1a518dc5556bb01b264b67ad63f6f00
+HOSTBOOT_VERSION ?= 6bdbe42ee0a2808be1f2f38026e57290cdfa8fc6
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0