diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
deleted file mode 100644
index d9adaf6..0000000
--- a/openpower/configs/barreleye_defconfig
+++ /dev/null
@@ -1,72 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="barreleye.config"
-BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML=y
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="barreleye-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="253622f22fe142ea67a0025e9bcc3044db038898"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="barreleye.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="BARRELEYE_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="BARRELEYE_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="BARRELEYE_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="barreleye"
-BR2_OPENPOWER_PNOR_FILENAME="barreleye.pnor"
-BR2_OPENPOWER_PNOR_UPDATE_FILENAME="barreleye_update.pnor"
-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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="BARRELEYE_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="BARRELEYE_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/configs/firenze_defconfig b/openpower/configs/firenze_defconfig
deleted file mode 100644
index 33e12db..0000000
--- a/openpower/configs/firenze_defconfig
+++ /dev/null
@@ -1,58 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=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_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_IPRUTILS=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-# BR2_PACKAGE_P8_PORE_TOOLCHAIN is not set
-# BR2_PACKAGE_HOSTBOOT_P8 is not set
-# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
-# BR2_PACKAGE_MACHINE_XML is not set
-# BR2_PACKAGE_OPENPOWER_PNOR is not set
-BR2_OPENPOWER_CONFIG_NAME="openpower-firenze"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-# BR2_PACKAGE_CAPP_UCODE is not set
-BR2_PACKAGE_LOADKEYS=y
-# BR2_PACKAGE_IMA_CATALOG is not set
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
deleted file mode 100644
index 2505040..0000000
--- a/openpower/configs/firestone_defconfig
+++ /dev/null
@@ -1,71 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="firestone.config"
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="firestone-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="9df12d2653f2fbcae043d0e8effadb9aa5b84694"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="firestone.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="FIRESTONE_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="FIRESTONE_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="FIRESTONE_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="firestone"
-BR2_OPENPOWER_PNOR_FILENAME="firestone.pnor"
-BR2_OPENPOWER_PNOR_UPDATE_FILENAME="firestone_update.pnor"
-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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="FIRESTONE_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="FIRESTONE_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
deleted file mode 100644
index 29e3591..0000000
--- a/openpower/configs/garrison_defconfig
+++ /dev/null
@@ -1,71 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="garrison.config"
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="garrison-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="c5c35cb575ed4cd77400ef17cf954addc9fc855d"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="garrison.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="GARRISON_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="GARRISON_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="GARRISON_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="garrison"
-BR2_OPENPOWER_PNOR_FILENAME="garrison.pnor"
-BR2_OPENPOWER_PNOR_UPDATE_FILENAME="garrison_update.pnor"
-BR2_HOSTBOOT_BINARY_SBE_FILENAME="naples_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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="GARRISON_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="GARRISON_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
deleted file mode 100644
index 305f7c7..0000000
--- a/openpower/configs/habanero_defconfig
+++ /dev/null
@@ -1,72 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="habanero.config"
-BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML=y
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="habanero-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="c3998a513e1f71de4f8e250ebb50aeaf303eb73e"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="habanero.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="HABANERO_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="HABANERO_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="HABANERO_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="habanero"
-BR2_OPENPOWER_PNOR_FILENAME="habanero.pnor"
-BR2_OPENPOWER_PNOR_UPDATE_FILENAME="habanero_update.pnor"
-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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="HABANERO_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="HABANERO_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/configs/hostboot/barreleye.config b/openpower/configs/hostboot/barreleye.config
deleted file mode 100755
index b5178f4..0000000
--- a/openpower/configs/hostboot/barreleye.config
+++ /dev/null
@@ -1,66 +0,0 @@
-# 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_TO_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
-
-# Enable SBE updates
-set SBE_UPDATE_INDEPENDENT
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-# Enable Kingston dimm voltage workaround
-set KINGSTON_1_35_VOLT
-
-# PCA95X config
-set PCA95X_8BIT
-
-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
-set IPLTIME_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/firestone.config b/openpower/configs/hostboot/firestone.config
deleted file mode 100755
index 4dd3cde..0000000
--- a/openpower/configs/hostboot/firestone.config
+++ /dev/null
@@ -1,64 +0,0 @@
-# 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_TO_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
-
-# Enable SBE updates
-set SBE_UPDATE_INDEPENDENT
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-# Enable Kingston dimm voltage workaround
-set KINGSTON_1_35_VOLT
-
-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
-set IPLTIME_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
deleted file mode 100755
index 7fc9adf..0000000
--- a/openpower/configs/hostboot/garrison.config
+++ /dev/null
@@ -1,64 +0,0 @@
-# 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_TO_PNOR
-set DJVPD_READ_FROM_HW
-unset 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
-
-# Enable SBE updates
-set SBE_UPDATE_INDEPENDENT
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-# Enable Kingston dimm voltage workaround
-set KINGSTON_1_35_VOLT
-
-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
-set IPLTIME_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
deleted file mode 100755
index 138e988..0000000
--- a/openpower/configs/hostboot/habanero.config
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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_TO_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
-
-# Enable SBE updates
-set SBE_UPDATE_INDEPENDENT
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-# Enable Kingston dimm voltage workaround
-set KINGSTON_1_35_VOLT
-
-unset DISABLE_HOSTBOOT_RUNTIME
-
-# Compile in hostboot runtime PRD
-set HBRT_PRD
-
-# OCC Enablment flags
-unset SET_NOMINAL_PSTATE
-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
-set IPLTIME_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/p8dtu.config b/openpower/configs/hostboot/p8dtu.config
deleted file mode 100644
index 7781d39..0000000
--- a/openpower/configs/hostboot/p8dtu.config
+++ /dev/null
@@ -1,70 +0,0 @@
-# The Serial Flash Controller is the AST2400 BMC.
-set   SFC_IS_AST2400
-set   PNORDD_IS_IPMI
-unset PNORDD_IS_SFC
-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_TO_PNOR
-set DJVPD_READ_FROM_HW
-unset 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
-
-# Enable SBE updates
-#set SBE_UPDATE_INDEPENDENT
-set SBE_UPDATE_SIMULTANEOUS
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-# Enable Kingston dimm voltage workaround
-unset KINGSTON_1_35_VOLT
-
-unset DISABLE_HOSTBOOT_RUNTIME
-
-# Compile in hostboot runtime PRD
-set HBRT_PRD
-set HTMGT
-set START_OCC_DURING_BOOT
-
-#PNOR flags
-unset PNOR_TWO_SIDE_SUPPORT
-set PNOR_IS_32MB
-
-set BMC_BT_LPC_IPMI
-
-unset SET_NOMINAL_PSTATE
-
-# Enable Checktop Analysis
-set ENABLE_CHECKSTOP_ANALYSIS
-set IPLTIME_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
deleted file mode 100755
index 0d8ce18..0000000
--- a/openpower/configs/hostboot/palmetto.config
+++ /dev/null
@@ -1,68 +0,0 @@
-# Use IPMIDD for PNOR
-unset SFC_IS_AST2400
-set PNORDD_IS_IPMI
-unset PNORDD_IS_SFC
-unset BMC_DOES_SFC_INIT
-unset SFC_IS_IBM_DPSS
-set   ALLOW_MICRON_PNOR
-set   ALLOW_MACRONIX_PNOR
-
-#PNOR flags
-unset PNOR_TWO_SIDE_SUPPORT
-
-# VPD options.
-set MVPD_READ_FROM_HW
-set MVPD_WRITE_TO_HW
-set MVPD_READ_FROM_PNOR
-set MVPD_WRITE_TO_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
-
-# Enable SBE updates
-set SBE_UPDATE_INDEPENDENT
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-set PNOR_IS_32MB
-
-unset DISABLE_HOSTBOOT_RUNTIME
-
-# Compile in hostboot runtime PRD
-set HBRT_PRD
-
-# OCC Enablment flags
-unset SET_NOMINAL_PSTATE
-set HTMGT
-set START_OCC_DURING_BOOT
-
-set BMC_BT_LPC_IPMI
-
-# Enable Checktop Analysis
-set ENABLE_CHECKSTOP_ANALYSIS
-set IPLTIME_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/vesnin.config b/openpower/configs/hostboot/vesnin.config
deleted file mode 100644
index fc3e969..0000000
--- a/openpower/configs/hostboot/vesnin.config
+++ /dev/null
@@ -1,63 +0,0 @@
-# Use IPMIDD for PNOR
-unset SFC_IS_AST2400
-unset SFC_IS_IBM_DPSS
-unset BMC_DOES_SFC_INIT
-unset PNORDD_IS_SFC
-set   PNORDD_IS_IPMI
-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_TO_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
-
-# Enable SBE updates
-set SBE_UPDATE_INDEPENDENT
-
-unset PCIE_HOTPLUG_CONTROLLER
-
-# turn on console output
-set CONSOLE
-set BMC_AST2400
-
-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
-set IPLTIME_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/opal_defconfig b/openpower/configs/opal_defconfig
index 1319aa9..9a74eb4 100644
--- a/openpower/configs/opal_defconfig
+++ b/openpower/configs/opal_defconfig
@@ -42,10 +42,10 @@
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_TARGET_ROOTFS_INITRAMFS=y
 BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-# BR2_PACKAGE_P8_PORE_TOOLCHAIN is not set
+BR2_OPENPOWER_POWER9=y
+# BR2_PACKAGE_PPE42_TOOLCHAIN is not set
 # BR2_PACKAGE_HOST_OPENPOWER_FFS is not set
-# BR2_PACKAGE_HOSTBOOT_P8 is not set
+# BR2_PACKAGE_HOSTBOOT is not set
 # BR2_PACKAGE_HOSTBOOT_BINARIES is not set
 # BR2_PACKAGE_MACHINE_XML is not set
 # BR2_PACKAGE_OPENPOWER_PNOR is not set
@@ -55,3 +55,4 @@
 # BR2_PACKAGE_CAPP_UCODE is not set
 BR2_SKIBOOT_DEVICETREE=y
 # BR2_PACKAGE_IMA_CATALOG is not set
+# BR2_PACKAGE_HOST_SB_SIGNING_UTILS is not set
diff --git a/openpower/configs/p8dtu_defconfig b/openpower/configs/p8dtu_defconfig
deleted file mode 100644
index 50f8065..0000000
--- a/openpower/configs/p8dtu_defconfig
+++ /dev/null
@@ -1,71 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/p8dtu-patches"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="p8dtu.config"
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="p8dtu-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="a44ee3e29ff143053c0d0ec65e5a255402654616"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="p8dtu.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="P8DTU_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="P8DTU_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="P8DTU_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutSingleSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="p8dtu"
-BR2_OPENPOWER_PNOR_FILENAME="P8DTU.pnor"
-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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="P8DTU_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="P8DTU_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
deleted file mode 100644
index d458249..0000000
--- a/openpower/configs/palmetto_defconfig
+++ /dev/null
@@ -1,68 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_GENERATE_LOCALE="en_US.UTF-8"
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="palmetto.config"
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="palmetto-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="19aa4d3a0f0b39f891a7628bc41946d0dc83fb2a"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="palmetto.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="PALMETTO_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="PALMETTO_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="PALMETTO_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutSingleSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="palmetto"
-BR2_OPENPOWER_PNOR_FILENAME="palmetto.pnor"
-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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="PALMETTO_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="PALMETTO_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/configs/pseries_defconfig b/openpower/configs/pseries_defconfig
deleted file mode 100644
index 74794d9..0000000
--- a/openpower/configs/pseries_defconfig
+++ /dev/null
@@ -1,60 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_SYSTEM_ENABLE_NLS=y
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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/pseries_skiroot_defconfig"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_CRYPTSETUP=y
-BR2_PACKAGE_I2C_TOOLS=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_IPMITOOL_USB=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=y
-BR2_PACKAGE_NCURSES_WCHAR=y
-BR2_PACKAGE_DROPBEAR=y
-# BR2_PACKAGE_DROPBEAR_SERVER is not set
-BR2_PACKAGE_ETHTOOL=y
-BR2_PACKAGE_LRZSZ=y
-BR2_PACKAGE_NETCAT=y
-BR2_PACKAGE_RSYNC=y
-BR2_PACKAGE_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-# BR2_PACKAGE_P8_PORE_TOOLCHAIN is not set
-# BR2_PACKAGE_HOSTBOOT_P8 is not set
-# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
-# BR2_PACKAGE_MACHINE_XML is not set
-# BR2_PACKAGE_OPENPOWER_PNOR is not set
-BR2_OPENPOWER_CONFIG_NAME="openpower-firenze"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-# BR2_PACKAGE_CAPP_UCODE is not set
-BR2_PACKAGE_LOADKEYS=y
-# BR2_PACKAGE_IMA_CATALOG is not set
diff --git a/openpower/configs/vesnin_defconfig b/openpower/configs/vesnin_defconfig
deleted file mode 100644
index 7293fab..0000000
--- a/openpower/configs/vesnin_defconfig
+++ /dev/null
@@ -1,69 +0,0 @@
-BR2_powerpc64le=y
-BR2_powerpc_power8=y
-BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/vesnin-patches"
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
-BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
-BR2_GCC_VERSION_6_X=y
-BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer"
-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_GENERATE_LOCALE="en_US.UTF-8"
-BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table"
-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="5.4.48"
-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"
-BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
-BR2_LINUX_KERNEL_XZ=y
-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=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_QLOGIC_4X=y
-BR2_PACKAGE_CRYPTSETUP=y
-BR2_PACKAGE_I2C_TOOLS=y
-BR2_PACKAGE_IPMITOOL=y
-BR2_PACKAGE_MDADM=y
-BR2_PACKAGE_PCIUTILS=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_SUDO=y
-BR2_PACKAGE_UTIL_LINUX_AGETTY=y
-BR2_TARGET_ROOTFS_CPIO_XZ=y
-BR2_TARGET_ROOTFS_INITRAMFS=y
-BR2_OPENPOWER_PLATFORM=y
-BR2_OPENPOWER_POWER8=y
-BR2_HOSTBOOT_P8_CONFIG_FILE="vesnin.config"
-BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="vesnin-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="deed9ba0bc6d1d68b416ed3e14853b86838897d7"
-BR2_OPENPOWER_MACHINE_XML_FILENAME="vesnin.xml"
-BR2_OPENPOWER_SYSTEM_XML_FILENAME="VESNIN_hb.system.xml"
-BR2_OPENPOWER_MRW_XML_FILENAME="VESNIN_hb.mrw.xml"
-BR2_OPENPOWER_BIOS_XML_FILENAME="VESNIN_bios.xml"
-BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
-BR2_OPENPOWER_CONFIG_NAME="vesnin"
-BR2_OPENPOWER_PNOR_FILENAME="vesnin.pnor"
-BR2_OPENPOWER_PNOR_UPDATE_FILENAME="vesnin_update.pnor"
-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_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_OPENPOWER_TARGETING_BIN_FILENAME="VESNIN_HB.targeting.bin"
-BR2_OPENPOWER_TARGETING_ECC_FILENAME="VESNIN_HB.targeting.bin.ecc"
-BR2_PACKAGE_PETITBOOT=y
-BR2_PACKAGE_PETITBOOT_MTD=y
-BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_PACKAGE_LOADKEYS=y
-BR2_IMA_CATALOG_DTS="POWER8"
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index 34468f5..be50a3e 100755
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -1,15 +1,11 @@
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-ffs/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot-p8/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot-binaries/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-mrw/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/common-p8-xml/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/machine-xml/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-pnor/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/petitboot/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hcode/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ-p8/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/capp-ucode/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/skiboot/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/libflash/Config.in"
diff --git a/openpower/package/common-p8-xml/Config.in b/openpower/package/common-p8-xml/Config.in
deleted file mode 100644
index 560c1d6..0000000
--- a/openpower/package/common-p8-xml/Config.in
+++ /dev/null
@@ -1,4 +0,0 @@
-config BR2_PACKAGE_COMMON_P8_XML
-        bool "Common P8 XML files"
-        default y if BR2_PACKAGE_HOSTBOOT_P8
-        select BR2_PACKAGE_OPENPOWER_MRW
diff --git a/openpower/package/common-p8-xml/common-p8-xml.mk b/openpower/package/common-p8-xml/common-p8-xml.mk
deleted file mode 100644
index cd0afe4..0000000
--- a/openpower/package/common-p8-xml/common-p8-xml.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-#
-# common-p8-xml
-#
-################################################################################
-
-COMMON_P8_XML_VERSION ?= e02b6f6ddd5f225ddb70c286a10685df5b9267db
-COMMON_P8_XML_SITE ?= $(call github,open-power,common-p8-xml,$(COMMON_P8_XML_VERSION))
-
-COMMON_P8_XML_LICENSE = Apache-2.0
-COMMON_P8_XML_LICENSE_FILES = LICENSE
-COMMON_P8_XML_DEPENDENCIES =
-
-COMMON_P8_XML_INSTALL_IMAGES = YES
-COMMON_P8_XML_INSTALL_TARGET = NO
-
-XML_INSTALL_DIRECTORY=$(STAGING_DIR)/openpower_mrw_scratch/
-
-define COMMON_P8_XML_INSTALL_IMAGES_CMDS
-        bash -c 'mkdir -p $(XML_INSTALL_DIRECTORY) && cp -r $(@D)/* $(XML_INSTALL_DIRECTORY)'
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/hcode/Config.in b/openpower/package/hcode/Config.in
index 89c243a..94d0b90 100644
--- a/openpower/package/hcode/Config.in
+++ b/openpower/package/hcode/Config.in
@@ -3,6 +3,7 @@
         default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER9)
         depends on BR2_PACKAGE_HAS_PPE42_TOOLCHAIN
         select BR2_CPP
+        select BR2_PACKAGE_HOSTBOOT_BINARIES
         help
             Project to build the hcode firmware codebase
 
diff --git a/openpower/package/hostboot-binaries/hostboot_binaries.mk b/openpower/package/hostboot-binaries/hostboot_binaries.mk
index 658c281..a7649c8 100644
--- a/openpower/package/hostboot-binaries/hostboot_binaries.mk
+++ b/openpower/package/hostboot-binaries/hostboot_binaries.mk
@@ -14,25 +14,11 @@
 HOSTBOOT_BINARIES_INSTALL_IMAGES = YES
 HOSTBOOT_BINARIES_INSTALL_TARGET = NO
 
-# Creating Install Commands specific to P8 and P9
-# -- P8 does not need the nimbus and axone ring files
+# Creating Install Commands specific to P9
 # -- P9 does not need the SBE files ('sbe' package is used in P9)
 # -- P9 uses the 'hcode' package to build the BR2_HOSTBOOT_BINARY_WINK_FILENAME
 
 ###################################
-# P8:
-ifeq ($(BR2_OPENPOWER_POWER8),y)
-define HOSTBOOT_BINARIES_INSTALL_IMAGES_CMDS
-     $(INSTALL) -D $(@D)/cvpd.bin  $(STAGING_DIR)/hostboot_binaries/cvpd.bin
-     $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_WINK_FILENAME) $(STAGING_DIR)/hostboot_binaries/
-     $(INSTALL) -D $(@D)/$(BR2_HOSTBOOT_BINARY_IONV_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/
-     $(INSTALL) -D $(@D)/gpu_gpe1.bin  $(STAGING_DIR)/hostboot_binaries/gpu_gpe1.bin
-endef
-endif
-
-###################################
 # P9:
 ifeq ($(BR2_OPENPOWER_POWER9),y)
 
diff --git a/openpower/package/hostboot-p8/0001-Increase-uart-delay.patch b/openpower/package/hostboot-p8/0001-Increase-uart-delay.patch
deleted file mode 100644
index 5c916d2..0000000
--- a/openpower/package/hostboot-p8/0001-Increase-uart-delay.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0c69e87e86e62253bc5a33cadf41e3d5f80971f0 Mon Sep 17 00:00:00 2001
-From: Brian Silver <bsilver@us.ibm.com>
-Date: Wed, 5 Nov 2014 14:16:36 -0600
-Subject: [PATCH] Changes for Habanero bringup, uart delay and centaur/vddr
-
-Change-Id: I381732be6facd25fb27bbd1f8ac0d75eb5b4980e
----
- src/usr/console/uart.C                         |  2 +-
- src/usr/hwpf/hwp/dram_training/palmetto_vddr.C | 18 +++++++++++++-----
- 2 files changed, 14 insertions(+), 6 deletions(-)
-
-diff --git a/src/usr/console/uart.C b/src/usr/console/uart.C
-index 385a05c..a269168 100644
---- a/src/usr/console/uart.C
-+++ b/src/usr/console/uart.C
-@@ -116,7 +116,7 @@ namespace CONSOLE
-             // Wait for transmit FIFO to have space.
-             {
-                 const uint64_t DELAY_NS = 100;
--                const uint64_t DELAY_LOOPS = 10000;
-+                const uint64_t DELAY_LOOPS = 100000000;
- 
-                 uint8_t data = 0;
-                 uint64_t loops = 0;
--- 
-1.9.1
-
diff --git a/openpower/package/hostboot-p8/0002-GCC-4.9-Make-compiler-use-ELFv1-ABI.patch b/openpower/package/hostboot-p8/0002-GCC-4.9-Make-compiler-use-ELFv1-ABI.patch
deleted file mode 100644
index 66bc026..0000000
--- a/openpower/package/hostboot-p8/0002-GCC-4.9-Make-compiler-use-ELFv1-ABI.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 005cac73915ee6f6b67e9b01ae840b798c1fc80e Mon Sep 17 00:00:00 2001
-From: Andrew Geissler <andrewg@us.ibm.com>
-Date: Mon, 16 Feb 2015 13:43:51 -0600
-Subject: [PATCH] GCC 4.9: Make compiler use ELFv1 ABI.
-
-GCC4.9 defaults to ELFv2 ABI support but we do not have all
-of the needed tools to suppor this.
-
-Change-Id: Iacf49c46b1fb25776ba60d6506ccadff7b46bf60
-RTC: 123430
----
- src/build/mkrules/cflags.env.mk |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/src/build/mkrules/cflags.env.mk b/src/build/mkrules/cflags.env.mk
-index 8ca32b1..c729341 100644
---- a/src/build/mkrules/cflags.env.mk
-+++ b/src/build/mkrules/cflags.env.mk
-@@ -36,10 +37,12 @@ CFLAGS += -D__HOSTBOOT_MODULE=$(MODULE)
- endif
- 
- COMMONFLAGS += $(OPT_LEVEL) -nostdlib
-+# TODO RTC: 123994 - ELFv2 ABI support (-mabi=elfv1)
- CFLAGS += $(COMMONFLAGS) -mcpu=power7 -nostdinc -g -mno-vsx -mno-altivec\
-           -Wall -Werror -mtraceback=no -pipe \
--	  -ffunction-sections -fdata-sections -ffreestanding -mbig-endian
--ASMFLAGS += $(COMMONFLAGS) -mcpu=power7 -mbig-endian
-+	  -ffunction-sections -fdata-sections -ffreestanding -mbig-endian \
-+      -mabi=elfv1
-+ASMFLAGS += $(COMMONFLAGS) -mcpu=power7 -mbig-endian -mabi=elfv1
- CXXFLAGS += $(CFLAGS) -nostdinc++ -fno-rtti -fno-exceptions -Wall \
- 	    -fuse-cxa-atexit
- LDFLAGS += --nostdlib --sort-common -EB $(COMMONFLAGS)
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot-p8/0003-Default-to-std-gnu-03.patch b/openpower/package/hostboot-p8/0003-Default-to-std-gnu-03.patch
deleted file mode 100644
index f6c6710..0000000
--- a/openpower/package/hostboot-p8/0003-Default-to-std-gnu-03.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From bc7b8b21549752274b162c64dbce3c81d20f2cab Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 25 Aug 2016 20:22:30 +1000
-Subject: [PATCH 03/10] Default to std=gnu++03
-
-Seeing as no C++ dialect was previously selected, GCC < 6 defaulted
-to GNU++98 as the standard C++ mode. However... it seems that C++03
-is a better match for HostBoot code (confirmed by Patrick Williams
-in https://github.com/open-power/hostboot/pull/62#discussion_r76830612 )
-
-Change-Id: I6661b5b61319c85c2a90926beb6e2662e96dcf06
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/build/mkrules/cflags.env.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/build/mkrules/cflags.env.mk b/src/build/mkrules/cflags.env.mk
-index c805999..0bae0ec 100644
---- a/src/build/mkrules/cflags.env.mk
-+++ b/src/build/mkrules/cflags.env.mk
-@@ -41,7 +41,7 @@ CFLAGS += $(COMMONFLAGS) -mcpu=power7 -nostdinc -g -mno-vsx -mno-altivec\
- 	  -ffunction-sections -fdata-sections -ffreestanding -mbig-endian
- ASMFLAGS += $(COMMONFLAGS) -mcpu=power7 -mbig-endian
- CXXFLAGS += $(CFLAGS) -nostdinc++ -fno-rtti -fno-exceptions -Wall \
--	    -fuse-cxa-atexit
-+	    -fuse-cxa-atexit -std=gnu++03
- LDFLAGS += --nostdlib --sort-common -EB $(COMMONFLAGS)
- 
- INCFLAGS = $(addprefix -I, $(INCDIR) )
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0004-fix-build-error-return-statement-with-a-value-in-fun.patch b/openpower/package/hostboot-p8/0004-fix-build-error-return-statement-with-a-value-in-fun.patch
deleted file mode 100644
index b1ecacd..0000000
--- a/openpower/package/hostboot-p8/0004-fix-build-error-return-statement-with-a-value-in-fun.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 6ae906e70c7209e69b750f6566263fe4998dfb48 Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 25 Aug 2016 19:22:00 +1000
-Subject: [PATCH 04/10] fix build error: return-statement with a value, in
- function returning 'void'
-
-Change-Id: I9dc8b698fec95488e209cbc40b928769a26b6de6
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/include/usr/devicefw/driverif.H | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/include/usr/devicefw/driverif.H b/src/include/usr/devicefw/driverif.H
-index a148725..fb43073 100644
---- a/src/include/usr/devicefw/driverif.H
-+++ b/src/include/usr/devicefw/driverif.H
-@@ -266,7 +266,7 @@ namespace DeviceFW
-                              TargType i_targetType,
-                              deviceOp_t i_regRoute)
-     {
--        return InvalidParameterType(); // Cause a compile fail if not one of
-+        InvalidParameterType(); // Cause a compile fail if not one of
-                                        // the explicit template specializations.
-     }
- 
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch b/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch
deleted file mode 100644
index fcfe570..0000000
--- a/openpower/package/hostboot-p8/0005-error-dereferencing-type-punned-pointer-will-break-s.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 550d36dca3cdec84d47f05711c2569990d3b4708 Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 25 Aug 2016 19:27:04 +1000
-Subject: [PATCH 05/10] error: dereferencing type-punned pointer will break
- strict-aliasing rules
-
-Change-Id: I63accd3e881c941736ece4b4498c2c9d06ff8761
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H             | 7 +++++++
- .../usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H        | 1 -
- src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C        | 6 +++---
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
-index e5af2c9..7edf2bf 100755
---- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
-+++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.H
-@@ -227,6 +227,13 @@ namespace getAttrData
-         uint8_t              iv_systemType;
-         uint8_t              iv_systemType_ext;
-         uint8_t              iv_dataVersion;
-+    public:
-+	MBvpdVMKeyword() : iv_version(0),iv_systemType(0),
-+			   iv_systemType_ext(0),iv_dataVersion(0) {};
-+	operator uint32_t() const {
-+		return iv_version << 24 | iv_systemType << 16 |
-+			iv_systemType_ext << 8 | iv_dataVersion;
-+	}
-     };
- //  Attribute definition
-     struct MBvpdAttrDef
-diff --git a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H
-index f172508..85460b2 100644
---- a/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H
-+++ b/src/include/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.H
-@@ -33,7 +33,6 @@
- #define _HWP_GETMBVPDMEMDATAVERSION_
- 
- #include <fapi.H>
--#define VM_KEYWORD_DEFAULT_VALUE 0x00000000
- 
- // function pointer typedef definition for HWP call support
- typedef fapi::ReturnCode (*getMBvpdMemoryDataVersion_FP_t)
-diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C
-index 2f83fa2..ef64515 100644
---- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C
-+++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdMemoryDataVersion.C
-@@ -50,7 +50,7 @@ fapi::ReturnCode getMBvpdMemoryDataVersion(
-     fapi::ReturnCode l_fapirc;
-     DimmType l_dimmType = ISDIMM;
-     fapi::MBvpdRecord  l_record  = fapi::MBVPD_RECORD_SPDX;
--    uint32_t l_vpdMemoryDataVersion = VM_KEYWORD_DEFAULT_VALUE;   
-+    MBvpdVMKeyword l_vpdMemoryDataVersion;
-     uint32_t l_bufSize = sizeof(l_vpdMemoryDataVersion);
- 
-     FAPI_DBG("getMBvpdMemoryDataVersion: entry ");
-@@ -140,8 +140,8 @@ fapi::ReturnCode getMBvpdMemoryDataVersion(
-         }
-                     
-         // Check if the format byte in the value returned is in between valid range
--        if (( ((MBvpdVMKeyword *)(&l_vpdMemoryDataVersion))->iv_version >  VM_SUPPORTED_HIGH_VER )||
--            ( ((MBvpdVMKeyword *)(&l_vpdMemoryDataVersion))->iv_version == VM_NOT_SUPPORTED ))
-+        if ((l_vpdMemoryDataVersion.iv_version >  VM_SUPPORTED_HIGH_VER )||
-+            (l_vpdMemoryDataVersion.iv_version == VM_NOT_SUPPORTED ))
-         {
-             FAPI_ERR("getMBvpdMemoryDataVersion:"
-                      " keyword data returned is invalid : %d ",
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0006-Change-cv_forcedMemPeriodic-to-uint8_t-as-bool-is-in.patch b/openpower/package/hostboot-p8/0006-Change-cv_forcedMemPeriodic-to-uint8_t-as-bool-is-in.patch
deleted file mode 100644
index 666c747..0000000
--- a/openpower/package/hostboot-p8/0006-Change-cv_forcedMemPeriodic-to-uint8_t-as-bool-is-in.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 74d099aaffa37498859c0840771052f50253ce4d Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 25 Aug 2016 19:33:42 +1000
-Subject: [PATCH 06/10] Change cv_forcedMemPeriodic to uint8_t as bool is
- invalid
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC6 throws the following error:
-operand type ‘bool*’ is incompatible with argument 1 of ‘__sync_fetch_and_and’
-
-GCC documents that bool is invalid for __sync builtins over at:
-https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html#g_t_005f_005fsync-Builtins
-" GCC allows any scalar type that is 1, 2, 4 or 8 bytes in size other than the C type _Bool or the C++ type bool"
-
-Change-Id: Iab6415348cb19f590921d8ccc5349867fa57a42d
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/include/kernel/cpumgr.H | 2 +-
- src/kernel/cpumgr.C         | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H
-index 68f8972..6e9b697 100644
---- a/src/include/kernel/cpumgr.H
-+++ b/src/include/kernel/cpumgr.H
-@@ -215,7 +215,7 @@ class CpuManager
-              */
-         static uint64_t cv_cpuSeq;
- 
--        static bool cv_forcedMemPeriodic;       //!<  force free / coalesce.
-+        static uint8_t cv_forcedMemPeriodic;       //!<  force free / coalesce.
- 
-         // If a shutdown of all CPUs is requested
-         static bool cv_shutdown_requested;
-diff --git a/src/kernel/cpumgr.C b/src/kernel/cpumgr.C
-index 44f61a1..ce7516f 100644
---- a/src/kernel/cpumgr.C
-+++ b/src/kernel/cpumgr.C
-@@ -50,7 +50,7 @@ cpu_t** CpuManager::cv_cpus[KERNEL_MAX_SUPPORTED_NODES];
- bool CpuManager::cv_shutdown_requested = false;
- uint64_t CpuManager::cv_shutdown_status = 0;
- size_t CpuManager::cv_cpuSeq = 0;
--bool CpuManager::cv_forcedMemPeriodic = false;
-+uint8_t CpuManager::cv_forcedMemPeriodic = 0;
- InteractiveDebug CpuManager::cv_interactive_debug;
- 
- CpuManager::CpuManager() : iv_lastStartTimebase(0)
-@@ -361,7 +361,7 @@ void CpuManager::executePeriodics(cpu_t * i_cpu)
-         }
- 
-         bool forceMemoryPeriodic = __sync_fetch_and_and(&cv_forcedMemPeriodic,
--                                                        false);
-+                                                        0);
- 
-         ++(i_cpu->periodic_count);
-         if((0 == (i_cpu->periodic_count % CPU_PERIODIC_CHECK_MEMORY)) ||
-@@ -461,7 +461,7 @@ size_t CpuManager::getThreadCount()
- 
- void CpuManager::forceMemoryPeriodic()
- {
--    cv_forcedMemPeriodic = true;
-+    cv_forcedMemPeriodic = 1;
- }
- 
- 
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0007-error-the-compiler-can-assume-that-the-address-of-r-.patch b/openpower/package/hostboot-p8/0007-error-the-compiler-can-assume-that-the-address-of-r-.patch
deleted file mode 100644
index 9c2c8f4..0000000
--- a/openpower/package/hostboot-p8/0007-error-the-compiler-can-assume-that-the-address-of-r-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8797f215a09a89c271dab484b892ceedd2486615 Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 25 Aug 2016 20:13:11 +1000
-Subject: [PATCH 07/10] =?UTF-8?q?error:=20the=20compiler=20can=20assume=20?=
- =?UTF-8?q?that=20the=20address=20of=20=E2=80=98r=E2=80=99=20will=20never?=
- =?UTF-8?q?=20be=20NULL?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-     PRDF_ASSERT( &r  != NULL );
-
-Change-Id: I2d60075f9e2232512efe45a5c6aa5563f3a565f5
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C b/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C
-index 9ee1358..ef7279b 100755
---- a/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C
-+++ b/src/usr/diag/prdf/common/framework/register/prdfErrorRegister.C
-@@ -120,8 +120,6 @@ ErrorRegister::ErrorRegister( SCAN_COMM_REGISTER_CLASS & r, ResolutionMap & rm,
-     ErrorRegisterType(), scr(r), scr_rc(SUCCESS), rMap(rm),
-     xNoErrorOnZeroScr(false), xScrId(scrId)
- {
--    PRDF_ASSERT( &r  != NULL );
--    PRDF_ASSERT( &rm != NULL );
- }
- 
- /*---------------------------------------------------------------------*/
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0008-Fix-compiler-can-assume-address-will-never-be-NULL-e.patch b/openpower/package/hostboot-p8/0008-Fix-compiler-can-assume-address-will-never-be-NULL-e.patch
deleted file mode 100644
index 73adecc..0000000
--- a/openpower/package/hostboot-p8/0008-Fix-compiler-can-assume-address-will-never-be-NULL-e.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From b315c53f2803b84e35fe646aa82702b82e8ecd98 Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 25 Aug 2016 20:07:58 +1000
-Subject: [PATCH 08/10] Fix compiler can assume address will never be NULL
- error with GCC6
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-So, it turns out that relying on the address of something passed by
-reference being able to be NULL isn't exactly a good idea, or remotely
-obvious code. So, instead, do the sane thing and pass a pointer and
-check it.
-
-../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:
-In constructor ‘PRDF::AttnTypeRegister::AttnTypeRegister(PRDF::SCAN_COMM_REGISTE
-R_CLASS&, PRDF::SCAN_COMM_REGISTER_CLASS&, PRDF::SCAN_COMM_REGISTER_CLASS&, PRDF
-::SCAN_COMM_REGISTER_CLASS&)’:
-../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
-42:21: error: the compiler can assume that the address of ‘i_check’ will never b
-e NULL [-Werror=address]
-         iv_check(  NULL == &i_check   ? &cv_null : &i_check),
-                   ~~^~~~~~~~~~~
-../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
-43:21: error: the compiler can assume that the address of ‘i_recov’ will never b
-e NULL [-Werror=address]
-         iv_recov(  NULL == &i_recov   ? &cv_null : &i_recov),
-                   ~~^~~~~~~~~~~
-../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
-44:22: error: the compiler can assume that the address of ‘i_special’ will never
- be NULL [-Werror=address]
-         iv_special(NULL == &i_special ? &cv_null : &i_special),
-                    ~~^~~~~~~~~~~~~
-../../../../src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H:4
-45:22: error: the compiler can assume that the address of ‘i_proccs’ will never
-be NULL [-Werror=address]
-         iv_proccs( NULL == &i_proccs  ? &cv_null : &i_proccs),
-                    ~~^~~~~~~~~~~~
-
-Change-Id: Iecd8636da67aac24f64f73fd82b1f7ccbfced900
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- .../common/framework/register/prdfOperatorRegister.H     | 16 ++++++++--------
- .../prdf/common/framework/register/prdfScanFacility.C    |  2 +-
- 2 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
-index b0513e4..a26a76e 100755
---- a/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
-+++ b/src/usr/diag/prdf/common/framework/register/prdfOperatorRegister.H
-@@ -434,15 +434,15 @@ class AttnTypeRegister : public SCAN_COMM_REGISTER_CLASS
-         iv_bs = &iv_iBS;
-     }
- 
--    AttnTypeRegister( SCAN_COMM_REGISTER_CLASS & i_check,
--                      SCAN_COMM_REGISTER_CLASS & i_recov,
--                      SCAN_COMM_REGISTER_CLASS & i_special,
--                      SCAN_COMM_REGISTER_CLASS & i_proccs ) :
-+    AttnTypeRegister( SCAN_COMM_REGISTER_CLASS *i_check,
-+                      SCAN_COMM_REGISTER_CLASS *i_recov,
-+                      SCAN_COMM_REGISTER_CLASS *i_special,
-+                      SCAN_COMM_REGISTER_CLASS *i_proccs ) :
-         SCAN_COMM_REGISTER_CLASS( ),
--        iv_check(  NULL == &i_check   ? &cv_null : &i_check),
--        iv_recov(  NULL == &i_recov   ? &cv_null : &i_recov),
--        iv_special(NULL == &i_special ? &cv_null : &i_special),
--        iv_proccs( NULL == &i_proccs  ? &cv_null : &i_proccs),
-+        iv_check(  NULL == i_check   ? &cv_null : i_check),
-+        iv_recov(  NULL == i_recov   ? &cv_null : i_recov),
-+        iv_special(NULL == i_special ? &cv_null : i_special),
-+        iv_proccs( NULL == i_proccs  ? &cv_null : i_proccs),
-         iv_iBS(0)         // will fully initialize this inside ctor.
-     {
-         uint32_t l_length = 1024;
-diff --git a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C
-index 0d379cf..cad5ce8 100755
---- a/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C
-+++ b/src/usr/diag/prdf/common/framework/register/prdfScanFacility.C
-@@ -166,7 +166,7 @@ SCAN_COMM_REGISTER_CLASS &  ScanFacility::GetAttnTypeRegister(
-                                            SCAN_COMM_REGISTER_CLASS * i_special,
-                                            SCAN_COMM_REGISTER_CLASS * i_proccs )
- {
--  AttnTypeRegister r(*i_check, *i_recov, *i_special, *i_proccs);
-+  AttnTypeRegister r(i_check, i_recov, i_special, i_proccs);
-   return iv_attnRegFw.get(r);
- }
- 
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0009-error-in-C-98-l_vmVersionBuf-must-be-initialized-by-.patch b/openpower/package/hostboot-p8/0009-error-in-C-98-l_vmVersionBuf-must-be-initialized-by-.patch
deleted file mode 100644
index 7e17bf9..0000000
--- a/openpower/package/hostboot-p8/0009-error-in-C-98-l_vmVersionBuf-must-be-initialized-by-.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9279a2bf255392321594b9457a67b796195b0891 Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Wed, 31 Aug 2016 13:07:17 +1000
-Subject: [PATCH 09/10] =?UTF-8?q?error:=20in=20C++98=20=E2=80=98l=5FvmVers?=
- =?UTF-8?q?ionBuf=E2=80=99=20must=20be=20initialized=20by=20constructor?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-fix GCC6 thrown error
-
-Change-Id: I9aa508843f54c99ebb59822c39590811423ad0b1
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C
-index 3739c75..a4685ad 100755
---- a/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C
-+++ b/src/usr/hwpf/hwp/mvpd_accessors/getMBvpdAttr.C
-@@ -392,7 +392,7 @@ fapi::ReturnCode getVersion  (const fapi::Target    & i_mbaTarget,
-     fapi::Target l_mbTarget;
-     fapi::MBvpdKeyword l_keyword = fapi::MBVPD_KEYWORD_VM;  // try VM first
-     fapi::MBvpdRecord  l_record  = fapi::MBVPD_RECORD_SPDX; // default to SPDX
--    MBvpdVMKeyword l_vmVersionBuf={};
-+    MBvpdVMKeyword l_vmVersionBuf;
-     uint32_t l_version = 0;
-     uint32_t l_vmBufSize = sizeof(MBvpdVMKeyword); // VM keyword is of 4 bytes.
-     uint16_t l_versionBuf = 0;
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0010-Use-std-gnu-03-for-host-g-invocations.patch b/openpower/package/hostboot-p8/0010-Use-std-gnu-03-for-host-g-invocations.patch
deleted file mode 100644
index a9cef3f..0000000
--- a/openpower/package/hostboot-p8/0010-Use-std-gnu-03-for-host-g-invocations.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 9852975319c864b47759cc8d7814bf6f9f0f1f4c Mon Sep 17 00:00:00 2001
-From: Stewart Smith <stewart@linux.vnet.ibm.com>
-Date: Thu, 3 Nov 2016 14:36:19 +1100
-Subject: [PATCH 10/10] Use -std=gnu++03 for host g++ invocations
-
-Seeing as the ancient GCC on RHEL6 doesn't actually support -std=gnu++03
-we have to go through some hoops to detect it (we use the same magic
-Make as we use in skiboot to do the same)
-
-Change-Id: I338560ae2ebdac842c8055c07519d542564c3923
-Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
----
- src/usr/hwpf/makefile | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/src/usr/hwpf/makefile b/src/usr/hwpf/makefile
-index 8d0bb72..ee8cf13 100644
---- a/src/usr/hwpf/makefile
-+++ b/src/usr/hwpf/makefile
-@@ -5,7 +5,7 @@
- #
- # OpenPOWER HostBoot Project
- #
--# Contributors Listed Below - COPYRIGHT 2011,2015
-+# Contributors Listed Below - COPYRIGHT 2011,2016
- # [+] International Business Machines Corp.
- #
- #
-@@ -402,18 +402,26 @@ $(call GENTARGET, ${IF_CMP_FLEX_TARGET}) : \
- 	$(C2) "    FLEX       $(notdir $<)"
- 	$(C1)flex -o$@ $^
- 
-+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))
-+HOSTCFLAGS:=-O3
-+HOSTCFLAGS+=$(call try-cflag,$(HOST_PREFIX)g++,-std=gnu++03)
-+
- $(GENDIR)/$(IF_CMP_SUBDIR)/%.host.o: \
- 	    ifcompiler/%.C $(IF_COMPILER_H_FILES) \
- 	    $(GENDIR)/$(IF_CMP_YACC_H_TARGET)
- 	$(C2) "    CXX        $(notdir $<)"
--	$(C1)$(CCACHE) $(HOST_PREFIX)g++ -O3 $< -I ifcompiler -I $(GENDIR) \
-+	$(C1)$(CCACHE) $(HOST_PREFIX)g++ $(HOSTCFLAGS) $< -I ifcompiler -I $(GENDIR) \
- 			-I $(GENDIR)/$(IF_CMP_SUBDIR) \
- 			-I $(ROOTPATH)/src/include/usr/hwpf/hwp -c -o $@
- 
- $(GENDIR)/$(IF_CMP_YACC_C_TARGET:.c=.host.o): \
-     $(GENDIR)/$(IF_CMP_YACC_C_TARGET) $(IF_COMPILER_H_FILES)
- 	$(C2) "    CXX        $(notdir $<)"
--	$(C1)$(CCACHE) $(HOST_PREFIX)g++ -O3 $< -I ifcompiler -I $(GENDIR) \
-+	$(C1)$(CCACHE) $(HOST_PREFIX)g++ $(HOSTCFLAGS) $< -I ifcompiler -I $(GENDIR) \
- 			-I $(GENDIR)/$(IF_CMP_SUBDIR) \
- 			-I $(ROOTPATH)/src/include/usr/hwpf/hwp -c -o $@
- 
-@@ -421,7 +429,7 @@ $(GENDIR)/$(IF_CMP_FLEX_TARGET:.c=.host.o): \
-     $(GENDIR)/$(IF_CMP_FLEX_TARGET) $(IF_COMPILER_H_FILES) \
-     $(GENDIR)/$(IF_CMP_YACC_H_TARGET)
- 	$(C2) "    CXX        $(notdir $<)"
--	$(C1)$(CCACHE) $(HOST_PREFIX)g++ -O3 -DHOSTBOOT_COMPILE $< -I ifcompiler -I $(GENDIR) \
-+	$(C1)$(CCACHE) $(HOST_PREFIX)g++ $(HOSTCFLAGS) -DHOSTBOOT_COMPILE $< -I ifcompiler -I $(GENDIR) \
- 			-I $(GENDIR)/$(IF_CMP_SUBDIR) \
- 			-I $(ROOTPATH)/src/include/usr/hwpf/hwp -c -o $@
- 
--- 
-2.7.4
-
diff --git a/openpower/package/hostboot-p8/0012-kernel-Update-assembly-for-modern-binutils.patch b/openpower/package/hostboot-p8/0012-kernel-Update-assembly-for-modern-binutils.patch
deleted file mode 100644
index 2c51fd3..0000000
--- a/openpower/package/hostboot-p8/0012-kernel-Update-assembly-for-modern-binutils.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 63c3b788eebfa28f0b4032c209e90cc2df7b2c98 Mon Sep 17 00:00:00 2001
-From: Joel Stanley <joel.stanley@au1.ibm.com>
-Date: Tue, 27 Jun 2017 18:00:09 +0930
-Subject: [PATCH] kernel: Update assembly for modern binutils
-
-From Linux 80f23935cadb ("powerpc: Convert cmp to cmpd in idle enter sequence"):
-
-  PowerPC's "cmp" instruction has four operands. Normally people write
-  "cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
-  people forget, and write "cmp" with just three operands.
-
-  With older binutils this is silently accepted as if this was "cmpw",
-  while often "cmpd" is wanted. With newer binutils GAS will complain
-  about this for 64-bit code. For 32-bit code it still silently assumes
-  "cmpw" is what is meant.
-
-The first two instances are dealing with SPRs, which are 32-bit, so cmpw is correct.
-
-It is not clear what to do in the third use of cmp, but given old toolchains
-have generated cmpw lets assume that we should maintain the behaviour.
-
-Change-Id: Iee5dd5903dcd7ac4028bab0176e08ce3db23b2d5
-Signed-off-by: Joel Stanley <joel.stanley@au1.ibm.com>
----
- src/kernel/shutdown.S | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/src/kernel/shutdown.S b/src/kernel/shutdown.S
-index 629645b26c81..cad5c66b8137 100644
---- a/src/kernel/shutdown.S
-+++ b/src/kernel/shutdown.S
-@@ -5,7 +5,9 @@
- #
- # OpenPOWER HostBoot Project
- #
--# COPYRIGHT International Business Machines Corp. 2012,2014
-+# Contributors Listed Below - COPYRIGHT 2012,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.
-@@ -92,7 +94,7 @@ kernel_shutdown_ea0_1_mode:
-         ;// as it was the one that updated the cpu_count & lowest_pir
-         ;// barrier - 1 wait for all nodes to report
-     mfspr  r10, PIR
--    cmp    cr0, r10, r7
-+    cmpw    cr0, r10, r7
-     bne+ 2f       ;// inside KERNEL_BARRIER below
- 
-         ;// Perform barrier - 1
-@@ -131,7 +133,7 @@ kernel_shutdown_ea0_1_mode:
-     addi r8, r8, 8
-             ;// Check for PIR == r7.
-     mfspr r10, PIR
--    cmp cr0, r10, r7
-+    cmpw cr0, r10, r7
-     beq 3f
-         ;// Increment thread count.
- 1:
-@@ -164,7 +166,7 @@ kernel_shutdown_ea0_1_mode:
- 1:
-     or 1,1,1
-     ld r11, 0(r8)
--    cmp cr0, r3, r11
-+    cmpw cr0, r3, r11
-     bne+ 1b
-     isync
-         ;// All other threads have left, so wait a little bit...
--- 
-2.13.1
-
diff --git a/openpower/package/hostboot-p8/Config.in b/openpower/package/hostboot-p8/Config.in
deleted file mode 100644
index 4dacfab..0000000
--- a/openpower/package/hostboot-p8/Config.in
+++ /dev/null
@@ -1,17 +0,0 @@
-config BR2_PACKAGE_HOSTBOOT_P8
-        bool "hostboot-p8"
-        default y if (BR2_OPENPOWER_POWER8)
-        select BR2_CPP
-        help
-            Project to build the hostboot firmware codebase
-
-if BR2_PACKAGE_HOSTBOOT_P8
-
-config BR2_HOSTBOOT_P8_CONFIG_FILE
-        string "Hostboot configuration file for compilation"
-        default default
-        help
-            String used to define hw specific make config file
-
-endif
-
diff --git a/openpower/package/hostboot-p8/hostboot-p8.mk b/openpower/package/hostboot-p8/hostboot-p8.mk
deleted file mode 100644
index 238e7af..0000000
--- a/openpower/package/hostboot-p8/hostboot-p8.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-################################################################################
-#
-# hostboot for POWER8
-#
-################################################################################
-HOSTBOOT_P8_VERSION ?= 3267aff2bc1fe97fdf3dc5ab1d210b8d6a2e74eb
-
-HOSTBOOT_P8_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_P8_VERSION))
-
-HOSTBOOT_P8_LICENSE = Apache-2.0
-HOSTBOOT_P8_LICENSE_FILES = LICENSE
-HOSTBOOT_P8_DEPENDENCIES = host-binutils
-
-HOSTBOOT_P8_INSTALL_IMAGES = YES
-HOSTBOOT_P8_INSTALL_TARGET = NO
-
-HOSTBOOT_P8_ENV_VARS=$(TARGET_MAKE_ENV) \
-    CONFIG_FILE=$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/hostboot/$(BR2_HOSTBOOT_P8_CONFIG_FILE) \
-    OPENPOWER_BUILD=1 CROSS_PREFIX=$(TARGET_CROSS) HOST_PREFIX="" HOST_BINUTILS_DIR=$(HOST_BINUTILS_DIR) \
-    HOSTBOOT_P8_VERSION=`cat $(HOSTBOOT_P8_VERSION_FILE)` 
-
-HOSTBOOT_P8_POST_PATCH_HOOKS += HOSTBOOT_P8_APPLY_PATCHES
-
-define HOSTBOOT_P8_BUILD_CMDS
-        $(HOSTBOOT_P8_ENV_VARS) bash -c 'cd $(@D) && source ./env.bash && $(MAKE)'
-endef
-
-define HOSTBOOT_P8_INSTALL_IMAGES_CMDS
-        cd $(@D) && source ./env.bash && $(@D)/src/build/tools/hbDistribute --openpower $(STAGING_DIR)/hostboot_build_images/
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/machine-xml/Config.in b/openpower/package/machine-xml/Config.in
index c1064d7..8f4c61b 100755
--- a/openpower/package/machine-xml/Config.in
+++ b/openpower/package/machine-xml/Config.in
@@ -3,7 +3,6 @@
 config BR2_PACKAGE_MACHINE_XML
         bool "machine_xml"
         default y if (BR2_OPENPOWER_PLATFORM)
-        select BR2_PACKAGE_COMMON_P8_XML if (BR2_OPENPOWER_POWER8)
 
 choice
 	prompt "Machine XML location"
diff --git a/openpower/package/machine-xml/machine-xml.mk b/openpower/package/machine-xml/machine-xml.mk
index 4d31c4f..cca8630 100644
--- a/openpower/package/machine-xml/machine-xml.mk
+++ b/openpower/package/machine-xml/machine-xml.mk
@@ -18,9 +18,6 @@
 ifeq ($(BR2_OPENPOWER_POWER9),y)
 MACHINE_XML_DEPENDENCIES += hostboot
 endif
-ifeq ($(BR2_OPENPOWER_POWER8),y)
-MACHINE_XML_DEPENDENCIES += hostboot-p8 openpower-mrw common-p8-xml
-endif
 
 MACHINE_XML_INSTALL_IMAGES = YES
 MACHINE_XML_INSTALL_TARGET = YES
diff --git a/openpower/package/occ-p8/Config.in b/openpower/package/occ-p8/Config.in
deleted file mode 100644
index 3fb3b86..0000000
--- a/openpower/package/occ-p8/Config.in
+++ /dev/null
@@ -1,17 +0,0 @@
-config BR2_PACKAGE_OCC_P8
-        bool "OCC for P8"
-        default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER8)
-        depends on BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
-        select BR2_CPP
-        help
-            Project to build OCC
-
-if BR2_PACKAGE_OCC_P8
-
-config BR2_OCC_P8_BIN_FILENAME
-        string "Name of OCC P8 image file"
-	default "occ.bin"
-        help
-            String used to define name of the OCC binary image file
-
-endif
diff --git a/openpower/package/occ-p8/occ-p8.mk b/openpower/package/occ-p8/occ-p8.mk
deleted file mode 100644
index 7630497..0000000
--- a/openpower/package/occ-p8/occ-p8.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-################################################################################
-#
-# occ for power8
-#
-################################################################################
-
-OCC_P8_VERSION ?= 841e28add2a39f0b446a9513fa1fe59e4798177a
-OCC_P8_SITE ?= $(call github,open-power,occ,$(OCC_P8_VERSION))
-OCC_P8_LICENSE = Apache-2.0
-
-OCC_P8_LICENSE_FILES = src/LICENSE
-
-OCC_P8_INSTALL_IMAGES = YES
-OCC_P8_INSTALL_TARGET = NO
-
-OCC_P8_STAGING_DIR = $(STAGING_DIR)/occ
-
-OCC_P8_IMAGE_BIN_PATH = src/image.bin
-OCC_P8_DEPENDENCIES = host-binutils host-p8-pore-toolchain
-
-define OCC_P8_BUILD_CMDS
-        cd $(@D)/src && \
-        make POREPATH=$(P8_PORE_BINUTILS_BIN)/bin/ OCC_OP_BUILD=1 CROSS_PREFIX=$(TARGET_CROSS) all && \
-        make tracehash && \
-        make combineImage
-endef
-
-OCC_P8_BUILD_CMDS ?= $(OCC_P8_BUILD_CMDS_P8)
-
-define OCC_P8_INSTALL_IMAGES_CMDS
-       mkdir -p $(STAGING_DIR)/occ
-       cp $(@D)/$(OCC_P8_IMAGE_BIN_PATH) $(OCC_P8_STAGING_DIR)/$(BR2_OCC_P8_BIN_FILENAME)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/openpower-mrw/Config.in b/openpower/package/openpower-mrw/Config.in
deleted file mode 100644
index ea052b4..0000000
--- a/openpower/package/openpower-mrw/Config.in
+++ /dev/null
@@ -1,3 +0,0 @@
-config BR2_PACKAGE_OPENPOWER_MRW
-        bool "Machine Readable Workbook (MRW) infrastructure"
-        default y if BR2_PACKAGE_HOSTBOOT_P8
diff --git a/openpower/package/openpower-mrw/openpower-mrw.mk b/openpower/package/openpower-mrw/openpower-mrw.mk
deleted file mode 100644
index e70cbd6..0000000
--- a/openpower/package/openpower-mrw/openpower-mrw.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-################################################################################
-#
-# openpower-mrw
-#
-################################################################################
-
-OPENPOWER_MRW_VERSION = 0729a4a68c0e731a8d3720f1a5aee190d165400b
-OPENPOWER_MRW_SITE = $(call github,open-power,openpower-mrw,$(OPENPOWER_MRW_VERSION))
-
-OPENPOWER_MRW_LICENSE = Apache-2.0
-OPENPOWER_MRW_LICENSE_FILES = LICENSE
-OPENPOWER_MRW_DEPENDENCIES =
-
-OPENPOWER_MRW_INSTALL_IMAGES = YES
-OPENPOWER_MRW_INSTALL_TARGET = NO
-
-OPENPOWER_MRW_ENV_VARS=INSTALL_DIRECTORY=$(STAGING_DIR)/usr/bin/
-
-define OPENPOWER_MRW_BUILD_CMDS
-        $(OPENPOWER_MRW_ENV_VARS) bash -c 'cd $(@D) && $(MAKE)'
-endef
-
-define OPENPOWER_MRW_INSTALL_IMAGES_CMDS
-        $(OPENPOWER_MRW_ENV_VARS) bash -c 'cd $(@D) && $(MAKE) install'
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 82280f5..6311b50 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -1,13 +1,11 @@
 config BR2_PACKAGE_OPENPOWER_PNOR
         bool "openpower_pnor"
         default y if (BR2_OPENPOWER_PLATFORM)
-        select BR2_PACKAGE_HOSTBOOT if !BR2_OPENPOWER_POWER8
-        select BR2_PACKAGE_HOSTBOOT_P8 if BR2_OPENPOWER_POWER8
+        select BR2_PACKAGE_HOSTBOOT
         select BR2_PACKAGE_HOSTBOOT_BINARIES
         select BR2_PACKAGE_SKIBOOT
         select BR2_PACKAGE_OPENPOWER_FFS
-        select BR2_PACKAGE_OCC if !BR2_OPENPOWER_POWER8
-        select BR2_PACKAGE_OCC_P8 if BR2_OPENPOWER_POWER8
+        select BR2_PACKAGE_OCC
         select BR2_PACKAGE_CAPP_UCODE
         select BR2_PACKAGE_IMA_CATALOG
         select BR2_PACKAGE_HOST_OPENPOWER_VPNOR
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index 098f02b..7efe895 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -48,8 +48,6 @@
 
 ifeq ($(BR2_OPENPOWER_POWER9),y)
     OPENPOWER_RELEASE=p9
-else
-    OPENPOWER_RELEASE=p8
 endif
 
 OPENPOWER_PNOR_INSTALL_IMAGES = YES
@@ -83,9 +81,7 @@
 
 # Subpackages we want to include in the version info (do not include openpower-pnor)
 OPENPOWER_VERSIONED_SUBPACKAGES = skiboot
-ifeq ($(BR2_PACKAGE_HOSTBOOT_P8),y)
-OPENPOWER_VERSIONED_SUBPACKAGES += hostboot-p8 occ-p8
-endif
+
 ifeq ($(BR2_PACKAGE_HOSTBOOT),y)
 OPENPOWER_VERSIONED_SUBPACKAGES += hostboot occ
 endif
@@ -100,9 +96,7 @@
     OPENPOWER_VERSIONED_SUBPACKAGES += sbe hcode
 endif
 
-ifeq ($(BR2_PACKAGE_OCC_P8),y)
-    OCC_BIN_FILENAME=$(BR2_OCC_P8_BIN_FILENAME)
-else
+ifeq ($(BR2_PACKAGE_OCC),y)
     OCC_BIN_FILENAME=$(BR2_OCC_BIN_FILENAME)
 endif
 
diff --git a/openpower/package/p8-pore-binutils/Config.in b/openpower/package/p8-pore-binutils/Config.in
deleted file mode 100644
index db06064..0000000
--- a/openpower/package/p8-pore-binutils/Config.in
+++ /dev/null
@@ -1,11 +0,0 @@
-config BR2_PACKAGE_HOST_P8_PORE_BINUTILS
-        bool "p8-pore-binutils"
-        select BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
-        select BR2_CPP
-        help
-            Project to build the P8 PORE binutils
-
-if BR2_PACKAGE_HOST_P8_PORE_BINUTILS
-config BR2_PACKAGE_PROVIDES_P8_PORE_TOOLCHAIN
-        default "p8-pore-binutils"
-endif
diff --git a/openpower/package/p8-pore-binutils/p8-pore-binutils.mk b/openpower/package/p8-pore-binutils/p8-pore-binutils.mk
deleted file mode 100644
index 00477a6..0000000
--- a/openpower/package/p8-pore-binutils/p8-pore-binutils.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-################################################################################
-#
-# p8-pore-binutils
-#
-################################################################################
-
-P8_PORE_BINUTILS_VERSION ?= 91069b732e4c253055cd94fff6ad179116563df9
-P8_PORE_BINUTILS_SITE ?= $(call github,open-power,p8-pore-binutils,$(P8_PORE_BINUTILS_VERSION))
-P8_PORE_BINUTILS_LICENSE = GPLv3+
-P8_PORE_BINUTILS_LICENSE_FILES = COPYING3 COPYING.LIB
-P8_PORE_BINUTILS_PROVIDES = p8-pore-toolchain
-HOST_P8_PORE_BINUTILS_DEPENDENCIES = host-binutils
-
-P8_PORE_BINUTILS_DIR = $(HOST_DIR)/$(P8_PORE_TOOLCHAIN_DIR)
-P8_PORE_BINUTILS_BIN = $(HOST_DIR)/$(P8_PORE_TOOLCHAIN_BIN)
-
-define HOST_P8_PORE_BINUTILS_BUILD_CMDS
-        cd $(@D) && \
-        ./configure --prefix=$(P8_PORE_BINUTILS_DIR) \
-                    --exec-prefix=$(P8_PORE_BINUTILS_BIN) \
-                    --target=pore-elf64 && \
-        make configure-host && \
-        make CFLAGS=-Wno-error LDFLAGS=-all-static
-endef
-
-define HOST_P8_PORE_BINUTILS_INSTALL_CMDS
-        bash -c 'cd $(@D) && make install'
-endef
-
-$(eval $(host-generic-package))
diff --git a/openpower/package/p8-pore-toolchain-external/Config.in b/openpower/package/p8-pore-toolchain-external/Config.in
deleted file mode 100644
index cad96c0..0000000
--- a/openpower/package/p8-pore-toolchain-external/Config.in
+++ /dev/null
@@ -1,19 +0,0 @@
-config BR2_PACKAGE_P8_PORE_TOOLCHAIN_EXTERNAL
-	bool "p8-pore-toolchain-external"
-	select BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
-	help
-	  Use an external P8 PORE toolchain
-
-if BR2_PACKAGE_P8_PORE_TOOLCHAIN_EXTERNAL
-config BR2_PACKAGE_PROVIDES_P8_PORE_TOOLCHAIN
-	default "p8-pore-toolchain-external"
-
-config BR2_P8_PORE_TOOLCHAIN_EXTERNAL_PATH
-	string "External P8 PORE toolchain path"
-	help
-	  Pathname to where the external P8 PORE toolchain
-	  is installed. The binutils are expected to be
-	  fully contained within the
-	  "sysroot/p8-pore-toolchain" directory
-endif
-
diff --git a/openpower/package/p8-pore-toolchain-external/p8-pore-toolchain-external.mk b/openpower/package/p8-pore-toolchain-external/p8-pore-toolchain-external.mk
deleted file mode 100644
index c88864a..0000000
--- a/openpower/package/p8-pore-toolchain-external/p8-pore-toolchain-external.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-################################################################################
-#
-# p8-pore-toolchain-external
-#
-################################################################################
-P8_PORE_TOOLCHAIN_EXTERNAL_REDISTRIBUTE = NO
-P8_PORE_TOOLCHAIN_EXTERNAL_SITE =
-P8_PORE_TOOLCHAIN_EXTERNAL_SOURCE =
-P8_PORE_TOOLCHAIN_EXTERNAL_PROVIDES = p8-pore-toolchain
-P8_PORE_TOOLCHAIN_EXTERNAL_PATH = \
-	$(call qstrip,$(BR2_P8_PORE_TOOLCHAIN_EXTERNAL_PATH))/$(P8_PORE_TOOLCHAIN_DIR)
-
-define HOST_P8_PORE_TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
-	test -e $(P8_PORE_TOOLCHAIN_EXTERNAL_PATH)
-endef
-
-define HOST_P8_PORE_TOOLCHAIN_EXTERNAL_INSTALL_CMDS
-	ln -snf $(P8_PORE_TOOLCHAIN_EXTERNAL_PATH) $(HOST_DIR)/$(P8_PORE_TOOLCHAIN_DIR)
-
-endef
-
-$(eval $(host-generic-package))
diff --git a/openpower/package/sb-signing-utils/keys/README.md b/openpower/package/sb-signing-utils/keys/README.md
index f70e6c2..b4c4835 100644
--- a/openpower/package/sb-signing-utils/keys/README.md
+++ b/openpower/package/sb-signing-utils/keys/README.md
@@ -2,7 +2,7 @@
 
 ## Background
 
-IBM P8 OpenPOWER systems support a limited set of Secure and Trusted Boot
+IBM P9 OpenPOWER systems support a limited set of Secure and Trusted Boot
 functionality.  Secure Boot implements a processor based chain of trust.  The
 chain starts with an implicitly trusted component with other components being
 authenticated and integrity checked before being executed on the host processor
@@ -10,7 +10,7 @@
 for Measurement (CRTM).  Immutable Read Only Memory (ROM - fixed in the POWER
 processor chip) verifies the initial firmware load.  That firmware verifies
 cryptographic signatures on all subsequent "to be trusted" firmware that is
-loaded for execution on the P8 cores.  Trusted Boot also makes use of this same
+loaded for execution on the P9 cores.  Trusted Boot also makes use of this same
 CRTM by measuring and recording FW images via a Trusted Platform Module (TPM)
 before control is passed on to the next layer in the boot stack.  The CRTM
 design is based on a Public Key Infrastructure (PKI) process to validate the
@@ -20,7 +20,7 @@
 hypervisors, and operating systems.  Each platform manufacturer wants to
 maintain control over its own code and sign it with its own keys.  A single key
 hash is stored in host processor module SEEPROM representing the anchoring root
-set of hardware keys.  The P8 Trusted Boot supports a key management flow that
+set of hardware keys.  The P9 Trusted Boot supports a key management flow that
 makes use of two kinds of hardware root keys, a wide open, well-known, openly
 published public/private key pair (imprint keys) and a set of production keys
 where the private key is protected by a hardware security module (HSM) internal
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0001-Memory-Interleaving-Grouping-change-for-p8dtu.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0001-Memory-Interleaving-Grouping-change-for-p8dtu.patch
deleted file mode 100644
index acdb1c0..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0001-Memory-Interleaving-Grouping-change-for-p8dtu.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e6db702ece6f5d13c7d0b288203a0715b4a2a35b Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 18 Oct 2016 16:08:13 -0700
-Subject: [PATCH 01/14] Memory Interleaving Grouping change for p8dtu. Allow
- not adjacent pair for p8dtu.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/targeting/common/xmltohb/attribute_types.xml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
-index 0fc5f4eac..d7fc183a4 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
-@@ -13812,7 +13812,7 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
-     </description>
-     <simpleType>
-         <uint8_t>
--        <default>1</default>
-+        <default>0</default>
-         </uint8_t>
-     </simpleType>
-     <persistency>non-volatile</persistency>
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0002-Support-130W-Turismo-Parts.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0002-Support-130W-Turismo-Parts.patch
deleted file mode 100644
index 9b3c4b0..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0002-Support-130W-Turismo-Parts.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3040a458385e82d7d9edf7b926fcdba641d0a048 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 18 Oct 2016 16:12:21 -0700
-Subject: [PATCH 02/14] Support 130W Turismo Parts.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/targeting/common/xmltohb/attribute_types.xml | 2 +-
- src/usr/targeting/common/xmltohb/target_types.xml    | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
-index d7fc183a4..0f0e2f6a7 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
-@@ -15890,7 +15890,7 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
-     <simpleType>
-         <enumeration>
-             <id>MRW_NEST_CAPABLE_FREQUENCIES_SYS</id>
--            <default>UNSUPPORTED_FREQ</default>
-+            <default>2000_MHZ_OR_2400_MHZ</default>
-         </enumeration>
-     </simpleType>
-     <persistency>non-volatile</persistency>
-diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
-index b28607ca2..a150ce64d 100644
---- a/src/usr/targeting/common/xmltohb/target_types.xml
-+++ b/src/usr/targeting/common/xmltohb/target_types.xml
-@@ -681,7 +681,7 @@
-     </attribute>
-     <attribute>
-         <id>DEFAULT_PROC_MODULE_NEST_FREQ_MHZ</id>
--        <default>2400</default>
-+        <default>2000</default>
-     </attribute>
- </targetType>
- 
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0003-Add-support-for-memory-voltage-control-for-p8dtu.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0003-Add-support-for-memory-voltage-control-for-p8dtu.patch
deleted file mode 100644
index 4f6b021..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0003-Add-support-for-memory-voltage-control-for-p8dtu.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 783332cc9afcf3c8581760112162b650a9e01c7e Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 4 Oct 2016 16:07:44 -0700
-Subject: [PATCH 03/14] Adds support for memory voltage control specific to the p8dtu platform.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/hwpf/hwp/dram_training/palmetto_vddr.C | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C b/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C
-index b0f6bed4c..95c3924b8 100644
---- a/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C
-+++ b/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C
-@@ -168,6 +168,7 @@ static errlHndl_t for_each_vddr_domain_with_functional_memory(
-     std::sort(l_membufTargetList.begin(), l_membufTargetList.end(),
-         compareTargetsGpioInfos);
- 
-+/*
-     // Prune out targets with non-unique GPIO info
-     std::vector<TARGETING::TargetHandle_t>::iterator
-         pInvalidEntries = std::unique(
-@@ -175,6 +176,7 @@ static errlHndl_t for_each_vddr_domain_with_functional_memory(
-             l_membufTargetList.end(),
-             areTargetsGpioInfoEqual);
-     l_membufTargetList.erase(pInvalidEntries,l_membufTargetList.end());
-+*/
- 
-     // Invoke callback for one Centaur per unique VDDR domain
-     for (TargetHandleList::iterator
-@@ -274,6 +276,7 @@ static errlHndl_t pca95xGpioWriteBit(TARGETING::Target * i_target,
-                            i_val);
- 
-     // Configure gpio bit as output (if necessary).
-+/*    
-     if(!err)
-     {
-         err = pca95xGpioSetBit(i_target,
-@@ -281,6 +284,7 @@ static errlHndl_t pca95xGpioWriteBit(TARGETING::Target * i_target,
-                                i_gpio_pin,
-                                PCA95X_GPIO_CONFIG_OUTPUT);
-     }
-+*/
- 
-     return err;
- }
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0004-change-esel-command-netfn-to-IBM-0x3a.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0004-change-esel-command-netfn-to-IBM-0x3a.patch
deleted file mode 100644
index 3215bc2..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0004-change-esel-command-netfn-to-IBM-0x3a.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From eee0dcae475618bef686198baf28c750de9a63a5 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 11 Oct 2016 10:00:15 -0700
-Subject: [PATCH 04/14] change esel command netfn to IBM 0x3a
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/include/usr/ipmi/ipmiif.H | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 5c2444f26..94fca5fb6 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -265,7 +265,7 @@ namespace IPMI
- 
-     //AMI-specific storage messages
-     inline const command_t partial_add_esel(void)
--    { return std::make_pair(NETFUN_AMI, 0xf0); }
-+	{ return std::make_pair(NETFUN_IBM, 0xf0); }
- 
-     // event messages
-     inline const command_t platform_event(void)
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0005-change-pnor-response-command-to-0x7.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0005-change-pnor-response-command-to-0x7.patch
deleted file mode 100644
index 943b471..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0005-change-pnor-response-command-to-0x7.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 50ae9cf95223a5f6492e7e515ccef9d4499ef823 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 11 Oct 2016 10:03:01 -0700
-Subject: [PATCH 05/14] change pnor response command to 0x7
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/include/usr/ipmi/ipmiif.H | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 94fca5fb6..4b41cb3bc 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -289,7 +289,7 @@ namespace IPMI
-     { return std::make_pair(NETFUN_IBM, 0x07); }
- 
-     inline const command_t pnor_response(void)
--    { return std::make_pair(NETFUN_IBM, 0x08); }
-+	{ return std::make_pair(NETFUN_IBM, 0x07); }
- 
-     inline const command_t hiomap_event(void)
-     { return std::make_pair(NETFUN_IBM, 0x0f); }
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0006-send-board-ID-to-ipmi.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0006-send-board-ID-to-ipmi.patch
deleted file mode 100644
index 58ddb2d..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0006-send-board-ID-to-ipmi.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 73ba34b74551c5f61a1f2c93f48a7f59cb576cd6 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 11 Oct 2016 10:26:14 -0700
-Subject: [PATCH 06/14] send board ID to ipmi
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/include/usr/ipmi/ipmiif.H                      |  6 ++++-
- src/include/usr/ipmi/ipmipowerstate.H              |  2 +-
- .../initservice/istepdispatcher/istepdispatcher.C  | 11 ++++++++
- src/usr/ipmiext/ipmipowerstate.C                   | 29 ++++++++++++++++++++++
- 4 files changed, 46 insertions(+), 2 deletions(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 4b41cb3bc..8039adbf7 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -299,7 +299,11 @@ namespace IPMI
-     // user defined power limit from the BMC.
-     inline const command_t get_power_limit(void)
-     { return std::make_pair(NETFUN_GRPEXT, 0x03); }
--
-+	
-+	//SMC	  
-+	inline const command_t set_board_id(void)
-+	{ return std::make_pair(NETFUN_NONE, 0x20); }
-+	
-     // Some helper messages
-     // Used to create an empty message for reception
-     inline const command_t no_command(void)
-diff --git a/src/include/usr/ipmi/ipmipowerstate.H b/src/include/usr/ipmi/ipmipowerstate.H
-index b65275075..e943e8b66 100644
---- a/src/include/usr/ipmi/ipmipowerstate.H
-+++ b/src/include/usr/ipmi/ipmipowerstate.H
-@@ -78,7 +78,7 @@ enum ACPI_DEVICE_POWER_STATE_TO_SET
-  */
- errlHndl_t setACPIPowerState();
- 
--
-+errlHndl_t SmcsetBoardId();
- } // namespace
- 
- #endif
-diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
-index 16f1c8a01..0f9731094 100644
---- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
-+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
-@@ -284,6 +284,17 @@ void IStepDispatcher::init(errlHndl_t &io_rtaskRetErrl)
-             err_ipmi->collectTrace("INITSVC", 1024);
-             errlCommit(err_ipmi, INITSVC_COMP_ID );
-         }
-+		//send board ID
-+		errlHndl_t err_ipmi1 = IPMI::SmcsetBoardId();
-+		
-+		if(err_ipmi1)
-+		{
-+		TRACFCOMP(g_trac_initsvc,
-+						   "init: ERROR: IPMI set Board Id Failed");
-+			 err_ipmi->collectTrace("INITSVC", 1024);
-+			 errlCommit(err_ipmi1, INITSVC_COMP_ID );
-+		 }
-+		
- #endif
- 
- 
-diff --git a/src/usr/ipmiext/ipmipowerstate.C b/src/usr/ipmiext/ipmipowerstate.C
-index 30c2a70ef..f8e61f82b 100644
---- a/src/usr/ipmiext/ipmipowerstate.C
-+++ b/src/usr/ipmiext/ipmipowerstate.C
-@@ -50,6 +50,35 @@ namespace IPMI
- /******************************************************************************/
- // Functions
- /******************************************************************************/
-+errlHndl_t SmcsetBoardId()
-+{
-+    errlHndl_t err_ipmi = NULL;
-+
-+    size_t len = 10; 
-+
-+    //create request data buffer
-+    uint8_t* data = new uint8_t[len];
-+
-+    IPMI::completion_code cc = IPMI::CC_UNKBAD;
-+    //P8DTU board ID 0933
-+    data[0] = 0x33;
-+    data[1] = 0x9;
-+    memset(&data[2], 0, 8);
-+    err_ipmi = IPMI::sendrecv(IPMI::set_board_id(), cc, len, data);
-+
-+    //cleanup buffer
-+    delete[] data;
-+
-+    if(cc != IPMI::CC_OK)
-+    {
-+        IPMI_TRAC("Set board id: BMC returned not ok CC[%x]",cc);
-+        // should we log error and then retry?
-+        // what happens if the communication is broken
-+        // reset will try and set it again.
-+    }
-+
-+    return err_ipmi;
-+}
- 
- errlHndl_t setACPIPowerState()
- {
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0007-read-riser-id-from-CPLD.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0007-read-riser-id-from-CPLD.patch
deleted file mode 100644
index af19f74..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0007-read-riser-id-from-CPLD.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 94de2f7f944a2cabbdf699adcbc6679a091ad324 Mon Sep 17 00:00:00 2001
-From: Leoluo <leoluo@supermicro.com>
-Date: Tue, 8 Mar 2016 17:01:26 -0800
-Subject: [PATCH 07/14] read riser id from CPLD
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/include/usr/ipmi/ipmiif.H                  |  3 ++
- src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C | 42 +++++++++++++++++++++++++-
- 2 files changed, 44 insertions(+), 1 deletion(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 8039adbf7..9dfd8ee63 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -238,6 +238,9 @@ namespace IPMI
-     inline const command_t get_capabilities(void)
-     { return std::make_pair(NETFUN_APP, 0x36); }
- 
-+    inline const command_t master_readwrite(void)
-+    { return std::make_pair(NETFUN_APP, 0x52); }
-+
- 
-     // Chassis messages
-     inline const command_t chassis_power_off(void)
-diff --git a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
-index d122ae4de..73f1a0a3f 100644
---- a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
-+++ b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
-@@ -58,6 +58,8 @@
- //  MVPD
- #include <devicefw/userif.H>
- #include <vpd/mvpdenums.H>
-+#include <ipmi/ipmiif.H>
-+
- 
- #include <config.h>
- 
-@@ -1743,7 +1745,40 @@ errlHndl_t computeProcPcieConfigAttrs(
-             effectiveLaneSwap[iop] = laneSwap;
-         }
- #endif
--
-+   uint8_t riser_id = 0 ;
-+	errlHndl_t l_err = NULL;
-+	
-+	
-+	size_t len = 4;
-+	
-+	//create request data buffer
-+	uint8_t* data = new uint8_t[len];
-+	
-+	IPMI::completion_code cc = IPMI::CC_UNKBAD;
-+	
-+	data[0] = 0x3;  
-+	data[1] = 0x70;  
-+	data[2] = 0x1;  
-+	data[3] = 0x1;  
-+	l_err = IPMI::sendrecv(IPMI::master_readwrite(), cc, len, data);
-+	
-+	if( l_err == NULL )
-+	{
-+		if( cc == IPMI::CC_OK )
-+		{
-+		riser_id = data[0];
-+		}
-+		
-+		delete[] data;
-+	}
-+
-+
-+       if((i_pProcChipTarget->getAttr<TARGETING::ATTR_HUID>()) == 0x50001 && (riser_id == 0xE) ){	   	
-+		effectiveLaneMask[1][0] = 0xFFFF;
-+	    effectiveLaneMask[1][1] = 0x0000;      
-+          effectiveLaneSwap[1] = 0x0;
-+       	}
-+	   
-         i_pProcChipTarget->setAttr<
-             TARGETING::ATTR_PROC_PCIE_LANE_MASK>(effectiveLaneMask);
- 
-@@ -1797,6 +1832,11 @@ errlHndl_t computeProcPcieConfigAttrs(
-             iopConfig = laneConfigItr->laneConfig;
-             phbActiveMask = laneConfigItr->phbActive;
- 
-+			if((i_pProcChipTarget->getAttr<TARGETING::ATTR_HUID>()) == 0x50001 && (riser_id == 0xE) ){
-+	   	       iopConfig = 0 ;
-+	           phbActiveMask = PHB0_MASK|PHB1_MASK;
-+       	      }
-+
-             // Disable applicable PHBs
-             phbActiveMask &= (~disabledPhbs);
-             (void)_deconfigPhbsBasedOnPciState(
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch
deleted file mode 100644
index 41c24b3..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0008-Fill-board-mfg-time-and-date-in-FRU3.-It-is-read-fro.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From ed60d5736559c4e100e5db20de942a584b58b6f0 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Wed, 25 May 2016 15:24:40 -0700
-Subject: [PATCH 08/14] Fill board mfg time and date in FRU3. It is read from
- PVPD:VNDR:IN.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/ipmiext/ipmifruinv.C | 65 +++++++++++++++++++++++++++++++++-----------
- 1 file changed, 49 insertions(+), 16 deletions(-)
-
-diff --git a/src/usr/ipmiext/ipmifruinv.C b/src/usr/ipmiext/ipmifruinv.C
-index 23aaf9b97..11fbd7677 100644
---- a/src/usr/ipmiext/ipmifruinv.C
-+++ b/src/usr/ipmiext/ipmifruinv.C
-@@ -1279,31 +1279,64 @@ errlHndl_t backplaneIpmiFruInv::buildChassisInfoArea(
-     return l_errl;
- }
- 
-+// Quick hexdigit to binary converter.
-+// Hopefull someday to replaced by strtoul
-+uint8_t aschex2bin(char c)
-+{
-+    if(c >= 'a' && c <= 'f')
-+    {
-+        c = c + 10 - 'a';
-+    }
-+    else if (c >= 'A' && c <= 'F')
-+    {
-+        c = c + 10 - 'A';
-+    }
-+    else if (c >= '0' && c <= '9')
-+    {
-+       c -= '0';
-+    }
-+    else return 0;// else it's not a hex digit, return 0
-+
-+    return c;
-+}
-+
-+
- errlHndl_t backplaneIpmiFruInv::buildBoardInfoArea(
-                                               std::vector<uint8_t> &io_data)
- {
-     errlHndl_t l_errl = NULL;
-+	std::vector<uint8_t> oem_data; //jim052316
-+	uint8_t i, data1, data2, data3;//jim052316
- 
-     do {
-         //Set formatting data that goes at the beginning of the record
-         preFormatProcessing(io_data, true);
- 
--        // Set Mfg Build date
--        // Grab VPD data into seperate data vector
--        std::vector<uint8_t> mfgDateData;
--        l_errl = addVpdData(mfgDateData, PVPD::OPFR, PVPD::MB, false, false);
--        if (l_errl)
--        {
--            // The MB keyword was optional on older cards so just ignore
--            //  any errors
--            delete l_errl;
--            l_errl = NULL;
--        }
--        else
--        {
--            // Pass that to the function that sets the Build date
--            setMfgData(io_data, mfgDateData);
--        }
-+        l_errl = addVpdData(oem_data, PVPD::VNDR, PVPD::IN, true);
-+        if (l_errl) { break; }
-+
-+		for (i=0; i < oem_data.size(); i++)
-+		TRACFCOMP(g_trac_ipmi,"Jimdebug board VNDR:IN data is 0x%x", oem_data[i]);
-+
-+		data1 = (aschex2bin(oem_data[5]) << 4) | aschex2bin(oem_data[6]);//jim052416
-+		data2 = (aschex2bin(oem_data[3]) << 4) | aschex2bin(oem_data[4]);
-+		data3 = (aschex2bin(oem_data[1]) << 4) | aschex2bin(oem_data[2]);  
-+
-+		
-+		TRACFCOMP(g_trac_ipmi,"Jimdebug push data1 is 0x%x", data1);
-+		TRACFCOMP(g_trac_ipmi,"Jimdebug push data2 is 0x%x", data2);
-+		TRACFCOMP(g_trac_ipmi,"Jimdebug push data3 is 0x%x", data3);
-+
-+		
-+        io_data.push_back(data1); 
-+        io_data.push_back(data2);
-+        io_data.push_back(data3);
-+
-+
-+        //Set MFG Date/Time - Blank
-+        //io_data.push_back(0x5E); //jim52016
-+        //io_data.push_back(0x9A);
-+        //io_data.push_back(0xA3);
- 
-         //Set Vendor Name - ascii formatted data
-         l_errl = addVpdData(io_data, PVPD::OPFR, PVPD::VN, true);
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0009-Hardcode-DIMM-pairing-for-RAS.-Fix-the-issue-that-MB.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0009-Hardcode-DIMM-pairing-for-RAS.-Fix-the-issue-that-MB.patch
deleted file mode 100644
index c6f4a1c..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0009-Hardcode-DIMM-pairing-for-RAS.-Fix-the-issue-that-MB.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 9d8e17897f398f1f750c87c4dcf58fe9e64ffed9 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Thu, 7 Jul 2016 15:53:31 -0700
-Subject: [PATCH 09/14] Hardcode DIMM pairing for RAS. Fix the issue that MBA0
- Memory UE on Cenatur Chip4 brought all dimms under Proc2 offline.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/hwas/common/deconfigGard.C | 19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C
-index fa266c881..bd4e4fe4c 100644
---- a/src/usr/hwas/common/deconfigGard.C
-+++ b/src/usr/hwas/common/deconfigGard.C
-@@ -980,8 +980,25 @@ Target * findPartnerForMcs(const Target *i_startMcs)
-     // Declare partner MCS CHIP_UNIT
-     ATTR_CHIP_UNIT_type partnerMcsUnit = 0;
- 
-+	// Add temp code to handle different MCS pairing
-+	if (startMcsUnit == 0)
-+	{
-+		partnerMcsUnit = 4;
-+	}
-+	else if (startMcsUnit == 1)
-+	{
-+		partnerMcsUnit = 5;
-+	}
-+	else if (startMcsUnit == 4)
-+	{
-+		partnerMcsUnit = 0;
-+	}
-+	else if (startMcsUnit == 5)
-+	{
-+		partnerMcsUnit = 1;
-+	}
-     // If CHIP_UNIT is even, its partner will be the next MCS
--    if (!(startMcsUnit % 2))
-+    else if (!(startMcsUnit % 2))
-     {
-         partnerMcsUnit = startMcsUnit + 1;
-     }
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0010-Adjust-APSS-gain-and-offset-from-PWS-FRU-information.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0010-Adjust-APSS-gain-and-offset-from-PWS-FRU-information.patch
deleted file mode 100644
index 172d6ac..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0010-Adjust-APSS-gain-and-offset-from-PWS-FRU-information.patch
+++ /dev/null
@@ -1,308 +0,0 @@
-From bdd6ce1bbfe0ee77feefe84662e961fb253c6195 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Fri, 22 Jul 2016 17:50:57 -0700
-Subject: [PATCH 10/14] Adjust APSS gain and offset from PWS FRU information.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/include/usr/ipmi/ipmiif.H                      |   4 +-
- src/usr/htmgt/htmgt_cfgdata.C                      |   2 +
- src/usr/hwpf/hwp/start_payload/start_payload.C     | 212 +++++++++++++++++++++
- .../common/xmltohb/attribute_types_hb.xml          |   2 +
- 4 files changed, 218 insertions(+), 2 deletions(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 9dfd8ee63..5416ddca0 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -251,8 +251,8 @@ namespace IPMI
-     inline const command_t set_sel_time(void)
-     { return std::make_pair(NETFUN_STORAGE, 0x49); }
- 
--    inline const command_t read_fru_data(void)
--    { return std::make_pair(NETFUN_STORAGE, 0x11); }
-+	inline const command_t read_fru_data(void)
-+	{ return std::make_pair(NETFUN_STORAGE, 0x11); }	
- 
-     inline const command_t write_fru_data(void)
-     { return std::make_pair(NETFUN_STORAGE, 0x12); }
-diff --git a/src/usr/htmgt/htmgt_cfgdata.C b/src/usr/htmgt/htmgt_cfgdata.C
-index 19e7b21bf..7c42abdb6 100644
---- a/src/usr/htmgt/htmgt_cfgdata.C
-+++ b/src/usr/htmgt/htmgt_cfgdata.C
-@@ -1025,6 +1025,8 @@ void getApssMessageData(uint8_t* o_data,
-     ATTR_ADC_CHANNEL_OFFSETS_type offset;
-     sys->tryGetAttr<ATTR_ADC_CHANNEL_OFFSETS>(offset);
- 
-+    TMGT_INF("getApssMessageData: gain is %d, offset is %d", gain[15], offset[15]); //jim
-+
-     CPPASSERT(sizeof(function) == sizeof(ground));
-     CPPASSERT(sizeof(function) == sizeof(gain));
-     CPPASSERT(sizeof(function) == sizeof(offset));
-diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.C b/src/usr/hwpf/hwp/start_payload/start_payload.C
-index 5d7865a12..ad155f19e 100644
---- a/src/usr/hwpf/hwp/start_payload/start_payload.C
-+++ b/src/usr/hwpf/hwp/start_payload/start_payload.C
-@@ -88,6 +88,7 @@
- #include    <algorithm>
- #include    <config.h>
- #include    <ipmi/ipmiwatchdog.H>
-+#include    <ipmi/ipmiif.H> //jim
- #include    <vpd/vpd_if.H>
- 
- #include    <hwpf/hwpf_reasoncodes.H>
-@@ -95,6 +96,7 @@
- //  Uncomment these files as they become available:
- // #include    "host_start_payload/host_start_payload.H"
- 
-+
- namespace   START_PAYLOAD
- {
- 
-@@ -277,6 +279,214 @@ errlHndl_t setMaxPstate ( void )
- }
- #endif
- 
-+//jim-start
-+enum
-+{
-+PWS_1600 = 0,
-+PWS_1000 = 1,
-+PWS_1200 = 2,
-+PWS_UNKNOWN = 0xFE,
-+};
-+
-+uint8_t getPSUFRUFromIPMICommands(void)
-+{
-+	errlHndl_t l_err = NULL;
-+	uint8_t* frudata = new uint8_t[120];
-+	size_t len = 4;
-+	uint8_t fru_header_version = 0;
-+	uint8_t j = 0, loop_break = 0, read_offset = 0;
-+	
-+	//create request data buffer
-+	uint8_t* data = new uint8_t[len];
-+	
-+	IPMI::completion_code cc = IPMI::CC_UNKBAD;
-+	
-+	data[0] = 60; //try to read from PWS1. 60-PWS1, 61-PWS2
-+	data[1] = 0x0;  
-+	data[2] = 0x0;  
-+	data[3] = 8;  
-+	l_err = IPMI::sendrecv(IPMI::read_fru_data(), cc, len, data);
-+	
-+	for (uint8_t i = 0; i <= 8; i++ )
-+	fru_header_version = data[1] & 0xF; //normal should be 0x01.
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "fru header version is %x", fru_header_version);
-+	delete[] data;	
-+	
-+	if((l_err == NULL) && (cc == IPMI::CC_OK) && (fru_header_version == 1))
-+	{		
-+		TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "could get FRU from PWS1");
-+
-+		while ((l_err == NULL) && (loop_break == 0) && (read_offset < 100))
-+		{			
-+		//create request data buffer
-+		len = 4; //must set len every time
-+		uint8_t* data = new uint8_t[len];
-+	
-+		IPMI::completion_code cc = IPMI::CC_UNKBAD;
-+	
-+		data[0] = 60;  //read from PWS1
-+		data[1] = read_offset;  
-+		data[2] = 0x0;  
-+		data[3] = 8;  
-+		l_err = IPMI::sendrecv(IPMI::read_fru_data(), cc, len, data);
-+		
-+		if (cc != IPMI::CC_OK) loop_break = 1;
-+		
-+		read_offset += 8;
-+		for (uint8_t i = 1; i <= 8; i++ )
-+			{
-+			frudata[j] = data[i];
-+			j++;
-+			}
-+		delete[] data;	
-+		}
-+		
-+
-+	}
-+	else	
-+	{
-+		TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "could get FRU from PWS2");
-+
-+		while ((l_err == NULL) && (loop_break == 0) && (read_offset < 100))
-+		{			
-+		//create request data buffer
-+		len = 4;//must set len every time
-+		uint8_t* data = new uint8_t[len];
-+	
-+		IPMI::completion_code cc = IPMI::CC_UNKBAD;
-+	
-+		data[0] = 61;  //read from PWS2
-+		data[1] = read_offset;  
-+		data[2] = 0x0;  
-+		data[3] = 8;  
-+		l_err = IPMI::sendrecv(IPMI::read_fru_data(), cc, len, data);
-+		
-+		if (cc != IPMI::CC_OK) loop_break = 1;
-+		
-+		read_offset += 8;
-+		for (uint8_t i = 1; i <= 8; i++ )
-+			{
-+			frudata[j] = data[i];
-+			j++;
-+			}	
-+		delete[] data;
-+		}
-+		
-+	}
-+
-+	uint8_t product_info_offset, manufacture_name_offset, manufacture_name_length, product_name_offset, product_name_length; 
-+	uint8_t product_partnumber_offset, product_partnumber_length;
-+	uint8_t fru_offset, powerSupplyFru = PWS_UNKNOWN;
-+	uint8_t pws1600[] = {'P','W','S','-','1','K','6','2','A','-','1','R'};
-+	uint8_t pws1000[] = {'P','W','S','-','1','K','0','2','A','-','1','R'};
-+	uint8_t pws1200[] = {'P','W','S','-','1','K','2','2','A','-','1','R'};
-+
-+	//code to calculate product part number size and offset. should use structure. refer to FRU spec.		
-+	product_info_offset = frudata[4] * 8;
-+	manufacture_name_offset = product_info_offset + 3;
-+	manufacture_name_length = frudata[manufacture_name_offset] & 0x3F;
-+	product_name_offset = manufacture_name_offset + manufacture_name_length + 1;
-+	product_name_length = frudata[product_name_offset] & 0x3F;
-+	product_partnumber_offset = product_name_offset + product_name_length + 1;
-+	product_partnumber_length = frudata[product_partnumber_offset] & 0x3F;
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "product_partnumber_length is %x", product_partnumber_length);
-+	fru_offset = product_partnumber_offset + 1;
-+	
-+	if (product_partnumber_length == 12)
-+	{
-+		for (uint8_t i = 0; pws1600[i] == frudata[fru_offset + i] ; i ++)
-+			if (i == 11)
-+			powerSupplyFru = PWS_1600;
-+		
-+		for (uint8_t i = 0; pws1000[i] == frudata[fru_offset + i] ; i ++)
-+			if (i == 11)
-+			powerSupplyFru = PWS_1000;
-+		
-+		for (uint8_t i = 0; pws1200[i] == frudata[fru_offset + i] ; i ++)
-+			if (i == 11)
-+			powerSupplyFru = PWS_1200;
-+	}
-+	else	
-+		powerSupplyFru = PWS_UNKNOWN;
-+
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "powerSupplyFru is %x", powerSupplyFru);
-+	
-+	return powerSupplyFru;
-+
-+}
-+//find apss channel number from XML.
-+enum
-+{
-+V12_SENSE = 0,
-+PROC0_POWER = 1,
-+PROC1_POWER = 2,
-+PCIE_PROC0_POWER = 5,
-+PCIE_PROC1_POWER = 6,	
-+TOTAL_SYSTEM_POWER = 15,	
-+};	
-+
-+void setAPSSGainOffsetFromPWSInfo(void)
-+{
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "before load OCC");
-+
-+	//Get Gain/Offset ATTR
-+	TARGETING::Target* sys = NULL;
-+	targetService().getTopLevelTarget(sys);
-+
-+	ATTR_ADC_CHANNEL_GAINS_type gain;
-+	sys->tryGetAttr<ATTR_ADC_CHANNEL_GAINS>(gain);
-+
-+	ATTR_ADC_CHANNEL_OFFSETS_type offset;
-+	sys->tryGetAttr<ATTR_ADC_CHANNEL_OFFSETS>(offset);
-+
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "gain is %d, offset is %d", gain[15], offset[15]);
-+
-+	//Note that the function/ APSS channel ids can be indirect. I've hardcoded here, you will need to look at the XML to find the channel/function number that matches
-+	//const uint8_t SYS_CHANNEL = 15; //APSS Channel 15 is sys power, ie the gain/offset we need to tweak
-+
-+	//Get power supply data from BMC
-+	uint8_t powerSupplyFru = getPSUFRUFromIPMICommands();
-+	
-+	switch(powerSupplyFru)
-+	{
-+	case PWS_1600: //PWS-1K62A-1R (1600W):
-+	gain[TOTAL_SYSTEM_POWER] = 67800;
-+	offset[TOTAL_SYSTEM_POWER] = 0;
-+	break;
-+
-+	case PWS_1000: //PWS-1K02A-1R (1000W):
-+	gain[TOTAL_SYSTEM_POWER] = 41500;
-+	offset[TOTAL_SYSTEM_POWER] = 0;
-+	break;
-+
-+	case PWS_1200: //PWS-1K22A-1R (1200W):
-+	gain[TOTAL_SYSTEM_POWER] = 50000; 
-+	offset[TOTAL_SYSTEM_POWER] = 0;
-+	break;
-+
-+	default:
-+	//Do nothing, leave defaults
-+	//Gen error for user attention?
-+	break;
-+	}
-+
-+	//Now write the attributes back so they get picked up by OCC code
-+	if (!sys->trySetAttr<ATTR_ADC_CHANNEL_GAINS>(gain))
-+	{
-+	//unlikely, crash
-+	//Emit failing trace/console data
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "set gain failed");
-+	assert(0);
-+	}
-+
-+	if (!sys->trySetAttr<ATTR_ADC_CHANNEL_OFFSETS>(offset))
-+	{
-+	//unlikely, crash
-+	//Emit failing trace/console data
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "set offset failed");
-+	assert(0);
-+	}
-+}
- //
- //  Wrapper function to call host_runtime_setup
- //
-@@ -318,6 +528,8 @@ void*    call_host_runtime_setup( void    *io_pArgs )
-             break;
-         }
- 
-+	setAPSSGainOffsetFromPWSInfo(); //jim add code before activate OCC. START_OCC_DURING_BOOT is defined in config.
-+
-         bool l_activateOCC = is_avp_load();
- 
- #ifdef CONFIG_START_OCC_DURING_BOOT
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-index c4eb6603d..64a0c9bae 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-@@ -747,6 +747,7 @@
-     </simpleType>
-     <persistency>non-volatile</persistency>
-     <readable/>
-+    <writeable/>
- </attribute>
- 
- <attribute>
-@@ -758,6 +759,7 @@
-     </simpleType>
-     <persistency>non-volatile</persistency>
-     <readable/>
-+    <writeable/>
- </attribute>
- 
- <attribute>
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0012-Set-OPAL_MODEL-to-p8dtu1u-or-p8dtu2u-for-1U-and-2U-s.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0012-Set-OPAL_MODEL-to-p8dtu1u-or-p8dtu2u-for-1U-and-2U-s.patch
deleted file mode 100644
index bc4f492..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0012-Set-OPAL_MODEL-to-p8dtu1u-or-p8dtu2u-for-1U-and-2U-s.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 1e6bb450cf94fc3ade70f82703e6c57a30bbebaa Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Wed, 10 Aug 2016 10:41:32 -0700
-Subject: [PATCH 12/14] Set OPAL_MODEL to p8dtu1u or p8dtu2u for 1U and 2U
- system.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/hwpf/hwp/start_payload/start_payload.C     | 66 +++++++++++++++++++++-
- .../common/xmltohb/attribute_types_hb.xml          |  1 +
- 2 files changed, 66 insertions(+), 1 deletion(-)
-
-diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.C b/src/usr/hwpf/hwp/start_payload/start_payload.C
-index ad155f19e..80e62a0b6 100644
---- a/src/usr/hwpf/hwp/start_payload/start_payload.C
-+++ b/src/usr/hwpf/hwp/start_payload/start_payload.C
-@@ -89,6 +89,8 @@
- #include    <config.h>
- #include    <ipmi/ipmiwatchdog.H>
- #include    <ipmi/ipmiif.H> //jim
-+#include	<string.h> //jim
-+
- #include    <vpd/vpd_if.H>
- 
- #include    <hwpf/hwpf_reasoncodes.H>
-@@ -487,6 +489,67 @@ void setAPSSGainOffsetFromPWSInfo(void)
- 	assert(0);
- 	}
- }
-+
-+
-+void setOpalMode (void)
-+{
-+
-+ uint8_t riser_id = 0 ;
-+ errlHndl_t l_err = NULL; 
-+ size_t len = 4;
-+ 
-+ //create request data buffer
-+ uint8_t* data = new uint8_t[len];
-+ 
-+ IPMI::completion_code cc = IPMI::CC_UNKBAD;
-+ 
-+ data[0] = 0x3;  
-+ data[1] = 0x70;  
-+ data[2] = 0x1;  
-+ data[3] = 0x2;  //offset 0x2 for UIO info
-+ l_err = IPMI::sendrecv(IPMI::master_readwrite(), cc, len, data);
-+ 
-+ if( l_err == NULL )
-+ {
-+	 if( cc == IPMI::CC_OK )
-+	 {
-+	 riser_id = data[0];
-+	 }
-+	 
-+	 delete[] data;
-+ }
-+
-+ATTR_OPAL_MODEL_type l_model = {0};
-+
-+TARGETING::Target* sys = NULL;
-+targetService().getTopLevelTarget(sys);
-+
-+sys->tryGetAttr<TARGETING::ATTR_OPAL_MODEL>(l_model);
-+TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "OPAL Mode is %s", l_model);
-+TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "Riser ID is %d", riser_id);
-+
-+if (riser_id == 0x9)
-+	{
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "1U OPAL Mode");
-+	strcpy (l_model, "supermicro,p8dtu1u");
-+
-+	}
-+else  //(riser_id == 0x19)
-+	{
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "2U OPAL Mode");
-+	strcpy (l_model, "supermicro,p8dtu2u");
-+	}
-+
-+if (!sys->trySetAttr<TARGETING::ATTR_OPAL_MODEL>(l_model))
-+	{
-+	TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "set OPAL Mode failed");
-+	assert(0);
-+	}
-+
-+sys->tryGetAttr<TARGETING::ATTR_OPAL_MODEL>(l_model);
-+TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "after set, OPAL Mode is %s", l_model);
-+
-+}
- //
- //  Wrapper function to call host_runtime_setup
- //
-@@ -529,7 +592,8 @@ void*    call_host_runtime_setup( void    *io_pArgs )
-         }
- 
- 	setAPSSGainOffsetFromPWSInfo(); //jim add code before activate OCC. START_OCC_DURING_BOOT is defined in config.
--
-+	setOpalMode(); //jim
-+	
-         bool l_activateOCC = is_avp_load();
- 
- #ifdef CONFIG_START_OCC_DURING_BOOT
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-index 64a0c9bae..3cfdb9aa0 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-@@ -966,6 +966,7 @@
-     </simpleType>
-     <persistency>non-volatile</persistency>
-     <readable/>
-+    <writeable/>
- </attribute>
- 
- <attribute>
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0013-enable-TPM-required-sensor.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0013-enable-TPM-required-sensor.patch
deleted file mode 100644
index 64709c0..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0013-enable-TPM-required-sensor.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From db0d855457974d520d829259f56488e6c896be0e Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Thu, 27 Oct 2016 10:42:48 -0700
-Subject: [PATCH 13/14] enable TPM required sensor.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/targeting/common/xmltohb/attribute_types_hb.xml | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-index 3cfdb9aa0..84536fbb4 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types_hb.xml
-@@ -1200,7 +1200,7 @@
-     </enumerator>
-     <enumerator>
-         <name>TPM_REQUIRED</name>
--        <value>0xFFFF</value>
-+        <value>0xCC03</value>
-     </enumerator>
- </enumerationType>
- 
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/p8dtu-patches/hostboot-p8/0014-add-gain-and-offset-for-1300w-48V-DC-power-supply.patch b/openpower/patches/p8dtu-patches/hostboot-p8/0014-add-gain-and-offset-for-1300w-48V-DC-power-supply.patch
deleted file mode 100644
index fe5d816..0000000
--- a/openpower/patches/p8dtu-patches/hostboot-p8/0014-add-gain-and-offset-for-1300w-48V-DC-power-supply.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From a3283c6922dee8ebfb3ea9ac7d22047e6e7bca00 Mon Sep 17 00:00:00 2001
-From: Jim Yuan <jim.yuan@supermicro.com>
-Date: Tue, 9 May 2017 14:34:56 -0700
-Subject: [PATCH 14/14] add gain and offset for 1300w 48V DC power supply.
-
-Signed-off-by: Jim Yuan <jim.yuan@supermicro.com>
----
- src/usr/hwpf/hwp/start_payload/start_payload.C | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.C b/src/usr/hwpf/hwp/start_payload/start_payload.C
-index 80e62a0b6..309122785 100644
---- a/src/usr/hwpf/hwp/start_payload/start_payload.C
-+++ b/src/usr/hwpf/hwp/start_payload/start_payload.C
-@@ -287,6 +287,7 @@ enum
- PWS_1600 = 0,
- PWS_1000 = 1,
- PWS_1200 = 2,
-+PWS_1300 = 3,
- PWS_UNKNOWN = 0xFE,
- };
- 
-@@ -382,6 +383,7 @@ uint8_t getPSUFRUFromIPMICommands(void)
- 	uint8_t pws1600[] = {'P','W','S','-','1','K','6','2','A','-','1','R'};
- 	uint8_t pws1000[] = {'P','W','S','-','1','K','0','2','A','-','1','R'};
- 	uint8_t pws1200[] = {'P','W','S','-','1','K','2','2','A','-','1','R'};
-+	uint8_t pws1300[] = {'P','W','S','-','1','K','3','0','D','-','1','R'};
- 
- 	//code to calculate product part number size and offset. should use structure. refer to FRU spec.		
- 	product_info_offset = frudata[4] * 8;
-@@ -407,6 +409,10 @@ uint8_t getPSUFRUFromIPMICommands(void)
- 		for (uint8_t i = 0; pws1200[i] == frudata[fru_offset + i] ; i ++)
- 			if (i == 11)
- 			powerSupplyFru = PWS_1200;
-+
-+		for (uint8_t i = 0; pws1300[i] == frudata[fru_offset + i] ; i ++)
-+			if (i == 11)
-+			powerSupplyFru = PWS_1300;
- 	}
- 	else	
- 		powerSupplyFru = PWS_UNKNOWN;
-@@ -466,6 +472,11 @@ void setAPSSGainOffsetFromPWSInfo(void)
- 	offset[TOTAL_SYSTEM_POWER] = 0;
- 	break;
- 
-+	case PWS_1300: //PWS-1K30D-1R (1300W 48V AC):
-+	gain[TOTAL_SYSTEM_POWER] = 51900; 
-+	offset[TOTAL_SYSTEM_POWER] = 0;
-+	break;
-+
- 	default:
- 	//Do nothing, leave defaults
- 	//Gen error for user attention?
--- 
-2.16.2.windows.1
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0001-Increase-default-watchdog-timeout-to-300-seconds.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0001-Increase-default-watchdog-timeout-to-300-seconds.patch
deleted file mode 100644
index b1d816a..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0001-Increase-default-watchdog-timeout-to-300-seconds.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a4259b9799ebb0f31223d52def871f4851217315 Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 13 Mar 2018 14:50:56 +0300
-Subject: [PATCH] Increase default watchdog timeout to 300 seconds
-
-We need more than 2 minutes to go through some IPL, for instance
-step "13.10 mss_draminit_trainadv" tooks 215 seconds to initialize 8 TiB RAM.
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/include/usr/ipmi/ipmiwatchdog.H | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/include/usr/ipmi/ipmiwatchdog.H b/src/include/usr/ipmi/ipmiwatchdog.H
-index d730e6bc4..37f73624b 100644
---- a/src/include/usr/ipmi/ipmiwatchdog.H
-+++ b/src/include/usr/ipmi/ipmiwatchdog.H
-@@ -58,7 +58,7 @@ namespace IPMIWATCHDOG
- #ifdef CONFIG_BMC_IPMI_LONG_WATCHDOG
- const uint16_t  DEFAULT_WATCHDOG_COUNTDOWN = 2400;
- #else
--const uint16_t  DEFAULT_WATCHDOG_COUNTDOWN = 120;
-+const uint16_t  DEFAULT_WATCHDOG_COUNTDOWN = 300;
- #endif
- 
- /**
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0002-Fix-POS-and-SPD-VPD_REC_NUM.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0002-Fix-POS-and-SPD-VPD_REC_NUM.patch
deleted file mode 100644
index cb8a796..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0002-Fix-POS-and-SPD-VPD_REC_NUM.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1dcf087af57a93ec7f24aa8be73e7ff0ffad22ca Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 13 Mar 2018 15:03:41 +0300
-Subject: [PATCH] Fix POS and SPD-VPD_REC_NUM
-
-Hank Chang: When bringup this 4Socket 128DIMMs system, we hit the following
-VPD/SPD issue and suspected it might be related to the VPD_REC_NUM numbering
-algorithm issue then caused the SPD cache overlap for the 4 sockets case.
-So we simply tried to jump the $aff_pos offset from 16 to 64 for each Proc and
-the issue was fixed/gone.
-
-Originally created by MSI (S188)
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/usr/targeting/common/Targets.pm | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
-index 35f08428c..4eaba16e7 100644
---- a/src/usr/targeting/common/Targets.pm
-+++ b/src/usr/targeting/common/Targets.pm
-@@ -744,7 +744,7 @@ sub processMcs
-                         $self->setAttribute($dimm,"MBA_PORT",$port_num);
-                         $self->setAttribute($dimm,"MBA_DIMM",$dimm_num);
- 
--                        my $aff_pos=16*$proc+$mcs*$self->{MAX_MCS}+4*$mba+
-+                        my $aff_pos=64*$proc+$mcs*$self->{MAX_MCS}+4*$mba+
-                                     2*$port_num+$dimm_num;
-                         $self->setAttribute($dimm, "AFFINITY_PATH",
-                             $parent_affinity
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0003-Add-present-bits-info-based-on-pos.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0003-Add-present-bits-info-based-on-pos.patch
deleted file mode 100644
index 02f6c29..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0003-Add-present-bits-info-based-on-pos.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 4310ba2a3b6e6439b0938e10435e435cef1d5738 Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Thu, 29 Mar 2018 11:19:14 +0300
-Subject: [PATCH] Add present bits info based on pos
-
-Originally created by MSI (S188)
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/usr/hwas/hostbootIstep.C | 50 ++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 50 insertions(+)
-
-diff --git a/src/usr/hwas/hostbootIstep.C b/src/usr/hwas/hostbootIstep.C
-index af3770295..1330a7e65 100644
---- a/src/usr/hwas/hostbootIstep.C
-+++ b/src/usr/hwas/hostbootIstep.C
-@@ -188,6 +188,11 @@ void* host_discover_targets( void *io_pArgs )
- 
-     // Put out some helpful messages that show which targets we actually found
-     std::map<TARGETING::TYPE,uint64_t> l_presData;
-+    std::map<TARGETING::TYPE,uint64_t> Present_Dimm_P0; //for dimms on CPU P0
-+    std::map<TARGETING::TYPE,uint64_t> Present_Dimm_P1; //for dimms on CPU P1
-+    std::map<TARGETING::TYPE,uint64_t> Present_Dimm_P2; //for dimms on CPU P2
-+    std::map<TARGETING::TYPE,uint64_t> Present_Dimm_P3; //for dimms on CPU P3
-+
-     for (TargetIterator target = targetService().begin();
-          target != targetService().end();
-          ++target)
-@@ -198,11 +203,49 @@ void* host_discover_targets( void *io_pArgs )
-         }
-         TARGETING::TYPE l_type = target->getAttr<TARGETING::ATTR_TYPE>();
-         TARGETING::ATTR_POSITION_type l_pos = 0;
-+        TARGETING::ATTR_HUID_type l_huid = target->getAttr<TARGETING::ATTR_HUID>(); //for showing HUID
-+
-         if( target->tryGetAttr<TARGETING::ATTR_POSITION>(l_pos) )
-         {
-             l_presData[l_type] |= (0x8000000000000000 >> l_pos);
-+
-+            if (l_type == TARGETING::TYPE_DIMM)
-+            {
-+                if (l_pos < 64)
-+                {
-+                    //for dimms on CPU P0
-+                    Present_Dimm_P0[l_type] |= (0x8000000000000000 >> l_pos);
-+                    CONSOLE::displayf(NULL, "MEMORY-INFO| l_pos=0x%X, l_type=0x%0X, l_huid=0x%X, Present_Dimm_P0[l_type]=%.8X%.8X", l_pos, l_type, l_huid, Present_Dimm_P0[l_type] >> 32, Present_Dimm_P0[l_type] & 0xFFFFFFFF);
-+                }
-+                else if ((l_pos >= 64) && (l_pos < 128))
-+                {
-+                    //for dimms on CPU P1
-+                    Present_Dimm_P1[l_type] |= (0x8000000000000000 >> (l_pos - 64));
-+                    CONSOLE::displayf(NULL, "MEMORY-INFO| l_pos=0x%X, l_type=0x%0X, l_huid=0x%X, Present_Dimm_P1[l_type]=%.8X%.8X", l_pos, l_type, l_huid, Present_Dimm_P1[l_type] >> 32, Present_Dimm_P1[l_type] & 0xFFFFFFFF);
-+                }
-+                else if ((l_pos >= 128) && (l_pos < 192))
-+                {
-+                    //for dimms on CPU P2
-+                    Present_Dimm_P2[l_type] |= (0x8000000000000000 >> (l_pos - 128));
-+                    CONSOLE::displayf(NULL, "MEMORY-INFO| l_pos=0x%X, l_type=0x%0X, l_huid=0x%X, Present_Dimm_P2[l_type]=%.8X%.8X", l_pos, l_type, l_huid, Present_Dimm_P2[l_type] >> 32, Present_Dimm_P2[l_type] & 0xFFFFFFFF);
-+                }
-+                else if (l_pos >= 192)
-+                {
-+                    //for dimms on CPU P3
-+                    Present_Dimm_P3[l_type] |= (0x8000000000000000 >> (l_pos - 192));
-+                    CONSOLE::displayf(NULL, "MEMORY-INFO| l_pos=0x%X, l_type=0x%0X, l_huid=0x%X, Present_Dimm_P3[l_type]=%.8X%.8X", l_pos, l_type, l_huid, Present_Dimm_P3[l_type] >> 32, Present_Dimm_P3[l_type] & 0xFFFFFFFF);
-+                }
-+            }
-         }
-     }
-+
-+    CONSOLE::displayf("HWAS", "=========================================");
-+    CONSOLE::displayf("HWAS", "PRESENT> DIMM_P0=%.8X%.8X", Present_Dimm_P0[TARGETING::TYPE_DIMM] >> 32, Present_Dimm_P0[TARGETING::TYPE_DIMM] & 0xFFFFFFFF);
-+    CONSOLE::displayf("HWAS", "PRESENT> DIMM_P1=%.8X%.8X", Present_Dimm_P1[TARGETING::TYPE_DIMM] >> 32, Present_Dimm_P1[TARGETING::TYPE_DIMM] & 0xFFFFFFFF);
-+    CONSOLE::displayf("HWAS", "PRESENT> DIMM_P2=%.8X%.8X", Present_Dimm_P2[TARGETING::TYPE_DIMM] >> 32, Present_Dimm_P2[TARGETING::TYPE_DIMM] & 0xFFFFFFFF);
-+    CONSOLE::displayf("HWAS", "PRESENT> DIMM_P3=%.8X%.8X", Present_Dimm_P3[TARGETING::TYPE_DIMM] >> 32, Present_Dimm_P3[TARGETING::TYPE_DIMM] & 0xFFFFFFFF);
-+    CONSOLE::displayf("HWAS", "=========================================");
-+
-     TARGETING::EntityPath l_epath; //use EntityPath's translation functions
-     for( std::map<TARGETING::TYPE,uint64_t>::iterator itr = l_presData.begin();
-          itr != l_presData.end();
-@@ -210,6 +253,13 @@ void* host_discover_targets( void *io_pArgs )
-     {
-         uint8_t l_type = itr->first;
-         uint64_t l_val = itr->second;
-+
-+        if (l_type == TARGETING::TYPE_DIMM)
-+        {
-+            //to skip DIMM type
-+            continue;
-+        }
-+
-         TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,"PRESENT> %s[%.2X]=%.8X%.8X",
-                 l_epath.pathElementTypeAsString(itr->first), l_type, l_val>>32, l_val&0xFFFFFFFF);
- #if (!defined(CONFIG_CONSOLE_OUTPUT_TRACE) && defined(CONFIG_CONSOLE))
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0004-Force-print-MCS-grouping-info-to-console.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0004-Force-print-MCS-grouping-info-to-console.patch
deleted file mode 100644
index 9744e1d..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0004-Force-print-MCS-grouping-info-to-console.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 9eea226dc3be928ae297ff2d7284a43f8e43efac Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 13 Mar 2018 15:32:45 +0300
-Subject: [PATCH] Force print MCS grouping info to console
-
-Used to dump interleave mode state.
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- .../mc_config/mss_eff_config/mss_eff_grouping.C    | 25 +++++++++++++---------
- 1 file changed, 15 insertions(+), 10 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_grouping.C b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_grouping.C
-index 98f76cd0a..fa4c78f72 100644
---- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_grouping.C
-+++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_grouping.C
-@@ -85,6 +85,12 @@
- #include <mss_eff_grouping.H>
- #include <cen_scom_addresses.H>
- #include <mss_error_support.H>
-+#include <console/consoleif.H>
-+
-+#define GRP_TRACE(_fmt_, _args_...) { \
-+    CONSOLE::displayf(NULL, "GROUP-INFO| " _fmt_, ##_args_); \
-+    CONSOLE::flush(); \
-+}
- 
- extern "C"
- {
-@@ -900,10 +906,10 @@ void grouping_group4McsPerGroup(const EffGroupingMemInfo & i_memInfo,
-     {
-         if (config4_gp[i] && config4_gp[i + 1])
-         {
--            FAPI_INF("mss_eff_grouping: Grouped MCSs %u, %u, %u, %u",
-+            GRP_TRACE("mss_eff_grouping: Grouped MCSs %u, %u, %u, %u",
-                      CFG_4MCS[i][0], CFG_4MCS[i][1],
-                      CFG_4MCS[i][2], CFG_4MCS[i][3]);
--            FAPI_INF("mss_eff_grouping: Grouped MCSs %u, %u, %u, %u",
-+            GRP_TRACE("mss_eff_grouping: Grouped MCSs %u, %u, %u, %u",
-                      CFG_4MCS[i + 1][0], CFG_4MCS[i + 1][1],
-                      CFG_4MCS[i + 1][2], CFG_4MCS[1 + 1][3]);
-             gp1 = i;
-@@ -919,7 +925,7 @@ void grouping_group4McsPerGroup(const EffGroupingMemInfo & i_memInfo,
-         {
-             if (config4_gp[i])
-             {
--                FAPI_INF("mss_eff_grouping: Grouped MCSs %u, %u, %u, %u",
-+                GRP_TRACE("mss_eff_grouping: Grouped MCSs %u, %u, %u, %u",
-                          CFG_4MCS[i][0], CFG_4MCS[i][1],
-                          CFG_4MCS[i][2], CFG_4MCS[i][3]);
-                 gp1 = i;
-@@ -1024,7 +1030,7 @@ void grouping_group2McsPerGroup(const EffGroupingMemInfo & i_memInfo,
-         {
-             // These 2 MCSs are not already grouped and have the same amount of
-             // memory
--            FAPI_INF("mss_eff_grouping: Grouped MCSs %u and %u", pos, pos + 1);
-+            GRP_TRACE("mss_eff_grouping: Grouped MCSs %u and %u", pos, pos + 1);
-             o_groupData.iv_data[g][MCS_SIZE] = i_memInfo.iv_mcsSize[pos];
-             o_groupData.iv_data[g][MCS_IN_GROUP] = 2;
-             o_groupData.iv_data[g][GROUP_SIZE] = 2 * i_memInfo.iv_mcsSize[pos];
-@@ -1084,7 +1090,7 @@ void grouping_group2McsPerGroup_oddpair(const EffGroupingMemInfo & i_memInfo,
-         {
-             // These 2 MCSs are not already grouped and have the same amount of
-             // memory
--            FAPI_INF("mss_eff_grouping: Grouped MCSs %u and %u", pos, pos + 1);
-+            GRP_TRACE("mss_eff_grouping: Grouped MCSs %u and %u", pos, pos + 1);
-             o_groupData.iv_data[g][MCS_SIZE] = i_memInfo.iv_mcsSize[pos];
-             o_groupData.iv_data[g][MCS_IN_GROUP] = 2;
-             o_groupData.iv_data[g][GROUP_SIZE] = 2 * i_memInfo.iv_mcsSize[pos];
-@@ -1145,7 +1151,7 @@ void grouping_group2McsPerGroup_usecase(const EffGroupingMemInfo & i_memInfo,
-             {
-                 // These 2 MCSs are not already grouped and have the same amount of
-                 // memory
--                FAPI_INF("mss_eff_grouping: Grouped MCSs %u and %u", pos, var);
-+                GRP_TRACE("mss_eff_grouping: Grouped MCSs %u and %u", pos, var);
-                 o_groupData.iv_data[g][MCS_SIZE] = i_memInfo.iv_mcsSize[pos];
-                 o_groupData.iv_data[g][MCS_IN_GROUP] = 2;
-                 o_groupData.iv_data[g][GROUP_SIZE] = 2 * i_memInfo.iv_mcsSize[pos];
-@@ -1199,7 +1205,7 @@ void grouping_group1McsPerGroup(const EffGroupingMemInfo & i_memInfo,
-             (i_memInfo.iv_mcsSize[pos] != 0))
-         {
-             // This MCS is not already grouped and has memory
--            FAPI_INF("mss_eff_grouping: MCS %u grouped", pos);
-+            GRP_TRACE("mss_eff_grouping: MCS %u grouped", pos);
-             o_groupData.iv_data[g][MCS_SIZE] = i_memInfo.iv_mcsSize[pos];
-             o_groupData.iv_data[g][MCS_IN_GROUP] = 1;
-             o_groupData.iv_data[g][GROUP_SIZE] = i_memInfo.iv_mcsSize[pos];
-@@ -1564,12 +1570,11 @@ void grouping_traceData(const EffGroupingSysAttrs & i_sysAttrs,
- {
-     for (uint8_t i = 0; i < i_groupData.iv_numGroups; i++)
-     {
--        FAPI_INF("mss_eff_grouping: Group %u, MCS Size %u GB, "
-+        GRP_TRACE("mss_eff_grouping: Group %u, MCS Size %u GB, "
-                  "Num MCSs %u, GroupSize %u GB", i,
-                  i_groupData.iv_data[i][MCS_SIZE],
-                  i_groupData.iv_data[i][MCS_IN_GROUP],
-                  i_groupData.iv_data[i][GROUP_SIZE]);
--
-         FAPI_INF("mss_eff_grouping: Group %u, Base Add 0x%08x", i,
-                  i_groupData.iv_data[i][BASE_ADDR]);
- 
-@@ -2248,7 +2253,7 @@ fapi::ReturnCode mss_eff_grouping(const fapi::Target & i_target,
-     std::vector<fapi::Target> &i_associated_centaurs)
- {
-     fapi::ReturnCode rc;
--    FAPI_INF("mss_eff_grouping: Start, chip %s", i_target.toEcmdString());
-+    GRP_TRACE("mss_eff_grouping: Start, chip %s", i_target.toEcmdString());
- 
-     do
-     {
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0005-Fill-empty-sensor-id-to-reserved-id-0xFF.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0005-Fill-empty-sensor-id-to-reserved-id-0xFF.patch
deleted file mode 100644
index 5b4bcc7..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0005-Fill-empty-sensor-id-to-reserved-id-0xFF.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From f03937aa32b79e8bde0fa5ff09a0e11e4750bb6f Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Mon, 14 Jan 2019 12:46:22 -0600
-Subject: [PATCH] Vesnin patch
-
-Change-Id: I1116c92f9176d53630a9316312656c03f2a16723
-
-Hank Chang: This patch achieves the following goals:
-a. Auto set all empty sensors with reserved ID - 0xFF instead of being 0x0 in
-   the mrw process (would cause some duplicate sensor@0 in skiboot)
-b. In this way, they could simply save 128 empty DIMM_Temp* IDs to become
-   all 0xFF, and OCC would still report all the non-zero ID's DIMM_Temp*
-   reading in the poll response.
-   And then, apply another "occ-0001-Add-DIMM-temperature-sensors.patch"
-   can customize/override these 0xFF temp_sid again based on the different
-   CPU/Cen/DIMM index which can be decoded by OpenBMC accordingly.
-c. Just simply prints the "N/A" (0xFF) string in the *.rpt file for reviewing
-   all the undefined/reserved sensor targets.
-
-Originally created by MSI (S188)
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/usr/ipmiext/ipmisensor.C           |  6 ++----
- src/usr/targeting/common/processMrw.pl | 25 ++++++++++++++++++++-----
- 2 files changed, 22 insertions(+), 9 deletions(-)
-
-diff --git a/src/usr/ipmiext/ipmisensor.C b/src/usr/ipmiext/ipmisensor.C
-index e3c6405..63a4196 100644
---- a/src/usr/ipmiext/ipmisensor.C
-+++ b/src/usr/ipmiext/ipmisensor.C
-@@ -6,6 +6,7 @@
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
- /* Contributors Listed Below - COPYRIGHT 2014,2019                        */
-+/* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
- /* Licensed under the Apache License, Version 2.0 (the "License");        */
-@@ -214,14 +215,11 @@ namespace SENSOR
-         }
-         else
-         {
--            TRACFCOMP(g_trac_ipmi,"We were not able to find a sensor number in"
-+            TRACFCOMP(g_trac_ipmi,"Found a reserved sensor number (0xFF) in"
-                       " the IPMI_SENSORS attribute for sensor_name=0x%x"
-                       "for target with huid=0x%x, skipping call to "
-                       "sendSetSensorReading()",
-                     iv_name, TARGETING::get_huid( iv_target ));
--
--            assert(false);
--
-         }
- 
-         return l_err;
-diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
-index 8bfa7bd..66783c8 100644
---- a/src/usr/targeting/common/processMrw.pl
-+++ b/src/usr/targeting/common/processMrw.pl
-@@ -6,7 +6,7 @@
- #
- # OpenPOWER HostBoot Project
- #
--# Contributors Listed Below - COPYRIGHT 2015,2017
-+# Contributors Listed Below - COPYRIGHT 2015,2019
- # [+] International Business Machines Corp.
- #
- #
-@@ -239,14 +239,29 @@ sub processIpmiSensors {
-                 $sensor_name=$name."_".$name_suffix;
-             }
-             my $attribute_name="";
--            my $s=sprintf("0x%02X%02X,0x%02X",
--                  oct($sensor_type),oct($entity_id),oct($sensor_id));
--            push(@sensors,$s);
-+
-+            if ($sensor_id ne "")
-+            {
-+                my $s = sprintf("0x%02X%02X,0x%02X",
-+                        oct($sensor_type), oct($entity_id), oct($sensor_id));
-+                push(@sensors, $s);
-+            }
-+            else
-+            {
-+                my $s = sprintf("0x%02X%02X,0xFF",
-+                                oct($sensor_type), oct($entity_id));
-+                push(@sensors, $s);
-+            }
-+
-             my $sensor_id_str = "";
-             if ($sensor_id ne "")
-             {
-                 $sensor_id_str = sprintf("0x%02X",oct($sensor_id));
-             }
-+            else
-+            {
-+                $sensor_id_str = sprintf("N/A");
-+            }
-             my $str=sprintf(
-                 " %30s | %10s |  0x%02X  | 0x%02X |    0x%02x   |" .
-                 " %4s | %4d | %4d | %10s | %s\n",
-@@ -1428,7 +1443,7 @@ Options:
-     exit(1);
- }
- 
--# eliminate extra whitespace 
-+# eliminate extra whitespace
- #    Input: string to chop
- sub nowhitespace
- {
--- 
-1.8.2.2
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0006-Delay-for-Centaure-1.2V-ready-on-128-DIMM-system.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0006-Delay-for-Centaure-1.2V-ready-on-128-DIMM-system.patch
deleted file mode 100644
index 35ce1ea..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0006-Delay-for-Centaure-1.2V-ready-on-128-DIMM-system.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 45c23dab36e6dd76023670f4c0766b6104ff0011 Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 13 Mar 2018 15:47:30 +0300
-Subject: [PATCH] Delay for Centaure 1.2V ready on 128 DIMM system
-
-Resolves issue with full equipped DIMM lost.
-Originally created by MSI (S188).
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/usr/hwpf/hwp/dram_training/dram_training.C | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/src/usr/hwpf/hwp/dram_training/dram_training.C b/src/usr/hwpf/hwp/dram_training/dram_training.C
-index bf20b7464..2d8a80e5f 100644
---- a/src/usr/hwpf/hwp/dram_training/dram_training.C
-+++ b/src/usr/hwpf/hwp/dram_training/dram_training.C
-@@ -329,6 +329,7 @@ void*    call_host_disable_vddr( void *io_pArgs )
- {
-     errlHndl_t l_err = NULL;
-     IStepError l_StepError;
-+    uint8_t i;
- 
-     TRACDCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
-               ENTER_MRK"call_host_disable_vddr");
-@@ -348,6 +349,12 @@ void*    call_host_disable_vddr( void *io_pArgs )
- 
-     }
- 
-+    //Delay 2 seconds for Centaure 1.2V ready on 128 DIMM system.
-+    for (i = 0; i < 1; ++i)
-+    {
-+        fapiDelay(1000 * 1000000, 10000); // 1,000,000 ns = 1ms, 1000*1ms
-+    }
-+
-     TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
-                EXIT_MRK"call_host_disable_vddr");
- 
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0007-Set-IBM-instead-of-AMI-for-eSEL.patch b/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0007-Set-IBM-instead-of-AMI-for-eSEL.patch
deleted file mode 100644
index a94ada2..0000000
--- a/openpower/patches/vesnin-patches/hostboot-p8/hostboot-0007-Set-IBM-instead-of-AMI-for-eSEL.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 177df7658cbd8c78d5f3cf043e78d02880945b85 Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 13 Mar 2018 15:50:51 +0300
-Subject: [PATCH] Set IBM instead of AMI for eSEL
-
-Originally created by MSI (S188).
-The root cause is that the latest openbmc replace the NETFUN_AMI with
-NETFUN_IBM, so bmc can't log the eSEL from PNOR.
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/include/usr/ipmi/ipmiif.H | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 44283cc0b..0f1309e31 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -258,7 +258,7 @@ namespace IPMI
- 
-     //AMI-specific storage messages
-     inline const command_t partial_add_esel(void)
--    { return std::make_pair(NETFUN_AMI, 0xf0); }
-+    { return std::make_pair(NETFUN_IBM, 0xf0); }
- 
-     // event messages
-     inline const command_t platform_event(void)
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/occ-p8/occ-0001-Add-DIMM-temperature-sensors.patch b/openpower/patches/vesnin-patches/occ-p8/occ-0001-Add-DIMM-temperature-sensors.patch
deleted file mode 100644
index 51f273f..0000000
--- a/openpower/patches/vesnin-patches/occ-p8/occ-0001-Add-DIMM-temperature-sensors.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 7d9fc8ec22199e7fc7eca6079cb42f25554851f7 Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 13 Mar 2018 14:17:00 +0300
-Subject: [PATCH] Add DIMM temperature sensors
-
-Customize/override 0xFF temp_sid based on the different CPU/Cen/DIMM index
-which can be decoded by OpenBMC accordingly.
-See also: hostboot-0005-Fill-empty-sensor-id-to-reserved-id-0xFF.patch.
-
-Originally created by MSI (S188)
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/occ/cmdh/cmdh_fsp_cmds.c | 54 ++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 52 insertions(+), 2 deletions(-)
-
-diff --git a/src/occ/cmdh/cmdh_fsp_cmds.c b/src/occ/cmdh/cmdh_fsp_cmds.c
-index 74e45da..fb2f72d 100755
---- a/src/occ/cmdh/cmdh_fsp_cmds.c
-+++ b/src/occ/cmdh/cmdh_fsp_cmds.c
-@@ -355,10 +355,40 @@ ERRL_RC cmdh_poll_v10(cmdh_fsp_rsp_t * o_rsp_ptr)
-     l_sensorHeader.length = sizeof(cmdh_poll_temp_sensor_t);
-     l_sensorHeader.count  = 0;
- 
-+    uint16_t CpuIpmiId = 0;
-+
-+    //Check the current OCC
-+    if (l_poll_rsp->occ_pres_mask == 0x02)
-+    {
-+        CpuIpmiId = 0x0D;  //CPU1
-+    }
-+    else if (l_poll_rsp->occ_pres_mask == 0x04)
-+    {
-+        CpuIpmiId = 0x02;  //CPU2
-+    }
-+    else if (l_poll_rsp->occ_pres_mask == 0x08)
-+    {
-+        CpuIpmiId = 0x0A;  //CPU3
-+    }
-+    else
-+    {
-+        CpuIpmiId = 0x0B;  //CPU0
-+    }
-+
-     //Initialize to max number of possible temperature sensors.
--    cmdh_poll_temp_sensor_t l_tempSensorList[MAX_NUM_CORES + MAX_NUM_MEM_CONTROLLERS + (MAX_NUM_MEM_CONTROLLERS * NUM_DIMMS_PER_CENTAUR)];
-+    cmdh_poll_temp_sensor_t l_tempSensorList[MAX_NUM_CORES + MAX_NUM_MEM_CONTROLLERS + (MAX_NUM_MEM_CONTROLLERS * NUM_DIMMS_PER_CENTAUR) + 2]; //Add two items for peak/average core temperature.
-     memset(l_tempSensorList, 0x00, sizeof(l_tempSensorList));
- 
-+    //The average value of core temperature. Currently not used.
-+    l_tempSensorList[l_sensorHeader.count].id = G_amec_sensor_list[TEMP2MSP0]->ipmi_sid;
-+    l_tempSensorList[l_sensorHeader.count].value = G_amec_sensor_list[TEMP2MSP0]->sample;
-+    l_sensorHeader.count++;
-+
-+    //The peak value of core temperature
-+    l_tempSensorList[l_sensorHeader.count].id = CpuIpmiId;
-+    l_tempSensorList[l_sensorHeader.count].value = G_amec_sensor_list[TEMP2MSP0PEAK]->sample;
-+    l_sensorHeader.count++;
-+
-     for (k=0; k<MAX_NUM_CORES; k++)
-     {
-         if(CORE_PRESENT(k))
-@@ -370,6 +400,26 @@ ERRL_RC cmdh_poll_v10(cmdh_fsp_rsp_t * o_rsp_ptr)
-     }
- 
-     uint8_t l_cent, l_dimm = 0;
-+    uint16_t CpuId = 0;
-+
-+    //Check the current OCC
-+    if(l_poll_rsp->occ_pres_mask == 0x02)
-+    {
-+        CpuId = 0x0200;  //CPU1
-+    }
-+    else if (l_poll_rsp->occ_pres_mask == 0x04)
-+    {
-+        CpuId = 0x0300;  //CPU2
-+    }
-+    else if (l_poll_rsp->occ_pres_mask == 0x08)
-+    {
-+        CpuId = 0x0400;  //CPU3
-+    }
-+    else
-+    {
-+        CpuId = 0x0100;  //CPU0
-+    }
-+
-     for (l_cent=0; l_cent < MAX_NUM_MEM_CONTROLLERS; l_cent++)
-     {
-         if (CENTAUR_PRESENT(l_cent))
-@@ -391,7 +441,7 @@ ERRL_RC cmdh_poll_v10(cmdh_fsp_rsp_t * o_rsp_ptr)
-             {
-                 if (g_amec->proc[0].memctl[l_cent].centaur.dimm_temps[l_dimm].temp_sid != 0)
-                 {
--                    l_tempSensorList[l_sensorHeader.count].id = g_amec->proc[0].memctl[l_cent].centaur.dimm_temps[l_dimm].temp_sid;
-+                    l_tempSensorList[l_sensorHeader.count].id = CpuId + (l_cent * 8) + l_dimm;  //Add extra temperature IDs for all DIMMs.
-                     //If a dimm timed out long enough, we should return 0xFFFF for that sensor.
-                     if (G_dimm_temp_expired_bitmap.bytes[l_cent] & (DIMM_SENSOR0 >> l_dimm))
-                     {
--- 
-2.14.1
-
diff --git a/openpower/patches/vesnin-patches/occ-p8/occ-0002-Add-temperature-sensor-support-for-CPU-cores.patch b/openpower/patches/vesnin-patches/occ-p8/occ-0002-Add-temperature-sensor-support-for-CPU-cores.patch
deleted file mode 100644
index 7556b97..0000000
--- a/openpower/patches/vesnin-patches/occ-p8/occ-0002-Add-temperature-sensor-support-for-CPU-cores.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0ec6ab11dcec304876802d1ed7bb01bd059ae311 Mon Sep 17 00:00:00 2001
-From: Artem Senichev <a.senichev@yadro.com>
-Date: Tue, 18 Dec 2018 14:16:56 +0300
-Subject: [PATCH] Add temperature sensor support for CPU cores
-
-IPMI protocol imposes limits on numbers of sensors identifiers (1 byte).
-This limitation doesn't allow us to use unique temperature sensor ID for
-each CPU core (4 CPU * 12 cores = 48 sensors).
-
-OCC uses temperature sensor ID as channel label, these labels are handled
-by phosphor-hwmon service to identify the core:
-
-     I2C               sysfs                   config.yaml
-OCC -----> BMC Kernel -------> Phosphor-hwmon -------------> DBus
-     ID                label                   label->core
-
-This patch makes OCC use own ID as channel label instead of using IPMI
-temperature sensor ID. The new identifier consists of constant prefix
-(0x0f) and core index:
-ID = 0x0f00 + INDEX(core)
-
-Signed-off-by: Artem Senichev <a.senichev@yadro.com>
----
- src/occ/cmdh/cmdh_fsp_cmds.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/occ/cmdh/cmdh_fsp_cmds.c b/src/occ/cmdh/cmdh_fsp_cmds.c
-index 6276992..69c646e 100755
---- a/src/occ/cmdh/cmdh_fsp_cmds.c
-+++ b/src/occ/cmdh/cmdh_fsp_cmds.c
-@@ -393,7 +393,8 @@ ERRL_RC cmdh_poll_v10(cmdh_fsp_rsp_t * o_rsp_ptr)
-     {
-         if(CORE_PRESENT(k))
-         {
--            l_tempSensorList[l_sensorHeader.count].id = G_amec_sensor_list[TEMP2MSP0C0 + k]->ipmi_sid;
-+            // Set the core label as a constant prefix with index
-+            l_tempSensorList[l_sensorHeader.count].id = 0x0f00 + k;
-             l_tempSensorList[l_sensorHeader.count].value = G_amec_sensor_list[TEMP2MSP0C0 + k]->sample;
-             l_sensorHeader.count++;
-         }
--- 
-2.19.2
-
diff --git a/openpower/platform/Config.in b/openpower/platform/Config.in
index 3232cd0..0cea229 100644
--- a/openpower/platform/Config.in
+++ b/openpower/platform/Config.in
@@ -1,12 +1,7 @@
 config BR2_OPENPOWER_PLATFORM
     bool "Enables only one openPower platform"
     default n
-    depends on ((BR2_OPENPOWER_POWER8 || BR2_OPENPOWER_POWER9) && !(BR2_OPENPOWER_POWER8 && BR2_OPENPOWER_POWER9))
-
-config BR2_OPENPOWER_POWER8
-    bool "Enables the OpenPower p8 platform"
-    default n
-    depends on BR2_powerpc64 || BR2_powerpc64le
+    depends on (BR2_OPENPOWER_POWER9)
 
 config BR2_OPENPOWER_POWER9
     bool "Enables the OpenPower p9 platform"
diff --git a/openpower/toolchain/Config.in b/openpower/toolchain/Config.in
index dc5b205..c2eeb2e 100644
--- a/openpower/toolchain/Config.in
+++ b/openpower/toolchain/Config.in
@@ -1,6 +1,5 @@
 menu "OpenPower Toolchain"
 
 source "$BR2_EXTERNAL_OP_BUILD_PATH/toolchain/ppe42-toolchain/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/toolchain/p8-pore-toolchain/Config.in"
 
 endmenu
diff --git a/openpower/toolchain/p8-pore-toolchain/Config.in b/openpower/toolchain/p8-pore-toolchain/Config.in
deleted file mode 100644
index c03422b..0000000
--- a/openpower/toolchain/p8-pore-toolchain/Config.in
+++ /dev/null
@@ -1,27 +0,0 @@
-menuconfig BR2_PACKAGE_P8_PORE_TOOLCHAIN
-	bool "p8-pore-toolchain"
-	default y if (BR2_OPENPOWER_POWER8)
-	help
-	  Build the PORE toolchain required to build the
-	  POWER8 OCC firmware
-
-if BR2_PACKAGE_P8_PORE_TOOLCHAIN
-choice
-	prompt "P8 PORE Toolchain Type"
-	help
-	  Select whether to build the P8 PORE toolchain or
-	  provide an external one
-
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/p8-pore-binutils/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/p8-pore-toolchain-external/Config.in"
-
-endchoice
-
-config BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
-	bool
-
-config BR2_PACKAGE_PROVIDES_P8_PORE_TOOLCHAIN
-	depends on BR2_PACKAGE_HAS_P8_PORE_TOOLCHAIN
-	string
-
-endif
diff --git a/openpower/toolchain/p8-pore-toolchain/p8-pore-toolchain.mk b/openpower/toolchain/p8-pore-toolchain/p8-pore-toolchain.mk
deleted file mode 100644
index 7936be5..0000000
--- a/openpower/toolchain/p8-pore-toolchain/p8-pore-toolchain.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-################################################################################
-#
-# p8-pore-toolchain
-#
-################################################################################
-P8_PORE_TOOLCHAIN_DIR = $(STAGING_SUBDIR)/p8-pore-toolchain
-P8_PORE_TOOLCHAIN_BIN = $(STAGING_SUBDIR)/p8-pore-toolchain/linux
-
-$(eval $(host-virtual-package))
