op-build current based on
https://github.com/open-power/hostboot/commit/bda236e6e0c7d3aa5165160abbd5ead92ac0a68e
diff --git a/openpower/package/hostboot/hostboot-0006-Runtime-fixes-for-IPMI.patch b/openpower/package/hostboot/hostboot-0006-Runtime-fixes-for-IPMI.patch
deleted file mode 100644
index 011dae7..0000000
--- a/openpower/package/hostboot/hostboot-0006-Runtime-fixes-for-IPMI.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 94cd1249c46be945efa92f09c41e27bfaacc9405 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Sun, 1 Mar 2015 12:32:24 -0600
-Subject: [PATCH 1/4] Runtime fixes for IPMI
-
--initialize trace buffer in IPMI runtime code
--fix buffer mixup
--fix netfn format for opal call
-
-Change-Id: I612431f81d40f1698b585353da9c245adf1447e1
-(cherry picked from commit f4998cabf6ff541de0624532a5fa46bdf96419d1)
----
- src/usr/ipmi/runtime/rt_ipmirp.C |   12 ++++++++----
- 1 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/src/usr/ipmi/runtime/rt_ipmirp.C b/src/usr/ipmi/runtime/rt_ipmirp.C
-index f99723a..846e068 100644
---- a/src/usr/ipmi/runtime/rt_ipmirp.C
-+++ b/src/usr/ipmi/runtime/rt_ipmirp.C
-@@ -49,6 +49,8 @@
- #include <runtime/interface.h>
- 
- trace_desc_t * g_trac_ipmi;
-+TRAC_INIT(&g_trac_ipmi, IPMI_COMP_NAME, 6*KILOBYTE, TRACE::BUFFER_SLOW);
-+
- #define IPMI_TRAC(printf_string,args...) \
-     TRACFCOMP(g_trac_ipmi,"rt: "printf_string,##args)
- 
-@@ -89,8 +91,9 @@ namespace IPMI
-         // if the buffer is too large this is a programming error.
-         assert(io_len <= max_buffer());
- 
-+        uint8_t netfn = i_cmd.first >> 2; //remove embedded LUN
-         IPMI_TRAC("calling sync %x:%x  len=%d",
--            i_cmd.first, i_cmd.second, io_len);
-+            netfn, i_cmd.second, io_len);
- 
-         if(g_hostInterfaces && g_hostInterfaces->ipmi_msg)
-         {
-@@ -98,7 +101,7 @@ namespace IPMI
-             uint8_t *l_data = new uint8_t[l_len];
- 
-             rc = g_hostInterfaces->ipmi_msg(
--                        i_cmd.first, i_cmd.second,
-+                        netfn, i_cmd.second,
-                         io_data, io_len,
-                         l_data, &l_len);
- 
-@@ -124,7 +127,7 @@ namespace IPMI
-                             IPMI::MOD_IPMIRT,
-                             IPMI::RC_INVALID_SENDRECV,
-                             TWO_UINT32_TO_UINT64(rc,
--                                TWO_UINT16_TO_UINT32(i_cmd.first, i_cmd.second)),
-+                                TWO_UINT16_TO_UINT32(netfn, i_cmd.second)),
-                             io_len,
-                             true);
-                 err->collectTrace(IPMI_COMP_NAME);
-@@ -135,7 +138,8 @@ namespace IPMI
-             else
-             {
-                 // clean up the memory for the caller
--                o_completion_code = static_cast<IPMI::completion_code>(io_data[0]);
-+                o_completion_code =
-+                  static_cast<IPMI::completion_code>(l_data[0]);
- 
-                 // now need to create the buffer to return
-                 io_len = l_len - 1; // get rid of the completion_code
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0006-sbe-pnor.patch b/openpower/package/hostboot/hostboot-0006-sbe-pnor.patch
new file mode 100644
index 0000000..cbf25e1
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0006-sbe-pnor.patch
@@ -0,0 +1,28 @@
+From 961d01024912ce7b0547095d38921bdd61ae8cd8 Mon Sep 17 00:00:00 2001
+From: Brian Horton <brianh@linux.ibm.com>
+Date: Wed, 11 Mar 2015 10:14:31 -0500
+Subject: [PATCH] fix SBE/PNOR merge issues
+
+Change-Id: I74752dbfa50fc78be66a9f185a7c6bc4d31732cd
+---
+ src/usr/sbe/sbe_update.C |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
+index a559229..5ac4909 100644
+--- a/src/usr/sbe/sbe_update.C
++++ b/src/usr/sbe/sbe_update.C
+@@ -1791,8 +1791,8 @@ namespace SBE
+                                         reinterpret_cast<void*>(SBE_IMG_VADDR),
+                                         ((io_sbeState.seeprom_side_to_update ==
+                                          EEPROM::SBE_PRIMARY ) ?
+-                                            PNOR::SBE_SEEPROM0 :
+-                                            PNOR::SBE_SEEPROM1  ),
++                                            SBE_SEEPROM0 :
++                                            SBE_SEEPROM1  ),
+                                         PNOR::WORKING,
+                                         imageWasUpdated );
+ 
+-- 
+1.7.4.1
+
diff --git a/openpower/package/hostboot/hostboot-0007-Update-DIMM_TEMP-Sensor-Enum.patch b/openpower/package/hostboot/hostboot-0007-Update-DIMM_TEMP-Sensor-Enum.patch
deleted file mode 100644
index 63ceb6e..0000000
--- a/openpower/package/hostboot/hostboot-0007-Update-DIMM_TEMP-Sensor-Enum.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e929e3bdbabad39c4c21ed220b0be7078afe0ef7 Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Sun, 1 Mar 2015 18:38:45 -0600
-Subject: [PATCH 3/4] Update DIMM_TEMP Sensor Enum
-
-Change-Id: Ia850e56b85f13b4b421525541f547bde03cb4cbc
-RTC:124867
-(cherry picked from commit e9ad83fc6a2f0cc32826291c20d731337ba76f42)
----
- .../common/xmltohb/attribute_types_hb.xml          |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-index 74fb492..3c00c33 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-@@ -917,7 +917,7 @@
-     </enumerator>
-     <enumerator>
-         <name>DIMM_TEMP</name>
--        <value>0x01C0</value>
-+        <value>0x0120</value>
-     </enumerator>
-     <enumerator>
-         <name>CORE_TEMP</name>
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0008-mss-thermal-init-SW297647.patch b/openpower/package/hostboot/hostboot-0007-mss-thermal-init-SW297647_and_undo.patch
similarity index 67%
rename from openpower/package/hostboot/hostboot-0008-mss-thermal-init-SW297647.patch
rename to openpower/package/hostboot/hostboot-0007-mss-thermal-init-SW297647_and_undo.patch
index 5ed49f8..f6eafe5 100644
--- a/openpower/package/hostboot/hostboot-0008-mss-thermal-init-SW297647.patch
+++ b/openpower/package/hostboot/hostboot-0007-mss-thermal-init-SW297647_and_undo.patch
@@ -1,35 +1,38 @@
-From 1b7b2c8af560b71aa1dcddb4e8075047a1321d1e Mon Sep 17 00:00:00 2001
-From: Matt Ploetz <maploetz@us.ibm.com>
-Date: Wed, 4 Mar 2015 13:25:30 -0600
+From 430bf7d7b8194bf7789db053999464390e143fdc Mon Sep 17 00:00:00 2001
+From: Brian Horton <brianh@linux.ibm.com>
+Date: Wed, 11 Mar 2015 16:13:11 -0500
 Subject: [PATCH] mss thermal patch from Mike Pradik
 
-Change-Id: I0980f7b996a854f92c0ffad39eb32758539df91e
+AND undeo 1.18 attribute change
+
+Change-Id: I0c3e9d126077fb18bb771909631e0491da4b5f99
 ---
- .../mss_thermal_init/mss_thermal_init.C            | 23 ++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
+ .../mss_thermal_init/mss_thermal_init.C            |   26 ++++++++++++++++----
+ 1 files changed, 21 insertions(+), 5 deletions(-)
 
 diff --git a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-index aa217c6..2e6600f 100644
+index e09f47f..dc21852 100644
 --- a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
 +++ b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
 @@ -22,7 +22,7 @@
  /* permissions and limitations under the License.                         */
  /*                                                                        */
  /* IBM_PROLOG_END_TAG                                                     */
--// $Id: mss_thermal_init.C,v 1.18 2015/01/23 17:54:09 dcrowell Exp $
-+// $Id: mss_thermal_init.C,v 1.18b CHANGED IN OPENPOWER PATCH maploetz Exp $
+-// $Id: mss_thermal_init.C,v 1.19 2015/02/12 23:23:56 pardeik Exp $
++// $Id: mss_thermal_init.C,v 1.18c CHANGED IN OPENPOWER PATCH brianh   Exp $
  // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/centaur/working/procedures/ipl/fapi/mss_thermal_init.C,v $
  //------------------------------------------------------------------------------
  // *! (C) Copyright International Business Machines Corp. 2011
-@@ -49,6 +49,7 @@
+@@ -49,6 +49,8 @@
  //------------------------------------------------------------------------------
  // Version:|  Author: |  Date:  | Comment:
  //---------|----------|---------|-----------------------------------------------
++//   1.18v | brianhk  |11-MAR-15| undo 1.18 change
 +//   1.18u | pardeik  |03-MAR-15| user version to be like v1.20
+ //   1.18  | pardeik  |12-FEB-15| change ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP to
+ //                              | a centaur target (was system)
  //   1.17  | pardeik  |19-NOV-14| Use MRW attribute for SC address map for ISDIMMs
- //   1.16  | pardeik  |06-FEB-14| removed string in trace statement
- //   1.15  | pardeik  |24-FEB-14| added support for ATTR_MRW_CDIMM_SPARE_I2C_TEMP_SENSOR_ENABLE
-@@ -158,6 +159,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
+@@ -160,6 +162,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
        const uint8_t I2C_BUS_ENCODE_PRIMARY = 0;
        const uint8_t I2C_BUS_ENCODE_SECONDARY = 8;
        const uint8_t MAX_NUM_DIMM_SENSORS = 8;
@@ -37,7 +40,7 @@
  
        // Variable declaration
        uint8_t l_dimm_ranks_array[l_NUM_MBAS][l_NUM_PORTS][l_NUM_DIMMS];	// Number of ranks for each configured DIMM in each MBA
-@@ -247,6 +249,19 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
+@@ -249,6 +252,19 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
            l_custom_dimm[i] = fapi::ENUM_ATTR_EFF_CUSTOM_DIMM_NO;
        }
  
@@ -57,7 +60,16 @@
        for (uint8_t mba_index = 0; mba_index < l_target_mba_array.size(); mba_index++){
           l_rc = FAPI_ATTR_GET(ATTR_CHIP_UNIT_POS, &l_target_mba_array[mba_index], l_mba_pos);
  	 if (l_rc) return l_rc;
-@@ -397,9 +412,9 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
+@@ -279,7 +295,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
+       else
+       {
+ 	  // sensor cache address map for non custom dimm temperature sensors (which i2c bus and i2c address they are)
+-	  l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, &i_target, l_dimm_sensor_cache_addr_map);
++	  l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, NULL, l_dimm_sensor_cache_addr_map);
+ 	  if (l_rc) return l_rc;
+       }
+ 
+@@ -399,9 +415,9 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
  
  	  l_cdimm_number_dimm_temp_sensors = 0;
  	  // cycle through both primary and secondary i2c busses, determine i2c address and enable bits
@@ -69,7 +81,7 @@
  	      {
  		  if (k == 0)
  		  {
-@@ -490,7 +505,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
+@@ -492,7 +508,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
           // Iterate through the num_ranks array to determine what DIMMs are plugged
  	 // Enable sensor monitoring for each plugged DIMM
           uint32_t l_iterator = 0;
@@ -79,5 +91,5 @@
  	       l_ecmd_rc |= l_data_scac_enable.setBit(l_iterator);
  	    }
 -- 
-1.8.2.2
+1.7.4.1
 
diff --git a/openpower/package/hostboot/hostboot-0009-Sel-instead-of-eSel.patch b/openpower/package/hostboot/hostboot-0009-Sel-instead-of-eSel.patch
deleted file mode 100644
index 6b4c82d..0000000
--- a/openpower/package/hostboot/hostboot-0009-Sel-instead-of-eSel.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-From 03029acd024ac886296f8ed0cbc711d9b81b26da Mon Sep 17 00:00:00 2001
-From: Brian Horton <brianh@linux.ibm.com>
-Date: Mon, 2 Mar 2015 12:12:28 -0600
-Subject: [PATCH] change error log to SEL processing
-
-for hostboot runtime, do not send eSEL (AMI bug)
-for hostboot ipl, send down SEL following eSEL
-
-Change-Id: I86ee9766e27548c3f7f72fbdbfd76c8a8be7da73
-RTC: 124971
----
- src/include/usr/ipmi/ipmisel.H    | 18 ++++++++++--
- src/usr/errl/errlmanager_common.C |  4 ++-
- src/usr/ipmi/ipmisel.C            | 61 ++++++++++++++++++++++++++++++++-------
- 3 files changed, 70 insertions(+), 13 deletions(-)
-
-diff --git a/src/include/usr/ipmi/ipmisel.H b/src/include/usr/ipmi/ipmisel.H
-index de2dd32..91e3651 100644
---- a/src/include/usr/ipmi/ipmisel.H
-+++ b/src/include/usr/ipmi/ipmisel.H
-@@ -65,11 +65,13 @@ namespace IPMISEL
-      * @param[in] size of eSEL data
-      * @param[in] eid of errorlog for this eSEL (for ack)
-      * @param[in] event_dir_type for this eSEL
-+     * @param[in] event_offset for this eSEL
-      * @param[in] sensorType that caused the error/eSEL
-      * @param[in] sensorNumber that caused the error/eSEL
-      */
-     void sendESEL(uint8_t* i_eselData, uint32_t i_dataSize,
--                  uint32_t i_eid, uint8_t i_eventDirType,
-+                  uint32_t i_eid,
-+                  uint8_t i_eventDirType, uint8_t i_eventOffset,
-                   uint8_t i_sensorType, uint8_t i_sensorNumber);
- 
-     // per IPMI Spec, section 32.1 SEL Event Records
-@@ -85,6 +87,7 @@ namespace IPMISEL
-         format_ipmi_version_2_0 = 0x04,
-     };
- 
-+    // event_type, per section 42.1 of the IPMI spec
-     enum sel_event_dir_type
-     {
-         event_unspecified       = 0x00,
-@@ -93,11 +96,22 @@ namespace IPMISEL
-         event_predictive        = 0x04,
-         event_limit             = 0x05,
-         event_permformance      = 0x06,
-+        event_transition        = 0x07,
-+        event_OEM               = 0x70,
-     };
- 
-     enum sel_event_data
-     {
--        event_data1_ami         = 0xAA,
-+        event_data1_ami                         = 0xAA,
-+        event_data1_trans_to_ok                 = 0x00,
-+        event_data1_trans_to_noncrit_from_ok    = 0x01,
-+        event_data1_trans_to_crit_from_less     = 0x02,
-+        event_data1_trans_to_non_recv_from_less = 0x03,
-+        event_data1_trans_to_non_crit_from_more = 0x04,
-+        event_data1_trans_to_crit_from_non_r    = 0x05,
-+        event_data1_trans_to_non_recoverable    = 0x06,
-+        event_data1_trans_monitor               = 0x07,
-+        event_data1_trans_informational         = 0x08,
-     };
- 
-     enum sel_generator_id
-diff --git a/src/usr/errl/errlmanager_common.C b/src/usr/errl/errlmanager_common.C
-index a64ed3b..6c68818 100644
---- a/src/usr/errl/errlmanager_common.C
-+++ b/src/usr/errl/errlmanager_common.C
-@@ -135,7 +135,9 @@ void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err)
-                 "sendErrLogToBmc: sensor %.2x/%.2x, size %d",
-                 l_sensorType, l_sensorNumber, l_pelSize);
-         IPMISEL::sendESEL(l_pelData, l_pelSize,
--                            io_err->eid(), IPMISEL::event_unspecified,
-+                            io_err->eid(),
-+                            IPMISEL::event_transition,
-+                            IPMISEL::event_data1_trans_to_non_recoverable,
-                             l_sensorType, l_sensorNumber);
- 
-         // free the buffer
-diff --git a/src/usr/ipmi/ipmisel.C b/src/usr/ipmi/ipmisel.C
-index c05c60f..49dcee6 100644
---- a/src/usr/ipmi/ipmisel.C
-+++ b/src/usr/ipmi/ipmisel.C
-@@ -82,7 +82,8 @@ enum esel_retry
- namespace IPMISEL
- {
- void sendESEL(uint8_t* i_eselData, uint32_t i_dataSize,
--              uint32_t i_eid, uint8_t i_eventDirType,
-+              uint32_t i_eid,
-+              uint8_t i_eventDirType, uint8_t i_eventOffset,
-               uint8_t i_sensorType, uint8_t i_sensorNumber)
- {
-     IPMI_TRAC(ENTER_MRK "sendESEL()");
-@@ -100,13 +101,13 @@ void sendESEL(uint8_t* i_eselData, uint32_t i_dataSize,
- 
-     // create the sel record of information
-     selRecord l_sel;
--    l_sel.record_type = record_type_ami_esel;
-+    l_sel.record_type = record_type_system_event;
-     l_sel.generator_id = generator_id_ami;
-     l_sel.evm_format_version = format_ipmi_version_2_0;
-     l_sel.sensor_type = i_sensorType;
-     l_sel.sensor_number = i_sensorNumber;
-     l_sel.event_dir_type = i_eventDirType;
--    l_sel.event_data1 = event_data1_ami;
-+    l_sel.event_data1 = i_eventOffset;
- 
-     eselInitData *eselData =
-         new eselInitData(&l_sel, i_eselData, i_dataSize);
-@@ -216,13 +217,16 @@ void send_esel(eselInitData * i_data,
- {
-     IPMI_TRAC(ENTER_MRK "send_esel");
-     uint8_t* data = NULL;
--    const size_t l_eSELlen = i_data->dataSize;
- 
-     size_t len = 0;
--    uint8_t reserveID[2] = {0,0};
-     uint8_t esel_recordID[2] = {0,0};
-+    uint8_t sel_recordID[2] = {0,0};
- 
-+#ifndef __HOSTBOOT_RUNTIME
-+// TODO RTC: 124972 take this out when runtime supports the eSEL
-     do{
-+        const size_t l_eSELlen = i_data->dataSize;
-+        uint8_t reserveID[2] = {0,0};
-         // we need to send down the extended sel data (eSEL), which is
-         // longer than the protocol buffer, so we need to do a reservation and
-         // call the AMI partial_add_esel command multiple times
-@@ -258,6 +262,9 @@ void send_esel(eselInitData * i_data,
-         // copy in the SEL event record data
-         memcpy(&data[PARTIAL_ADD_ESEL_REQ], i_data->eSel,
-                 sizeof(selRecord));
-+        // update to make this what AMI eSEL wants
-+        data[PARTIAL_ADD_ESEL_REQ + offsetof(selRecord,record_type)] = record_type_ami_esel;
-+        data[PARTIAL_ADD_ESEL_REQ + offsetof(selRecord,event_data1)] = event_data1_ami;
- 
-         o_cc = IPMI::CC_UNKBAD;
-         TRACFBIN( g_trac_ipmi, INFO_MRK"1st partial_add_esel:", data, len);
-@@ -338,17 +345,51 @@ void send_esel(eselInitData * i_data,
-             // BMC returns the recordID, it's always the same (unless
-             // there's a major BMC bug...)
-             storeReserveRecord(esel_recordID,data);
-+        } // while eSELindex
-+    }while(0);
-+#endif
-+
-+    // if eSEL wasn't created due to an error, we don't want to continue
-+    if(o_err == NULL)
-+    {
-+        // if the eSEL wasn't created due to a bad completion code, we will
-+        // still try to send down a SEL that we create, which will contain
-+        // the eSEL recordID (if it was successful)
-+        delete [] data;
-+        len = sizeof(IPMISEL::selRecord);
-+        data = new uint8_t[len];
-+
-+        // copy in the SEL event record data
-+        memcpy(data, i_data->eSel, sizeof(IPMISEL::selRecord));
-+        // copy the eSEL recordID (if it was created) into the extra data area
-+        data[offsetof(selRecord,event_data2)] = esel_recordID[1];
-+        data[offsetof(selRecord,event_data3)] = esel_recordID[0];
-+
-+        // use local cc so that we don't corrupt the esel from above
-+        IPMI::completion_code l_cc = IPMI::CC_UNKBAD;
-+        TRACFBIN( g_trac_ipmi, INFO_MRK"add_sel:", data, len);
-+        o_err = IPMI::sendrecv(IPMI::add_sel(),l_cc,len,data);
-+        if(o_err)
-+        {
-+            IPMI_TRAC(ERR_MRK "error from add_sel");
-         }
--        if(o_err || (o_cc != IPMI::CC_OK))
-+        else if (l_cc != IPMI::CC_OK)
-         {
--            break;
-+            IPMI_TRAC(ERR_MRK "failed add_sel, l_cc %02x", l_cc);
-         }
--    }while(0);
-+        else
-+        {
-+            // if CC_OK, then len = 2 and data contains the recordID of the new SEL
-+            storeReserveRecord(sel_recordID,data);
-+        }
-+    }
- 
-     delete[] data;
- 
--    IPMI_TRAC(EXIT_MRK "send_esel (o_err %.8X, o_cc x%.2x, recID=x%x%x)",
--        o_err ? o_err->plid() : NULL, o_cc, esel_recordID[1], esel_recordID[0]);
-+    IPMI_TRAC(EXIT_MRK
-+        "send_esel o_err=%.8X, o_cc=x%.2x, sel recID=x%x%x, esel recID=x%x%x",
-+        o_err ? o_err->plid() : NULL, o_cc, sel_recordID[1], sel_recordID[0],
-+        esel_recordID[1], esel_recordID[0]);
- 
-     return;
- } // send_esel
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0010-Reset-occ-when-fails-to-activate.patch b/openpower/package/hostboot/hostboot-0010-Reset-occ-when-fails-to-activate.patch
deleted file mode 100644
index 4b666b0..0000000
--- a/openpower/package/hostboot/hostboot-0010-Reset-occ-when-fails-to-activate.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-From 98fc2914b15e89c2324c1636af62225c653e45f9 Mon Sep 17 00:00:00 2001
-From: Doug Gilbert <dgilbert@us.ibm.com>
-Date: Tue, 3 Mar 2015 16:00:29 -0600
-Subject: [PATCH] HTMGT add attempt to reset OCC when OCC Activate fails
-
-Change-Id: I964d2b68216c3ddabae73ce3b851bbc468ec96a7
-RTC: 123180
----
- src/include/usr/htmgt/htmgt_reasoncodes.H |   1 +
- src/usr/htmgt/htmgt.C                     | 123 ++++++++++++++++++------------
- src/usr/htmgt/htmgt_activate.C            |   9 +++
- src/usr/htmgt/htmgt_occ.C                 |  32 +++++++-
- src/usr/htmgt/htmgt_occ.H                 |   1 +
- 5 files changed, 116 insertions(+), 50 deletions(-)
-
-diff --git a/src/include/usr/htmgt/htmgt_reasoncodes.H b/src/include/usr/htmgt/htmgt_reasoncodes.H
-index ade192d..6fe269d 100644
---- a/src/include/usr/htmgt/htmgt_reasoncodes.H
-+++ b/src/include/usr/htmgt/htmgt_reasoncodes.H
-@@ -48,6 +48,7 @@ namespace HTMGT
-         HTMGT_MOD_CHECK_OCC_RSP         = 0x92,
-         HTMGT_MOD_PARSE_OCC_RSP         = 0x94,
-         HTMGT_MOD_HANLDE_OCC_EXCEPTION  = 0xE0,
-+        HTMGT_MOD_ENABLE_OCC_ACTUATION  = 0xE1,
-     };
- 
-     enum htmgtReasonCode
-diff --git a/src/usr/htmgt/htmgt.C b/src/usr/htmgt/htmgt.C
-index aff2500..a2f556f 100644
---- a/src/usr/htmgt/htmgt.C
-+++ b/src/usr/htmgt/htmgt.C
-@@ -184,42 +184,30 @@ namespace HTMGT
- 
-         if (NULL != l_err)
-         {
--            TMGT_ERR("OCCs not all active.  System will stay in safe mode");
-+            TMGT_ERR("OCCs not all active.  Attempting OCC Reset");
-             TMGT_CONSOLE("OCCs are not active (rc=0x%04X). "
--                         "System will remain in safe mode",
-+                         "Attempting OCC Reset",
-                          l_err->reasonCode());
--            TMGT_INF("Calling HBOCC::stopAllOCCs");
--            errlHndl_t err2 = HBOCC::stopAllOCCs();
-+            TMGT_INF("Calling resetOccs");
-+            errlHndl_t err2 = OccManager::resetOccs(NULL);
-             if(err2)
-             {
--                TMGT_ERR("stopAllOCCs() failed with 0x%04X",
-+                TMGT_ERR("OccManager:;resetOccs failed with 0x%04X",
-                          err2->reasonCode());
--                ERRORLOG::errlCommit(err2, HTMGT_COMP_ID);
--            }
--
--            // Update error log to unrecoverable and set SRC
--            // to indicate the system will remain in safe mode
--            /*@
--             * @errortype
--             * @reasoncode      HTMGT_RC_OCC_CRIT_FAILURE
--             * @moduleid        HTMGT_MOD_LOAD_START_STATUS
--             * @userdata1[0:7]  load/start completed
--             * @devdesc         OCCs did not all reach active state,
--             *                  system will be in Safe Mode
--             */
--            bldErrLog(l_err, HTMGT_MOD_LOAD_START_STATUS,
--                      HTMGT_RC_OCC_CRIT_FAILURE,
--                      i_startCompleted, 0, 0, 1,
--                      ERRORLOG::ERRL_SEV_UNRECOVERABLE);
- 
--            // Add level 2 support callout
--            l_err->addProcedureCallout(HWAS::EPUB_PRC_LVL_SUPP,
--                                       HWAS::SRCI_PRIORITY_MED);
--            // Add HB firmware callout
--            l_err->addProcedureCallout(HWAS::EPUB_PRC_HB_CODE,
--                                       HWAS::SRCI_PRIORITY_MED);
-+                // Set original error log  as unrecoverable and commit
-+                l_err->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
-+                ERRORLOG::errlCommit(l_err, HTMGT_COMP_ID);
- 
--            ERRORLOG::errlCommit(l_err, HTMGT_COMP_ID);
-+                // Commit occReset error
-+                ERRORLOG::errlCommit(err2, HTMGT_COMP_ID);
-+            }
-+            else
-+            {
-+                // retry worked - commit original error as informational
-+                l_err->setSev(ERRORLOG::ERRL_SEV_INFORMATIONAL);
-+                ERRORLOG::errlCommit(l_err, HTMGT_COMP_ID);
-+            }
-         }
- 
-     } // end processOccStartStatus()
-@@ -229,6 +217,19 @@ namespace HTMGT
-     // Notify HTMGT that an OCC has an error to report
-     void processOccError(TARGETING::Target * i_procTarget)
-     {
-+        TARGETING::Target* sys = NULL;
-+        TARGETING::targetService().getTopLevelTarget(sys);
-+        uint8_t safeMode = 0;
-+
-+        // If the system is in safemode then can't talk to OCCs -
-+        // ignore call to processOccError
-+        if(sys &&
-+           sys->tryGetAttr<TARGETING::ATTR_HTMGT_SAFEMODE>(safeMode) &&
-+           safeMode)
-+        {
-+            return;
-+        }
-+
-         bool polledOneOcc = false;
-         OccManager::buildOccs();
- 
-@@ -347,29 +348,57 @@ namespace HTMGT
-     // Set the OCC state
-     errlHndl_t enableOccActuation(bool i_occActivation)
-     {
--        occStateId targetState = OCC_STATE_ACTIVE;
--        if (false == i_occActivation)
--        {
--            targetState = OCC_STATE_OBSERVATION;
--        }
-+        errlHndl_t l_err = NULL;
-+        TARGETING::Target* sys = NULL;
-+
-+        TARGETING::targetService().getTopLevelTarget(sys);
-+        uint8_t safeMode = 0;
- 
--        // Set state for all OCCs
--        errlHndl_t l_err = OccManager::setOccState(targetState);
--        if (NULL == l_err)
-+        // If the system is in safemode then can't talk to OCCs -
-+        // ignore call to enableOccActuation
-+        if(sys &&
-+           sys->tryGetAttr<TARGETING::ATTR_HTMGT_SAFEMODE>(safeMode) &&
-+           safeMode)
-         {
--            TMGT_INF("enableOccActuation: OCC states updated to 0x%02X",
--                     targetState);
-+            /*@
-+             * @errortype
-+             * @reasoncode      HTMGT_RC_OCC_CRIT_FAILURE
-+             * @moduleid        HTMGT_MOD_ENABLE_OCC_ACTUATION
-+             * @userdata1[0:7]  OCC activate [1==true][0==false]
-+             * @devdesc         Invalid operation when OCCs are in safemode
-+             */
-+            bldErrLog(l_err,
-+                      HTMGT_MOD_ENABLE_OCC_ACTUATION,
-+                      HTMGT_RC_OCC_CRIT_FAILURE,
-+                      i_occActivation, 0, 0, 1,
-+                      ERRORLOG::ERRL_SEV_UNRECOVERABLE);
-         }
--
--        if (OccManager::occNeedsReset())
-+        else
-         {
--            TMGT_ERR("enableOccActuation(): OCCs need to be reset");
--            // Don't pass failed target as OCC should have already
--            // been marked as failed during the poll.
--            errlHndl_t err2 = OccManager::resetOccs(NULL);
--            if(err2)
-+            occStateId targetState = OCC_STATE_ACTIVE;
-+            if (false == i_occActivation)
-             {
--                ERRORLOG::errlCommit(err2, HTMGT_COMP_ID);
-+                targetState = OCC_STATE_OBSERVATION;
-+            }
-+
-+            // Set state for all OCCs
-+            l_err = OccManager::setOccState(targetState);
-+            if (NULL == l_err)
-+            {
-+                TMGT_INF("enableOccActuation: OCC states updated to 0x%02X",
-+                         targetState);
-+            }
-+
-+            if (OccManager::occNeedsReset())
-+            {
-+                TMGT_ERR("enableOccActuation(): OCCs need to be reset");
-+                // Don't pass failed target as OCC should have already
-+                // been marked as failed during the poll.
-+                errlHndl_t err2 = OccManager::resetOccs(NULL);
-+                if(err2)
-+                {
-+                    ERRORLOG::errlCommit(err2, HTMGT_COMP_ID);
-+                }
-             }
-         }
- 
-diff --git a/src/usr/htmgt/htmgt_activate.C b/src/usr/htmgt/htmgt_activate.C
-index 7f54d6d..4cb46f0 100644
---- a/src/usr/htmgt/htmgt_activate.C
-+++ b/src/usr/htmgt/htmgt_activate.C
-@@ -39,6 +39,7 @@
- 
- #include <ipmi/ipmisensor.H>
- #include <sys/time.h>
-+#include <console/consoleif.H>
- 
- using namespace TARGETING;
- 
-@@ -163,6 +164,14 @@ namespace HTMGT
-             l_err = occ->ipmiSensor(i_activate);
-             if( l_err )
-             {
-+                TMGT_ERR("setOccActiveSensors failed. (OCC%d state:%d)",
-+                         occ->getInstance(),
-+                         i_activate);
-+
-+                TMGT_CONSOLE("setOccActiveSensors failed. (OCC%d state:%d)",
-+                         occ->getInstance(),
-+                         i_activate);
-+
-                 ERRORLOG::errlCommit(l_err, HTMGT_COMP_ID);
-             }
-         }
-diff --git a/src/usr/htmgt/htmgt_occ.C b/src/usr/htmgt/htmgt_occ.C
-index 8a539f4..bd95987 100644
---- a/src/usr/htmgt/htmgt_occ.C
-+++ b/src/usr/htmgt/htmgt_occ.C
-@@ -248,7 +248,8 @@ namespace HTMGT
-     OccManager::OccManager()
-         :iv_occMaster(NULL),
-         iv_state(OCC_STATE_UNKNOWN),
--        iv_targetState(OCC_STATE_ACTIVE)
-+        iv_targetState(OCC_STATE_ACTIVE),
-+        iv_resetCount(0)
-     {
-     }
- 
-@@ -590,6 +591,19 @@ namespace HTMGT
-             ERRORLOG::errlCommit(err, HTMGT_COMP_ID);
-         }
- 
-+        if(NULL == i_failedOccTarget)
-+        {
-+            ++iv_resetCount; // increment system reset count
-+
-+            TMGT_INF("resetOCCs: Incrementing system OCC reset count to %d",
-+                     iv_resetCount);
-+
-+            if(iv_resetCount > OCC_RESET_COUNT_THRESHOLD)
-+            {
-+                atThreshold = true;
-+            }
-+        }
-+
-         for(occList_t::const_iterator occ = iv_occArray.begin();
-             occ != iv_occArray.end();
-             ++occ)
-@@ -663,7 +677,7 @@ namespace HTMGT
-              */
-             bldErrLog(err,
-                       HTMTG_MOD_OCC_RESET,
--                      HTMGT_RC_OCC_RESET_THREHOLD,
-+                      HTMGT_RC_OCC_CRIT_FAILURE,
-                       0, 0, 0, 0,
-                       ERRORLOG::ERRL_SEV_UNRECOVERABLE);
-         }
-@@ -673,6 +687,13 @@ namespace HTMGT
-         {
-             err->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
- 
-+            // Add level 2 support callout
-+            err->addProcedureCallout(HWAS::EPUB_PRC_LVL_SUPP,
-+                                     HWAS::SRCI_PRIORITY_MED);
-+            // Add HB firmware callout
-+            err->addProcedureCallout(HWAS::EPUB_PRC_HB_CODE,
-+                                     HWAS::SRCI_PRIORITY_MED);
-+
-             TARGETING::Target* sys = NULL;
-             TARGETING::targetService().getTopLevelTarget(sys);
-             uint8_t safeMode = 1;
-@@ -683,8 +704,13 @@ namespace HTMGT
-                sys->setAttr<TARGETING::ATTR_HTMGT_SAFEMODE>(safeMode);
-             }
- 
--            TMGT_ERR("_resetOccs: Safe Mode RC: 0x%04X (OCC%d)",
-+            TMGT_ERR("_resetOccs: Safe Mode (RC: 0x%04X OCC%d)",
-                      cv_safeReturnCode, cv_safeOccInstance);
-+
-+            TMGT_CONSOLE("OCCs are not active. The system will remain in "
-+                         "safe mode (RC: 0x%04x  for OCC%d)",
-+                         cv_safeReturnCode,
-+                         cv_safeOccInstance);
-         }
- 
-         return err;
-diff --git a/src/usr/htmgt/htmgt_occ.H b/src/usr/htmgt/htmgt_occ.H
-index dec19b8..5ac545a 100644
---- a/src/usr/htmgt/htmgt_occ.H
-+++ b/src/usr/htmgt/htmgt_occ.H
-@@ -507,6 +507,7 @@ namespace HTMGT
-             occList_t               iv_occArray;
-             occStateId              iv_state;
-             occStateId              iv_targetState;
-+            uint8_t                 iv_resetCount;
- 
-             /**
-              * @brief SRC that caused system to enter safe mode
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0011-eRepair-MBVPD-size-check-for-CDIMM-and-ISDIMM.patch b/openpower/package/hostboot/hostboot-0011-eRepair-MBVPD-size-check-for-CDIMM-and-ISDIMM.patch
deleted file mode 100644
index 55c94f0..0000000
--- a/openpower/package/hostboot/hostboot-0011-eRepair-MBVPD-size-check-for-CDIMM-and-ISDIMM.patch
+++ /dev/null
@@ -1,504 +0,0 @@
-From 403b5b351e0ee82fa0b7147ea924b455384cf39d Mon Sep 17 00:00:00 2001
-From: Bilicon Patil <bilpatil@in.ibm.com>
-Date: Fri, 5 Dec 2014 07:25:24 -0600
-Subject: [PATCH 2/6] eRepair MBVPD size check for CDIMM and ISDIMM
-
-The eRepair VPD size for DMI Bus is bigger in systems with ISDIMMs because
-the VPD accounts for all the Centaurs. The current check in the code is
-for each Centaur which is applicable for systems with CDIMMs.
-
-The fix also includes a change to do restore of eRepair records noted
-in the VPD when the system had a non-fips830 driver.
-
-Change-Id: Ibaaf98c5be3e26474ee0eede6081f506f4bb7ec3
-RTC: 119532
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14727
-Tested-by: Jenkins Server
-Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-(cherry picked from commit db9b6fed621390d10459834300924e0fafd6fa04)
----
- .../hwp/bus_training/erepairGetFailedLanesHwp.C    |  194 +++++++++++++++-----
- .../hwp/bus_training/erepairSetFailedLanesHwp.C    |   73 +++++++-
- 2 files changed, 215 insertions(+), 52 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/bus_training/erepairGetFailedLanesHwp.C b/src/usr/hwpf/hwp/bus_training/erepairGetFailedLanesHwp.C
-index a4db160..33ec195 100644
---- a/src/usr/hwpf/hwp/bus_training/erepairGetFailedLanesHwp.C
-+++ b/src/usr/hwpf/hwp/bus_training/erepairGetFailedLanesHwp.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2013,2014                        */
-+/* Contributors Listed Below - COPYRIGHT 2013,2015                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -38,6 +38,8 @@
- 
- #include <erepairGetFailedLanesHwp.H>
- 
-+using namespace EREPAIR;
-+
- extern "C"
- {
- 
-@@ -62,10 +64,10 @@ extern "C"
-  *
-  * @return ReturnCode
-  */
--fapi::ReturnCode retrieveRepairData(const fapi::Target      &i_tgtHandle,
--                                    EREPAIR::erepairVpdType i_vpdType,
--                                    std::vector<uint8_t>    &o_txFailLanes,
--                                    std::vector<uint8_t>    &o_rxFailLanes);
-+fapi::ReturnCode retrieveRepairData(const fapi::Target    &i_tgtHandle,
-+                                    erepairVpdType        i_vpdType,
-+                                    std::vector<uint8_t>  &o_txFailLanes,
-+                                    std::vector<uint8_t>  &o_rxFailLanes);
- 
- /**
-  * @brief Function called by the FW Team HWP that parses the data read from
-@@ -92,15 +94,25 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                                       std::vector<uint8_t> &o_rxFailLanes);
- 
- 
-+/**
-+ * @brief Function to check if the system has Custom DIMM type (CDIMM).
-+ *        Attribute ATTR_EFF_CUSTOM_DIMM is read to determine the type.
-+ * @param[in] i_tgtHandle   Reference to X-Bus or A-Bus or MCS target
-+ * @param[o]  o_customDimm  Return value - ENUM_ATTR_EFF_CUSTOM_DIMM_NO
-+ *                                      or ENUM_ATTR_EFF_CUSTOM_DIMM_YES
-+ * @return ReturnCode
-+ */
-+fapi::ReturnCode getDimmType(const fapi::Target &i_tgtHandle,
-+                             uint8_t &o_customDimm);
-+
- /******************************************************************************
-  * Accessor HWP
-  *****************************************************************************/
- 
--fapi::ReturnCode erepairGetFailedLanesHwp(
--                                         const fapi::Target      &i_tgtHandle,
--                                         EREPAIR::erepairVpdType i_vpdType,
--                                         std::vector<uint8_t>    &o_txFailLanes,
--                                         std::vector<uint8_t>    &o_rxFailLanes)
-+fapi::ReturnCode erepairGetFailedLanesHwp(const fapi::Target  &i_tgtHandle,
-+                                          erepairVpdType       i_vpdType,
-+                                          std::vector<uint8_t> &o_txFailLanes,
-+                                          std::vector<uint8_t> &o_rxFailLanes)
- {
-     fapi::ReturnCode l_rc;
-     fapi::Target     l_processorTgt;
-@@ -147,15 +159,16 @@ fapi::ReturnCode erepairGetFailedLanesHwp(
-     return l_rc;
- }
- 
--fapi::ReturnCode retrieveRepairData(const fapi::Target      &i_tgtHandle,
--                                    EREPAIR::erepairVpdType i_vpdType,
--                                    std::vector<uint8_t>    &o_txFailLanes,
--                                    std::vector<uint8_t>    &o_rxFailLanes)
-+fapi::ReturnCode retrieveRepairData(const fapi::Target   &i_tgtHandle,
-+                                    erepairVpdType       i_vpdType,
-+                                    std::vector<uint8_t> &o_txFailLanes,
-+                                    std::vector<uint8_t> &o_rxFailLanes)
- {
-     fapi::ReturnCode l_rc;
-     uint8_t          *l_retBuf = NULL;
-     uint32_t         l_bufSize = 0;
-     fapi::Target     l_procTarget;
-+    uint8_t          l_customDimm;
- 
-     FAPI_DBG(">> retrieveRepairData");
- 
-@@ -165,7 +178,7 @@ fapi::ReturnCode retrieveRepairData(const fapi::Target      &i_tgtHandle,
-         {
-             fapi::MBvpdRecord l_vpdRecord = fapi::MBVPD_RECORD_VEIR;
- 
--            if(i_vpdType == EREPAIR::EREPAIR_VPD_MNFG)
-+            if(i_vpdType == EREPAIR_VPD_MNFG)
-             {
-                 l_vpdRecord = fapi::MBVPD_RECORD_MER0;
-             }
-@@ -184,12 +197,34 @@ fapi::ReturnCode retrieveRepairData(const fapi::Target      &i_tgtHandle,
-                 break;
-             }
- 
--            if((l_bufSize == 0) ||
--               ((i_vpdType == EREPAIR::EREPAIR_VPD_FIELD) &&
--                (l_bufSize > EREPAIR::EREPAIR_MEM_FIELD_VPD_SIZE_PER_CENTAUR))||
--               ((i_vpdType == EREPAIR::EREPAIR_VPD_MNFG) &&
--                (l_bufSize > EREPAIR::EREPAIR_MEM_MNFG_VPD_SIZE_PER_CENTAUR)))
-+            // Check whether we have Memory on a CDIMM
-+            l_rc = getDimmType(i_tgtHandle, l_customDimm);
-+
-+            if(l_rc)
-+            {
-+                FAPI_ERR("Error (0x%x) during DIMM type check",
-+                        static_cast<uint32_t> (l_rc));
-+                break;
-+            }
-+
-+            if(l_customDimm == fapi::ENUM_ATTR_SPD_CUSTOM_YES)
-             {
-+                if((l_bufSize == 0) ||
-+                   ((i_vpdType == EREPAIR_VPD_FIELD) &&
-+                    (l_bufSize > EREPAIR_MEM_FIELD_VPD_SIZE_PER_CENTAUR)) ||
-+                   ((i_vpdType == EREPAIR_VPD_MNFG) &&
-+                    (l_bufSize > EREPAIR_MEM_MNFG_VPD_SIZE_PER_CENTAUR)))
-+                {
-+                    FAPI_SET_HWP_ERROR(l_rc,
-+                                       RC_ACCESSOR_HWP_INVALID_MEM_VPD_SIZE);
-+                    break;
-+                }
-+            }
-+            else if(l_bufSize == 0)
-+            {
-+                // TODO RTC: 119531. Add upper bound checking for l_bufSize
-+                // This size check will depend on whether the Lane eRepair data
-+                // is stored on the Planar VPD or on the Riser card VPD.
-                 FAPI_SET_HWP_ERROR(l_rc, RC_ACCESSOR_HWP_INVALID_MEM_VPD_SIZE);
-                 break;
-             }
-@@ -230,7 +265,7 @@ fapi::ReturnCode retrieveRepairData(const fapi::Target      &i_tgtHandle,
- 
-             fapi::MvpdRecord l_vpdRecord = fapi::MVPD_RECORD_VWML;
- 
--            if(i_vpdType == EREPAIR::EREPAIR_VPD_MNFG)
-+            if(i_vpdType == EREPAIR_VPD_MNFG)
-             {
-                 l_vpdRecord = fapi::MVPD_RECORD_MER0;
-             }
-@@ -250,10 +285,10 @@ fapi::ReturnCode retrieveRepairData(const fapi::Target      &i_tgtHandle,
-             }
- 
-             if((l_bufSize == 0) ||
--               ((i_vpdType == EREPAIR::EREPAIR_VPD_FIELD) &&
--                (l_bufSize > EREPAIR::EREPAIR_P8_MODULE_VPD_FIELD_SIZE)) ||
--               ((i_vpdType == EREPAIR::EREPAIR_VPD_MNFG) &&
--                (l_bufSize > EREPAIR::EREPAIR_P8_MODULE_VPD_MNFG_SIZE)))
-+               ((i_vpdType == EREPAIR_VPD_FIELD) &&
-+                (l_bufSize > EREPAIR_P8_MODULE_VPD_FIELD_SIZE)) ||
-+               ((i_vpdType == EREPAIR_VPD_MNFG) &&
-+                (l_bufSize > EREPAIR_P8_MODULE_VPD_MNFG_SIZE)))
-             {
-                 FAPI_SET_HWP_ERROR(l_rc,
-                                    RC_ACCESSOR_HWP_INVALID_FABRIC_VPD_SIZE);
-@@ -323,6 +358,7 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-     fapi::Target     l_mcsTarget;
-     fapi::Target     l_tgtHandle;
-     fapi::ReturnCode l_rc;
-+    uint8_t          l_customDimm;
-     fapi::ATTR_CHIP_UNIT_POS_Type l_busNum;
- 
-     FAPI_DBG(">> determineRepairLanes");
-@@ -394,21 +430,18 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                 l_fabricBus->interface = (l_temp & 0x0F);
- #endif
- 
--                // Check if we have the correct Processor ID
--                if(l_chipPosition != l_fabricBus->device.processor_id)
--                {
--                    continue;
--                }
-+                // We do not need the check of processor ID because
-+                // a MVPD read is specific to a Processor
- 
-                 // Check if we have the matching the Fabric Bus types
-                 if((l_tgtType == fapi::TARGET_TYPE_ABUS_ENDPOINT) &&
--                   (l_fabricBus->type != EREPAIR::PROCESSOR_EDI))
-+                   (l_fabricBus->type != PROCESSOR_EDI))
-                 {
-                     continue;
-                 }
- 
-                 if((l_tgtType == fapi::TARGET_TYPE_XBUS_ENDPOINT) &&
--                   (l_fabricBus->type != EREPAIR::PROCESSOR_EI4))
-+                   (l_fabricBus->type != PROCESSOR_EI4))
-                 {
-                     continue;
-                 }
-@@ -428,17 +461,17 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                 }
- 
-                 // Check if we have valid fail lane numbers
--                if(l_fabricBus->failBit == EREPAIR::INVALID_FAIL_LANE_NUMBER)
-+                if(l_fabricBus->failBit == INVALID_FAIL_LANE_NUMBER)
-                 {
-                     continue;
-                 }
- 
-                 // Copy the fail lane numbers in the vectors
--                if(l_fabricBus->interface == EREPAIR::PBUS_DRIVER)
-+                if(l_fabricBus->interface == PBUS_DRIVER)
-                 {
-                     o_txFailLanes.push_back(l_fabricBus->failBit);
-                 }
--                else if(l_fabricBus->interface == EREPAIR::PBUS_RECEIVER)
-+                else if(l_fabricBus->interface == PBUS_RECEIVER)
-                 {
-                     o_rxFailLanes.push_back(l_fabricBus->failBit);
-                 }
-@@ -468,6 +501,19 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                 l_tgtHandle = l_mcsTarget;
-             }
- 
-+            if(l_tgtType == fapi::TARGET_TYPE_MEMBUF_CHIP)
-+            {
-+                // Check whether we have Memory on a CDIMM
-+                l_rc = getDimmType(i_tgtHandle, l_customDimm);
-+
-+                if(l_rc)
-+                {
-+                    FAPI_ERR("Error (0x%x) during DIMM type check",
-+                            static_cast<uint32_t> (l_rc));
-+                    break;
-+                }
-+            }
-+
-             // Read Power bus eRepair data and get the failed lane numbers
-             for(l_loop = 0;
-                 l_loop < l_numRepairs;
-@@ -491,14 +537,20 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                 l_memBus->interface = (l_temp & 0x0F);
- #endif
- 
--                // Check if we have the correct Processor/Centaur ID
--                if(l_chipPosition != l_memBus->device.proc_centaur_id)
-+                // Check if we have the correct Centaur ID
-+                // NOTE: We do not prefer to make the check of Centaur ID if the
-+                // system is known to have CDIMMs. This check is applicable
-+                // only for systems with ISDIMM because in the ISDIMM systems
-+                // the Lane eRepair data for multiple Centaurs is maintained in
-+                // a common VPD.
-+                if((l_customDimm != fapi::ENUM_ATTR_SPD_CUSTOM_YES) &&
-+                   (l_chipPosition != l_memBus->device.proc_centaur_id))
-                 {
-                     continue;
-                 }
- 
-                 // Check if we have the matching the Memory Bus types
--                if(l_memBus->type != EREPAIR::MEMORY_EDI)
-+                if(l_memBus->type != MEMORY_EDI)
-                 {
-                     continue;
-                 }
-@@ -518,7 +570,7 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                 }
- 
-                 // Check if we have valid fail lane numbers
--                if(l_memBus->failBit == EREPAIR::INVALID_FAIL_LANE_NUMBER)
-+                if(l_memBus->failBit == INVALID_FAIL_LANE_NUMBER)
-                 {
-                     continue;
-                 }
-@@ -526,22 +578,22 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
-                 // Copy the fail lane numbers in the vectors
-                 if(l_tgtType == fapi::TARGET_TYPE_MCS_CHIPLET)
-                 {
--                   if(l_memBus->interface == EREPAIR::DMI_MCS_DRIVE)
-+                   if(l_memBus->interface == DMI_MCS_DRIVE)
-                    {
-                        o_txFailLanes.push_back(l_memBus->failBit);
-                    }
--                   else if(l_memBus->interface == EREPAIR::DMI_MCS_RECEIVE)
-+                   else if(l_memBus->interface == DMI_MCS_RECEIVE)
-                    {
-                        o_rxFailLanes.push_back(l_memBus->failBit);
-                    }
-                 }
-                 else if(l_tgtType == fapi::TARGET_TYPE_MEMBUF_CHIP)
-                 {
--                   if(l_memBus->interface == EREPAIR::DMI_MEMBUF_DRIVE)
-+                   if(l_memBus->interface == DMI_MEMBUF_DRIVE)
-                    {
-                        o_txFailLanes.push_back(l_memBus->failBit);
-                    }
--                   else if(l_memBus->interface == EREPAIR::DMI_MEMBUF_RECEIVE)
-+                   else if(l_memBus->interface == DMI_MEMBUF_RECEIVE)
-                    {
-                        o_rxFailLanes.push_back(l_memBus->failBit);
-                    }
-@@ -551,10 +603,64 @@ fapi::ReturnCode determineRepairLanes(const fapi::Target   &i_tgtHandle,
- 
-     }while(0);
- 
--    FAPI_INF("<< No.of Fail Lanes: tx: %d, rx: %d",
-+    FAPI_INF("<< No.of Fail Lanes: tx: %zd, rx: %zd",
-               o_txFailLanes.size(), o_rxFailLanes.size());
- 
-     return(l_rc);
- }
- 
-+fapi::ReturnCode getDimmType(const fapi::Target &i_tgtHandle,
-+                             uint8_t &o_customDimm)
-+{
-+    fapi::ReturnCode          l_rc;
-+    std::vector<fapi::Target> l_mbaChiplets;
-+    fapi::Target              l_mbaTarget;
-+
-+    do
-+    {
-+        // Get the connected MBA chiplet and determine whether we have CDIMM
-+        l_rc = fapiGetChildChiplets(i_tgtHandle,
-+                                    fapi::TARGET_TYPE_MBA_CHIPLET,
-+                                    l_mbaChiplets,
-+                                    fapi::TARGET_STATE_FUNCTIONAL);
-+        if(l_rc || (0 == l_mbaChiplets.size()))
-+        {
-+            FAPI_ERR("Error (0x%x) during get child MBA targets",
-+                    static_cast<uint32_t> (l_rc));
-+            break;
-+        }
-+
-+        l_mbaTarget = l_mbaChiplets[0];
-+        std::vector<fapi::Target> l_target_dimm_array;
-+
-+        l_rc =  fapiGetAssociatedDimms(l_mbaTarget, l_target_dimm_array);
-+
-+        if(l_rc)
-+        {
-+            FAPI_ERR("Error (0x%x), from fapiGetAssociatedDimms",
-+                    static_cast<uint32_t>(l_rc));
-+            break;
-+        }
-+
-+        if(0 != l_target_dimm_array.size())
-+        {
-+            l_rc = FAPI_ATTR_GET(ATTR_SPD_CUSTOM,
-+                    &l_target_dimm_array[0],
-+                    o_customDimm);
-+            if(l_rc)
-+            {
-+                FAPI_ERR("Error (0x%x), from FAPI_ATTR_GET",
-+                        static_cast<uint32_t>(l_rc));
-+                break;
-+            }
-+        }
-+        else
-+        {
-+            o_customDimm = fapi::ENUM_ATTR_SPD_CUSTOM_NO;
-+        }
-+    }while(0);
-+
-+    return l_rc;
-+}
-+
- }// endof extern "C"
-diff --git a/src/usr/hwpf/hwp/bus_training/erepairSetFailedLanesHwp.C b/src/usr/hwpf/hwp/bus_training/erepairSetFailedLanesHwp.C
-index a59d9e5..b0724f9 100755
---- a/src/usr/hwpf/hwp/bus_training/erepairSetFailedLanesHwp.C
-+++ b/src/usr/hwpf/hwp/bus_training/erepairSetFailedLanesHwp.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2013,2014                        */
-+/* Contributors Listed Below - COPYRIGHT 2013,2015                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -173,6 +173,9 @@ ReturnCode writeRepairDataToVPD(const Target               &i_tgtHandle,
-     uint8_t    *l_retBuf = NULL;
-     uint32_t   l_bufSize = 0;
-     Target     l_procTarget;
-+    uint8_t    l_customDimm;
-+    std::vector<fapi::Target> l_mbaChiplets;
-+    fapi::Target              l_mbaTarget;
- 
-     FAPI_DBG(">> writeRepairDataToVPD");
- 
-@@ -202,12 +205,66 @@ ReturnCode writeRepairDataToVPD(const Target               &i_tgtHandle,
-                 break;
-             }
- 
--            if((l_bufSize == 0) ||
--               ((i_vpdType == EREPAIR_VPD_FIELD) &&
--                (l_bufSize > EREPAIR_MEM_FIELD_VPD_SIZE_PER_CENTAUR)) ||
--               ((i_vpdType == EREPAIR_VPD_MNFG) &&
--                (l_bufSize > EREPAIR_MEM_MNFG_VPD_SIZE_PER_CENTAUR)))
-+            // Get the connected MBA chiplet and determine whether we have CDIMM
-+            l_rc = fapiGetChildChiplets(i_tgtHandle,
-+                                        fapi::TARGET_TYPE_MBA_CHIPLET,
-+                                        l_mbaChiplets,
-+                                        fapi::TARGET_STATE_FUNCTIONAL);
-+
-+            if(l_rc || (0 == l_mbaChiplets.size()))
-+            {
-+                FAPI_ERR("Error (0x%x) during get child MBA targets",
-+                         static_cast<uint32_t> (l_rc));
-+                break;
-+            }
-+
-+            l_mbaTarget = l_mbaChiplets[0];
-+            std::vector<fapi::Target> l_target_dimm_array;
-+
-+            l_rc =  fapiGetAssociatedDimms(l_mbaTarget, l_target_dimm_array);
-+
-+            if(l_rc)
-+            {
-+                FAPI_ERR("Error (0x%x), from fapiGetAssociatedDimms",
-+                          static_cast<uint32_t>(l_rc));
-+                break;
-+            }
-+
-+            if(0 != l_target_dimm_array.size())
-+            {
-+                l_rc = FAPI_ATTR_GET(ATTR_SPD_CUSTOM,
-+                                     &l_target_dimm_array[0],
-+                                     l_customDimm);
-+                if(l_rc)
-+                {
-+                    FAPI_ERR("Error (0x%x), from FAPI_ATTR_GET",
-+                             static_cast<uint32_t>(l_rc));
-+                    break;
-+                }
-+            }
-+            else
-+            {
-+                l_customDimm = fapi::ENUM_ATTR_SPD_CUSTOM_NO;
-+            }
-+
-+            if(l_customDimm == fapi::ENUM_ATTR_SPD_CUSTOM_YES)
-+            {
-+                if((l_bufSize == 0) ||
-+                       ((i_vpdType == EREPAIR_VPD_FIELD) &&
-+                        (l_bufSize > EREPAIR_MEM_FIELD_VPD_SIZE_PER_CENTAUR)) ||
-+                       ((i_vpdType == EREPAIR_VPD_MNFG) &&
-+                        (l_bufSize > EREPAIR_MEM_MNFG_VPD_SIZE_PER_CENTAUR)))
-+                {
-+                    FAPI_SET_HWP_ERROR(l_rc,
-+                                       RC_ACCESSOR_HWP_INVALID_MEM_VPD_SIZE);
-+                    break;
-+                }
-+            }
-+            else if(l_bufSize == 0)
-             {
-+                // TODO RTC: 119531. Add upper bound checking for l_bufSize
-+                // This size check will depend on whether the Lane eRepair data
-+                // is stored on the Planar VPD or on the Riser card VPD.
-                 FAPI_SET_HWP_ERROR(l_rc, RC_ACCESSOR_HWP_INVALID_MEM_VPD_SIZE);
-                 break;
-             }
-@@ -221,7 +278,7 @@ ReturnCode writeRepairDataToVPD(const Target               &i_tgtHandle,
-                 break;
-             }
- 
--            // Retrieve the eRepair data from the Centaur FRU VPD
-+            // Retrieve the Field eRepair data from the Centaur FRU VPD
-             l_rc = fapiGetMBvpdField(l_vpdRecord,
-                                      MBVPD_KEYWORD_PDI,
-                                      i_tgtHandle,
-@@ -315,7 +372,7 @@ ReturnCode writeRepairDataToVPD(const Target               &i_tgtHandle,
-                 break;
-             }
- 
--            // Retrieve the eRepair data from the MVPD
-+            // Retrieve the Field eRepair data from the MVPD
-             l_rc = fapiGetMvpdField(l_vpdRecord,
-                                     MVPD_KEYWORD_PDI,
-                                     l_procTarget,
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index d3b76fa..e7bb202 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 3593853a4323d9ec7de1ad6502e22b3e66af03ae
+HOSTBOOT_VERSION ?= bda236e6e0c7d3aa5165160abbd5ead92ac0a68e
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0