More master-next branch changes for pre-1.2 release
This commit mostly just updates the level of hostboot to be used in
master-next and updates/removes the hostboot patches accordingly.
diff --git a/openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch b/openpower/package/hostboot/hostboot-0003-mss_thermal_undo.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch
rename to openpower/package/hostboot/hostboot-0003-mss_thermal_undo.patch
diff --git a/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch b/openpower/package/hostboot/hostboot-0004-targeting-support-for-backplane-VPD.patch
similarity index 94%
rename from openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch
rename to openpower/package/hostboot/hostboot-0004-targeting-support-for-backplane-VPD.patch
index 5779f22..edd4941 100644
--- a/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch
+++ b/openpower/package/hostboot/hostboot-0004-targeting-support-for-backplane-VPD.patch
@@ -5,7 +5,7 @@
Only the targeting support required by "Updated VPD_REC_NUM numbering"
-Change-Id: Ifa095f719b35de2cfae9344496dee63aea190334
+Change-Id: I24cda4d713806330a9f61d588006d63966f92550
RTC: 118373
---
src/usr/targeting/common/xmltohb/target_types.xml | 2 ++
diff --git a/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch b/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
deleted file mode 100644
index 6f1b80c..0000000
--- a/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
+++ /dev/null
@@ -1,350 +0,0 @@
-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] Add PNOR Version Information to IPMI Fru Inventory
-
-Change-Id: Ib49fe67e9c6631b2b7ea0005e692c9aea6d84057
-RTC:123353
----
- src/usr/ipmi/ipmifruinv.C | 207 +++++++++++++++++++++
- src/usr/ipmi/ipmifruinvprvt.H | 47 +++++
- .../targeting/common/xmltohb/attribute_types.xml | 8 +
- src/usr/targeting/common/xmltohb/target_types.xml | 1 +
- 4 files changed, 263 insertions(+)
-
-diff --git a/src/usr/ipmi/ipmifruinv.C b/src/usr/ipmi/ipmifruinv.C
-index 4f0d7d7..aaf62d1 100644
---- a/src/usr/ipmi/ipmifruinv.C
-+++ b/src/usr/ipmi/ipmifruinv.C
-@@ -37,6 +37,7 @@
- #include "ipmifruinvprvt.H"
- #include <stdio.h>
- #include <assert.h>
-+#include <pnor/pnorif.H>
-
- extern trace_desc_t * g_trac_ipmi;
-
-@@ -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;
-+ case TARGETING::TYPE_SYS:
-+ // Use sys target for setting System Firmware Info
-+ l_fru = new systemFwIpmiFruInv(l_target);
-+ break;
- default:
- assert(false,
- "IpmiFruInv::Factory: No support for target type given: [%08x]",
-@@ -927,6 +932,199 @@ errlHndl_t backplaneIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
- return l_errl;
- }
-
-+//##############################################################################
-+systemFwIpmiFruInv::systemFwIpmiFruInv( TARGETING::TargetHandle_t i_target )
-+ :IpmiFruInv(i_target)
-+{
-+
-+};
-+
-+errlHndl_t systemFwIpmiFruInv::buildInternalUseArea(std::vector<uint8_t>
-+ &io_data)
-+{
-+ //This section not needed for proc type
-+ return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildChassisInfoArea(std::vector<uint8_t>
-+ &io_data)
-+{
-+ //This section not needed for system firmware type
-+ return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildBoardInfoArea(std::vector<uint8_t> &io_data)
-+{
-+ //This section not needed for system firmware type
-+ return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildProductInfoArea(std::vector<uint8_t>
-+ &io_data)
-+{
-+ errlHndl_t l_errl = NULL;
-+
-+ do {
-+ //Set formatting data that goes at the beginning of the record
-+ preFormatProcessing(io_data, true);
-+
-+ 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};
-+
-+ io_data.insert( io_data.end(),
-+ &l_data[0],
-+ &l_data[0] + (uint8_t(sizeof(l_data) / sizeof(uint8_t))));
-+
-+ //Get PNOR Version Here
-+ PNOR::SectionInfo_t l_pnorInfo;
-+ l_errl = getSectionInfo( PNOR::VERSION , l_pnorInfo);
-+ if (l_errl) { break; }
-+
-+ uint8_t* l_versionData = reinterpret_cast<uint8_t*>( l_pnorInfo.vaddr );
-+ //Total Bytes in PNOR Version String
-+ uint8_t l_numBytes = 0;
-+ uint8_t l_curOffset = 0;
-+
-+ //Total Number of fields needed to print PNOR Version String
-+ uint8_t l_numFields = 0;
-+ bool l_clearStandardFields = true;
-+
-+ //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 newline chars
-+ while ((l_numBytes < IPMIFRUINV::MAX_RECORD_SIZE -
-+ (uint8_t(sizeof(l_data) / sizeof(uint8_t))) -
-+ IPMIFRUINV::COMMON_HEADER_FORMAT_SIZE - 8)
-+ && (((char)(l_versionData[l_numBytes])) != '\0'))
-+ {
-+
-+ if (((char)(l_versionData[l_numBytes])) == '\n')
-+ {
-+
-+ if (l_numBytes > l_curOffset)
-+ {
-+ //Add on size of this field to the data buffer
-+ io_data.push_back(
-+ IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+ + (l_numBytes-l_curOffset));
-+
-+ io_data.insert(io_data.end(),
-+ &l_versionData[0]+(l_curOffset),
-+ &l_versionData[0]+(l_numBytes));
-+ }
-+
-+ //Null data for standard fields needs to be indicated once after
-+ // the first segment of data is displayed to match the
-+ // ipmi fru spec
-+ if (l_clearStandardFields)
-+ {
-+ //Add Empty Asset Tag
-+ io_data.push_back(uint8_t(0));
-+ //FRU File ID - Empty
-+ io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+ io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+ l_clearStandardFields = false;
-+ }
-+
-+ //Increment past the newline char
-+ l_curOffset = l_numBytes + 1;
-+ }
-+ l_numBytes++;
-+ }
-+
-+ if (l_curOffset == 0)
-+ {
-+ //Calculate the number of fields required to display this data
-+ // given only MAX_ASCII_FIELD_SIZE bytes can be in any one given
-+ // IPMI fru inventory field
-+ l_numFields = l_numBytes / IPMIFRUINV::MAX_ASCII_FIELD_SIZE;
-+ if (l_numBytes % IPMIFRUINV::MAX_ASCII_FIELD_SIZE)
-+ {
-+ l_numFields += 1;
-+ }
-+
-+ //Count by number of fields, adding the data to the buffer as
-+ // we go.
-+ for (uint8_t i=0; i < l_numFields; i++)
-+ {
-+ //Determine the data size for this particular field
-+ uint8_t l_dataSize=IPMIFRUINV::MAX_ASCII_FIELD_SIZE;
-+ if (i == l_numFields - 1)
-+ {
-+ l_dataSize = l_numBytes -
-+ (i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE);
-+ }
-+
-+ //Add on size of this field to the data buffer
-+ io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+ + l_dataSize);
-+
-+ //Insert this segment of version string data
-+ io_data.insert(io_data.end(),
-+ &l_versionData[0]+(i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE),
-+ &l_versionData[0]+(i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE)
-+ +l_dataSize);
-+
-+ //Null data for standard fields needs to be indicated once after
-+ // the first segment of data is displayed to match the
-+ // ipmi fru spec
-+ if (l_clearStandardFields)
-+ {
-+ //Add Empty Asset Tag
-+ io_data.push_back(uint8_t(0));
-+ //FRU File ID - Empty
-+ io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+ //io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+ l_clearStandardFields = false;
-+ }
-+
-+ }
-+ }
-+ else
-+ {
-+ if (l_numBytes > l_curOffset)
-+ {
-+ io_data.push_back( IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+ + (l_numBytes-l_curOffset));
-+
-+ io_data.insert(io_data.end(),
-+ &l_versionData[0]+(l_curOffset),
-+ &l_versionData[0]+(l_numBytes));
-+ }
-+
-+ }
-+
-+ if (l_clearStandardFields)
-+ {
-+ //Add Asset Tag
-+ 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);
-+ //io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+ }
-+
-+ io_data.push_back(IPMIFRUINV::END_OF_CUSTOM_FIELDS);
-+
-+ //Finalize section formatting
-+ postFormatProcessing(io_data);
-+
-+ } while(0);
-+
-+ return l_errl;
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildMultiRecordInfoArea(std::vector<uint8_t>
-+ &io_data)
-+{
-+ //This section not needed for system firmware type
-+ return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+
-+
- void IpmiFruInv::addEcidData(const TARGETING::TargetHandle_t& i_target,
- const TARGETING::ATTR_ECID_type& i_ecidInfo,
- std::vector<uint8_t> &io_data)
-@@ -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);
-+ if (hasSystemFwFruId)
-+ {
-+ l_potentialFrus.push_back(std::make_pair(pSys, l_systemFwFruId));
-+ }
-+
- // Find list of all target types that may need a fru inv. record set
- IPMIFRUINV::gatherSetData(pSys, frusToClear,
- l_potentialFrus, i_updateData);
-diff --git a/src/usr/ipmi/ipmifruinvprvt.H b/src/usr/ipmi/ipmifruinvprvt.H
-index 2573a84..468a47f 100644
---- a/src/usr/ipmi/ipmifruinvprvt.H
-+++ b/src/usr/ipmi/ipmifruinvprvt.H
-@@ -42,6 +42,8 @@ namespace IPMIFRUINV
- COMMON_HEADER_FORMAT_SIZE = 8, //size in bytes
- DEFAULT_CHASSIS_TYPE = 0x05,
- DEFAULT_FRU_OFFSET = 0,
-+ MAX_ASCII_FIELD_SIZE = 0x3F, //size in bytes
-+ MAX_RECORD_SIZE = 0xFF, //size in bytes
- };
- };
-
-@@ -460,4 +462,49 @@ class backplaneIpmiFruInv : public IpmiFruInv
-
- };
-
-+//Child class for building up System Firwmare Fru Inventory Record Data
-+class systemFwIpmiFruInv : public IpmiFruInv
-+{
-+
-+ public:
-+ /**
-+ * @brief Constructor
-+ *
-+ * @param[in] TargetHandle_t, Handle to target for which
-+ * to get relevant IPMI FRU Data from
-+ */
-+ systemFwIpmiFruInv( TARGETING::TargetHandle_t i_target);
-+
-+ /**
-+ * @brief Builds the Internal Use Area Data Section
-+ * @param[in/out] data, The container to put internal use area data in
-+ */
-+ errlHndl_t buildInternalUseArea(std::vector<uint8_t> &io_data);
-+
-+ /**
-+ * @brief Builds the Chassis Info Area Data Section
-+ * @param[in/out] data, The container to put chassis info area data in
-+ */
-+ errlHndl_t buildChassisInfoArea(std::vector<uint8_t> &io_data);
-+
-+ /**
-+ * @brief Builds the Board Info Area Data Section
-+ * @param[in/out] data, The container to put board info area data in
-+ */
-+ errlHndl_t buildBoardInfoArea(std::vector<uint8_t> &io_data);
-+
-+ /**
-+ * @brief Builds the Product Info Area Data Section
-+ * @param[in/out] data, The container to put product info area data in
-+ */
-+ errlHndl_t buildProductInfoArea(std::vector<uint8_t> &io_data);
-+
-+ /**
-+ * @brief Builds the MultiRecord Info Area Data Section
-+ * @param[in/out] data, The container to put multirecord info area data in
-+ */
-+ errlHndl_t buildMultiRecordInfoArea(std::vector<uint8_t> &io_data);
-+
-+};
-+
- #endif
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
-index ec256de..17729cd 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
-@@ -11659,6 +11659,14 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
- </attribute>
-
- <attribute>
-+ <id>BMC_FRU_ID</id>
-+ <description>BMC FRU ID attribute for node class</description>
-+ <simpleType><uint32_t><default>0</default></uint32_t></simpleType>
-+ <persistency>non-volatile</persistency>
-+ <readable/>
-+</attribute>
-+
-+<attribute>
- <id>PLCK_IPL_ATTR_OVERRIDES_EXIST</id>
- <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 15d7921..82ec014 100644
---- a/src/usr/targeting/common/xmltohb/target_types.xml
-+++ b/src/usr/targeting/common/xmltohb/target_types.xml
-@@ -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>
-+ <attribute><id>BMC_FRU_ID</id></attribute>
- </targetType>
-
- <targetType>
---
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0006-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
deleted file mode 100644
index 06e4730..0000000
--- a/openpower/package/hostboot/hostboot-0006-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From d6882c71233b9c4b2fb801c4f3e588b47c2c73bc Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Wed, 1 Apr 2015 11:07:42 -0500
-Subject: [PATCH] Move slave sbe start before proc_cen_ref_clk_enable
-
-The proc_cen_ref_clk_enable step contains scoms to the processor
-that do not work if the proc hasn't run through its sbe code yet.
-
-Change-Id: I7665992a01bd66a37cd5e79aa2bb2142a304a8f4
----
- src/include/usr/isteps/istep06list.H | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/include/usr/isteps/istep06list.H b/src/include/usr/isteps/istep06list.H
-index 6adb784..6a26b2a 100644
---- a/src/include/usr/isteps/istep06list.H
-+++ b/src/include/usr/isteps/istep06list.H
-@@ -68,12 +68,12 @@ namespace INITSERVICE
- * : Clear deconfigured states
- * 06.8 proc_revert_sbe_mcs_setup
- * : Clean up MCS extent regs
-- * 06.9 proc_cen_ref_clk_enable
-- * : Setup centaur ref clocks
-- * 06.10 host_slave_sbe_config
-+ * 06.10 host_slave_sbe_config
- * 06.11 host_sbe_start
- * 06.12 proc_check_slave_sbe_seeprom_complete
- * : Check Slave SBE Complete
-+ * 06.9 proc_cen_ref_clk_enable
-+ * : Setup centaur ref clocks
- * 06.13 proc_xmit_sbe
- * : vSBE Init of Slave Chips
- *
-@@ -127,11 +127,6 @@ const TaskInfo g_istep06[] = {
- { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
- },
- {
-- ISTEPNAME(06,09,"proc_cen_ref_clk_enable"),
-- SLAVE_SBE::call_proc_cen_ref_clk_enable,
-- { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
-- },
-- {
- ISTEPNAME(06,10,"host_slave_sbe_config"),
- SLAVE_SBE::call_host_slave_sbe_config,
- { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
-@@ -147,6 +142,11 @@ const TaskInfo g_istep06[] = {
- { START_FN, EXT_IMAGE, NORMAL_IPL_OP | MPIPL_OP, false }
- },
- {
-+ ISTEPNAME(06,09,"proc_cen_ref_clk_enable"),
-+ SLAVE_SBE::call_proc_cen_ref_clk_enable,
-+ { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
-+ },
-+ {
- ISTEPNAME(06,13,"proc_xmit_sbe"),
- SLAVE_SBE::call_proc_xmit_sbe,
- { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
---
-1.8.2.2
-
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
deleted file mode 100644
index 8a14eda..0000000
--- a/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-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
deleted file mode 100644
index 8f8a15e..0000000
--- a/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-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-0010-PRD-getBusEndpoints-parameter-issue.patch b/openpower/package/hostboot/hostboot-0010-PRD-getBusEndpoints-parameter-issue.patch
deleted file mode 100644
index 07a64bb..0000000
--- a/openpower/package/hostboot/hostboot-0010-PRD-getBusEndpoints-parameter-issue.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 82374feb7e8ee67f254b7d8ec657a9239b622975 Mon Sep 17 00:00:00 2001
-From: Zane Shelley <zshelle@us.ibm.com>
-Date: Thu, 23 Apr 2015 11:18:12 -0500
-Subject: [PATCH 1/2] PRD: getBusEndpoints() parameter issue
-
-Change-Id: I947eeb506337f9c2fb8f845bbe04a20fb8b62bde
-CQ: SW304932
----
- .../prdf/common/plat/pegasus/prdfCalloutUtil.C | 2 +-
- .../prdf/common/plat/pegasus/prdfCalloutUtil.H | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C
-index f09ec6c..67941d6 100644
---- a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C
-+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C
-@@ -229,7 +229,7 @@ TargetHandleList getConnectedDimms( TargetHandle_t i_mba,
- //------------------------------------------------------------------------------
-
- int32_t getBusEndpoints( ExtensibleChip * i_chip,
-- TargetHandle_t o_rxTrgt, TargetHandle_t o_txTrgt,
-+ TargetHandle_t & o_rxTrgt, TargetHandle_t & o_txTrgt,
- TYPE i_busType, uint32_t i_busPos )
- {
- #define PRDF_FUNC "[CalloutUtil::getBusEndpoints] "
-diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H
-index fa3e843..502467b 100644
---- a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H
-+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H
-@@ -136,8 +136,8 @@ TARGETING::TargetHandleList getConnectedDimms( TARGETING::TargetHandle_t i_mba,
- *
- */
- int32_t getBusEndpoints( ExtensibleChip * i_chip,
-- TARGETING::TargetHandle_t o_rxTrgt,
-- TARGETING::TargetHandle_t o_txTrgt,
-+ TARGETING::TargetHandle_t & o_rxTrgt,
-+ TARGETING::TargetHandle_t & o_txTrgt,
- TARGETING::TYPE i_busType = TARGETING::TYPE_NA,
- uint32_t i_busPos = 0 );
-
---
-1.7.9.5
-
diff --git a/openpower/package/hostboot/hostboot-0011-Fix-for-Bad-DQ-Bitmap-spare-byte-triggering-false-DR.patch b/openpower/package/hostboot/hostboot-0011-Fix-for-Bad-DQ-Bitmap-spare-byte-triggering-false-DR.patch
deleted file mode 100644
index 02202c3..0000000
--- a/openpower/package/hostboot/hostboot-0011-Fix-for-Bad-DQ-Bitmap-spare-byte-triggering-false-DR.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-From 3b397cfb77ca5315f6403874ad10534e5f42f8a6 Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Tue, 14 Apr 2015 13:47:12 -0500
-Subject: [PATCH 1/2] Fix for Bad DQ Bitmap spare byte triggering false DRAM
- repairs
-
-Change-Id: I6b443fc7c05d1fda1f97d180e317ac8a93eb77ad
-RTC: 125477
----
- src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C | 122 ++++++++++++++++++++++------
- 1 file changed, 99 insertions(+), 23 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C b/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C
-index 4c61ab8..98f9bf9 100644
---- a/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C
-+++ b/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C
-@@ -5,7 +5,7 @@
- /* */
- /* OpenPOWER HostBoot Project */
- /* */
--/* Contributors Listed Below - COPYRIGHT 2012,2014 */
-+/* Contributors Listed Below - COPYRIGHT 2012,2015 */
- /* [+] International Business Machines Corp. */
- /* */
- /* */
-@@ -22,7 +22,7 @@
- /* permissions and limitations under the License. */
- /* */
- /* IBM_PROLOG_END_TAG */
--// $Id: dimmBadDqBitmapAccessHwp.C,v 1.15 2014/03/27 20:55:12 whs Exp $
-+// $Id: dimmBadDqBitmapAccessHwp.C,v 1.16 2015/04/22 20:09:16 cswenson Exp $
- /**
- * @file dimmBadDqBitmapAccessHwp.C
- *
-@@ -53,6 +53,7 @@
- * whs 02/24/2014 Capture bad DQs as FFDC
- * in mnfg error logs
- * whs 03/27/2014 fix current FFDC bit map
-+ * cswenson 04/22/2014 fix spare byte translate
- */
-
- #include <dimmBadDqBitmapAccessHwp.H>
-@@ -78,23 +79,19 @@ extern "C"
- {
-
- /**
-- * @brief Called by dimmBadDqBitmapAccessHwp() to query ATTR_EFF_DIMM_SPARE
-- * and set bits for unconnected spare DRAM in caller's data.
-+ * @brief Returns bits for unconnected spare DRAM.
- *
- *
- * @param[in] i_mba Reference to MBA Target.
- * @param[in] i_dimm Reference to DIMM Target.
-- * @param[o] o_data Reference to Bad DQ Bitmap set by
-- * the caller. Only the SPARE_DRAM_DQ_BYTE_NUMBER_INDEX
-- * byte is modified by this function.
-+ * @param[o] o_spareByte Reference to the spare byte returned to caller.
- *
- * @return ReturnCode
- */
--
--fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-+fapi::ReturnCode dimmGetDqBitmapSpareByte(
- const fapi::Target & i_mba,
- const fapi::Target & i_dimm,
-- uint8_t (&o_data)[DIMM_DQ_MAX_DIMM_RANKS][DIMM_DQ_RANK_BITMAP_SIZE])
-+ uint8_t (&o_spareByte)[DIMM_DQ_MAX_DIMM_RANKS])
- {
- fapi::ReturnCode l_rc;
-
-@@ -108,7 +105,7 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
- l_rc = FAPI_ATTR_GET(ATTR_VPD_DIMM_SPARE, &i_mba, l_mbaSpare);
- if (l_rc)
- {
-- FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+ FAPI_ERR("dimmGetDqBitmapSpareByte: "
- "Error getting DRAM Spare data");
- break;
- }
-@@ -117,7 +114,7 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
- l_rc = FAPI_ATTR_GET(ATTR_MBA_PORT, &i_dimm, l_mbaPort);
- if (l_rc)
- {
-- FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+ FAPI_ERR("dimmGetDqBitmapSpareByte: "
- "Error getting MBA port number");
- break;
- }
-@@ -126,7 +123,7 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
- l_rc = FAPI_ATTR_GET(ATTR_MBA_DIMM, &i_dimm, l_dimm);
- if (l_rc)
- {
-- FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+ FAPI_ERR("dimmGetDqBitmapSpareByte: "
- "Error getting dimm number");
- break;
- }
-@@ -139,20 +136,21 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
- case fapi::ENUM_ATTR_VPD_DIMM_SPARE_NO_SPARE:
- // Set DQ bits reflecting unconnected
- // spare DRAM in caller's data
-- o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] = 0xFF;
-+ o_spareByte[i] = 0xFF;
- break;
-
- case fapi::ENUM_ATTR_VPD_DIMM_SPARE_LOW_NIBBLE:
-- o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] |= 0x0F;
-+ o_spareByte[i] = 0x0F;
- break;
-
- case fapi::ENUM_ATTR_VPD_DIMM_SPARE_HIGH_NIBBLE:
-- o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] |= 0xF0;
-+ o_spareByte[i] = 0xF0;
- break;
-
- // As erroneous value will not be encountered.
- case fapi::ENUM_ATTR_VPD_DIMM_SPARE_FULL_BYTE:
- default:
-+ o_spareByte[i] = 0x0;
- break;
- }
- }
-@@ -161,6 +159,45 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
- }
-
- /**
-+ * @brief Called by dimmBadDqBitmapAccessHwp() to query ATTR_EFF_DIMM_SPARE
-+ * and set bits for unconnected spare DRAM in caller's data.
-+ *
-+ *
-+ * @param[in] i_mba Reference to MBA Target.
-+ * @param[in] i_dimm Reference to DIMM Target.
-+ * @param[o] o_data Reference to Bad DQ Bitmap set by
-+ * the caller. Only the SPARE_DRAM_DQ_BYTE_NUMBER_INDEX
-+ * byte is modified by this function.
-+ *
-+ * @return ReturnCode
-+ */
-+
-+fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-+ const fapi::Target & i_mba,
-+ const fapi::Target & i_dimm,
-+ uint8_t (&o_data)[DIMM_DQ_MAX_DIMM_RANKS][DIMM_DQ_RANK_BITMAP_SIZE])
-+{
-+ fapi::ReturnCode l_rc;
-+
-+ uint8_t spareByte[DIMM_DQ_MAX_DIMM_RANKS];
-+ memset(spareByte, 0, sizeof(spareByte));
-+
-+ l_rc = dimmGetDqBitmapSpareByte(i_mba,i_dimm,spareByte);
-+ if (l_rc)
-+ {
-+ FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+ "Error getting spare byte");
-+ return l_rc;
-+ }
-+
-+ for (uint32_t i=0; i<DIMM_DQ_MAX_DIMM_RANKS; i++)
-+ {
-+ o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] |= spareByte[i];
-+ }
-+ return l_rc;
-+}
-+
-+/**
- * @brief Called by dimmBadDqBitmapAccessHwp() to query
- * ATTR_SPD_MODULE_MEMORY_BUS_WIDTH in order to determine
- * ECC support for this DIMM. This function will set
-@@ -472,8 +509,13 @@ fapi::ReturnCode dimmBadDqBitmapSet(
- uint8_t (l_prev_data)[DIMM_DQ_MAX_DIMM_RANKS]
- [DIMM_DQ_RANK_BITMAP_SIZE];
- bool badDQSet = false;
-- dimmBadDqBitmapGet(i_mba, i_dimm, l_prev_data, i_wiringData,
-- i_allMnfgFlags);
-+ l_rc = dimmBadDqBitmapGet(i_mba, i_dimm, l_prev_data, i_wiringData,
-+ i_allMnfgFlags);
-+ if (l_rc)
-+ {
-+ FAPI_ERR("dimmBadDqBitmapAccessHwp: Error getting DQ bitmap");
-+ return l_rc;
-+ }
-
- // Check if Bad DQ bit set
- for (uint8_t i = 0; i < DIMM_DQ_MAX_DIMM_RANKS; i++)
-@@ -654,6 +696,18 @@ fapi::ReturnCode dimmBadDqBitmapSet(
- l_pSpdData->iv_reserved3 = 0;
- memset(l_pSpdData->iv_bitmaps, 0, sizeof(l_pSpdData->iv_bitmaps));
-
-+ // Get the spare byte
-+ uint8_t spareByte[DIMM_DQ_MAX_DIMM_RANKS];
-+ memset(spareByte, 0, sizeof(spareByte));
-+
-+ l_rc = dimmGetDqBitmapSpareByte(i_mba,i_dimm,spareByte);
-+ if (l_rc)
-+ {
-+ FAPI_ERR("dimmBadDqBitmapAccessHwp: "
-+ "Error getting spare byte");
-+ break;
-+ }
-+
- // Translate bitmap from Centaur DQ to DIMM DQ point of view for
- // each rank
- for (uint8_t i = 0; i < DIMM_DQ_MAX_DIMM_RANKS; i++)
-@@ -661,6 +715,16 @@ fapi::ReturnCode dimmBadDqBitmapSet(
- // Iterate through all the DQ bits in the rank
- for (uint8_t j = 0; j < DIMM_DQ_NUM_DQS; j++)
- {
-+ if ((j/8) == SPARE_DRAM_DQ_BYTE_NUMBER_INDEX)
-+ {
-+ // The spareByte can be one of: 0x00 0x0F 0xF0 0xFF
-+ // If a bit is set, then that spare is unconnected
-+ // so continue to the next num_dqs, do not translate
-+ if (spareByte[i] & (0x80 >> (j % 8)))
-+ {
-+ continue;
-+ }
-+ }
- if ((i_data[i][j/8]) & (0x80 >> (j % 8)))
- {
- // Centaur DQ bit set in callers data.
-@@ -747,13 +811,25 @@ fapi::ReturnCode dimmBadDqBitmapAccessHwp(
-
- if (i_get)
- {
-- dimmBadDqBitmapGet(i_mba, i_dimm, io_data, l_wiringData,
-- l_allMnfgFlags);
-+ l_rc = dimmBadDqBitmapGet(i_mba, i_dimm, io_data, l_wiringData,
-+ l_allMnfgFlags);
-+ if (l_rc)
-+ {
-+ FAPI_ERR("dimmBadDqBitmapAccessHwp: "
-+ "Error getting DQ bitmap");
-+ break;
-+ }
- }
- else
- {
-- dimmBadDqBitmapSet(i_mba, i_dimm, io_data, l_wiringData,
-- l_allMnfgFlags);
-+ l_rc = dimmBadDqBitmapSet(i_mba, i_dimm, io_data, l_wiringData,
-+ l_allMnfgFlags);
-+ if (l_rc)
-+ {
-+ FAPI_ERR("dimmBadDqBitmapAccessHwp: "
-+ "Error setting DQ bitmap");
-+ break;
-+ }
- }
-
- }while(0);
-@@ -763,4 +839,4 @@ fapi::ReturnCode dimmBadDqBitmapAccessHwp(
- return l_rc;
- }
-
--}
-+}
-\ No newline at end of file
---
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0012-Disable-Centaur-I2C-at-runtime.patch b/openpower/package/hostboot/hostboot-0012-Disable-Centaur-I2C-at-runtime.patch
deleted file mode 100644
index 3455e34..0000000
--- a/openpower/package/hostboot/hostboot-0012-Disable-Centaur-I2C-at-runtime.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From e33d32a5c249e5298a545889bba86129218c213d Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Thu, 23 Apr 2015 14:55:20 -0500
-Subject: [PATCH 2/2] Disable Centaur I2C at runtime
-
-Change-Id: I0425f642ed84041e604ad8004f77f0c385227526
----
- src/usr/i2c/runtime/rt_i2c.C | 76 ++++++++++++++++++++++++--------------------
- 1 file changed, 42 insertions(+), 34 deletions(-)
-
-diff --git a/src/usr/i2c/runtime/rt_i2c.C b/src/usr/i2c/runtime/rt_i2c.C
-index 5d21bbf..bdadbbe 100755
---- a/src/usr/i2c/runtime/rt_i2c.C
-+++ b/src/usr/i2c/runtime/rt_i2c.C
-@@ -139,44 +139,52 @@ errlHndl_t i2cPerformOp( DeviceFW::OperationType i_opType,
- proc_engine_port |= (uint64_t)(args.engine) << HBRT_I2C_MASTER_ENGINE_SHIFT;
- proc_engine_port |= (uint64_t)(args.port) << HBRT_I2C_MASTER_PORT_SHIFT;
-
-- if(i_opType == DeviceFW::READ)
-+ // Send I2C op to host interface
-+ // Centaur I2C not yet supported
-+ // @todo RTC:127533 -- Enable Centaur I2C at runtime
-+ if( i_target->getAttr<TARGETING::ATTR_TYPE>() != TARGETING::TYPE_MEMBUF )
- {
-- if(g_hostInterfaces->i2c_read != NULL)
-+ if(i_opType == DeviceFW::READ)
- {
-- rc = g_hostInterfaces->i2c_read
-- (
-- proc_engine_port, // Master Chip/Engine/Port
-- args.devAddr, // Dev Addr
-- args.offset_length, // Offset size
-- offset, // Offset
-- io_buflen, // Buffer length
-- io_buffer // Buffer
-- );
-+ if(g_hostInterfaces->i2c_read != NULL)
-+ {
-+ rc = g_hostInterfaces->i2c_read
-+ (
-+ proc_engine_port, // Master Chip/Engine/Port
-+ args.devAddr, // Dev Addr
-+ args.offset_length, // Offset size
-+ offset, // Offset
-+ io_buflen, // Buffer length
-+ io_buffer // Buffer
-+ );
-+ }
-+ else
-+ {
-+ TRACFCOMP(g_trac_i2c,
-+ ERR_MRK"Hypervisor I2C read interface not linked");
-+ l_host_if_enabled = false;
-+ }
- }
-- else
-- {
-- TRACFCOMP(g_trac_i2c,ERR_MRK"Hypervisor I2C read interface not linked");
-- l_host_if_enabled = false;
-- }
-- }
-- else if (i_opType == DeviceFW::WRITE)
-- {
-- if(g_hostInterfaces->i2c_write != NULL)
-- {
-- rc = g_hostInterfaces->i2c_write
-- (
-- proc_engine_port, // Master Chip/Engine/Port
-- args.devAddr, // Dev Addr
-- args.offset_length, // Offset size
-- offset, // Offset
-- io_buflen, // Buffer length
-- io_buffer // Buffer
-- );
-- }
-- else
-+ else if (i_opType == DeviceFW::WRITE)
- {
-- TRACFCOMP(g_trac_i2c,ERR_MRK"Hypervisor I2C write interface not linked");
-- l_host_if_enabled = false;
-+ if(g_hostInterfaces->i2c_write != NULL)
-+ {
-+ rc = g_hostInterfaces->i2c_write
-+ (
-+ proc_engine_port, // Master Chip/Engine/Port
-+ args.devAddr, // Dev Addr
-+ args.offset_length, // Offset size
-+ offset, // Offset
-+ io_buflen, // Buffer length
-+ io_buffer // Buffer
-+ );
-+ }
-+ else
-+ {
-+ TRACFCOMP(g_trac_i2c,
-+ ERR_MRK"Hypervisor I2C write interface not linked");
-+ l_host_if_enabled = false;
-+ }
- }
- }
-
---
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 5f423da..83aae71 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
#
################################################################################
-HOSTBOOT_VERSION ?= 6bdbe42ee0a2808be1f2f38026e57290cdfa8fc6
+HOSTBOOT_VERSION ?= 70b5e31d74487d51e69a0e0a390adea6b4f32dc5
HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
HOSTBOOT_LICENSE = Apache-2.0