Merge pull request #179 from open-power/master-next

Merge v1.3 content back to master.
diff --git a/buildroot b/buildroot
index 9ac423f..80a2f83 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit 9ac423f6f0d99b33e7bb7ad703cf83e80716da8a
+Subproject commit 80a2f83e60f3fd21a38e2bc9aac149f2c3a9ffdd
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index d72cb81..cd32a2c 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -8,6 +8,7 @@
 
 BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
 BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_BINARY_WINK_FILENAME="p8.ref_image.hdr.bin.ecc"
 
 BR2_OCC_BIN_FILENAME="occ.bin"
 
@@ -37,7 +38,7 @@
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1444a4e78a9ce324b0b6ac243ccfbfc8fce25d7e"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index 64b827a..edcad58 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -8,6 +8,7 @@
 
 BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
 BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_BINARY_WINK_FILENAME="p8.ref_image.hdr.bin.ecc"
 
 BR2_OCC_BIN_FILENAME="occ.bin"
 
@@ -37,7 +38,7 @@
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1444a4e78a9ce324b0b6ac243ccfbfc8fce25d7e"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/hostboot/firestone.config b/openpower/configs/hostboot/firestone.config
index 4b96cd9..f5c2d32 100755
--- a/openpower/configs/hostboot/firestone.config
+++ b/openpower/configs/hostboot/firestone.config
@@ -18,6 +18,10 @@
 set CVPD_WRITE_TO_HW
 set CVPD_READ_FROM_PNOR
 set CVPD_WRITE_TO_PNOR
+set PVPD_READ_FROM_HW
+set PVPD_WRITE_TO_HW
+set PVPD_READ_FROM_PNOR
+set PVPD_WRITE_TO_PNOR
 set SKIP_RESTRICT_EX_UNITS
 unset CDIMM_FORMAT_FOR_CVPD
 
@@ -32,7 +36,7 @@
 
 # turn on console output
 set CONSOLE
-set CONSOLE_AST2400
+set BMC_AST2400
 
 # Enable Kingston dimm voltage workaround
 set KINGSTON_1_35_VOLT
diff --git a/openpower/configs/hostboot/habanero.config b/openpower/configs/hostboot/habanero.config
index 90e5735..10eea96 100755
--- a/openpower/configs/hostboot/habanero.config
+++ b/openpower/configs/hostboot/habanero.config
@@ -18,6 +18,10 @@
 set CVPD_WRITE_TO_HW
 set CVPD_READ_FROM_PNOR
 set CVPD_WRITE_TO_PNOR
+set PVPD_READ_FROM_HW
+set PVPD_WRITE_TO_HW
+set PVPD_READ_FROM_PNOR
+set PVPD_WRITE_TO_PNOR
 set SKIP_RESTRICT_EX_UNITS
 unset CDIMM_FORMAT_FOR_CVPD
 
@@ -34,7 +38,7 @@
 
 # turn on console output
 set CONSOLE
-set CONSOLE_AST2400
+set BMC_AST2400
 
 # Enable Kingston dimm voltage workaround
 set KINGSTON_1_35_VOLT
diff --git a/openpower/configs/hostboot/palmetto.config b/openpower/configs/hostboot/palmetto.config
index 12ebc2c..00b211d 100755
--- a/openpower/configs/hostboot/palmetto.config
+++ b/openpower/configs/hostboot/palmetto.config
@@ -18,6 +18,10 @@
 set CVPD_WRITE_TO_HW
 set CVPD_READ_FROM_PNOR
 set CVPD_WRITE_TO_PNOR
+set PVPD_READ_FROM_HW
+set PVPD_WRITE_TO_HW
+set PVPD_READ_FROM_PNOR
+set PVPD_WRITE_TO_PNOR
 set SKIP_RESTRICT_EX_UNITS
 unset CDIMM_FORMAT_FOR_CVPD
 
@@ -34,7 +38,7 @@
 
 # turn on console output
 set CONSOLE
-set CONSOLE_AST2400
+set BMC_AST2400
 
 set PNOR_IS_32MB
 
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 5a4bf38..b589463 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -8,6 +8,7 @@
 
 BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
 BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_BINARY_WINK_FILENAME="p8.ref_image.hdr.bin.ecc"
 
 BR2_OCC_BIN_FILENAME="occ.bin"
 
@@ -36,7 +37,7 @@
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="1444a4e78a9ce324b0b6ac243ccfbfc8fce25d7e"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/package/hostboot-binaries/hostboot_binaries.mk b/openpower/package/hostboot-binaries/hostboot_binaries.mk
index 03523c3..d9a23df 100644
--- a/openpower/package/hostboot-binaries/hostboot_binaries.mk
+++ b/openpower/package/hostboot-binaries/hostboot_binaries.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_BINARIES_VERSION ?= d41753f2b5e2510d6bc6ce58adf8e55207b8d317
+HOSTBOOT_BINARIES_VERSION ?= 22470e51b6342f9c307e28b3ea7cdb194ff954d4
 HOSTBOOT_BINARIES_SITE ?= $(call github,open-power,hostboot-binaries,$(HOSTBOOT_BINARIES_VERSION))
 HOSTBOOT_BINARIES_LICENSE = Apache-2.0
 
@@ -13,7 +13,7 @@
 
 define HOSTBOOT_BINARIES_INSTALL_IMAGES_CMDS
      $(INSTALL) -D $(@D)/cvpd.bin  $(STAGING_DIR)/hostboot_binaries/cvpd.bin
-     $(INSTALL) -D $(@D)/p8.ref_image.hdr.bin.ecc  $(STAGING_DIR)/hostboot_binaries/p8.ref_image.hdr.bin.ecc
+     $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_WINK_FILENAME) $(STAGING_DIR)/hostboot_binaries/
      $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) $(STAGING_DIR)/hostboot_binaries/
      $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_SBE_FILENAME)  $(STAGING_DIR)/hostboot_binaries/
 endef
diff --git a/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch b/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch
index 74cb584..5c916d2 100644
--- a/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch
+++ b/openpower/package/hostboot/hostboot-0001-Increase-uart-delay.patch
@@ -18,7 +18,7 @@
              {
                  const uint64_t DELAY_NS = 100;
 -                const uint64_t DELAY_LOOPS = 10000;
-+                const uint64_t DELAY_LOOPS = 1000000;
++                const uint64_t DELAY_LOOPS = 100000000;
  
                  uint8_t data = 0;
                  uint64_t loops = 0;
diff --git a/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.patch b/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.patch
new file mode 100644
index 0000000..3777b11
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0008-Fix-PCIe-swap-issue.patch
@@ -0,0 +1,63 @@
+From a4f739abb72b8ac5748138183b274cca5eef50ff Mon Sep 17 00:00:00 2001
+From: Matt Ploetz <maploetz@us.ibm.com>
+Date: Tue, 12 May 2015 15:32:20 -0500
+Subject: [PATCH] PCIe lane swap fix in processMRW.pl
+
+Change-Id: Iee7127fef7f4a911a77e0c24c896d840b1b45ff4
+---
+ src/usr/targeting/common/processMrw.pl | 25 +++++++++++--------------
+ 1 file changed, 11 insertions(+), 14 deletions(-)
+
+diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
+index 5d44e74..bbdb936 100644
+--- a/src/usr/targeting/common/processMrw.pl
++++ b/src/usr/targeting/common/processMrw.pl
+@@ -805,8 +805,8 @@ sub processPcie
+     $iop_swap{0}{1}{'11'}=$t[7];
+ 
+     $iop_swap{1}{0}{'00'}=$t[8];
+-    $iop_swap{1}{0}{'01'}=$t[9];
+-    $iop_swap{1}{0}{'10'}=$t[10];
++    $iop_swap{1}{0}{'10'}=$t[9];
++    $iop_swap{1}{0}{'01'}=$t[10];
+     $iop_swap{1}{0}{'11'}=$t[11];
+     $iop_swap{1}{1}{'00'}=$t[12];
+     $iop_swap{1}{1}{'10'}=$t[13];
+@@ -906,25 +906,22 @@ sub processPcie
+           die "PCIE config for $iop,$iop_lane_swap[$iop],$lane_rev not found\n";
+         }
+     }
+-    my $lane_swap_attr0 = sprintf("%s,%s",$iop_lane_swap[0],
+-                          $iop_lane_swap[1]);
+-    my $lane_swap_attr1 = sprintf("%s,0,%s,0",$iop_lane_swap[0],
+-                          $iop_lane_swap[1]);
++
++    my $lane_rev_attr0 = sprintf("%s,%s",
++                         oct($iop_swap_lu[0]),oct($iop_swap_lu[1]));
++    my $lane_rev_attr1 = sprintf("%s,0,%s,0",
++                         oct($iop_swap_lu[0]),oct($iop_swap_lu[1]));
+ 
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP",
+-        $lane_swap_attr0);
++        $lane_rev_attr0);
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP_NON_BIFURCATED",
+-        $lane_swap_attr1);
++        $lane_rev_attr1);
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_SWAP_BIFURCATED",
+         "0,0,0,0");
+-
+-    my $lane_rev_attr = sprintf("%s,0,%s,0",
+-                         oct($iop_swap_lu[0]),oct($iop_swap_lu[1]));
+-
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_REVERSAL",
+-        $lane_rev_attr);
++        "0,0,0,0");
+     $targetObj->setAttribute($parentTarget,
+-        "PROC_PCIE_IOP_REVERSAL_NON_BIFURCATED",$lane_rev_attr);
++        "PROC_PCIE_IOP_REVERSAL_NON_BIFURCATED","0,0,0,0");
+     $targetObj->setAttribute($parentTarget, "PROC_PCIE_IOP_REVERSAL_BIFURCATED",
+         "0,0,0,0");
+ 
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0009-ATTN-IPOLL-interrupt-workaround.patch b/openpower/package/hostboot/hostboot-0009-ATTN-IPOLL-interrupt-workaround.patch
new file mode 100644
index 0000000..eb8d12a
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0009-ATTN-IPOLL-interrupt-workaround.patch
@@ -0,0 +1,141 @@
+From d2bdfed735f6c5e69b606f0251aba131fec4275d Mon Sep 17 00:00:00 2001
+From: Brian Stegmiller <bjs@us.ibm.com>
+Date: Thu, 14 May 2015 13:47:36 -0500
+Subject: [PATCH] ATTN: IPOLL interrupt workaround
+
+Circumvents issue where interrupts happen before OPAL is ready
+to handle them
+
+Change-Id: I3d378cd03dac51aaa5b2f77e8940eb63f170016b
+Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/17795
+Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
+Tested-by: Jenkins Server
+---
+ src/usr/diag/attn/common/attnsvc_common.C | 83 +++++++++++++++++++++++++++++--
+ 1 file changed, 79 insertions(+), 4 deletions(-)
+
+diff --git a/src/usr/diag/attn/common/attnsvc_common.C b/src/usr/diag/attn/common/attnsvc_common.C
+index c56b8a8..5067438 100644
+--- a/src/usr/diag/attn/common/attnsvc_common.C
++++ b/src/usr/diag/attn/common/attnsvc_common.C
+@@ -43,6 +43,13 @@ using namespace ERRORLOG;
+ 
+ namespace ATTN
+ {
++const uint64_t MCIFIRACT0     = 0x02011846;
++const uint64_t MCIFIRACT1     = 0x02011847;
++
++const uint64_t MCIFIRMASK     = 0x02011843;
++const uint64_t MCIFIRMASK_AND = 0x02011844;
++const uint64_t MCIFIRMASK_OR  = 0x02011845;
++
+ 
+ void getPbGp2Mask(uint64_t i_pos, void * i_data)
+ {
+@@ -104,11 +111,11 @@ errlHndl_t ServiceCommon::configureInterrupts(
+         ConfigureMode i_mode)
+ {
+     errlHndl_t err = NULL;
+-
+-    TargetHandleList procs;
++    TargetHandleList  procs;
+     getTargetService().getAllChips(procs, TYPE_PROC);
+     TargetHandleList::iterator it = procs.begin();
+ 
++
+     while(it != procs.end())
+     {
+         uint64_t mask = 0;
+@@ -172,12 +179,10 @@ errlHndl_t ServiceCommon::configureInterrupts(
+ 
+         #ifndef __HOSTBOOT_RUNTIME
+         // enable attentions in ipoll mask
+-
+         mask = HostMask::nonHost();
+         mask |= HostMask::host();
+ 
+         // this doesn't have an and/or reg for some reason...
+-
+         err = modifyScom(*it,
+                          IPOLL::address,
+                          i_mode == UP ? ~mask : mask,
+@@ -187,6 +192,76 @@ errlHndl_t ServiceCommon::configureInterrupts(
+         {
+             break;
+         }
++
++        #else  // HOSTBOOT_RUNTIME
++
++        if (i_mode == UP)
++        {
++            HwasState         l_functional;
++            uint64_t          l_mciAct0 = 0;
++            uint64_t          l_mciAct1 = 0;
++            uint64_t          l_mciBitMask = 0;
++            TargetHandleList  l_mcsList;
++            // Get list of MCS units associated with this proc
++            getTargetService().getMcsList( *it, l_mcsList );
++
++            // We need to set/clear mask bits in the MCIFIRs that
++            // are associated with host attentions.  This should
++            // cause interrupts to re-occur if they had happened
++            // prior to starting the opal-prd application.
++            TargetHandleList::iterator  l_mcsIt = l_mcsList.begin();
++
++            while(l_mcsIt != l_mcsList.end())
++            {
++                // Make sure functional prior to using
++                if (!((*l_mcsIt)->tryGetAttr<ATTR_HWAS_STATE>(l_functional)))
++                {
++                    // Can't tell if functional so skip this MCS
++                    break;
++                }
++
++                if ( !(l_functional.functional) )
++                {
++                    // Not functional MCS so skip it
++                    break;
++                }
++
++                // Read ACTION registers to see if HOST ATTN
++                err = getScom(*l_mcsIt, MCIFIRACT0, l_mciAct0);
++
++                if (NULL == err)
++                {
++                    err = getScom(*l_mcsIt, MCIFIRACT1, l_mciAct1);
++                }
++
++                if (NULL == err)
++                {
++                    // Create bit mask we will use to write to MCIFIR
++                    // (ACT0=1, ACT1=0) indicate bits we want
++                    l_mciBitMask = l_mciAct0 & ~l_mciAct1;
++                    // Set mask bits
++                    err = putScom(*l_mcsIt, MCIFIRMASK_OR, l_mciBitMask);
++                }
++
++                if (NULL == err)
++                {
++                    // Clear mask bits
++                    err = putScom(*l_mcsIt, MCIFIRMASK_AND, ~l_mciBitMask);
++                }
++
++                // Commit any failure we had and move to next MCS unit
++                if (NULL != err)
++                {
++                    errlCommit(err, ATTN_COMP_ID);
++                }
++
++                l_mcsIt++;
++
++            } // end while on MCS units
++
++            l_mcsList.clear();
++        } // end if UP MODE -- enabling
++
+         #endif //__HOSTBOOT_RUNTIME
+ 
+         ++it;
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0010-Remove-gard-actions-for-memory-plugging-errors.patch b/openpower/package/hostboot/hostboot-0010-Remove-gard-actions-for-memory-plugging-errors.patch
new file mode 100644
index 0000000..ef2a896
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0010-Remove-gard-actions-for-memory-plugging-errors.patch
@@ -0,0 +1,764 @@
+From c53b40e0dcc250d75a159389e099dd40b64e5468 Mon Sep 17 00:00:00 2001
+From: Dan Crowell <dcrowell@us.ibm.com>
+Date: Wed, 27 May 2015 16:39:23 -0500
+Subject: [PATCH] Remove gard actions for memory plugging errors
+
+Modified errors related to unsupported or invalid dimm
+configurations to no longer gard any hardware.
+
+Change-Id: I67459425e973ad1c6f4cf95ccd164b73bdd46a80
+---
+ .../mss_eff_config/memory_mss_eff_config.xml       | 208 +++++----------------
+ .../memory_mss_eff_config_termination.xml          |  69 +------
+ 2 files changed, 50 insertions(+), 227 deletions(-)
+
+diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml
+index ed1de55..c6a2d37 100644
+--- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml
++++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config.xml
+@@ -5,7 +5,7 @@
+ <!--                                                                        -->
+ <!-- OpenPOWER HostBoot Project                                             -->
+ <!--                                                                        -->
+-<!-- Contributors Listed Below - COPYRIGHT 2013,2014                        -->
++<!-- Contributors Listed Below - COPYRIGHT 2013,2015                        -->
+ <!-- [+] International Business Machines Corp.                              -->
+ <!--                                                                        -->
+ <!--                                                                        -->
+@@ -22,7 +22,7 @@
+ <!-- permissions and limitations under the License.                         -->
+ <!--                                                                        -->
+ <!-- IBM_PROLOG_END_TAG                                                     -->
+-<!-- $Id: memory_mss_eff_config.xml,v 1.3 2014/10/20 22:12:59 asaetow Exp $ -->
++<!-- $Id: memory_mss_eff_config.xml,v 1.4 2015-05-27 19:56:31 asaetow Exp $ -->
+ <!-- For file ../../ipl/fapi/mss_eff_config.C -->
+ <!-- // *! OWNER NAME  : Anuwat Saetow     Email: asaetow@us.ibm.com -->
+ <!-- // *! BACKUP NAME : Mark Bellows      Email: bellows@us.ibm.com -->
+@@ -47,9 +47,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -71,9 +68,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -98,9 +92,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -125,9 +116,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -169,10 +157,10 @@
+     <description>Plug rule violation, one position is empty but other are present
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_0</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_1</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_0</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_1</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_0</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_1</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_0</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_1</ffdc>
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+         <priority>HIGH</priority>
+@@ -186,10 +174,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -198,10 +182,10 @@
+     <description>Plug rule violation, sides do not match
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_0</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_1</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_0</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_1</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_0</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_1</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_0</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -216,10 +200,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ 
+@@ -229,10 +209,10 @@
+     <description>Plug rule violation,  top and bottom do not match
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_0</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_1</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_0</ffdc>
+-    <ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_1</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_0</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_0_1</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_0</ffdc>
++	<ffdc>CUR_DIMM_SPD_VALID_U8ARRAY_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -247,10 +227,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -259,10 +235,10 @@
+     <description>Incompatable DRAM generation 
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>DRAM_DEVICE_TYPE_0_0</ffdc>
+-    <ffdc>DRAM_DEVICE_TYPE_0_1</ffdc>
+-    <ffdc>DRAM_DEVICE_TYPE_1_0</ffdc>
+-    <ffdc>DRAM_DEVICE_TYPE_1_1</ffdc>
++	<ffdc>DRAM_DEVICE_TYPE_0_0</ffdc>
++	<ffdc>DRAM_DEVICE_TYPE_0_1</ffdc>
++	<ffdc>DRAM_DEVICE_TYPE_1_0</ffdc>
++	<ffdc>DRAM_DEVICE_TYPE_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -277,10 +253,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -289,10 +261,10 @@
+     <description>Incompatable DIMM type
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>MODULE_TYPE_0_0</ffdc>
+-    <ffdc>MODULE_TYPE_0_1</ffdc>
+-    <ffdc>MODULE_TYPE_1_0</ffdc>
+-    <ffdc>MODULE_TYPE_1_1</ffdc>
++	<ffdc>MODULE_TYPE_0_0</ffdc>
++	<ffdc>MODULE_TYPE_0_1</ffdc>
++	<ffdc>MODULE_TYPE_1_0</ffdc>
++	<ffdc>MODULE_TYPE_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -307,10 +279,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -319,10 +287,10 @@
+     <description>Incompatable DIMM ranks
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>NUM_RANKS_0_0</ffdc>
+-    <ffdc>NUM_RANKS_0_1</ffdc>
+-    <ffdc>NUM_RANKS_1_0</ffdc>
+-    <ffdc>NUM_RANKS_1_1</ffdc>
++	<ffdc>NUM_RANKS_0_0</ffdc>
++	<ffdc>NUM_RANKS_0_1</ffdc>
++	<ffdc>NUM_RANKS_1_0</ffdc>
++	<ffdc>NUM_RANKS_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -337,10 +305,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -349,10 +313,10 @@
+     <description>Incompatable DIMM banks
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>SDRAM_BANKS_0_0</ffdc>
+-    <ffdc>SDRAM_BANKS_0_1</ffdc>
+-    <ffdc>SDRAM_BANKS_1_0</ffdc>
+-    <ffdc>SDRAM_BANKS_1_1</ffdc>
++	<ffdc>SDRAM_BANKS_0_0</ffdc>
++	<ffdc>SDRAM_BANKS_0_1</ffdc>
++	<ffdc>SDRAM_BANKS_1_0</ffdc>
++	<ffdc>SDRAM_BANKS_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -367,10 +331,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -379,10 +339,10 @@
+     <description>Incompatable DIMM rows
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>SDRAM_ROWS_0_0</ffdc>
+-    <ffdc>SDRAM_ROWS_0_1</ffdc>
+-    <ffdc>SDRAM_ROWS_1_0</ffdc>
+-    <ffdc>SDRAM_ROWS_1_1</ffdc>
++	<ffdc>SDRAM_ROWS_0_0</ffdc>
++	<ffdc>SDRAM_ROWS_0_1</ffdc>
++	<ffdc>SDRAM_ROWS_1_0</ffdc>
++	<ffdc>SDRAM_ROWS_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -397,10 +357,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -409,10 +365,10 @@
+     <description>Incompatable DIMM columns
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>SDRAM_COLS_0_0</ffdc>
+-    <ffdc>SDRAM_COLS_0_1</ffdc>
+-    <ffdc>SDRAM_COLS_1_0</ffdc>
+-    <ffdc>SDRAM_COLS_1_1</ffdc>
++	<ffdc>SDRAM_COLS_0_0</ffdc>
++	<ffdc>SDRAM_COLS_0_1</ffdc>
++	<ffdc>SDRAM_COLS_1_0</ffdc>
++	<ffdc>SDRAM_COLS_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -427,10 +383,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -439,10 +391,10 @@
+     <description>Incompatable DRAM primary bus width
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>BUS_WIDTH_0_0</ffdc>
+-    <ffdc>BUS_WIDTH_0_1</ffdc>
+-    <ffdc>BUS_WIDTH_1_0</ffdc>
+-    <ffdc>BUS_WIDTH_1_1</ffdc>
++	<ffdc>BUS_WIDTH_0_0</ffdc>
++	<ffdc>BUS_WIDTH_0_1</ffdc>
++	<ffdc>BUS_WIDTH_1_0</ffdc>
++	<ffdc>BUS_WIDTH_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -457,10 +409,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ 
+@@ -483,10 +431,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ 
+@@ -496,10 +440,10 @@
+     <description>Incompatable DRAM width
+         </description>
+     <FFDC>TARGET_MBA</FFDC>
+-    <ffdc>DRAM_WIDTH_0_0</ffdc>
+-    <ffdc>DRAM_WIDTH_0_1</ffdc>
+-    <ffdc>DRAM_WIDTH_1_0</ffdc>
+-    <ffdc>DRAM_WIDTH_1_1</ffdc>
++	<ffdc>DRAM_WIDTH_0_0</ffdc>
++	<ffdc>DRAM_WIDTH_0_1</ffdc>
++	<ffdc>DRAM_WIDTH_1_0</ffdc>
++	<ffdc>DRAM_WIDTH_1_1</ffdc>
+ 
+     <callout>
+         <procedure>MEMORY_PLUGGING_ERROR</procedure>
+@@ -514,10 +458,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -540,10 +480,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -566,10 +502,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -591,10 +523,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -616,10 +544,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -641,10 +565,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -666,10 +586,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -691,10 +607,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -716,10 +628,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -741,10 +649,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -766,10 +670,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -791,10 +691,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -816,10 +712,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -841,10 +733,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -866,10 +754,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-        <priority>HIGH</priority>
+-    </gard>
+ </hwpError>
+ 
+ 
+diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml
+index 9f3c89c..f04b0a6 100644
+--- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml
++++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/memory_mss_eff_config_termination.xml
+@@ -5,7 +5,9 @@
+ <!--                                                                        -->
+ <!-- OpenPOWER HostBoot Project                                             -->
+ <!--                                                                        -->
+-<!-- COPYRIGHT International Business Machines Corp. 2013,2014              -->
++<!-- Contributors Listed Below - COPYRIGHT 2013,2015                        -->
++<!-- [+] International Business Machines Corp.                              -->
++<!--                                                                        -->
+ <!--                                                                        -->
+ <!-- Licensed under the Apache License, Version 2.0 (the "License");        -->
+ <!-- you may not use this file except in compliance with the License.       -->
+@@ -20,7 +22,7 @@
+ <!-- permissions and limitations under the License.                         -->
+ <!--                                                                        -->
+ <!-- IBM_PROLOG_END_TAG                                                     -->
+-<!-- $Id: memory_mss_eff_config_termination.xml,v 1.2 2014/04/07 23:02:10 lapietra Exp $ -->
++<!-- $Id: memory_mss_eff_config_termination.xml,v 1.3 2015-05-27 20:02:29 asaetow Exp $ -->
+ <!-- For file ../../ipl/fapi/mss_eff_config_termination.C -->
+ <!-- // *! OWNER NAME  : Dave Cadigan      Email: dcadiga@us.ibm.com -->
+ <!-- // *! BACKUP NAME : Anuwat Saetow     Email: asaetow@us.ibm.com -->
+@@ -195,9 +197,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -220,9 +219,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ <!-- *********************************************************************** -->
+   <hwpError>
+@@ -245,9 +241,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -271,9 +264,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -297,9 +287,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -323,9 +310,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -349,9 +333,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -374,9 +355,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -400,9 +378,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -425,9 +400,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -450,9 +422,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -476,9 +445,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -497,9 +463,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -523,9 +486,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ <!-- *********************************************************************** -->
+   <hwpError>
+@@ -650,9 +610,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -675,9 +632,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -699,9 +653,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ 
+@@ -724,9 +675,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -750,9 +698,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -820,9 +765,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ <!-- *********************************************************************** -->
+@@ -845,9 +787,6 @@
+         <target>TARGET_MBA</target>
+     </deconfigure>
+ 
+-    <gard>
+-        <target>TARGET_MBA</target>
+-    </gard>
+ </hwpError>
+ 
+ </hwpErrors>
+-- 
+2.3.0
+
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 83aae71..3b7bc6f 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 70b5e31d74487d51e69a0e0a390adea6b4f32dc5
+HOSTBOOT_VERSION ?= c646754e720b5cd21534425ca90bb414a4a3ff12
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk
index 1a0b636..85a893a 100644
--- a/openpower/package/occ/occ.mk
+++ b/openpower/package/occ/occ.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OCC_VERSION ?= 19678d6a7dd078e3206bac6f1d5e3cf03008542b
+OCC_VERSION ?= db9b6efae0555cbc4df2200e0e8a18e4a4c4477c
 OCC_SITE ?= $(call github,open-power,occ,$(OCC_VERSION))
 OCC_LICENSE = Apache-2.0
 OCC_DEPENDENCIES = host-binutils host-p8-pore-binutils
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 6a23e51..2234d4e 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -46,6 +46,11 @@
         help
             String used to define name of sbec hostboot binary file
 
+config BR2_HOSTBOOT_BINARY_WINK_FILENAME
+        string "Name of winkle hostboot binary"
+        help
+            String used to define name of winkle hostboot binary file
+
 config BR2_OPENPOWER_TARGETING_BIN_FILENAME
         string "Name of openpower binary targeting file"
         help
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index fb7e230..658a949 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -8,7 +8,7 @@
 # make doesn't care for quotes in the dependencies.
 XML_PACKAGE=$(subst $\",,$(BR2_OPENPOWER_XML_PACKAGE))
 
-OPENPOWER_PNOR_VERSION ?= 3748ff041448a3909d5ffc5e62befcfcb597c0c1
+OPENPOWER_PNOR_VERSION ?= ed1682e10526ebd85825427fbf397361bb0e34aa
 OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
 
 OPENPOWER_PNOR_LICENSE = Apache-2.0
@@ -48,6 +48,7 @@
             -targeting_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME) \
             -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
             -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
+            -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
             -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \
             -capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \
             -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
@@ -63,6 +64,7 @@
             -bootkernel $(BINARIES_DIR)/$(LINUX_IMAGE_NAME) \
             -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
             -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
+            -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
             -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \
             -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
             -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
diff --git a/openpower/package/pkg-versions.mk b/openpower/package/pkg-versions.mk
index e3acbda..e2e3af0 100644
--- a/openpower/package/pkg-versions.mk
+++ b/openpower/package/pkg-versions.mk
@@ -70,16 +70,16 @@
 echo -n "-" >> $$($(2)_VERSION_FILE); \
 \
 cd "$$($(2)_SITE)"; (git describe --tags || git log -n1 --pretty=format:'%h' || echo "unknown") \
-	| sed 's/\(.*\)-g\([0-9a-f]\{7\}\).*/\2/' | xargs echo -n \
+	| sed 's/\(.*\)-g\([0-9a-f]\{7\}\).*/\2/;s/$(1)-//;' | xargs echo -n \
 	>> $$($(2)_VERSION_FILE); \
 \
-cd "$$($(2)_SITE)"; git describe --all --dirty | grep -e "-dirty" | sed 's/.*\(-dirty\)/\1/' | \
+cd "$$($(2)_SITE)"; git describe --all --dirty | grep -e "-dirty" | sed 's/.*\(-dirty\)/\1/;' | \
 	xargs echo -n >> $$($(2)_VERSION_FILE); \
 else \
 \
 [ `echo -n $$($(2)_VERSION) | wc -c` == "40" ] && (echo -n $$($(2)_VERSION) | \
-	sed "s/^\([0-9a-f]\{7\}\).*/\1/" >> $$($(2)_VERSION_FILE)) \
-	|| echo -n $$($(2)_VERSION) >> $$($(2)_VERSION_FILE); \
+	sed "s/^\([0-9a-f]\{7\}\).*/\1/;s/$(1)-//;" >> $$($(2)_VERSION_FILE)) \
+	|| echo -n $$($(2)_VERSION) | sed -e 's/$(1)-//' >> $$($(2)_VERSION_FILE); \
 \
 cd "$$(BR2_EXTERNAL)"; git describe --all --dirty | \
 	if grep -e "-dirty"; then \
diff --git a/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch b/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch
deleted file mode 100644
index 68a4cbd..0000000
--- a/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/hw/prd.c b/hw/prd.c
-index e65ae57..4862213 100644
---- a/hw/prd.c
-+++ b/hw/prd.c
-@@ -226,12 +226,13 @@ static int ipoll_record_and_mask_pending(uint32_t proc)
- 
- 	lock(&ipoll_lock);
- 	rc = xscom_read(proc, PRD_IPOLL_REG_STATUS, &status);
-+	status &= PRD_IPOLL_MASK;
- 	if (!rc)
- 		__ipoll_update_mask(proc, true, status);
- 	unlock(&ipoll_lock);
- 
- 	if (!rc)
--		ipoll_status[proc] |= (status & PRD_IPOLL_MASK);
-+		ipoll_status[proc] |= status;
- 
- 	return rc;
- }
-@@ -284,7 +285,8 @@ static int prd_msg_handle_init(struct opal_prd_msg *msg)
- 
- 	lock(&ipoll_lock);
- 	for_each_chip(chip) {
--		__ipoll_update_mask(chip->id, false, msg->init.ipoll);
-+		__ipoll_update_mask(chip->id, false,
-+			msg->init.ipoll & PRD_IPOLL_MASK);
- 	}
- 	unlock(&ipoll_lock);
- 
-@@ -309,7 +311,7 @@ static int prd_msg_handle_fini(void)
- 
- 	lock(&ipoll_lock);
- 	for_each_chip(chip) {
--		__ipoll_update_mask(chip->id, true, -1ul);
-+		__ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK);
- 	}
- 	unlock(&ipoll_lock);
- 
-@@ -345,7 +347,7 @@ void prd_init(void)
- 	/* mask everything */
- 	lock(&ipoll_lock);
- 	for_each_chip(chip) {
--		__ipoll_update_mask(chip->id, true, -1ul);
-+		__ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK);
- 	}
- 	unlock(&ipoll_lock);
- 
diff --git a/openpower/package/skiboot/skiboot-0003-xscom-remove-recursive-locking.patch b/openpower/package/skiboot/skiboot-0003-xscom-remove-recursive-locking.patch
deleted file mode 100644
index e71e17e..0000000
--- a/openpower/package/skiboot/skiboot-0003-xscom-remove-recursive-locking.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git a/hw/xscom.c b/hw/xscom.c
-index 6bd71a3..a3533be 100644
---- a/hw/xscom.c
-+++ b/hw/xscom.c
-@@ -342,7 +342,6 @@  static uint32_t xscom_decode_chiplet(uint32_t partid, uint64_t *pcb_addr)
-  */
- int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val)
- {
--	bool need_unlock;
- 	uint32_t gcid;
- 	int rc;
- 
-@@ -360,12 +359,8 @@  int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val)
- 		return OPAL_PARAMETER;
- 	}
- 
--	/*
--	 * HW822317 requires locking. We use a recursive lock as error
--	 * conditions might cause printf's which might then try to take
--	 * the lock again
--	 */
--	need_unlock = lock_recursive(&xscom_lock);
-+	/* HW822317 requires us to do global locking */
-+	lock(&xscom_lock);
- 
- 	/* Direct vs indirect access */
- 	if (pcb_addr & XSCOM_ADDR_IND_FLAG)
-@@ -374,8 +369,7 @@  int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val)
- 		rc = __xscom_read(gcid, pcb_addr & 0x7fffffff, val);
- 
- 	/* Unlock it */
--	if (need_unlock)
--		unlock(&xscom_lock);
-+	unlock(&xscom_lock);
- 	return rc;
- }
- 
-@@ -383,7 +377,6 @@  opal_call(OPAL_XSCOM_READ, xscom_read, 3);
- 
- int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val)
- {
--	bool need_unlock;
- 	uint32_t gcid;
- 	int rc;
- 
-@@ -401,12 +394,8 @@  int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val)
- 		return OPAL_PARAMETER;
- 	}
- 
--	/*
--	 * HW822317 requires locking. We use a recursive lock as error
--	 * conditions might cause printf's which might then try to take
--	 * the lock again
--	 */
--	need_unlock = lock_recursive(&xscom_lock);
-+	/* HW822317 requires us to do global locking */
-+	lock(&xscom_lock);
- 
- 	/* Direct vs indirect access */
- 	if (pcb_addr & XSCOM_ADDR_IND_FLAG)
-@@ -415,8 +404,7 @@  int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val)
- 		rc = __xscom_write(gcid, pcb_addr & 0x7fffffff, val);
- 
- 	/* Unlock it */
--	if (need_unlock)
--		unlock(&xscom_lock);
-+	unlock(&xscom_lock);
- 	return rc;
- }
- opal_call(OPAL_XSCOM_WRITE, xscom_write, 3);
diff --git a/openpower/package/skiboot/skiboot-0004-Add-xscom_ok-and-lpc_ok-to-check-XSCOM-and-LPC-usability.patch b/openpower/package/skiboot/skiboot-0004-Add-xscom_ok-and-lpc_ok-to-check-XSCOM-and-LPC-usability.patch
deleted file mode 100644
index f19f6aa..0000000
--- a/openpower/package/skiboot/skiboot-0004-Add-xscom_ok-and-lpc_ok-to-check-XSCOM-and-LPC-usability.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-diff --git a/hw/bt.c b/hw/bt.c
-index 7bf1b2f..8bb44cd 100644
---- a/hw/bt.c
-+++ b/hw/bt.c
-@@ -350,7 +350,8 @@  static void print_debug_queue_info(void) {}
- 
- static void bt_send_and_unlock(void)
- {
--	if (bt.state == BT_STATE_IDLE && !list_empty(&bt.msgq))
-+	if (lpc_ok() &&
-+	    bt.state == BT_STATE_IDLE && !list_empty(&bt.msgq))
- 		bt_send_msg();
- 
- 	unlock(&bt.lock);
-@@ -361,6 +362,10 @@  static void bt_poll(struct timer *t __unused, void *data __unused)
- {
- 	uint8_t bt_ctrl;
- 
-+	/* Don't do anything if the LPC bus is offline */
-+	if (!lpc_ok())
-+		return;
-+
- 	/* If we can't get the lock assume someone else will notice
- 	 * the new message and process it. */
- 	lock(&bt.lock);
-@@ -440,7 +445,9 @@  static int bt_add_ipmi_msg(struct ipmi_msg *ipmi_msg)
- 
- void bt_irq(void)
- {
--	uint8_t ireg = bt_inb(BT_INTMASK);
-+	uint8_t ireg;
-+
-+	ireg = bt_inb(BT_INTMASK);
- 
- 	bt.irq_ok = true;
- 	if (ireg & BT_INTMASK_B2H_IRQ) {
-diff --git a/hw/lpc-uart.c b/hw/lpc-uart.c
-index 2e6114a..7c3190e 100644
---- a/hw/lpc-uart.c
-+++ b/hw/lpc-uart.c
-@@ -135,6 +135,10 @@  static size_t uart_con_write(const char *buf, size_t len)
- {
- 	size_t written = 0;
- 
-+	/* If LPC bus is bad, we just swallow data */
-+	if (!lpc_ok())
-+		return written;
-+
- 	lock(&uart_lock);
- 	while(written < len) {
- 		if (tx_room == 0) {
-diff --git a/hw/lpc.c b/hw/lpc.c
-index 0db674f..b287020 100644
---- a/hw/lpc.c
-+++ b/hw/lpc.c
-@@ -500,3 +500,15 @@  void lpc_used_by_console(void)
- 		unlock(&chip->lpc_lock);
- 	}
- }
-+
-+bool lpc_ok(void)
-+{
-+	struct proc_chip *chip;
-+
-+	if (lpc_default_chip_id < 0)
-+		return false;
-+	if (!xscom_ok())
-+		return false;
-+	chip = get_chip(lpc_default_chip_id);
-+	return !lock_held_by_me(&chip->lpc_lock);
-+}
-diff --git a/hw/xscom.c b/hw/xscom.c
-index a3533be..07b9b94 100644
---- a/hw/xscom.c
-+++ b/hw/xscom.c
-@@ -531,3 +531,8 @@  void xscom_used_by_console(void)
- 	lock(&xscom_lock);
- 	unlock(&xscom_lock);
- }
-+
-+bool xscom_ok(void)
-+{
-+	return !lock_held_by_me(&xscom_lock);
-+}
-diff --git a/include/lpc.h b/include/lpc.h
-index 5611c54..a0990fd 100644
---- a/include/lpc.h
-+++ b/include/lpc.h
-@@ -27,6 +27,12 @@  extern void lpc_init(void);
- /* Check for a default bus */
- extern bool lpc_present(void);
- 
-+/* Return of LPC is currently usable. This can be false if the caller
-+ * currently holds a lock that would make it unsafe, or the LPC bus
-+ * is known to be in some error condition (TBI).
-+ */
-+extern bool lpc_ok(void);
-+
- /* Handle the interrupt from LPC source */
- extern void __attrconst lpc_interrupt(uint32_t chip_id);
- 
-diff --git a/include/xscom.h b/include/xscom.h
-index b1ecaf5..a841261 100644
---- a/include/xscom.h
-+++ b/include/xscom.h
-@@ -173,6 +173,11 @@  extern void xscom_init(void);
- /* Mark XSCOM lock as being in console path */
- extern void xscom_used_by_console(void);
- 
-+/* Returns true if XSCOM can be used. Typically this returns false if
-+ * the current CPU holds the XSCOM lock (to avoid re-entrancy from error path).
-+ */
-+extern bool xscom_ok(void);
-+
- extern int64_t xscom_read_cfam_chipid(uint32_t partid, uint32_t *chip_id);
- 
- #endif /* __XSCOM_H */
diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk
index 3b4ad1a..7034ad7 100644
--- a/openpower/package/skiboot/skiboot.mk
+++ b/openpower/package/skiboot/skiboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SKIBOOT_VERSION = skiboot-5.0-rc3
+SKIBOOT_VERSION = skiboot-5.0.2
 SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION))
 SKIBOOT_INSTALL_IMAGES = YES
 SKIBOOT_INSTALL_TARGET = NO