Merge pull request #1174 from shenki/hostboot-cmpi-fix

hostboot: Add patches to fix cmpi assembly
diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index d3e3943..e602c12 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/firenze_defconfig b/openpower/configs/firenze_defconfig
index 13d4990..cebb62e 100644
--- a/openpower/configs/firenze_defconfig
+++ b/openpower/configs/firenze_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 46f7956..63b401f 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index 172a8f7..7ad6d86 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index f4ebe50..97017f7 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -17,7 +17,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/hostboot/romulus.config b/openpower/configs/hostboot/romulus.config
index 3d8aaad..af8a85e 100755
--- a/openpower/configs/hostboot/romulus.config
+++ b/openpower/configs/hostboot/romulus.config
@@ -1,6 +1,8 @@
-# The Serial Flash Controller is the AST2400 BMC.
-set   SFC_IS_AST2500
+# The BMC MBOX Protocol is used to access PNOR
+unset SFC_IS_AST2500
 unset SFC_IS_AST2400
+set   PNORDD_IS_BMCMBOX
+unset PNORDD_IS_SFC
 unset BMC_DOES_SFC_INIT
 unset SFC_IS_IBM_DPSS
 set   ALLOW_MICRON_PNOR
@@ -45,8 +47,8 @@
 
 # Compile in hostboot runtime PRD
 set HBRT_PRD
-unset HTMGT
-unset START_OCC_DURING_BOOT
+set HTMGT
+set START_OCC_DURING_BOOT
 
 #PNOR flags
 unset PNOR_TWO_SIDE_SUPPORT
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index cf7a6fd..7b0df3f 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/openpower_p9_mambo_defconfig b/openpower/configs/openpower_p9_mambo_defconfig
index c00a5fd..ded6eff 100644
--- a/openpower/configs/openpower_p9_mambo_defconfig
+++ b/openpower/configs/openpower_p9_mambo_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/p9dsu_defconfig b/openpower/configs/p9dsu_defconfig
index ca84442..7617ed7 100644
--- a/openpower/configs/p9dsu_defconfig
+++ b/openpower/configs/p9dsu_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -42,7 +42,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="p9dsu.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="p9dsu-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="1c5c5b43ace53371671ca189f7fae16fdf8fe3ed"
+BR2_OPENPOWER_MACHINE_XML_VERSION="165246b67f20079b115e7e01db1e206e3b07a8cc"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="p9dsu.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="P9DSU_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="P9DSU_hb.mrw.xml"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 41691b7..393d7a3 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/redbud_defconfig b/openpower/configs/redbud_defconfig
new file mode 100644
index 0000000..2e87831
--- /dev/null
+++ b/openpower/configs/redbud_defconfig
@@ -0,0 +1,67 @@
+BR2_powerpc64le=y
+BR2_powerpc_power8=y
+BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/redbud-patches"
+BR2_GLIBC_VERSION_2_24=y
+BR2_BINUTILS_VERSION_2_27_X=y
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_GCC_VERSION_4_9_X=y
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
+BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
+BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW"
+BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8"
+BR2_ROOTFS_OVERLAY="../openpower/overlay"
+BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
+BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
+BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
+BR2_LINUX_KERNEL_XZ=y
+BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/busybox.fragment"
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
+BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_IPMITOOL=y
+BR2_PACKAGE_MDADM=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_TARGET_ROOTFS_CPIO_XZ=y
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_OPENPOWER_PLATFORM=y
+BR2_OPENPOWER_POWER9=y
+BR2_HOSTBOOT_CONFIG_FILE="witherspoon.config"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="witherspoon-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="d0f86cf46a99800c6f15a4e650701da141216940"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="witherspoon.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="WITHERSPOON_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="WITHERSPOON_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="WITHERSPOON_bios.xml"
+BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
+BR2_OPENPOWER_CONFIG_NAME="witherspoon"
+BR2_OPENPOWER_PNOR_FILENAME="redbud.pnor"
+BR2_HOSTBOOT_BINARY_SBE_FILENAME="nimbus_sbe.img.ecc"
+BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc"
+BR2_WOFDATA_FILENAME="wof_output"
+BR2_WOFDATA_BINARY_FILENAME="wofdata.bin.ecc"
+BR2_IMA_CATALOG_FILENAME="ima_catalog.bin"
+BR2_OPENPOWER_TARGETING_BIN_FILENAME="WITHERSPOON_HB.targeting.bin"
+BR2_OPENPOWER_TARGETING_ECC_FILENAME="WITHERSPOON_HB.targeting.bin.ecc"
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
+BR2_OCC_BIN_FILENAME="occ.bin"
+BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
+BR2_PACKAGE_LOADKEYS=y
+BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/romulus_defconfig b/openpower/configs/romulus_defconfig
index 6f1540a..459b296 100644
--- a/openpower/configs/romulus_defconfig
+++ b/openpower/configs/romulus_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -42,7 +42,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="romulus.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="romulus-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="301279cbdb3595ad1bbdce4d9d2189db0470a62a"
+BR2_OPENPOWER_MACHINE_XML_VERSION="4a9a504238c6cb965c1288ace63b938fa23fe6ba"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="romulus.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="ROMULUS_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="ROMULUS_hb.mrw.xml"
diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig
index 309fc03..be031b6 100644
--- a/openpower/configs/witherspoon_defconfig
+++ b/openpower/configs/witherspoon_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index 2657629..d95bdc5 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig
index afd6fc7..f1c493c 100644
--- a/openpower/configs/zz_defconfig
+++ b/openpower/configs/zz_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.6"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
diff --git a/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch b/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
index ba1eeaf..3a83ddb 100644
--- a/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
+++ b/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
@@ -10,10 +10,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index 7b86508ac8cf..c358d5e7ef79 100644
+index fcf1f3f63e7a..2eeede48510f 100644
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -470,7 +470,7 @@ static struct pci_driver xhci_pci_driver = {
+@@ -473,7 +473,7 @@ static struct pci_driver xhci_pci_driver = {
  	.remove =	xhci_pci_remove,
  	/* suspend and resume implemented later */
  
diff --git a/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
index ad7d0a1..1d0853d 100644
--- a/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
+++ b/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
@@ -13,7 +13,7 @@
  1 file changed, 15 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 953fd8f62df0..d17a7039b154 100644
+index b1f779817ffe..662106a8dfc0 100644
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
 @@ -689,6 +689,21 @@ void xhci_stop(struct usb_hcd *hcd)
diff --git a/openpower/linux/0004-Release-OpenPower-kernel.patch b/openpower/linux/0004-Release-OpenPower-kernel.patch
index a5ef22e..2ac50c6 100644
--- a/openpower/linux/0004-Release-OpenPower-kernel.patch
+++ b/openpower/linux/0004-Release-OpenPower-kernel.patch
@@ -9,13 +9,13 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index d7b64830a7b7..e77804c0405d 100644
+index e46e99cbe5d1..d7f36716d028 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,7 +1,7 @@
  VERSION = 4
  PATCHLEVEL = 11
- SUBLEVEL = 2
+ SUBLEVEL = 6
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
  NAME = Fearless Coyote
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index bbc07ef..60cc26c 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= 695bd891343faf1f0ef85fe53148590e58239efd
-HOSTBOOT_VERSION_BRANCH_MASTER ?= 44d178b6d050d9491e35360d5f3867e23c8ee895
+HOSTBOOT_VERSION_BRANCH_MASTER ?= 30db3842625fe111a3d609773da25b97147af5ba
 
 HOSTBOOT_VERSION ?= $(if $(BR2_OPENPOWER_POWER9),$(HOSTBOOT_VERSION_BRANCH_MASTER),$(HOSTBOOT_VERSION_BRANCH_MASTER_P8))
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0002-Only-build-attributeOverride-if-compiler-supports-st.patch b/openpower/package/hostboot/p9Patches/hostboot-0002-Only-build-attributeOverride-if-compiler-supports-st.patch
deleted file mode 100644
index d369874..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0002-Only-build-attributeOverride-if-compiler-supports-st.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 88a9eed95a72e6cbc8956585308599bf07aec70a Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Mon, 20 Mar 2017 13:31:35 +1100
-Subject: [PATCH] Only build attributeOverride if compiler supports
- -std=gnu++11
-
-GCC prior to 4.8 doesn't support -std=gnu++11, which the attributeOverride
-tool requires to build.
-
-Since this is only a host side utility, we can not build it if we're
-building hostboot with ancient host compilers (e.g. on RHEL6.x)
-
-Change-Id: I53ad31b56dd90c2cd77f5ca1f91b46e519cdfe48
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/build/mkrules/cc.rules.mk           | 10 +++++++++-
- src/build/mkrules/dist.targets.mk       |  7 ++++++-
- src/usr/targeting/attroverride/makefile |  8 +++++++-
- 3 files changed, 22 insertions(+), 3 deletions(-)
-
-diff --git a/src/build/mkrules/cc.rules.mk b/src/build/mkrules/cc.rules.mk
-index cb00ea001072..c89995f825df 100644
---- a/src/build/mkrules/cc.rules.mk
-+++ b/src/build/mkrules/cc.rules.mk
-@@ -5,7 +5,9 @@
- #
- # OpenPOWER HostBoot Project
- #
--# COPYRIGHT International Business Machines Corp. 2013,2014
-+# Contributors Listed Below - COPYRIGHT 2013,2017
-+# [+] 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.
-@@ -74,3 +76,9 @@ $(IMGDIR)/lib$(MODULE).so : $(OBJECTS) $(ROOTPATH)/src/module.ld $(MODULE_INIT)
- 		   $(OBJECTS) $(MODULE_INIT) \
- 	           -T $(ROOTPATH)/src/module.ld -o $@
- endif
-+
-+try = $(shell set -e; if ($(1)) >/dev/null 2>&1; \
-+        then echo "$(2)"; \
-+        else echo "$(3)"; fi )
-+
-+try-cflag = $(call try,$(1) $(2) -x c -c /dev/null -o /dev/null,$(2))
-diff --git a/src/build/mkrules/dist.targets.mk b/src/build/mkrules/dist.targets.mk
-index 2f047bcda0b7..ba6114db9aae 100644
---- a/src/build/mkrules/dist.targets.mk
-+++ b/src/build/mkrules/dist.targets.mk
-@@ -71,7 +71,6 @@ COPY_FILES = \
-     obj/genfiles/targAttrInfo.csv:vpo \
-     obj/genfiles/target_types_merged.xml:openpower \
-     obj/genfiles/fapiattrs.xml:openpower \
--    obj/genfiles/attributeOverride:tools,openpower \
-     src/usr/targeting/attroverride/README.attr_override:tools,openpower \
-     src/build/hwpf/prcd_compile.tcl:tools \
-     src/build/buildpnor/buildSbePart.pl:openpower \
-@@ -94,6 +93,12 @@ COPY_FILES = \
-     src/usr/targeting/common/xmltohb/bios_metadata_petitboot.xslt:openpower \
-     $(foreach file, $(call ROOTPATH_WILDCARD,releaseNotes.html), $(file):fsp)\
- 
-+ifeq ($(call try-cflag,$(CCACHE) $(HOST_PREFIX)g++,-std=gnu++11),-std=gnu++11)
-+COPY_FILES += obj/genfiles/attributeOverride:tools,openpower
-+else
-+COPY_FILES += obj/genfiles/attributeOverride:tools
-+endif
-+
- include ${ROOTPATH}/config.mk
- COPY_FILES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),src/usr/targeting/common/xmltohb/target_types_oppowervm.xml:openpower) \
-     $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml:openpower) \
-diff --git a/src/usr/targeting/attroverride/makefile b/src/usr/targeting/attroverride/makefile
-index 8ab26fd5009b..d9f0e85b324c 100644
---- a/src/usr/targeting/attroverride/makefile
-+++ b/src/usr/targeting/attroverride/makefile
-@@ -5,7 +5,7 @@
- #
- # OpenPOWER HostBoot Project
- #
--# Contributors Listed Below - COPYRIGHT 2014,2016
-+# Contributors Listed Below - COPYRIGHT 2014,2017
- # [+] International Business Machines Corp.
- #
- #
-@@ -49,8 +49,14 @@ include $(ROOTPATH)/config.mk
- vpath %.C $(GENDIR)
- vpath %.H $(GENDIR)
- 
-+ifeq ($(call try-cflag,$(CCACHE) $(HOST_PREFIX)g++,-std=gnu++11),-std=gnu++11)
- $(OUT_FILE): $(C_FILES) $(H_FILES)
- 	$(C2) "    CC         $(notdir $@)"
- 	$(C1)$(CCACHE) $(HOST_PREFIX)g++ -std=gnu++11 -O3 -g -o $(OUT_FILE)\
- 			$(foreach dir,$(INC_DIRS), -I $(dir)) -iquote.\
- 			$(foreach file,$^,$(if $(findstring .H,$(file)),,$(file)))
-+else
-+$(OUT_FILE): $(C_FILES) $(H_FILES)
-+	$(C2) "    GEN-NULL   $(notdir $@)"
-+	@(echo '#!/bin/sh'; echo 'exit -1';) > $(OUT_FILE)
-+endif
--- 
-2.9.3
-
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0003-Revert-ProcessMRW-changes-for-dynamic-i2c-devices.patch b/openpower/package/hostboot/p9Patches/hostboot-0003-Revert-ProcessMRW-changes-for-dynamic-i2c-devices.patch
deleted file mode 100644
index 7c097e7..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0003-Revert-ProcessMRW-changes-for-dynamic-i2c-devices.patch
+++ /dev/null
@@ -1,359 +0,0 @@
-From 7a4142d229ddd0554684664df8d7fa9bd402abc7 Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Mon, 8 May 2017 13:03:51 -0500
-Subject: [PATCH] Revert "ProcessMRW changes for dynamic i2c devices"
-
-- Do this temporarily while the attribute dependencies are sorted out
-  (HDAT_I2C_DEVICE_TYPE + HDAT_I2C_DEVICE_PURPOSE)
-
-This reverts commit 651ed35f1c045ea0c52ac659f9c27d757a351877.
----
- src/usr/i2c/i2c.C                                  |  12 +-
- src/usr/targeting/common/Targets.pm                |  16 --
- src/usr/targeting/common/processMrw.pl             | 190 ---------------------
- .../common/xmltohb/attribute_types_openpower.xml   |   4 +-
- .../common/xmltohb/target_types_openpower.xml      |   6 +-
- 5 files changed, 12 insertions(+), 216 deletions(-)
-
-diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
-index 3892497..835d9ea 100755
---- a/src/usr/i2c/i2c.C
-+++ b/src/usr/i2c/i2c.C
-@@ -3854,6 +3854,9 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
-                 case EEPROM::VPD_BACKUP:
-                     l_currentDI.devicePurpose =
-                             TARGETING::HDAT_I2C_DEVICE_PURPOSE_MODULE_VPD;
-+                    //TODO RTC:165485 this isn't currently right. we'll need
-+                    //to add the changes in the enum and possibly the other
-+                    //struct/attribute.
-                     break;
-                 case EEPROM::SBE_PRIMARY:
-                 case EEPROM::SBE_BACKUP:
-@@ -3938,8 +3941,8 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
-         TARGETING::ATTR_HDAT_I2C_MASTER_PORT_type l_i2cMasterPort;
-         (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_MASTER_PORT>(
-                                                     l_i2cMasterPort);
--        TARGETING::ATTR_HDAT_I2C_DEVICE_TYPE_type l_i2cDevType;
--        (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEVICE_TYPE>(
-+        TARGETING::ATTR_HDAT_I2C_DEVTYPE_type l_i2cDevType;
-+        (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEVTYPE>(
-                                                     l_i2cDevType);
-         TARGETING::ATTR_HDAT_I2C_ADDR_type l_i2cAddr;
-         (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_ADDR>(l_i2cAddr);
-@@ -3949,8 +3952,8 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
-         TARGETING::ATTR_HDAT_I2C_BUS_FREQ_type l_i2cBusFreq;
-         (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_BUS_FREQ>(
-                                                     l_i2cBusFreq);
--        TARGETING::ATTR_HDAT_I2C_DEVICE_PURPOSE_type l_i2cDevPurpose;
--        (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEVICE_PURPOSE>(
-+        TARGETING::ATTR_HDAT_I2C_DEV_PURPOSE_type l_i2cDevPurpose;
-+        (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEV_PURPOSE>(
-                                                     l_i2cDevPurpose);
- 
-         uint8_t l_arrayLength =
-@@ -3966,7 +3969,6 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
-                     l_idx++)
-         {
-             DeviceInfo_t l_currentDevice;
--            l_currentDevice.masterChip = (*childItr);
-             l_currentDevice.engine = l_i2cEngine[l_idx];
-             l_currentDevice.masterPort = l_i2cMasterPort[l_idx];
-             l_currentDevice.addr = l_i2cAddr[l_idx];
-diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
-index 44b24bb..9009b4d 100644
---- a/src/usr/targeting/common/Targets.pm
-+++ b/src/usr/targeting/common/Targets.pm
-@@ -1708,18 +1708,6 @@ sub getBusAttribute
-       ->{default};
- }
- 
--## returns a boolean for if a given bus attribute is defined
--sub isBusAttributeDefined
--{
--    my $self       = shift;
--    my $target     = shift;
--    my $busnum     = shift;
--    my $attr       = shift;
--    my $target_ptr = $self->getTarget($target);
--
--    return defined($target_ptr->{CONNECTION}->{BUS}->[$busnum]->{bus_attribute}
--            ->{$attr}->{default});
--}
- 
- ## returns a pointer to an array of children target names
- sub getTargetChildren
-@@ -2059,10 +2047,6 @@ to value C<VALUE>.  This is for complex attributes.
- Gets the attribute C<ATTRIBUTE_NAME> from bus C<TARGET_STRING> bus number
- C<INDEX>.
- 
--=item isBusAttributeDefined(C<TARGET_STRING>,C<INDEX>.C<ATTRIBUTE_NAME>)
--
--Looks for a specific attribute and returns if it exists or not
--
- =item getTargetChildren(C<TARGET_STRING>)
- 
- Returns an array of target strings representing all the children of target
-diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
-index 97d9901..fd6fbad 100644
---- a/src/usr/targeting/common/processMrw.pl
-+++ b/src/usr/targeting/common/processMrw.pl
-@@ -477,15 +477,6 @@ sub processProcessor
-        $targetObj->setMasterProc($target);
-     }
- 
--    # I2C arrays
--    my @engine = ();
--    my @port = ();
--    my @slavePort = ();
--    my @addr = ();
--    my @speed = ();
--    my @type = ();
--    my @purpose = ();
--
-     $targetObj->log($target, "Processing PROC");
-     foreach my $child (@{ $targetObj->getTargetChildren($target) })
-     {
-@@ -537,58 +528,8 @@ sub processProcessor
-         {
-             processOcc($targetObj, $child, $target);
-         }
--        # Ideally this should be $child_type eq "I2C", but we need a change
--        # in serverwiz and the witherspoon.xml first
--        elsif (index($child,"i2c-master") != -1)
--        {
--            my ($i2cEngine, $i2cPort, $i2cSlavePort, $i2cAddr,
--                $i2cSpeed, $i2cType, $i2cPurpose) =
--                    processI2C($targetObj, $child, $target);
--
--            # Add this I2C device's information to the proc array
--            push(@engine,@$i2cEngine);
--            push(@port,@$i2cPort);
--            push(@slavePort,@$i2cSlavePort);
--            push(@addr,@$i2cAddr);
--            push(@speed,@$i2cSpeed);
--            push(@type,@$i2cType);
--            push(@purpose,@$i2cPurpose);
--
--        }
-     }
- 
--    # Add final I2C arrays to processor
--    my $size         = scalar @engine;
--    my $engine_attr  = $engine[0];
--    my $port_attr    = $port[0];
--    my $slave_attr   = $slavePort[0];
--    my $addr_attr    = $addr[0];
--    my $speed_attr   = $speed[0];
--    my $type_attr    = "0x".$type[0];
--    my $purpose_attr = "0x".$purpose[0];
--
--    # Parse out array to print as a string
--    foreach my $n (1..($size-1))
--    {
--        $engine_attr    .= ",".$engine[$n];
--        $port_attr      .= ",".$port[$n];
--        $slave_attr     .= ",".$slavePort[$n];
--        $addr_attr      .= ",".$addr[$n];
--        $speed_attr     .= ",".$speed[$n];
--        $type_attr      .= ",0x".$type[$n];
--        $purpose_attr   .= ",0x".$purpose[$n];
--    }
--
--    # Set the arrays to the corresponding attribute on the proc
--    $targetObj->setAttribute($target,"HDAT_I2C_ENGINE",$engine_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_MASTER_PORT",$port_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_SLAVE_PORT",$slave_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_ADDR",$addr_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_BUS_FREQ",$speed_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_DEVICE_TYPE",$type_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_DEVICE_PURPOSE",$purpose_attr);
--    $targetObj->setAttribute($target,"HDAT_I2C_ELEMENTS",$size);
--
-     ## update path for mvpd's and sbe's
-     my $path  = $targetObj->getAttribute($target, "PHYS_PATH");
-     my $model = $targetObj->getAttribute($target, "MODEL");
-@@ -1290,137 +1231,6 @@ sub getI2cMapField
-     return $hexfield;
- }
- 
--#------------------------------------------------------------------------------
--# I2C
--#
--sub processI2C
--{
--    my $targetObj    = shift; # Top Hierarchy of targeting structure
--    my $target       = shift; # I2C targetInstance
--    my $parentTarget = shift; # Processor target
--
--    # Initialize output arrays
--    my @i2cEngine = ();
--    my @i2cPort = ();
--    my @i2cSlave = ();
--    my @i2cAddr = ();
--    my @i2cSpeed = ();
--    my @i2cType = ();
--    my @i2cPurpose = ();
--
--    # Step 1: get I2C_ENGINE and PORT from <targetInstance>
--
--    my $engine = $targetObj->getAttribute($target, "I2C_ENGINE");
--    if($engine eq "") {$engine = "0xFF";}
--
--    my $port = $targetObj->getAttribute($target, "I2C_PORT");
--    if($port eq "") {$port = "0xFF";}
--
--    # Step 2: get I2C_ADDRESS and I2C_SPEED from <bus>
--    #         This is different for each connection.
--
--    my $i2cs = $targetObj->findConnections($parentTarget, "I2C","");
--    if ($i2cs ne "")
--    {
--        # This gives all i2c connections
--        foreach my $i2c (@{$i2cs->{CONN}})
--        {
--            # Here we are checking that the i2c source matches our target
--            my $source = $i2c->{SOURCE};
--            if ($source ne $target)
--            {
--                next;
--            }
--
--            # Most I2C devices will default the slave port, it is only valid
--            # for gpio expanders.
--            my $slavePort = "0xFF";
--
--            my @source_array = split(/-/,$source);
--            my $source_idx = scalar @source_array;
--
--            # If the last part of the source only includes numbers
--            if($source_array[$source_idx-1] =~ /^[0-9,.E]+$/)
--            {
--                $slavePort = $source_array[$source_idx-1];
--            }
--
--            my $addr;
--            my $speed;
--            my $type;
--            my $purpose;
--
--            # For all these attributes, we need to check if they're defined,
--            # and if not we set them to a default value.
--            if ($targetObj->isBusAttributeDefined(
--                     $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_ADDRESS"))
--            {
--                $addr = $targetObj->getBusAttribute(
--                           $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_ADDRESS");
--            }
--
--            if ($addr eq "") {$addr = "0xFF";}
--
--            if ($targetObj->isBusAttributeDefined(
--                     $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_SPEED"))
--            {
--                $speed = $targetObj->getBusAttribute(
--                           $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_SPEED");
--            }
--
--            if ($speed eq "") {$speed = "0";}
--
--            if ($targetObj->isBusAttributeDefined(
--                     $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_TYPE"))
--            {
--                $type = $targetObj->getBusAttribute(
--                           $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_TYPE");
--            }
--
--            if ($type eq "")
--            {
--                $type = "FF";
--            }
--            else
--            {
--                $type = $targetObj->getEnumValue("HDAT_I2C_DEVICE_TYPE",$type);
--            }
--
--            if ($targetObj->isBusAttributeDefined(
--                     $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_PURPOSE"))
--            {
--                $purpose = $targetObj->getBusAttribute(
--                           $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_PURPOSE");
--            }
--
--            if ($purpose eq "")
--            {
--                $purpose = "FF";
--            }
--            else
--            {
--                $purpose = $targetObj->getEnumValue("HDAT_I2C_DEVICE_PURPOSE",
--                                                    $purpose);
--            }
--
--            # Step 3: For each connection, create an instance in the array
--            #         for the DeviceInfo_t struct.
--            push @i2cEngine, $engine;
--            push @i2cPort, $port;
--            push @i2cSlave, $slavePort;
--            push @i2cAddr, $addr;
--            push @i2cSpeed, $speed;
--            push @i2cType, $type;
--            push @i2cPurpose, $purpose;
--
--        }
--    }
--
--    # Return this i2c device's information back to the processor
--    return (\@i2cEngine, \@i2cPort, \@i2cSlave, \@i2cAddr,
--            \@i2cSpeed, \@i2cType, \@i2cPurpose);
--}
--
- 
- sub setEepromAttributes
- {
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml b/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
-index e40f8eb..841d3d2 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
-@@ -191,7 +191,7 @@
- </attribute>
- 
- <attribute>
--    <id>HDAT_I2C_DEVICE_TYPE</id>
-+    <id>HDAT_I2C_DEVTYPE</id>
-     <description>
-         This attribute holds the values of the I2C device type from the i2c
-         device connections as defined in the MRW.  It is parsed into a
-@@ -255,7 +255,7 @@
- </attribute>
- 
- <attribute>
--    <id>HDAT_I2C_DEVICE_PURPOSE</id>
-+    <id>HDAT_I2C_DEV_PURPOSE</id>
-     <description>
-         This attribute holds the values of the I2C device purpose from the i2c
-         device connections as defined in the MRW.  It is parsed into a
-diff --git a/src/usr/targeting/common/xmltohb/target_types_openpower.xml b/src/usr/targeting/common/xmltohb/target_types_openpower.xml
-index 6efbbd1..548c559 100644
---- a/src/usr/targeting/common/xmltohb/target_types_openpower.xml
-+++ b/src/usr/targeting/common/xmltohb/target_types_openpower.xml
-@@ -32,14 +32,14 @@
-      =====================================================================
-  -->
- <targetTypeExtension>
--    <id>chip-processor</id>
-+    <id>base</id>
-     <attribute><id>HDAT_I2C_ENGINE</id></attribute>
-     <attribute><id>HDAT_I2C_MASTER_PORT</id></attribute>
--    <attribute><id>HDAT_I2C_DEVICE_TYPE</id></attribute>
-+    <attribute><id>HDAT_I2C_DEVTYPE</id></attribute>
-     <attribute><id>HDAT_I2C_ADDR</id></attribute>
-     <attribute><id>HDAT_I2C_SLAVE_PORT</id></attribute>
-     <attribute><id>HDAT_I2C_BUS_FREQ</id></attribute>
--    <attribute><id>HDAT_I2C_DEVICE_PURPOSE</id></attribute>
-+    <attribute><id>HDAT_I2C_DEV_PURPOSE</id></attribute>
-     <attribute><id>HDAT_I2C_ELEMENTS</id></attribute>
-     <attribute>
-         <id>IPMI_INSTANCE</id>
--- 
-1.8.2.2
-
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index 2f64253..7164ea5 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OPENPOWER_PNOR_VERSION ?= 3ab2d5d3f0c030bd68a4b431ac128004d54f7511
+OPENPOWER_PNOR_VERSION ?= 2da7a68536f4552aff23e55d7bcfc81f04c07028
 OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
 
 OPENPOWER_PNOR_LICENSE = Apache-2.0
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 8b78129..d7528f5 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -31,7 +31,7 @@
 
 config BR2_SKIBOOT_VERSION
 	string
-	default "skiboot-5.6.0-123-g4df53124cb34" if BR2_SKIBOOT_LATEST_VERSION
+	default "skiboot-5.6.0-148-g6678e057ab5c" if BR2_SKIBOOT_LATEST_VERSION
 	default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_SKIBOOT_CUSTOM_VERSION
 
diff --git a/openpower/patches/redbud-patches/skiboot/0001-NOT-FOR-UPSTREAM-Add-support-for-Redbud.patch b/openpower/patches/redbud-patches/skiboot/0001-NOT-FOR-UPSTREAM-Add-support-for-Redbud.patch
new file mode 100644
index 0000000..25897fb
--- /dev/null
+++ b/openpower/patches/redbud-patches/skiboot/0001-NOT-FOR-UPSTREAM-Add-support-for-Redbud.patch
@@ -0,0 +1,172 @@
+From 399620b8282f89728ab94fd0c273882063bf32b1 Mon Sep 17 00:00:00 2001
+From: Alistair Popple <alistair@popple.id.au>
+Date: Thu, 22 Jun 2017 13:26:01 +1000
+Subject: [PATCH] NOT FOR UPSTREAM: Add support for Redbud
+
+Add support for Redbud. This is mutually exclusive with support for Sequoia so
+anything built with this patch will not work on Sequoia.
+
+Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
+---
+ platforms/astbmc/Makefile.inc                |  2 +-
+ platforms/astbmc/{witherspoon.c => redbud.c} | 68 +++++++---------------------
+ 2 files changed, 18 insertions(+), 52 deletions(-)
+ rename platforms/astbmc/{witherspoon.c => redbud.c} (91%)
+
+diff --git a/platforms/astbmc/Makefile.inc b/platforms/astbmc/Makefile.inc
+index 49292c10601c..797a03c323ad 100644
+--- a/platforms/astbmc/Makefile.inc
++++ b/platforms/astbmc/Makefile.inc
+@@ -4,7 +4,7 @@ ASTBMC_OBJS = pnor.o common.o slots.o \
+ 	      palmetto.o habanero.o firestone.o \
+ 	      p8dtu.o p8dnu.o \
+ 	      garrison.o barreleye.o \
+-	      witherspoon.o zaius.o romulus.o p9dsu.o
++	      redbud.o zaius.o romulus.o p9dsu.o
+ 
+ ASTBMC = $(PLATDIR)/astbmc/built-in.o
+ $(ASTBMC): $(ASTBMC_OBJS:%=$(PLATDIR)/astbmc/%)
+diff --git a/platforms/astbmc/witherspoon.c b/platforms/astbmc/redbud.c
+similarity index 91%
+rename from platforms/astbmc/witherspoon.c
+rename to platforms/astbmc/redbud.c
+index 6a773061db74..90373f66961f 100644
+--- a/platforms/astbmc/witherspoon.c
++++ b/platforms/astbmc/redbud.c
+@@ -51,7 +51,7 @@ static const struct slot_table_entry witherspoon_gpu1[] = {
+ static const struct slot_table_entry witherspoon_gpu2[] = {
+ 	{
+ 		.etype = st_pluggable_slot,
+-		.location = ST_LOC_DEVFN(0xc0,0),
++		.location = ST_LOC_DEVFN(0x60,0),
+ 		.name = "GPU2",
+ 	},
+ 	{ .etype = st_end },
+@@ -60,26 +60,8 @@ static const struct slot_table_entry witherspoon_gpu2[] = {
+ static const struct slot_table_entry witherspoon_gpu3[] = {
+ 	{
+ 		.etype = st_pluggable_slot,
+-		.location = ST_LOC_DEVFN(0x60,0),
+-		.name = "GPU3",
+-	},
+-	{ .etype = st_end },
+-};
+-
+-static const struct slot_table_entry witherspoon_gpu4[] = {
+-	{
+-		.etype = st_pluggable_slot,
+ 		.location = ST_LOC_DEVFN(0x80,0),
+-		.name = "GPU4",
+-	},
+-	{ .etype = st_end },
+-};
+-
+-static const struct slot_table_entry witherspoon_gpu5[] = {
+-	{
+-		.etype = st_pluggable_slot,
+-		.location = ST_LOC_DEVFN(0xa0,0),
+-		.name = "GPU5",
++		.name = "GPU3",
+ 	},
+ 	{ .etype = st_end },
+ };
+@@ -97,12 +79,6 @@ static const struct slot_table_entry witherspoon_plx0_down[] = {
+ 		.children = witherspoon_gpu1,
+ 		.name = "GPU1 down",
+ 	},
+-	{
+-		.etype = st_builtin_dev,
+-		.location = ST_LOC_DEVFN(0x4c,0),
+-		.children = witherspoon_gpu2,
+-		.name = "GPU2 down",
+-	},
+ 	{ .etype = st_end },
+ };
+ 
+@@ -110,20 +86,14 @@ static const struct slot_table_entry witherspoon_plx1_down[] = {
+ 	{
+ 		.etype = st_builtin_dev,
+ 		.location = ST_LOC_DEVFN(0x44,0),
+-		.children = witherspoon_gpu3,
+-		.name = "GPU3 down",
++		.children = witherspoon_gpu2,
++		.name = "GPU2 down",
+ 	},
+ 	{
+ 		.etype = st_builtin_dev,
+ 		.location = ST_LOC_DEVFN(0x45,0),
+-		.children = witherspoon_gpu4,
+-		.name = "GPU4 down",
+-	},
+-	{
+-		.etype = st_builtin_dev,
+-		.location = ST_LOC_DEVFN(0x4d,0),
+-		.children = witherspoon_gpu5,
+-		.name = "GPU5 down",
++		.children = witherspoon_gpu3,
++		.name = "GPU3 down",
+ 	},
+ 	{ .etype = st_end },
+ };
+@@ -175,11 +145,6 @@ static const struct slot_table_entry witherspoon_npu0_slots[] = {
+ 		.location = ST_LOC_NPU_GROUP(1),
+ 		.name = "GPU1",
+ 	},
+-	{
+-		.etype = st_npu_slot,
+-		.location = ST_LOC_NPU_GROUP(2),
+-		.name = "GPU2",
+-	},
+ 	{ .etype = st_end },
+ };
+ 
+@@ -187,17 +152,12 @@ static const struct slot_table_entry witherspoon_npu8_slots[] = {
+ 	{
+ 		.etype = st_npu_slot,
+ 		.location = ST_LOC_NPU_GROUP(0),
+-		.name = "GPU3",
++		.name = "GPU2",
+ 	},
+ 	{
+ 		.etype = st_npu_slot,
+ 		.location = ST_LOC_NPU_GROUP(1),
+-		.name = "GPU4",
+-	},
+-	{
+-		.etype = st_npu_slot,
+-		.location = ST_LOC_NPU_GROUP(2),
+-		.name = "GPU5",
++		.name = "GPU3",
+ 	},
+ 	{ .etype = st_end },
+ };
+@@ -290,10 +250,10 @@ static void dt_create_npu2(void)
+ 
+ 		create_link(npu, 0, 0);
+ 		create_link(npu, 0, 1);
+-		create_link(npu, 1, 2);
++		create_link(npu, 0, 2);
+ 		create_link(npu, 1, 3);
+-		create_link(npu, 2, 4);
+-		create_link(npu, 2, 5);
++		create_link(npu, 1, 4);
++		create_link(npu, 1, 5);
+ 	}
+ }
+ 
+@@ -304,6 +264,12 @@ static bool witherspoon_probe(void)
+ 	if (!dt_node_is_compatible(dt_root, "ibm,witherspoon"))
+ 		return false;
+ 
++	prerror("********************************************************************************\n");
++	prerror("*     README: THIS BUILD IS ONLY FOR SYSTEMS SUPPORTING A MAXIMUM OF 4 GPUS    *\n");
++	prerror("*                                                                              *\n");
++	prerror("*       !!! THIS BUILD WILL NOT WORK ON SYSTEMS WHICH SUPPORT 6 GPUS !!!       *\n");
++	prerror("********************************************************************************\n");
++
+ 	/* Lot of common early inits here */
+ 	astbmc_early_init();
+ 
+-- 
+2.9.4
+