Merge pull request #205 from guillesilva/master-next

Push OCC build level op_occ_150716a
diff --git a/README b/README
index 9f61021..2e84fbb 100644
--- a/README
+++ b/README
@@ -10,8 +10,9 @@
 
 1. Install Ubuntu 14.04 or Debian 7.5 64-bit.
 2. Install the packages necessary for the build:
-> sudo apt-get install cscope ctags libz-dev libexpat-dev libc6-dev-i386 \
-  build-essential g++ git bison flex gcc-multilib g++-multilib unzip \
+> sudo apt-get install cscope ctags libz-dev libexpat-dev \
+  python language-pack-en \
+  build-essential g++ git bison flex unzip \
   libxml-simple-perl libxml-sax-perl libxml2-dev libxml2-utils xsltproc
 3. Continue with the clone, environment setup, and build as noted above.
 
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/garrison_defconfig b/openpower/configs/garrison_defconfig
new file mode 100644
index 0000000..c5bde78
--- /dev/null
+++ b/openpower/configs/garrison_defconfig
@@ -0,0 +1,59 @@
+BR2_powerpc64=y
+BR2_powerpc_power8=y
+BR2_OPENPOWER_PLATFORM=y
+
+BR2_OPENPOWER_CONFIG_NAME="garrison"
+BR2_OPENPOWER_XML_PACKAGE="garrison-xml"
+BR2_HOSTBOOT_CONFIG_FILE="garrison.config"
+
+BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
+BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_BINARY_WINK_FILENAME="n1.ref_image.hdr.bin.ecc"
+
+BR2_OCC_BIN_FILENAME="occ.bin"
+
+BR2_GARRISON_SYSTEM_XML_FILENAME="GARRISON_hb.system.xml"
+BR2_GARRISON_MRW_XML_FILENAME="GARRISON_hb.mrw.xml"
+BR2_GARRISON_BIOS_XML_FILENAME="GARRISON_bios.xml"
+
+BR2_OPENPOWER_TARGETING_BIN_FILENAME="GARRISON_HB.targeting.bin"
+BR2_OPENPOWER_TARGETING_ECC_FILENAME="GARRISON_HB.targeting.bin.ecc"
+BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
+
+BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
+BR2_OPENPOWER_PNOR_FILENAME="garrison.pnor"
+BR2_OPENPOWER_PNOR_UPDATE_FILENAME="garrison_update.pnor"
+
+# skiboot requirements
+BR2_TARGET_SKIBOOT=y
+BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
+
+# petitboot requirements
+BR2_ENABLE_LOCALE_PURGE=y
+BR2_ENABLE_LOCALE_WHITELIST="C en_US"
+BR2_GENERATE_LOCALE="en_US.UTF-8"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
+BR2_ROOTFS_OVERLAY="overlay"
+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="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
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
+BR2_PACKAGE_LINUX_FIRMWARE_CXGB4=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_NCURSES_WCHAR=y
+BR2_PACKAGE_DROPBEAR=y
+# BR2_PACKAGE_DROPBEAR_SERVER is not set
+BR2_PACKAGE_ETHTOOL=y
+BR2_PACKAGE_NETCAT=y
+BR2_PACKAGE_RSYNC=y
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_IPMITOOL=y
+BR2_TARGET_ROOTFS_CPIO_XZ=y
+BR2_TARGET_ROOTFS_INITRAMFS=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..b7bc93c 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,16 +36,29 @@
 
 # turn on console output
 set CONSOLE
-set CONSOLE_AST2400
+set BMC_AST2400
 
 # Enable Kingston dimm voltage workaround
 set KINGSTON_1_35_VOLT
 
 set NO_DMI_EREPAIR
-set DISABLE_HOSTBOOT_RUNTIME
-unset HTMGT
-unset START_OCC_DURING_BOOT
+unset DISABLE_HOSTBOOT_RUNTIME
+
+# Compile in hostboot runtime PRD
+set HBRT_PRD
+set HTMGT
+set START_OCC_DURING_BOOT
+
+#PNOR flags
+set PNOR_TWO_SIDE_SUPPORT
+
+set BMC_BT_LPC_IPMI
 
 # Enable Checktop Analysis
 set ENABLE_CHECKSTOP_ANALYSIS
 
+# Hostboot will detect hardware changes
+set HOST_HCDB_SUPPORT
+
+# set for trace debug to console
+unset CONSOLE_OUTPUT_TRACE
diff --git a/openpower/configs/hostboot/garrison.config b/openpower/configs/hostboot/garrison.config
new file mode 100755
index 0000000..c78bc7a
--- /dev/null
+++ b/openpower/configs/hostboot/garrison.config
@@ -0,0 +1,61 @@
+# The Serial Flash Controller is the AST2400 BMC.
+set   SFC_IS_AST2400
+set   BMC_DOES_SFC_INIT
+unset SFC_IS_IBM_DPSS
+set   ALLOW_MICRON_PNOR
+set   ALLOW_MACRONIX_PNOR
+
+# VPD options.
+set MVPD_READ_FROM_HW
+set MVPD_WRITE_TO_HW
+set MVPD_READ_FROM_PNOR
+set MVPD_WRITE_FROM_PNOR
+set DJVPD_READ_FROM_HW
+set DJVPD_WRITE_TO_HW
+set DJVPD_READ_FROM_PNOR
+set DJVPD_WRITE_TO_PNOR
+set CVPD_READ_FROM_HW
+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
+
+# gpio config
+set GPIODD
+set PALMETTO_VDDR
+
+# disable sbe updates
+set NO_SBE_UPDATES
+
+unset PCIE_HOTPLUG_CONTROLLER
+
+# turn on console output
+set CONSOLE
+set BMC_AST2400
+
+# Enable Kingston dimm voltage workaround
+set KINGSTON_1_35_VOLT
+
+set NO_DMI_EREPAIR
+set DISABLE_HOSTBOOT_RUNTIME
+unset HTMGT
+unset START_OCC_DURING_BOOT
+
+#PNOR flags
+set PNOR_TWO_SIDE_SUPPORT
+
+set BMC_BT_LPC_IPMI
+
+# Enable Checktop Analysis
+set ENABLE_CHECKSTOP_ANALYSIS
+
+# Hostboot will detect hardware changes
+set HOST_HCDB_SUPPORT
+
+# set for trace debug to console
+unset CONSOLE_OUTPUT_TRACE
diff --git a/openpower/configs/hostboot/habanero.config b/openpower/configs/hostboot/habanero.config
index 90e5735..b5d28b4a9 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
@@ -58,5 +62,8 @@
 # Enable Checktop Analysis
 set ENABLE_CHECKSTOP_ANALYSIS
 
+# Hostboot will detect hardware changes
+set HOST_HCDB_SUPPORT
+
 # set for trace debug to console
 unset CONSOLE_OUTPUT_TRACE
diff --git a/openpower/configs/hostboot/palmetto.config b/openpower/configs/hostboot/palmetto.config
index 12ebc2c..4288585 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
 
@@ -54,5 +58,8 @@
 # Enable Checktop Analysis
 set ENABLE_CHECKSTOP_ANALYSIS
 
+# Hostboot will detect hardware changes
+set HOST_HCDB_SUPPORT
+
 # set for trace debug to console
 unset CONSOLE_OUTPUT_TRACE
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/Config.in b/openpower/package/Config.in
index 83823fb..92ab00f 100644
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -4,6 +4,7 @@
 source "$BR2_EXTERNAL/package/palmetto-xml/Config.in"
 source "$BR2_EXTERNAL/package/habanero-xml/Config.in"
 source "$BR2_EXTERNAL/package/firestone-xml/Config.in"
+source "$BR2_EXTERNAL/package/garrison-xml/Config.in"
 source "$BR2_EXTERNAL/package/openpower-pnor/Config.in"
 source "$BR2_EXTERNAL/package/p8-pore-binutils/Config.in"
 source "$BR2_EXTERNAL/package/occ/Config.in"
diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
index 600c285..66622f7 100644
--- a/openpower/package/firestone-xml/firestone.mk
+++ b/openpower/package/firestone-xml/firestone.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FIRESTONE_XML_VERSION ?= 3383b31643c225f7bcecc8ce08dcbb6803f3e058
+FIRESTONE_XML_VERSION ?= 44d46e5f009b51fd65594c0efe6bb4f2380d11b1
 FIRESTONE_XML_SITE ?= $(call github,open-power,firestone-xml,$(FIRESTONE_XML_VERSION))
 
 FIRESTONE_XML_LICENSE = Apache-2.0
@@ -32,7 +32,6 @@
         bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
 
         # generate the system mrw xml
-        # Not processing until actaul xml is here
         perl -I $(MRW_HB_TOOLS) \
         $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/firestone.xml
         
diff --git a/openpower/package/garrison-xml/Config.in b/openpower/package/garrison-xml/Config.in
new file mode 100755
index 0000000..a1626d0
--- /dev/null
+++ b/openpower/package/garrison-xml/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_GARRISON_XML
+        bool "garrison_xml"
+        default y if (BR2_OPENPOWER_CONFIG_NAME = "garrison")
+        help
+            Utilites for building xml and the targeting binary image
+
+config BR2_GARRISON_SYSTEM_XML_FILENAME
+        string "Garrison targeting system xml filename"
+        default ""
+        help
+            Defines the name of the system XML filename to be used when creating targeting binary image
+
+config BR2_GARRISON_MRW_XML_FILENAME
+        string "Garrison targeting mrw xml filename"
+        default ""
+        help
+            Defines the name of the mrw XML filename to be used when creating targeting binary image
+
+config BR2_GARRISON_BIOS_XML_FILENAME
+        string "Garrison BIOS metadata XML filename"
+        default ""
+        help
+            Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/garrison-xml/garrison.mk b/openpower/package/garrison-xml/garrison.mk
new file mode 100644
index 0000000..6781be9
--- /dev/null
+++ b/openpower/package/garrison-xml/garrison.mk
@@ -0,0 +1,75 @@
+################################################################################
+#
+# garrison_xml
+#
+################################################################################
+
+GARRISON_XML_VERSION ?= 26d3a993c0aeadcb68afe52b5f3a04a95c0d252b
+GARRISON_XML_SITE ?= $(call github,open-power,garrison-xml,$(GARRISON_XML_VERSION))
+
+GARRISON_XML_LICENSE = Apache-2.0
+GARRISON_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+
+GARRISON_XML_INSTALL_IMAGES = YES
+GARRISON_XML_INSTALL_TARGET = YES
+
+MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+# Defines for BIOS metadata creation
+BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
+GARRISON_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_GARRISON_BIOS_XML_FILENAME)
+BIOS_XML_METADATA_FILE = \
+    $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
+PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
+PETITBOOT_BIOS_XML_METADATA_FILE = \
+    $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
+PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
+    $(TARGET_DIR)/usr/share/bios_metadata.xml
+
+define GARRISON_XML_BUILD_CMDS
+        # copy the garrison xml where the common lives
+        bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
+
+        # generate the system mrw xml
+        perl -I $(MRW_HB_TOOLS) \
+        $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/garrison.xml
+        
+        # merge in any system specific attributes, hostboot attributes
+        $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_GARRISON_SYSTEM_XML_FILENAME) \
+            $(MRW_HB_TOOLS)/attribute_types.xml \
+            $(MRW_HB_TOOLS)/attribute_types_hb.xml \
+            $(MRW_HB_TOOLS)/target_types_merged.xml \
+            $(MRW_HB_TOOLS)/target_types_hb.xml \
+            $(MRW_SCRATCH)/$(BR2_GARRISON_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
+
+        # creating the targeting binary
+        $(MRW_HB_TOOLS)/xmltohb.pl  \
+            --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
+            --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
+            --src-output-dir=none \
+            --img-output-dir=$(MRW_HB_TOOLS)/ \
+            --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
+            --bios-xml-file=$(GARRISON_BIOS_XML_CONFIG_FILE) \
+            --bios-schema-file=$(BIOS_SCHEMA_FILE) \
+            --bios-output-file=$(BIOS_XML_METADATA_FILE)
+
+        # Transform BIOS XML into Petitboot specific BIOS XML via the schema
+        xsltproc -o \
+            $(PETITBOOT_BIOS_XML_METADATA_FILE) \
+            $(PETITBOOT_XSLT_FILE) \
+            $(BIOS_XML_METADATA_FILE)
+endef
+
+define GARRISON_XML_INSTALL_IMAGES_CMDS
+        mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
+endef
+
+define GARRISON_XML_INSTALL_TARGET_CMDS
+        # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
+        $(INSTALL) -D -m 0644 \
+            $(PETITBOOT_BIOS_XML_METADATA_FILE) \
+            $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
index 557a7da..38232b0 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HABANERO_XML_VERSION ?= b7f0e388bba972fcdcf749f9bb8e31bc9e1022c0
+HABANERO_XML_VERSION ?= b86989fce1e543a07706206f12ef00b0b6a170c7
 HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
 
 HABANERO_XML_LICENSE = Apache-2.0
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-0003-Remove-gard-actions-for-memory-plugging-errors.patch b/openpower/package/hostboot/hostboot-0003-Remove-gard-actions-for-memory-plugging-errors.patch
new file mode 100644
index 0000000..ef2a896
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0003-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-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch b/openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch
new file mode 100644
index 0000000..cb4e060
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch
@@ -0,0 +1,60 @@
+From 58a3d0ad88b91c7c9cab1e2c4c9e3dbc7377303f Mon Sep 17 00:00:00 2001
+From: Prachi Gupta <pragupta@us.ibm.com>
+Date: Wed, 17 Jun 2015 09:22:10 -0500
+Subject: [PATCH] SW311560: HWP error prevent IPL on habanero
+
+Change-Id: Ibd19f1986c768e08a97acdbd8b39c174f51bb399
+CQ:SW311560
+---
+ .../hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C  | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C
+index 1f1bb7e..996a1e0 100644
+--- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C
++++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C
+@@ -22,7 +22,7 @@
+ /* permissions and limitations under the License.                         */
+ /*                                                                        */
+ /* IBM_PROLOG_END_TAG                                                     */
+-// $Id: mss_eff_config_thermal.C,v 1.31 2015/04/06 22:33:11 pardeik Exp $
++// $Id: mss_eff_config_thermal.C,v 1.32 2015/06/16 21:57:30 pardeik Exp $
+ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/
+ //          centaur/working/procedures/ipl/fapi/mss_eff_config_thermal.C,v $
+ //------------------------------------------------------------------------------
+@@ -55,6 +55,9 @@
+ //------------------------------------------------------------------------------
+ // Version:|  Author: |  Date:  | Comment:
+ //---------|----------|---------|-----------------------------------------------
++//   1.32  | pardeik  | 06/16/15| fix for ISDIMM systems to prevent a zero
++//         |          |         |   ATTR_MSS_MEM_WATT_TARGET value
++//         |          |         | Removed unneeded TODO commented section
+ //   1.31  | pardeik  | 04/06/15 | attribute name changed for adjustment enable
+ //   1.30  | pardeik  |12-FEB-15| CDIMM DDR4 throttle updates (set Nmba to Nchip)
+ //         |          |         | Support for vmem regulator power adjustment
+@@ -131,10 +134,6 @@
+ //         |          |         | case. 
+ //   1.1   | pardeik  |01-NOV-11| First Draft.
+ 
+-/*
+-TODO ITEMS:
+-1.  Update ISDIMM power table after hardware measurements are done (GA3)
+-*/
+ 
+ //------------------------------------------------------------------------------
+ //  My Includes
+@@ -583,6 +582,11 @@ extern "C" {
+ //------------------------------------------------------------------------------
+ 
+ // adjust the regulator power limit per dimm if enabled and use this if less than the thermal limit
++// If reg power limit is zero, then set to thermal limit - needed for ISDIMM systems since some of these MRW attributes are not defined
++	if (l_dimm_reg_power_limit_per_dimm == 0)
++	{
++	    l_dimm_reg_power_limit_per_dimm = dimm_thermal_power_limit;
++	}
+ 	l_dimm_reg_power_limit_per_dimm_adj = l_dimm_reg_power_limit_per_dimm;
+ 	if (l_dimm_reg_power_limit_adj_enable == fapi::ENUM_ATTR_MRW_VMEM_REGULATOR_POWER_LIMIT_PER_DIMM_ADJ_ENABLE_TRUE)
+ 	{
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch b/openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch
deleted file mode 100644
index 455b3c7..0000000
--- a/openpower/package/hostboot/hostboot-0004_mss_thermal_undo.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d7b5b4a29107c17ad97b2c25cec11f51df485ea1 Mon Sep 17 00:00:00 2001
-From: Brian Horton <brianh@linux.ibm.com>
-Date: Tue, 31 Mar 2015 13:26:40 -0500
-Subject: [PATCH] undo 1.18 change
-
-Change-Id: I477dd4a478fc3c752a7f4f9dd1dff9f03ce39cc1
----
- .../mss_thermal_init/mss_thermal_init.C            |    5 +++--
- 1 files changed, 3 insertions(+), 2 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 a98b58d..b90d1d6 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.20 2015/03/02 20:43:37 pardeik Exp $
-+// $Id: mss_thermal_init.C,v 1.20a 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 @@
- //------------------------------------------------------------------------------
- // Version:|  Author: |  Date:  | Comment:
- //---------|----------|---------|-----------------------------------------------
-+//   1.20a | brianh   |31-MAR-15| under 1.18
- //   1.20  | pardeik  |02-MAR-15| initialize l_dimm_ranks_array to zero
- //                              | use const variables in for loops instead of numbers
- //   1.18  | pardeik  |12-FEB-15| change ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP to
-@@ -295,7 +296,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;
-       }
- 
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch b/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
deleted file mode 100644
index 6f1b80c..0000000
--- a/openpower/package/hostboot/hostboot-0005-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
+++ /dev/null
@@ -1,350 +0,0 @@
-From 1674da76fadc52f8c6aff6d8435536dd33b7417f Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Mon, 30 Mar 2015 15:11:28 -0500
-Subject: [PATCH] Add PNOR Version Information to IPMI Fru Inventory
-
-Change-Id: Ib49fe67e9c6631b2b7ea0005e692c9aea6d84057
-RTC:123353
----
- src/usr/ipmi/ipmifruinv.C                          | 207 +++++++++++++++++++++
- src/usr/ipmi/ipmifruinvprvt.H                      |  47 +++++
- .../targeting/common/xmltohb/attribute_types.xml   |   8 +
- src/usr/targeting/common/xmltohb/target_types.xml  |   1 +
- 4 files changed, 263 insertions(+)
-
-diff --git a/src/usr/ipmi/ipmifruinv.C b/src/usr/ipmi/ipmifruinv.C
-index 4f0d7d7..aaf62d1 100644
---- a/src/usr/ipmi/ipmifruinv.C
-+++ b/src/usr/ipmi/ipmifruinv.C
-@@ -37,6 +37,7 @@
- #include "ipmifruinvprvt.H"
- #include <stdio.h>
- #include <assert.h>
-+#include <pnor/pnorif.H>
- 
- extern trace_desc_t * g_trac_ipmi;
- 
-@@ -84,6 +85,10 @@ IpmiFruInv *IpmiFruInv::Factory(TARGETING::TargetHandleList i_targets,
-             // @todo-RTC:117702
-             l_fru = new backplaneIpmiFruInv(l_target, i_targets, i_updateData);
-             break;
-+        case TARGETING::TYPE_SYS:
-+            // Use sys target for setting System Firmware Info
-+            l_fru = new systemFwIpmiFruInv(l_target);
-+            break;
-         default:
-             assert(false,
-                 "IpmiFruInv::Factory: No support for target type given: [%08x]",
-@@ -927,6 +932,199 @@ errlHndl_t backplaneIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
-     return l_errl;
- }
- 
-+//##############################################################################
-+systemFwIpmiFruInv::systemFwIpmiFruInv( TARGETING::TargetHandle_t i_target )
-+    :IpmiFruInv(i_target)
-+{
-+
-+};
-+
-+errlHndl_t systemFwIpmiFruInv::buildInternalUseArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    //This section not needed for proc type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildChassisInfoArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    //This section not needed for system firmware type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildBoardInfoArea(std::vector<uint8_t> &io_data)
-+{
-+    //This section not needed for system firmware type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildProductInfoArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    errlHndl_t l_errl = NULL;
-+
-+    do {
-+        //Set formatting data that goes at the beginning of the record
-+        preFormatProcessing(io_data, true);
-+
-+        uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_NULL,
-+                            IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 18, 'O','p','e',
-+                            'n','P','O','W','E','R',' ','F','i','r','m','w','a',
-+                            'r','e', IPMIFRUINV::TYPELENGTH_BYTE_NULL};
-+
-+        io_data.insert( io_data.end(),
-+                    &l_data[0],
-+                    &l_data[0] + (uint8_t(sizeof(l_data) / sizeof(uint8_t))));
-+
-+        //Get PNOR Version Here
-+        PNOR::SectionInfo_t l_pnorInfo;
-+        l_errl = getSectionInfo( PNOR::VERSION , l_pnorInfo);
-+        if (l_errl) { break; }
-+
-+        uint8_t* l_versionData = reinterpret_cast<uint8_t*>( l_pnorInfo.vaddr );
-+        //Total Bytes in PNOR Version String
-+        uint8_t l_numBytes = 0;
-+        uint8_t l_curOffset = 0;
-+
-+        //Total Number of fields needed to print PNOR Version String
-+        uint8_t l_numFields = 0;
-+        bool l_clearStandardFields = true;
-+
-+        //First determine number of bytes in PNOR Version string
-+        //  with the caveat there is a max record size allowed, so
-+        //  the string will be cut off if too long
-+        //Also, remove newline chars
-+        while ((l_numBytes < IPMIFRUINV::MAX_RECORD_SIZE -
-+                              (uint8_t(sizeof(l_data) / sizeof(uint8_t))) -
-+                              IPMIFRUINV::COMMON_HEADER_FORMAT_SIZE - 8)
-+                               && (((char)(l_versionData[l_numBytes])) != '\0'))
-+        {
-+
-+            if (((char)(l_versionData[l_numBytes])) == '\n')
-+            {
-+
-+                if (l_numBytes > l_curOffset)
-+                {
-+                    //Add on size of this field to the data buffer
-+                    io_data.push_back(
-+                         IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+                           + (l_numBytes-l_curOffset));
-+
-+                    io_data.insert(io_data.end(),
-+                       &l_versionData[0]+(l_curOffset),
-+                       &l_versionData[0]+(l_numBytes));
-+                }
-+
-+                //Null data for standard fields needs to be indicated once after
-+                // the first segment of data is displayed to match the
-+                // ipmi fru spec
-+                if (l_clearStandardFields)
-+                {
-+                    //Add Empty Asset Tag
-+                    io_data.push_back(uint8_t(0));
-+                    //FRU File ID - Empty
-+                    io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+                    io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+                    l_clearStandardFields = false;
-+                }
-+
-+                //Increment past the newline char
-+                l_curOffset = l_numBytes + 1;
-+            }
-+            l_numBytes++;
-+        }
-+
-+        if (l_curOffset == 0)
-+        {
-+            //Calculate the number of fields required to display this data
-+            //  given only MAX_ASCII_FIELD_SIZE bytes can be in any one given
-+            //  IPMI fru inventory field
-+            l_numFields = l_numBytes / IPMIFRUINV::MAX_ASCII_FIELD_SIZE;
-+            if (l_numBytes % IPMIFRUINV::MAX_ASCII_FIELD_SIZE)
-+            {
-+                l_numFields += 1;
-+            }
-+
-+            //Count by number of fields, adding the data to the buffer as
-+            // we go.
-+            for (uint8_t i=0; i < l_numFields; i++)
-+            {
-+                //Determine the data size for this particular field
-+                uint8_t l_dataSize=IPMIFRUINV::MAX_ASCII_FIELD_SIZE;
-+                if (i == l_numFields - 1)
-+                {
-+                    l_dataSize = l_numBytes -
-+                           (i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE);
-+                }
-+
-+                //Add on size of this field to the data buffer
-+                io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+                                         + l_dataSize);
-+
-+                //Insert this segment of version string data
-+                io_data.insert(io_data.end(),
-+                       &l_versionData[0]+(i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE),
-+                       &l_versionData[0]+(i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE)
-+                                        +l_dataSize);
-+
-+                //Null data for standard fields needs to be indicated once after
-+                // the first segment of data is displayed to match the
-+                // ipmi fru spec
-+                if (l_clearStandardFields)
-+                {
-+                    //Add Empty Asset Tag
-+                    io_data.push_back(uint8_t(0));
-+                    //FRU File ID - Empty
-+                    io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+                    //io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+                    l_clearStandardFields = false;
-+                }
-+
-+            }
-+        }
-+        else
-+        {
-+            if (l_numBytes > l_curOffset)
-+            {
-+                io_data.push_back( IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+                        + (l_numBytes-l_curOffset));
-+
-+                io_data.insert(io_data.end(),
-+                       &l_versionData[0]+(l_curOffset),
-+                       &l_versionData[0]+(l_numBytes));
-+            }
-+
-+        }
-+
-+        if (l_clearStandardFields)
-+        {
-+            //Add Asset Tag
-+            io_data.push_back(uint8_t(0)); //No Asset Tag needed - O bytes
-+            //FRU File ID - Empty
-+            io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+            //io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+        }
-+
-+        io_data.push_back(IPMIFRUINV::END_OF_CUSTOM_FIELDS);
-+
-+        //Finalize section formatting
-+        postFormatProcessing(io_data);
-+
-+    } while(0);
-+
-+    return l_errl;
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildMultiRecordInfoArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    //This section not needed for system firmware type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+
-+
- void IpmiFruInv::addEcidData(const TARGETING::TargetHandle_t& i_target,
-                              const TARGETING::ATTR_ECID_type& i_ecidInfo,
-                              std::vector<uint8_t> &io_data)
-@@ -997,6 +1195,15 @@ void IPMIFRUINV::setData(bool i_updateData)
-             IPMIFRUINV::gatherClearData(pSys, frusToClear);
-         }
- 
-+        //Get System FW FRU_ID if available
-+        uint32_t l_systemFwFruId;
-+        bool hasSystemFwFruId =
-+                  pSys->tryGetAttr<TARGETING::ATTR_BMC_FRU_ID>(l_systemFwFruId);
-+        if (hasSystemFwFruId)
-+        {
-+            l_potentialFrus.push_back(std::make_pair(pSys, l_systemFwFruId));
-+        }
-+
-         // Find list of all target types that may need a fru inv. record set
-         IPMIFRUINV::gatherSetData(pSys, frusToClear,
-                                      l_potentialFrus, i_updateData);
-diff --git a/src/usr/ipmi/ipmifruinvprvt.H b/src/usr/ipmi/ipmifruinvprvt.H
-index 2573a84..468a47f 100644
---- a/src/usr/ipmi/ipmifruinvprvt.H
-+++ b/src/usr/ipmi/ipmifruinvprvt.H
-@@ -42,6 +42,8 @@ namespace IPMIFRUINV
-         COMMON_HEADER_FORMAT_SIZE     = 8, //size in bytes
-         DEFAULT_CHASSIS_TYPE          = 0x05,
-         DEFAULT_FRU_OFFSET            = 0,
-+        MAX_ASCII_FIELD_SIZE          = 0x3F, //size in bytes
-+        MAX_RECORD_SIZE               = 0xFF, //size in bytes
-     };
- };
- 
-@@ -460,4 +462,49 @@ class backplaneIpmiFruInv : public IpmiFruInv
- 
- };
- 
-+//Child class for building up System Firwmare Fru Inventory Record Data
-+class systemFwIpmiFruInv : public IpmiFruInv
-+{
-+
-+  public:
-+    /**
-+    * @brief Constructor
-+    *
-+    * @param[in] TargetHandle_t, Handle to target for which
-+    *             to get relevant IPMI FRU Data from
-+    */
-+    systemFwIpmiFruInv( TARGETING::TargetHandle_t i_target);
-+
-+    /**
-+     * @brief Builds the Internal Use Area Data Section
-+     * @param[in/out] data, The container to put internal use area data in
-+     */
-+    errlHndl_t buildInternalUseArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the Chassis Info Area Data Section
-+     * @param[in/out] data, The container to put chassis info area data in
-+     */
-+    errlHndl_t buildChassisInfoArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the Board Info Area Data Section
-+     * @param[in/out] data, The container to put board info area data in
-+     */
-+    errlHndl_t buildBoardInfoArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the Product Info Area Data Section
-+     * @param[in/out] data, The container to put product info area data in
-+     */
-+    errlHndl_t buildProductInfoArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the MultiRecord Info Area Data Section
-+     * @param[in/out] data, The container to put multirecord info area data in
-+     */
-+    errlHndl_t buildMultiRecordInfoArea(std::vector<uint8_t> &io_data);
-+
-+};
-+
- #endif
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
-index ec256de..17729cd 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
-@@ -11659,6 +11659,14 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
- </attribute>
- 
- <attribute>
-+    <id>BMC_FRU_ID</id>
-+    <description>BMC FRU ID attribute for node class</description>
-+    <simpleType><uint32_t><default>0</default></uint32_t></simpleType>
-+    <persistency>non-volatile</persistency>
-+    <readable/>
-+</attribute>
-+
-+<attribute>
-     <id>PLCK_IPL_ATTR_OVERRIDES_EXIST</id>
-     <description>
-       Set to 1 by HWSV to indicate that attribute overrides exist in a PLCK IPL
-diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
-index 15d7921..82ec014 100644
---- a/src/usr/targeting/common/xmltohb/target_types.xml
-+++ b/src/usr/targeting/common/xmltohb/target_types.xml
-@@ -300,6 +300,7 @@
-     <attribute><id>MNFG_TH_CEN_L4_CACHE_CES</id></attribute>
-     <attribute><id>OPT_MEMMAP_GROUP_POLICY</id></attribute>
-     <attribute><id>FRU_ID</id></attribute>
-+    <attribute><id>BMC_FRU_ID</id></attribute>
- </targetType>
- 
- <targetType>
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch b/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch
new file mode 100644
index 0000000..773a9db
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch
@@ -0,0 +1,187 @@
+From 7c592db2c42b8dbef0f31a8daebb97ff0ed6a3ac Mon Sep 17 00:00:00 2001
+From: Stephen Cprek <smcprek@us.ibm.com>
+Date: Tue, 30 Jun 2015 16:49:22 -0500
+Subject: [PATCH] Shutdown when deconfig outside of reconfig loop on BMC
+ systems
+
+Change-Id: I1faf0ab0d831a41c332993f555231a8dbecf53ef
+CQ:SW312075
+---
+ src/include/usr/initservice/initsvcreasoncodes.H   |   4 +-
+ .../initservice/istepdispatcher/istepdispatcher.C  | 120 ++++++++++++++++-----
+ 2 files changed, 98 insertions(+), 26 deletions(-)
+
+diff --git a/src/include/usr/initservice/initsvcreasoncodes.H b/src/include/usr/initservice/initsvcreasoncodes.H
+index d11824e..e174564 100644
+--- a/src/include/usr/initservice/initsvcreasoncodes.H
++++ b/src/include/usr/initservice/initsvcreasoncodes.H
+@@ -5,7 +5,7 @@
+ /*                                                                        */
+ /* OpenPOWER HostBoot Project                                             */
+ /*                                                                        */
+-/* Contributors Listed Below - COPYRIGHT 2011,2014                        */
++/* Contributors Listed Below - COPYRIGHT 2011,2015                        */
+ /* [+] International Business Machines Corp.                              */
+ /*                                                                        */
+ /*                                                                        */
+@@ -74,6 +74,8 @@ enum    InitServiceReasonCode
+     //termination_rc
+     SBE_EXTRACT_RC_REQUEST_REIPL =   INITSVC_COMP_ID | 0x0e,
+     RECONFIG_LOOP_TEST_RC        =   INITSVC_COMP_ID | 0x0f,
++    //termination_rc
++    SHUTDOWN_NOT_RECONFIG_LOOP   =   INITSVC_COMP_ID | 0x10,
+ };
+ 
+ enum InitServiceUserDetailDataSubSection
+diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
+index d3581e9..7f3c0b7 100644
+--- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
++++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
+@@ -96,6 +96,10 @@ const uint8_t OUTER_STOP_STEP = 14;
+ const uint8_t OUTER_STOP_SUBSTEP = 5;
+ const uint8_t HB_START_ISTEP = 6;
+ 
++// @todo RTC 124679 - Remove Once BMC Monitors Shutdown Attention
++// Set Watchdog Timer To 15 seconds before calling doShutdown()
++const uint16_t SET_WD_TIMER_IN_SECS = 15;
++
+ /**
+  * _start() task entry procedure using the macro in taskargs.H
+  */
+@@ -506,14 +510,58 @@ errlHndl_t IStepDispatcher::executeAllISteps()
+                 }
+                 else
+                 {
+-                    // Reconfig loop required, but the istep is either outside
+-                    // of the reconfig loop, too many reconfigs have been
+-                    // attempted, in manufacturing mode, or in MPIPL.
+-                    // Return an error to cause termination
++
+                     if (!err)
+                     {
+-                        err = failedDueToDeconfig(istep, substep,
+-                                                  newIstep, newSubstep);
++                        // Reconfig loop required, but the istep is either outside
++                        // of the reconfig loop, too many reconfigs have been
++                        // attempted, in manufacturing mode, or in MPIPL.
++                        // Return an error to cause termination on FSP systems
++                        if (iv_spBaseServicesEnabled)
++                        {
++                            err = failedDueToDeconfig(istep, substep,
++                                                      newIstep, newSubstep);
++                        }
++                        // Otherwise increment the reboot count and shutdown
++                        #ifdef CONFIG_BMC_IPMI
++                        else
++                        {
++                            uint16_t l_count = 0;
++                            SENSOR::RebootCountSensor l_sensor;
++
++                            // Read reboot count sensor
++                            err = l_sensor.getRebootCount(l_count);
++                            if (err)
++                            {
++                                TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps: getRebootCount failed");
++                                break;
++                            }
++                            // Increment reboot count
++                            l_count++;
++                            err = l_sensor.setRebootCount(l_count);
++                            if (err)
++                            {
++                                TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps: setRebootCount to %d failed", l_count);
++                                break;
++                            }
++
++                            // @TODO RTC:124679 - Remove Once BMC Monitors
++                            // Shutdown Attention
++                            // Set Watchdog Timer before calling doShutdown()
++                            TRACFCOMP( g_trac_initsvc,"executeAllISteps: "
++                                       "Set Watch Dog Timer To %d Seconds",
++                                       SET_WD_TIMER_IN_SECS);
++
++                            err = IPMIWATCHDOG::setWatchDogTimer(
++                               SET_WD_TIMER_IN_SECS,  // new time
++                               static_cast<uint8_t>
++                                          (IPMIWATCHDOG::DO_NOT_STOP |
++                                           IPMIWATCHDOG::BIOS_FRB2), // default
++                                           IPMIWATCHDOG::TIMEOUT_HARD_RESET);
++
++                            shutdownDuringIpl();
++                        }
++                        #endif
+                     }
+                     // else return the error from doIstep
+                 }
+@@ -1260,27 +1308,49 @@ void IStepDispatcher::shutdownDuringIpl()
+ {
+     TRACFCOMP(g_trac_initsvc, ENTER_MRK"IStepDispatcher::shutdownDuringIpl");
+ 
+-    // Create and commit error log for FFDC
+-
+-    /*@
+-     * @errortype
+-     * @reasoncode       SHUTDOWN_REQUESTED_BY_FSP
+-     * @severity         ERRORLOG::ERRL_SEV_INFORMATIONAL
+-     * @moduleid         ISTEP_INITSVC_MOD_ID
+-     * @userdata1        Current IStep
+-     * @userdata2        Current SubStep
+-     * @devdesc          Received shutdown request from FSP
+-     */
+-    errlHndl_t err = new ERRORLOG::ErrlEntry(
+-        ERRORLOG::ERRL_SEV_INFORMATIONAL,
+-        ISTEP_INITSVC_MOD_ID,
+-        SHUTDOWN_REQUESTED_BY_FSP,
+-        this->iv_curIStep, this->iv_curSubStep);
++    // Create and commit error log for FFDC and call doShutdown with the RC
++    // to initiate a TI
++    if (iv_spBaseServicesEnabled)
++    {
++        /*@
++         * @errortype
++         * @reasoncode       SHUTDOWN_REQUESTED_BY_FSP
++         * @severity         ERRORLOG::ERRL_SEV_INFORMATIONAL
++         * @moduleid         ISTEP_INITSVC_MOD_ID
++         * @userdata1        Current IStep
++         * @userdata2        Current SubStep
++         * @devdesc          Received shutdown request from FSP
++         */
++        errlHndl_t err = new ERRORLOG::ErrlEntry(
++            ERRORLOG::ERRL_SEV_INFORMATIONAL,
++            ISTEP_INITSVC_MOD_ID,
++            SHUTDOWN_REQUESTED_BY_FSP,
++            this->iv_curIStep, this->iv_curSubStep);
+ 
+-    errlCommit(err, INITSVC_COMP_ID);
++        errlCommit(err, INITSVC_COMP_ID);
++        INITSERVICE::doShutdown(SHUTDOWN_REQUESTED_BY_FSP);
++    }
++    else
++    {
++        /*@
++         * @errortype
++         * @reasoncode       SHUTDOWN_NOT_RECONFIG_LOOP
++         * @severity         ERRORLOG::ERRL_SEV_INFORMATIONAL
++         * @moduleid         ISTEP_INITSVC_MOD_ID
++         * @userdata1        Current IStep
++         * @userdata2        Current SubStep
++         * @devdesc          Received shutdown request due to deconfigure
++         *                   outside of reconfig loop
++         */
++        errlHndl_t err = new ERRORLOG::ErrlEntry(
++            ERRORLOG::ERRL_SEV_INFORMATIONAL,
++            ISTEP_INITSVC_MOD_ID,
++            SHUTDOWN_NOT_RECONFIG_LOOP,
++            this->iv_curIStep, this->iv_curSubStep);
+ 
+-    // Call doShutdown with the RC to initiate a TI
+-    INITSERVICE::doShutdown(SHUTDOWN_REQUESTED_BY_FSP);
++        errlCommit(err, INITSVC_COMP_ID);
++        INITSERVICE::doShutdown(SHUTDOWN_NOT_RECONFIG_LOOP);
++    }
+ 
+ }
+ 
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0006-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch b/openpower/package/hostboot/hostboot-0006-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch
deleted file mode 100644
index 06e4730..0000000
--- a/openpower/package/hostboot/hostboot-0006-Move-slave-sbe-start-before-proc-cen-ref-clk-enable.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From d6882c71233b9c4b2fb801c4f3e588b47c2c73bc Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Wed, 1 Apr 2015 11:07:42 -0500
-Subject: [PATCH] Move slave sbe start before proc_cen_ref_clk_enable
-
-The proc_cen_ref_clk_enable step contains scoms to the processor
-that do not work if the proc hasn't run through its sbe code yet.
-
-Change-Id: I7665992a01bd66a37cd5e79aa2bb2142a304a8f4
----
- src/include/usr/isteps/istep06list.H | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/include/usr/isteps/istep06list.H b/src/include/usr/isteps/istep06list.H
-index 6adb784..6a26b2a 100644
---- a/src/include/usr/isteps/istep06list.H
-+++ b/src/include/usr/isteps/istep06list.H
-@@ -68,12 +68,12 @@ namespace   INITSERVICE
-  *      :   Clear deconfigured states
-  *  06.8    proc_revert_sbe_mcs_setup
-  *      :   Clean up MCS extent regs
-- *  06.9    proc_cen_ref_clk_enable
-- *      :   Setup centaur ref clocks
-- *  06.10    host_slave_sbe_config
-+ *  06.10   host_slave_sbe_config
-  *  06.11   host_sbe_start
-  *  06.12   proc_check_slave_sbe_seeprom_complete
-  *        : Check Slave SBE Complete
-+ *  06.9    proc_cen_ref_clk_enable
-+ *      :   Setup centaur ref clocks
-  *  06.13   proc_xmit_sbe
-  *        : vSBE Init of Slave Chips
-  *
-@@ -127,11 +127,6 @@ const   TaskInfo    g_istep06[]  =   {
-                 { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
-         },
-         {
--                ISTEPNAME(06,09,"proc_cen_ref_clk_enable"),
--                SLAVE_SBE::call_proc_cen_ref_clk_enable,
--                { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
--        },
--        {
-                 ISTEPNAME(06,10,"host_slave_sbe_config"),
-                 SLAVE_SBE::call_host_slave_sbe_config,
-                 { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
-@@ -147,6 +142,11 @@ const   TaskInfo    g_istep06[]  =   {
-                 { START_FN, EXT_IMAGE, NORMAL_IPL_OP | MPIPL_OP, false }
-         },
-         {
-+                ISTEPNAME(06,09,"proc_cen_ref_clk_enable"),
-+                SLAVE_SBE::call_proc_cen_ref_clk_enable,
-+                { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
-+        },
-+        {
-                 ISTEPNAME(06,13,"proc_xmit_sbe"),
-                 SLAVE_SBE::call_proc_xmit_sbe,
-                 { START_FN, EXT_IMAGE, NORMAL_IPL_OP, false }
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch b/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch
deleted file mode 100644
index 8a14eda..0000000
--- a/openpower/package/hostboot/hostboot-0007-Fix-Bug-in-mss_setup_bars.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 5b26d8a2da4c8bba72781e45ec89572843f55f35 Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Tue, 21 Apr 2015 13:23:36 -0500
-Subject: [PATCH] Fix Bug in mss_setup_bars
-
-There was an update made to mss_setup_bars.C to fix memory corruption, but
-this commit corrects an issue that was missed by this initial update.
-
-Change-Id: I32889a5d07b33f5496e5ea12ec50a0f26d0e1561
-CQ: SW296125
----
- src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C
-index 274dfdc..6c58193 100644
---- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C
-+++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C
-@@ -615,7 +615,7 @@ fapi::ReturnCode mss_setup_bars(const fapi::Target& i_pu_target,   std::vector<f
-                     if(mcs_sz !=  sizeInfo.MCS_size[group_data[i][j]])
-                     {
-                           FAPI_INF(" Group %zd will not be configured as MCS %d is not valid grouped size is %d , present MCS size is %d \n",i,group_data[i][j],mcs_sz, sizeInfo.MCS_size[group_data[i][j]]);
--                          for(uint8_t k = 0; k<32;k++) { group_data[i][k]=0; }
-+                          for(uint8_t k = 0; k<16;k++) { group_data[i][k]=0; }
-                      }
-                }
-            }
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch b/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch
deleted file mode 100644
index 8f8a15e..0000000
--- a/openpower/package/hostboot/hostboot-0008-Limit-attribute-NPU_MMIO_BAR_BASE_ADDR-to-Naples-bas.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0134ed35efb10842f8a1d59d456e39338e63eaea Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Tue, 21 Apr 2015 16:41:38 -0500
-Subject: [PATCH] Limit attribute NPU_MMIO_BAR_BASE_ADDR to Naples-based
- systems
-
-This commit limits the use of the NPU_MMIO_BAR_BASE_ADDR to the
-systems for which it is defined.
-
-Change-Id: I7eab012a84611365e8e6cb6c44b49c4a4ffac8e4
----
- src/usr/targeting/common/processMrw.pl | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
-index 3515841..5d44e74 100644
---- a/src/usr/targeting/common/processMrw.pl
-+++ b/src/usr/targeting/common/processMrw.pl
-@@ -580,10 +580,15 @@ sub setupBars
-     my $proc   = $targetObj->getAttribute($target, "FABRIC_CHIP_ID");
-     $targetObj->{TOPOLOGY}->{$node}->{$proc}++;
- 
--    my @bars=("NPU_MMIO_BAR_BASE_ADDR","FSP_BASE_ADDR","PSI_BRIDGE_BASE_ADDR",
-+    my @bars=("FSP_BASE_ADDR","PSI_BRIDGE_BASE_ADDR",
-               "INTP_BASE_ADDR","PHB_BASE_ADDRS","PCI_BASE_ADDRS_32",
-               "PCI_BASE_ADDRS_64","RNG_BASE_ADDR","IBSCOM_PROC_BASE_ADDR");
- 
-+    # Attribute only valid in naples-based systems
-+    if (!$targetObj->isBadAttribute($target,"NPU_MMIO_BAR_BASE_ADDR") ) {
-+          push(@bars,"NPU_MMIO_BAR_BASE_ADDR");
-+    }
-+
-     foreach my $bar (@bars)
-     {
-         my ($num,$base,$node_offset,$proc_offset,$offset) = split(/,/,
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch b/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch
deleted file mode 100644
index 5779f22..0000000
--- a/openpower/package/hostboot/hostboot-0009-targeting-support-for-backplane-VPD.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From bc07c585c41d4c6119d8608af27ab7ad1acdaab8 Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Wed, 22 Apr 2015 10:31:08 -0500
-Subject: [PATCH] Add targeting support for backplane VPD
-
-Only the targeting support required by "Updated VPD_REC_NUM numbering"
-
-Change-Id: Ifa095f719b35de2cfae9344496dee63aea190334
-RTC: 118373
----
- src/usr/targeting/common/xmltohb/target_types.xml | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
-index 82ec014..759b73e 100644
---- a/src/usr/targeting/common/xmltohb/target_types.xml
-+++ b/src/usr/targeting/common/xmltohb/target_types.xml
-@@ -913,6 +913,8 @@
-     <attribute><id>FRU_ID</id></attribute>
-     <attribute><id>TPM_PRIMARY_INFO</id></attribute>
-     <attribute><id>TPM_BACKUP_INFO</id></attribute>
-+    <attribute><id>EEPROM_VPD_PRIMARY_INFO</id></attribute>
-+    <attribute><id>VPD_REC_NUM</id></attribute>
- </targetType>
- 
- <targetType>
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0010-PRD-getBusEndpoints-parameter-issue.patch b/openpower/package/hostboot/hostboot-0010-PRD-getBusEndpoints-parameter-issue.patch
deleted file mode 100644
index 07a64bb..0000000
--- a/openpower/package/hostboot/hostboot-0010-PRD-getBusEndpoints-parameter-issue.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 82374feb7e8ee67f254b7d8ec657a9239b622975 Mon Sep 17 00:00:00 2001
-From: Zane Shelley <zshelle@us.ibm.com>
-Date: Thu, 23 Apr 2015 11:18:12 -0500
-Subject: [PATCH 1/2] PRD: getBusEndpoints() parameter issue
-
-Change-Id: I947eeb506337f9c2fb8f845bbe04a20fb8b62bde
-CQ: SW304932
----
- .../prdf/common/plat/pegasus/prdfCalloutUtil.C     |    2 +-
- .../prdf/common/plat/pegasus/prdfCalloutUtil.H     |    4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C
-index f09ec6c..67941d6 100644
---- a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C
-+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.C
-@@ -229,7 +229,7 @@ TargetHandleList getConnectedDimms( TargetHandle_t i_mba,
- //------------------------------------------------------------------------------
- 
- int32_t getBusEndpoints( ExtensibleChip * i_chip,
--                         TargetHandle_t o_rxTrgt, TargetHandle_t o_txTrgt,
-+                         TargetHandle_t & o_rxTrgt, TargetHandle_t & o_txTrgt,
-                          TYPE i_busType, uint32_t i_busPos )
- {
-     #define PRDF_FUNC "[CalloutUtil::getBusEndpoints] "
-diff --git a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H
-index fa3e843..502467b 100644
---- a/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H
-+++ b/src/usr/diag/prdf/common/plat/pegasus/prdfCalloutUtil.H
-@@ -136,8 +136,8 @@ TARGETING::TargetHandleList getConnectedDimms( TARGETING::TargetHandle_t i_mba,
-  *
-  */
- int32_t getBusEndpoints( ExtensibleChip * i_chip,
--                         TARGETING::TargetHandle_t o_rxTrgt,
--                         TARGETING::TargetHandle_t o_txTrgt,
-+                         TARGETING::TargetHandle_t & o_rxTrgt,
-+                         TARGETING::TargetHandle_t & o_txTrgt,
-                          TARGETING::TYPE i_busType = TARGETING::TYPE_NA,
-                          uint32_t i_busPos = 0 );
- 
--- 
-1.7.9.5
-
diff --git a/openpower/package/hostboot/hostboot-0011-Fix-for-Bad-DQ-Bitmap-spare-byte-triggering-false-DR.patch b/openpower/package/hostboot/hostboot-0011-Fix-for-Bad-DQ-Bitmap-spare-byte-triggering-false-DR.patch
deleted file mode 100644
index 02202c3..0000000
--- a/openpower/package/hostboot/hostboot-0011-Fix-for-Bad-DQ-Bitmap-spare-byte-triggering-false-DR.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-From 3b397cfb77ca5315f6403874ad10534e5f42f8a6 Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Tue, 14 Apr 2015 13:47:12 -0500
-Subject: [PATCH 1/2] Fix for Bad DQ Bitmap spare byte triggering false DRAM
- repairs
-
-Change-Id: I6b443fc7c05d1fda1f97d180e317ac8a93eb77ad
-RTC: 125477
----
- src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C | 122 ++++++++++++++++++++++------
- 1 file changed, 99 insertions(+), 23 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C b/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C
-index 4c61ab8..98f9bf9 100644
---- a/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C
-+++ b/src/usr/hwpf/hwp/dimmBadDqBitmapAccessHwp.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2012,2014                        */
-+/* Contributors Listed Below - COPYRIGHT 2012,2015                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -22,7 +22,7 @@
- /* permissions and limitations under the License.                         */
- /*                                                                        */
- /* IBM_PROLOG_END_TAG                                                     */
--// $Id: dimmBadDqBitmapAccessHwp.C,v 1.15 2014/03/27 20:55:12 whs Exp $
-+// $Id: dimmBadDqBitmapAccessHwp.C,v 1.16 2015/04/22 20:09:16 cswenson Exp $
- /**
-  *  @file dimmBadDqBitmapAccessHwp.C
-  *
-@@ -53,6 +53,7 @@
-  *                          whs         02/24/2014  Capture bad DQs as FFDC
-  *                                                  in mnfg error logs
-  *                          whs         03/27/2014  fix current FFDC bit map
-+ *                          cswenson    04/22/2014  fix spare byte translate
-  */
- 
- #include <dimmBadDqBitmapAccessHwp.H>
-@@ -78,23 +79,19 @@ extern "C"
- {
- 
- /**
-- * @brief Called by dimmBadDqBitmapAccessHwp() to query ATTR_EFF_DIMM_SPARE
-- * and set bits for unconnected spare DRAM in caller's data.
-+ * @brief Returns bits for unconnected spare DRAM.
-  *
-  *
-  * @param[in] i_mba       Reference to MBA Target.
-  * @param[in] i_dimm      Reference to DIMM Target.
-- * @param[o]  o_data      Reference to Bad DQ Bitmap set by
-- *                        the caller.  Only the SPARE_DRAM_DQ_BYTE_NUMBER_INDEX
-- *                        byte is modified by this function.
-+ * @param[o]  o_spareByte Reference to the spare byte returned to caller.
-  *
-  * @return ReturnCode
-  */
--
--fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-+fapi::ReturnCode dimmGetDqBitmapSpareByte(
-     const fapi::Target & i_mba,
-     const fapi::Target & i_dimm,
--    uint8_t (&o_data)[DIMM_DQ_MAX_DIMM_RANKS][DIMM_DQ_RANK_BITMAP_SIZE])
-+    uint8_t (&o_spareByte)[DIMM_DQ_MAX_DIMM_RANKS])
- {
-     fapi::ReturnCode l_rc;
- 
-@@ -108,7 +105,7 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-         l_rc = FAPI_ATTR_GET(ATTR_VPD_DIMM_SPARE, &i_mba, l_mbaSpare);
-         if (l_rc)
-         {
--            FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+            FAPI_ERR("dimmGetDqBitmapSpareByte: "
-                      "Error getting DRAM Spare data");
-             break;
-         }
-@@ -117,7 +114,7 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-         l_rc = FAPI_ATTR_GET(ATTR_MBA_PORT, &i_dimm, l_mbaPort);
-         if (l_rc)
-         {
--            FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+            FAPI_ERR("dimmGetDqBitmapSpareByte: "
-                      "Error getting MBA port number");
-             break;
-         }
-@@ -126,7 +123,7 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-         l_rc = FAPI_ATTR_GET(ATTR_MBA_DIMM, &i_dimm, l_dimm);
-         if (l_rc)
-         {
--            FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+            FAPI_ERR("dimmGetDqBitmapSpareByte: "
-                      "Error getting dimm number");
-             break;
-         }
-@@ -139,20 +136,21 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-                 case fapi::ENUM_ATTR_VPD_DIMM_SPARE_NO_SPARE:
-                     // Set DQ bits reflecting unconnected
-                     // spare DRAM in caller's data
--                    o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] = 0xFF;
-+                    o_spareByte[i] = 0xFF;
-                     break;
- 
-                 case fapi::ENUM_ATTR_VPD_DIMM_SPARE_LOW_NIBBLE:
--                    o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] |= 0x0F;
-+                    o_spareByte[i] = 0x0F;
-                     break;
- 
-                 case fapi::ENUM_ATTR_VPD_DIMM_SPARE_HIGH_NIBBLE:
--                    o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] |= 0xF0;
-+                    o_spareByte[i] = 0xF0;
-                     break;
- 
-                 // As erroneous value will not be encountered.
-                 case fapi::ENUM_ATTR_VPD_DIMM_SPARE_FULL_BYTE:
-                 default:
-+                    o_spareByte[i] = 0x0;
-                     break;
-             }
-         }
-@@ -161,6 +159,45 @@ fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
- }
- 
- /**
-+ * @brief Called by dimmBadDqBitmapAccessHwp() to query ATTR_EFF_DIMM_SPARE
-+ * and set bits for unconnected spare DRAM in caller's data.
-+ *
-+ *
-+ * @param[in] i_mba       Reference to MBA Target.
-+ * @param[in] i_dimm      Reference to DIMM Target.
-+ * @param[o]  o_data      Reference to Bad DQ Bitmap set by
-+ *                        the caller.  Only the SPARE_DRAM_DQ_BYTE_NUMBER_INDEX
-+ *                        byte is modified by this function.
-+ *
-+ * @return ReturnCode
-+ */
-+
-+fapi::ReturnCode dimmUpdateDqBitmapSpareByte(
-+    const fapi::Target & i_mba,
-+    const fapi::Target & i_dimm,
-+    uint8_t (&o_data)[DIMM_DQ_MAX_DIMM_RANKS][DIMM_DQ_RANK_BITMAP_SIZE])
-+{
-+    fapi::ReturnCode l_rc;
-+
-+    uint8_t spareByte[DIMM_DQ_MAX_DIMM_RANKS];
-+    memset(spareByte, 0, sizeof(spareByte));
-+
-+    l_rc = dimmGetDqBitmapSpareByte(i_mba,i_dimm,spareByte);
-+    if (l_rc)
-+    {
-+        FAPI_ERR("dimmUpdateDqBitmapSpareByte: "
-+                 "Error getting spare byte");
-+        return l_rc;
-+    }
-+
-+    for (uint32_t i=0; i<DIMM_DQ_MAX_DIMM_RANKS; i++)
-+    {
-+        o_data[i][SPARE_DRAM_DQ_BYTE_NUMBER_INDEX] |= spareByte[i];
-+    }
-+    return l_rc;
-+}
-+
-+/**
-  * @brief Called by dimmBadDqBitmapAccessHwp() to query
-  * ATTR_SPD_MODULE_MEMORY_BUS_WIDTH in order to determine
-  * ECC support for this DIMM.  This function will set
-@@ -472,8 +509,13 @@ fapi::ReturnCode dimmBadDqBitmapSet(
-     uint8_t (l_prev_data)[DIMM_DQ_MAX_DIMM_RANKS]
-                          [DIMM_DQ_RANK_BITMAP_SIZE];
-     bool badDQSet = false;
--    dimmBadDqBitmapGet(i_mba, i_dimm, l_prev_data, i_wiringData,
--                       i_allMnfgFlags);
-+    l_rc = dimmBadDqBitmapGet(i_mba, i_dimm, l_prev_data, i_wiringData,
-+                              i_allMnfgFlags);
-+    if (l_rc)
-+    {
-+        FAPI_ERR("dimmBadDqBitmapAccessHwp: Error getting DQ bitmap");
-+        return l_rc;
-+    }
- 
-     // Check if Bad DQ bit set
-     for (uint8_t i = 0; i < DIMM_DQ_MAX_DIMM_RANKS; i++)
-@@ -654,6 +696,18 @@ fapi::ReturnCode dimmBadDqBitmapSet(
-         l_pSpdData->iv_reserved3 = 0;
-         memset(l_pSpdData->iv_bitmaps, 0, sizeof(l_pSpdData->iv_bitmaps));
- 
-+        // Get the spare byte
-+        uint8_t spareByte[DIMM_DQ_MAX_DIMM_RANKS];
-+        memset(spareByte, 0, sizeof(spareByte));
-+
-+        l_rc = dimmGetDqBitmapSpareByte(i_mba,i_dimm,spareByte);
-+        if (l_rc)
-+        {
-+            FAPI_ERR("dimmBadDqBitmapAccessHwp: "
-+                    "Error getting spare byte");
-+            break;
-+        }
-+
-         // Translate bitmap from Centaur DQ to DIMM DQ point of view for
-         // each rank
-         for (uint8_t i = 0; i < DIMM_DQ_MAX_DIMM_RANKS; i++)
-@@ -661,6 +715,16 @@ fapi::ReturnCode dimmBadDqBitmapSet(
-             // Iterate through all the DQ bits in the rank
-             for (uint8_t j = 0; j < DIMM_DQ_NUM_DQS; j++)
-             {
-+                if ((j/8) == SPARE_DRAM_DQ_BYTE_NUMBER_INDEX)
-+                {
-+                    // The spareByte can be one of: 0x00 0x0F 0xF0 0xFF
-+                    // If a bit is set, then that spare is unconnected
-+                    // so continue to the next num_dqs, do not translate
-+                    if (spareByte[i] & (0x80 >> (j % 8)))
-+                    {
-+                        continue;
-+                    }
-+                }
-                 if ((i_data[i][j/8]) & (0x80 >> (j % 8)))
-                 {
-                     // Centaur DQ bit set in callers data.
-@@ -747,13 +811,25 @@ fapi::ReturnCode dimmBadDqBitmapAccessHwp(
- 
-         if (i_get)
-         {
--            dimmBadDqBitmapGet(i_mba, i_dimm, io_data, l_wiringData,
--                               l_allMnfgFlags);
-+            l_rc = dimmBadDqBitmapGet(i_mba, i_dimm, io_data, l_wiringData,
-+                                      l_allMnfgFlags);
-+            if (l_rc)
-+            {
-+                FAPI_ERR("dimmBadDqBitmapAccessHwp: "
-+                        "Error getting DQ bitmap");
-+                break;
-+            }
-         }
-         else
-         {
--            dimmBadDqBitmapSet(i_mba, i_dimm, io_data, l_wiringData,
--                               l_allMnfgFlags);
-+            l_rc = dimmBadDqBitmapSet(i_mba, i_dimm, io_data, l_wiringData,
-+                                      l_allMnfgFlags);
-+            if (l_rc)
-+            {
-+                FAPI_ERR("dimmBadDqBitmapAccessHwp: "
-+                        "Error setting DQ bitmap");
-+                break;
-+            }
-         }
- 
-     }while(0);
-@@ -763,4 +839,4 @@ fapi::ReturnCode dimmBadDqBitmapAccessHwp(
-     return l_rc;
- }
- 
--}
-+}
-\ No newline at end of file
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0012-Disable-Centaur-I2C-at-runtime.patch b/openpower/package/hostboot/hostboot-0012-Disable-Centaur-I2C-at-runtime.patch
deleted file mode 100644
index 3455e34..0000000
--- a/openpower/package/hostboot/hostboot-0012-Disable-Centaur-I2C-at-runtime.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From e33d32a5c249e5298a545889bba86129218c213d Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Thu, 23 Apr 2015 14:55:20 -0500
-Subject: [PATCH 2/2] Disable Centaur I2C at runtime
-
-Change-Id: I0425f642ed84041e604ad8004f77f0c385227526
----
- src/usr/i2c/runtime/rt_i2c.C | 76 ++++++++++++++++++++++++--------------------
- 1 file changed, 42 insertions(+), 34 deletions(-)
-
-diff --git a/src/usr/i2c/runtime/rt_i2c.C b/src/usr/i2c/runtime/rt_i2c.C
-index 5d21bbf..bdadbbe 100755
---- a/src/usr/i2c/runtime/rt_i2c.C
-+++ b/src/usr/i2c/runtime/rt_i2c.C
-@@ -139,44 +139,52 @@ errlHndl_t i2cPerformOp( DeviceFW::OperationType i_opType,
-     proc_engine_port |= (uint64_t)(args.engine) << HBRT_I2C_MASTER_ENGINE_SHIFT;
-     proc_engine_port |= (uint64_t)(args.port) << HBRT_I2C_MASTER_PORT_SHIFT;
- 
--    if(i_opType == DeviceFW::READ)
-+    // Send I2C op to host interface
-+    // Centaur I2C not yet supported
-+    // @todo RTC:127533 -- Enable Centaur I2C at runtime
-+    if( i_target->getAttr<TARGETING::ATTR_TYPE>() != TARGETING::TYPE_MEMBUF )
-     {
--        if(g_hostInterfaces->i2c_read != NULL)
-+        if(i_opType == DeviceFW::READ)
-         {
--            rc = g_hostInterfaces->i2c_read
--                    (
--                        proc_engine_port,   // Master Chip/Engine/Port
--                        args.devAddr,       // Dev Addr
--                        args.offset_length, // Offset size
--                        offset,             // Offset
--                        io_buflen,          // Buffer length
--                        io_buffer           // Buffer
--                    );
-+            if(g_hostInterfaces->i2c_read != NULL)
-+            {
-+                rc = g_hostInterfaces->i2c_read
-+                        (
-+                            proc_engine_port,   // Master Chip/Engine/Port
-+                            args.devAddr,       // Dev Addr
-+                            args.offset_length, // Offset size
-+                            offset,             // Offset
-+                            io_buflen,          // Buffer length
-+                            io_buffer           // Buffer
-+                        );
-+            }
-+            else
-+            {
-+                TRACFCOMP(g_trac_i2c,
-+                    ERR_MRK"Hypervisor I2C read interface not linked");
-+                l_host_if_enabled = false;
-+            }
-         }
--        else
--        {
--            TRACFCOMP(g_trac_i2c,ERR_MRK"Hypervisor I2C read interface not linked");
--            l_host_if_enabled = false;
--        }
--    }
--    else if (i_opType == DeviceFW::WRITE)
--    {
--        if(g_hostInterfaces->i2c_write != NULL)
--        {
--            rc = g_hostInterfaces->i2c_write
--                    (
--                        proc_engine_port,   // Master Chip/Engine/Port
--                        args.devAddr,       // Dev Addr
--                        args.offset_length, // Offset size
--                        offset,             // Offset
--                        io_buflen,          // Buffer length
--                        io_buffer           // Buffer
--                    );
--        }
--        else
-+        else if (i_opType == DeviceFW::WRITE)
-         {
--            TRACFCOMP(g_trac_i2c,ERR_MRK"Hypervisor I2C write interface not linked");
--            l_host_if_enabled = false;
-+            if(g_hostInterfaces->i2c_write != NULL)
-+            {
-+                rc = g_hostInterfaces->i2c_write
-+                        (
-+                            proc_engine_port,   // Master Chip/Engine/Port
-+                            args.devAddr,       // Dev Addr
-+                            args.offset_length, // Offset size
-+                            offset,             // Offset
-+                            io_buflen,          // Buffer length
-+                            io_buffer           // Buffer
-+                        );
-+            }
-+            else
-+            {
-+                TRACFCOMP(g_trac_i2c,
-+                    ERR_MRK"Hypervisor I2C write interface not linked");
-+                l_host_if_enabled = false;
-+            }
-         }
-     }
- 
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 5f423da..b1c3805 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 6bdbe42ee0a2808be1f2f38026e57290cdfa8fc6
+HOSTBOOT_VERSION ?= 3f6449495b5922c13c9b977b252f9638ccb8cf4c
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
diff --git a/openpower/package/openpower-ffs/openpower-ffs.mk b/openpower/package/openpower-ffs/openpower-ffs.mk
index 1e6b9bf..ff82950 100644
--- a/openpower/package/openpower-ffs/openpower-ffs.mk
+++ b/openpower/package/openpower-ffs/openpower-ffs.mk
@@ -1,4 +1,4 @@
-OPENPOWER_FFS_VERSION ?= bf4630076762d9c20c16c80c1c791f352b046dd1
+OPENPOWER_FFS_VERSION ?= 2e790b8409071ca15767d822dabfa8e60f12c6e2
 OPENPOWER_FFS_SITE ?= $(call github,open-power,ffs,$(OPENPOWER_FFS_VERSION))
 OPENPOWER_FFS_LICENSE = GPLv2+
 
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/palmetto-xml/palmetto-xml.mk b/openpower/package/palmetto-xml/palmetto-xml.mk
index 41c348e..2573450 100644
--- a/openpower/package/palmetto-xml/palmetto-xml.mk
+++ b/openpower/package/palmetto-xml/palmetto-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PALMETTO_XML_VERSION = 9206323e35e40ca8957049965ba8e2564467040e
+PALMETTO_XML_VERSION = a712d271730f1ea28438e8d1bc30793db072510a
 PALMETTO_XML_SITE = $(call github,open-power,palmetto-xml,$(PALMETTO_XML_VERSION))
 
 PALMETTO_XML_LICENSE = Apache-2.0
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.mk b/openpower/package/skiboot/skiboot.mk
index 3b4ad1a..7601f85 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.4
 SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION))
 SKIBOOT_INSTALL_IMAGES = YES
 SKIBOOT_INSTALL_TARGET = NO