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