diff --git a/README.md b/README.md
index 1f383ec..8e83db1 100644
--- a/README.md
+++ b/README.md
@@ -27,9 +27,9 @@
 To build an image for a Blackbird system:
 
 ```
-git clone --recursive https://github.com/open-power/op-build.git
+git clone --recursive git@github.ibm.com:open-power/op-build.git
 cd op-build
-./op-build blackbird_defconfig && ./op-build
+./op-build rainier_defconfig && ./op-build
 ```
 
 There are also default configurations for other platforms in
diff --git a/openpower/configs/denali_defconfig b/openpower/configs/denali_defconfig
new file mode 100644
index 0000000..ed3f2dd
--- /dev/null
+++ b/openpower/configs/denali_defconfig
@@ -0,0 +1,62 @@
+BR2_powerpc64le=y
+BR2_powerpc_power8=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_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git@github.ibm.com:p10/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="e4f7620c0a1e46e93ab9130f30bfa28b32322ca1"
+BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux-p10"
+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_POWER9=y
+# BR2_PACKAGE_HOST_OPENPOWER_FFS 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
+BR2_OPENPOWER_CONFIG_NAME="openpower-firenze"
+# BR2_TARGET_SKIBOOT_XZ is not set
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
+# BR2_PACKAGE_HCODE is not set
+# BR2_PACKAGE_OCC is not set
+# BR2_PACKAGE_CAPP_UCODE is not set
+BR2_PACKAGE_LOADKEYS=y
+# BR2_PACKAGE_IMA_CATALOG is not set
+# BR2_PACKAGE_HOST_SB_SIGNING_UTILS is not set
diff --git a/openpower/configs/hostboot/rainier.config b/openpower/configs/hostboot/rainier.config
new file mode 100755
index 0000000..549ae15
--- /dev/null
+++ b/openpower/configs/hostboot/rainier.config
@@ -0,0 +1,97 @@
+# The HIOMAP protocol is used to access PNOR
+unset SFC_IS_AST2500
+unset SFC_IS_AST2400
+set   PNORDD_IS_IPMI
+unset PNORDD_IS_SFC
+unset ALLOW_MICRON_PNOR
+unset ALLOW_MACRONIX_PNOR
+
+# VPD options - Enable EECACHE
+set MVPD_READ_FROM_HW
+set MVPD_WRITE_TO_HW
+unset MVPD_READ_FROM_PNOR
+unset MVPD_WRITE_TO_PNOR
+
+set DJVPD_READ_FROM_HW
+set DJVPD_WRITE_TO_HW
+unset DJVPD_READ_FROM_PNOR
+unset DJVPD_WRITE_TO_PNOR
+
+set MEMVPD_READ_FROM_HW
+set MEMVPD_WRITE_TO_HW
+unset MEMVPD_READ_FROM_PNOR
+unset MEMVPD_WRITE_TO_PNOR
+
+# PLDM will be read via PLDM which is not supported yet
+#set PVPD_READ_FROM_HW
+#set PVPD_WRITE_TO_HW
+#unset PVPD_READ_FROM_PNOR
+#unset PVPD_WRITE_TO_PNOR
+
+# gpio config
+set GPIODD
+unset PALMETTO_VDDR
+
+# Enable consecutive SBE updates
+set SBE_UPDATE_CONSECUTIVE
+unset SBE_UPDATE_INDEPENDENT
+unset SBE_UPDATE_SEQUENTIAL
+unset SBE_UPDATE_SIMULTANEOUS
+unset NO_SBE_UPDATES
+# NOTE: Aggressive LRU currently required to free enough memory for SBE updates
+set AGGRESSIVE_LRU
+
+#unset PCIE_HOTPLUG_CONTROLLER
+
+# turn on console output
+set CONSOLE
+
+set BMC_AST2500
+
+#set DISABLE_HOSTBOOT_RUNTIME
+
+# Compile in hostboot runtime PRD
+#unset HBRT_PRD
+
+# PNOR flags
+unset PNOR_TWO_SIDE_SUPPORT
+
+set BMC_BT_LPC_IPMI
+
+# AXONE configs must be set until those flags are reworked in Hostboot
+set AXONE
+set AXONE_BRINGUP
+
+# Enable hardware access to the EEPROMs with a cache
+set SUPPORT_EEPROM_CACHING
+set SUPPORT_EEPROM_HWACCESS
+
+# set for trace debug to console
+unset CONSOLE_OUTPUT_TRACE
+
+# Output FFDC to console
+set CONSOLE_OUTPUT_FFDCDISPLAY
+
+# RTC TODO 248361
+# Remove some time before product ships
+set PRINT_SYSTEM_INFO
+
+# Terminate Hostboot when errors occur in manufacturing mode
+#   (relies on BMC to not trigger reboot)
+#unset HANG_ON_MFG_SRC_TERM
+
+set ENABLE_HDAT_IN_HOSTBOOT
+
+# Temporary workaround for SW461052 
+set P10_BRING_UP
+
+# Load lids via PLDM File IO
+unset LOAD_PHYP_FROM_BOOTKERNEL
+set LOAD_LIDS_VIA_PLDM
+
+# enable multi-chip
+unset FORCE_SINGLE_CHIP
+
+# Disable presence detection (workaround for Everest bug)
+unset PHYS_PRES_PWR_BUTTON
+unset KEY_CLEAR
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index a555adb..02a3ea7 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -47,7 +47,7 @@
 CONFIG_PPC_64K_PAGES=y
 CONFIG_SCHED_SMT=y
 CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="console=tty0 console=hvc0 ipr.fast_reboot=1 quiet"
+CONFIG_CMDLINE="console=tty0 console=hvc0 debug ignore_loglevel bootmem_debug sched_debug"
 # CONFIG_SECCOMP is not set
 # CONFIG_PPC_MEM_KEYS is not set
 CONFIG_PPC_SECURE_BOOT=y
diff --git a/openpower/configs/p10ebmc_defconfig b/openpower/configs/p10ebmc_defconfig
new file mode 100644
index 0000000..fedb20f
--- /dev/null
+++ b/openpower/configs/p10ebmc_defconfig
@@ -0,0 +1,81 @@
+BR2_powerpc64le=y
+BR2_powerpc_power8=y
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_GCC_VERSION_8_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_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git@github.ibm.com:p10/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="e4f7620c0a1e46e93ab9130f30bfa28b32322ca1"
+BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux-p10"
+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_OPENPOWER_PLATFORM=y
+BR2_OPENPOWER_POWER10=y
+BR2_HOSTBOOT_P10_CONFIG_FILE="rainier.config"
+# BR2_PACKAGE_MACHINE_XML is not set
+BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT=y
+BR2_RAINIER_2U_XML_CUSTOM_GIT=y
+BR2_RAINIER_2U_XML_CUSTOM_GIT_VALUE="git@github.ibm.com:openbmc/rainier-xml.git"
+BR2_RAINIER_2U_XML_VERSION="88a6262d2ba89aae1807b8eaf9336889f7c41799"
+BR2_RAINIER_2U_XML_SYSTEM_FILENAME="Rainier-2U-MRW_hb.system.xml"
+BR2_RAINIER_2U_XML_TARGETING_FILENAME="Rainier-2U-MRW_hb.mrw.xml"
+BR2_RAINIER_4U_XML_CUSTOM_GIT=y
+BR2_RAINIER_4U_XML_CUSTOM_GIT_VALUE="git@github.ibm.com:openbmc/rainier-xml.git"
+BR2_RAINIER_4U_XML_VERSION="88a6262d2ba89aae1807b8eaf9336889f7c41799"
+BR2_RAINIER_4U_XML_SYSTEM_FILENAME="Rainier-4U-MRW_hb.system.xml"
+BR2_RAINIER_4U_XML_TARGETING_FILENAME="Rainier-4U-MRW_hb.mrw.xml"
+BR2_PACKAGE_EVEREST_XML=y
+BR2_EVEREST_XML_CUSTOM_GIT=y
+BR2_EVEREST_XML_CUSTOM_GIT_VALUE="git@github.ibm.com:openbmc/everest-xml.git"
+BR2_EVEREST_XML_VERSION="3cb28a0d4b71ab6ff697b15d65660370a5139a3b"
+BR2_EVEREST_XML_SYSTEM_FILENAME="Everest-MRW_hb.system.xml"
+BR2_EVEREST_XML_TARGETING_FILENAME="Everest-MRW_hb.mrw.xml"
+BR2_PACKAGE_OPENPOWER_PNOR_P10=y
+BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
+BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET="rainier"
+BR2_OPENPOWER_P10_XMLS="rainier-2u-xml rainier-4u-xml everest-xml"
+BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME="p10_sbe.img.ecc"
+BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME="p10.ref_image.hdr.bin.ecc"
+BR2_IMA_CATALOG_P10_FILENAME="ima_catalog.bin"
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
+# BR2_PACKAGE_CAPP_UCODE is not set
+BR2_PACKAGE_LOADKEYS=y
+BR2_IMA_CATALOG_DTS="POWER9"
+BR2_PACKAGE_OCMB_EXPLORER_FW=y
diff --git a/openpower/configs/rainier_defconfig b/openpower/configs/rainier_defconfig
new file mode 100644
index 0000000..f18f90e
--- /dev/null
+++ b/openpower/configs/rainier_defconfig
@@ -0,0 +1,74 @@
+BR2_powerpc64le=y
+BR2_powerpc_power8=y
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_GCC_VERSION_8_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_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git@github.ibm.com:p10/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="e4f7620c0a1e46e93ab9130f30bfa28b32322ca1"
+BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux-p10"
+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_OPENPOWER_PLATFORM=y
+BR2_OPENPOWER_POWER10=y
+BR2_HOSTBOOT_P10_CONFIG_FILE="rainier.config"
+# BR2_PACKAGE_MACHINE_XML is not set
+BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT=y
+BR2_RAINIER_2U_XML_CUSTOM_GIT=y
+BR2_RAINIER_2U_XML_CUSTOM_GIT_VALUE="git@github.ibm.com:openbmc/rainier-xml.git"
+BR2_RAINIER_2U_XML_VERSION="88a6262d2ba89aae1807b8eaf9336889f7c41799"
+BR2_RAINIER_2U_XML_SYSTEM_FILENAME="Rainier-2U-MRW_hb.system.xml"
+BR2_RAINIER_2U_XML_TARGETING_FILENAME="Rainier-2U-MRW_hb.mrw.xml"
+BR2_RAINIER_4U_XML_CUSTOM_GIT=y
+BR2_RAINIER_4U_XML_CUSTOM_GIT_VALUE="git@github.ibm.com:openbmc/rainier-xml.git"
+BR2_RAINIER_4U_XML_VERSION="88a6262d2ba89aae1807b8eaf9336889f7c41799"
+BR2_RAINIER_4U_XML_SYSTEM_FILENAME="Rainier-4U-MRW_hb.system.xml"
+BR2_RAINIER_4U_XML_TARGETING_FILENAME="Rainier-4U-MRW_hb.mrw.xml"
+BR2_PACKAGE_OPENPOWER_PNOR_P10=y
+BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
+BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET="rainier"
+BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME="p10_sbe.img.ecc"
+BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
+BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME="p10.ref_image.hdr.bin.ecc"
+BR2_IMA_CATALOG_P10_FILENAME="ima_catalog.bin"
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
+# BR2_PACKAGE_CAPP_UCODE is not set
+BR2_PACKAGE_LOADKEYS=y
+BR2_IMA_CATALOG_DTS="POWER9"
+BR2_PACKAGE_OCMB_EXPLORER_FW=y
diff --git a/openpower/linux-p10/0001-xhci-Reset-controller-on-xhci-shutdown.patch b/openpower/linux-p10/0001-xhci-Reset-controller-on-xhci-shutdown.patch
new file mode 100644
index 0000000..952b977
--- /dev/null
+++ b/openpower/linux-p10/0001-xhci-Reset-controller-on-xhci-shutdown.patch
@@ -0,0 +1,32 @@
+From eb9ba66045e92706878d619e0b8c94669cc993f9 Mon Sep 17 00:00:00 2001
+From: Brian King <brking@linux.vnet.ibm.com>
+Date: Wed, 25 Oct 2017 10:42:59 +1100
+Subject: [PATCH 1/2] xhci: Reset controller on xhci shutdown
+
+Fixes kexec boot. Without a hard reset, some USB chips will fail to
+initialize in a kexec booted kernel.
+
+Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
+Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/usb/host/xhci.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
+index ed468ee..e881cde 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -789,6 +789,9 @@ void xhci_shutdown(struct usb_hcd *hcd)
+ 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
+ 			"xhci_shutdown completed - status = %x",
+ 			readl(&xhci->op_regs->status));
++
++	/* TI XHCI controllers do not come back after kexec without this hack */
++	pci_reset_function_locked(to_pci_dev(hcd->self.sysdev));
+ }
+ EXPORT_SYMBOL_GPL(xhci_shutdown);
+ 
+-- 
+1.9.4
+
diff --git a/openpower/linux-p10/0002-Openpower-kernel-release-5.8-rc1-openpower1.patch b/openpower/linux-p10/0002-Openpower-kernel-release-5.8-rc1-openpower1.patch
new file mode 100644
index 0000000..b6b622b
--- /dev/null
+++ b/openpower/linux-p10/0002-Openpower-kernel-release-5.8-rc1-openpower1.patch
@@ -0,0 +1,26 @@
+From 5c5b9e604cb11e580bf1d8e269bc8ceb8f1cc008 Mon Sep 17 00:00:00 2001
+From: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+Date: Thu, 17 Sep 2020 14:38:00 -0500
+Subject: [PATCH 2/2] Openpower kernel release 5.8-rc1-openpower1
+
+Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 24a4c1b..f25f3d7 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,7 +2,7 @@
+ VERSION = 5
+ PATCHLEVEL = 8
+ SUBLEVEL = 0
+-EXTRAVERSION =
++EXTRAVERSION = -openpower1
+ NAME = Kleptomaniac Octopus
+ 
+ # *DOCUMENTATION*
+-- 
+1.9.4
+
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index be50a3e..c360f13 100755
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -1,17 +1,28 @@
 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-p10/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot-binaries/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/machine-xml/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/rainier-2u-xml/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/rainier-4u-xml/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/everest-xml/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-pnor/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-pnor-p10/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/hcode-p10/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ-p10/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"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/loadkeys/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/ima-catalog/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/sbe/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/sbe-p10/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/sb-signing-utils/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/sb-signing-framework/Config.in"
 source "$BR2_EXTERNAL_OP_BUILD_PATH/package/ocmb-explorer-fw/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/fsp-trace/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/ekb/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/pdata/Config.in"
diff --git a/openpower/package/ekb/Config.in b/openpower/package/ekb/Config.in
new file mode 100644
index 0000000..49921f1
--- /dev/null
+++ b/openpower/package/ekb/Config.in
@@ -0,0 +1,37 @@
+menu "ekb"
+
+config BR2_PACKAGE_EKB
+        bool "ekb"
+        default y if (BR2_OPENPOWER_POWER10)
+        help
+          To boot the server, the bmc application and hostboot will expect
+          hardware functional details which are maintained in xml files by ekb.
+          So, this packge is used to get all those xml files and pdata will
+          consume those xml files to add hardware functional details into
+          device tree.
+
+if BR2_PACKAGE_EKB
+
+choice
+    prompt "EKB version"
+    default BR2_EKB_LATEST_VERSION
+
+config BR2_EKB_LATEST_VERSION
+    bool "Use latest EKB master"
+
+config BR2_EKB_CUSTOM_VERSION
+    bool "Custom EKB version"
+
+endchoice
+
+config BR2_EKB_CUSTOM_VERSION_VALUE
+    string "EKB version"
+    depends on BR2_EKB_CUSTOM_VERSION
+
+config BR2_EKB_VERSION
+    string
+    default "c68f4f8bd0c5a7481c69d0705268a8f6761f61f7" if BR2_EKB_LATEST_VERSION
+    default BR2_EKB_CUSTOM_VERSION_VALUE if BR2_EKB_CUSTOM_VERSION
+endif
+
+endmenu
diff --git a/openpower/package/ekb/ekb.mk b/openpower/package/ekb/ekb.mk
new file mode 100644
index 0000000..37d77ac
--- /dev/null
+++ b/openpower/package/ekb/ekb.mk
@@ -0,0 +1,39 @@
+################################################################################
+#
+# ekb
+#
+################################################################################
+
+EKB_VERSION = $(call qstrip,$(BR2_EKB_VERSION))
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#EKB_SITE = $(call github,openbmc,ekb,$(EKB_VERSION))
+EKB_SITE = git@github.ibm.com:openbmc/pub-ekb.git
+EKB_SITE_METHOD = git
+
+EKB_INSTALL_STAGING = YES
+EKB_INSTALL_TARGET = NO
+
+EKB_STAGING_DIR = $(STAGING_DIR)/ekb/
+
+ifeq ($(BR2_OPENPOWER_POWER10),y)
+EKB_HWP_ATTRS_XML_FILES = chips/p10/procedures/xml/attribute_info/p10_clock_attributes.xml \
+           chips/p10/procedures/xml/attribute_info/p10_freq_attributes.xml \
+           chips/p10/procedures/xml/attribute_info/p10_ipl_attributes.xml \
+           chips/p10/procedures/xml/attribute_info/p10_nest_attributes.xml \
+           chips/p10/procedures/xml/attribute_info/p10_pervasive_attributes.xml \
+           chips/p10/procedures/xml/attribute_info/p10_runn_attributes.xml \
+           chips/p10/procedures/xml/attribute_info/p10_bars_attributes.xml \
+           hwpf/fapi2/xml/attribute_info/unit_attributes.xml \
+           hwpf/fapi2/xml/attribute_info/common_attributes.xml \
+           hwpf/fapi2/xml/attribute_info/chip_attributes.xml
+endif
+
+define EKB_INSTALL_STAGING_CMDS
+		# Creating ekb staging directory
+		mkdir -p $(EKB_STAGING_DIR)
+		# Copying all required hwps attributes xml file with respective directory structures
+		cd $(@D); cp --parents $(EKB_HWP_ATTRS_XML_FILES) $(EKB_STAGING_DIR)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/everest-xml/Config.in b/openpower/package/everest-xml/Config.in
new file mode 100644
index 0000000..8b8cccb
--- /dev/null
+++ b/openpower/package/everest-xml/Config.in
@@ -0,0 +1,86 @@
+menu "Everest XML (MRW)"
+
+config BR2_PACKAGE_EVEREST_XML
+        bool "everest_xml"
+
+if BR2_PACKAGE_EVEREST_XML
+
+choice
+	prompt "Everest XML location"
+
+config BR2_EVEREST_XML_GITHUB_PROJECT
+       bool "OpenPOWER Github project name"
+
+config BR2_EVEREST_XML_CUSTOM_GIT
+       bool "Custom URL of Everest xml repository"
+
+endchoice
+
+config BR2_EVEREST_XML_FILTER_UNWANTED_ATTRIBUTES
+       bool "Filter Unwanted Attributes"
+       default y
+
+config BR2_EVEREST_XML_OPPOWERVM_ATTRIBUTES
+       bool "OPPOWERVM Attributes/Target"
+       default y
+
+config BR2_EVEREST_XML_TARGET_TYPES_OPENPOWER_XML
+       bool "Include target_types_openpower.xml"
+       default y
+
+config BR2_EVEREST_XML_CUSTOM_GIT_VALUE
+	string "URL of Everest xml repository"
+	depends on BR2_EVEREST_XML_CUSTOM_GIT
+
+config BR2_EVEREST_XML_GITHUB_PROJECT_VALUE
+       string "The Github project name (e.g. everest-xml)"
+       default "everest-xml"
+       depends on BR2_EVEREST_XML_GITHUB_PROJECT
+
+config BR2_EVEREST_XML_VERSION
+       string "Version of Everest XML"
+
+config BR2_EVEREST_XML_FILENAME
+       string "Everest XML filename (e.g. Everest-MRW.xml)"
+       default "Everest-MRW.xml"
+       help
+           The name of the MRW XML file. Note that this file MUST
+           come with the '.xml' prefix (all lowercase)
+
+config BR2_EVEREST_XML_SYSTEM_FILENAME
+        string "Targeting Everest system xml filename"
+        default ""
+        help
+            Defines the name of the system XML filename
+            to be used when creating targeting binary image
+
+config BR2_EVEREST_XML_TARGETING_FILENAME
+        string "Targeting Everest mrw xml filename"
+        default ""
+        help
+            Defines the name of the mrw XML filename
+            to be used when creating targeting binary image
+
+config BR2_EVEREST_XML_BIOS_FILENAME
+        string "BIOS Everest metadata XML filename"
+        default "Everest-MRW_bios.xml"
+        help
+            Defines the name of the BIOS XML filename
+            to parse when generating BIOS metadata
+
+config BR2_EVEREST_XML_TARGETING_BIN_FILENAME
+        string "Name of the openpower binary targeting file"
+        default "Everest-MRW.targeting.bin"
+        help
+            String used to define name of openpower targeting binary file
+
+config BR2_EVEREST_XML_TARGETING_ECC_FILENAME
+        string "Name of the openpower binary targeting ecc file"
+        default "Everest-MRW.targeting.bin.ecc"
+        help
+            String used to define name of openpower
+            targeting binary file, ecc protected
+
+endif
+
+endmenu
diff --git a/openpower/package/everest-xml/everest-xml.mk b/openpower/package/everest-xml/everest-xml.mk
new file mode 100644
index 0000000..b6c369d
--- /dev/null
+++ b/openpower/package/everest-xml/everest-xml.mk
@@ -0,0 +1,167 @@
+################################################################################
+# everest-xml
+#
+################################################################################
+
+EVEREST_XML_VERSION ?= $(call qstrip,$(BR2_EVEREST_XML_VERSION))
+ifeq ($(BR2_EVEREST_XML_GITHUB_PROJECT),y)
+EVEREST_XML_SITE = $(call github,open-power,$(BR2_EVEREST_XML_GITHUB_PROJECT_VALUE),$(EVEREST_XML_VERSION))
+else ifeq ($(BR2_EVEREST_XML_CUSTOM_GIT),y)
+EVEREST_XML_SITE_METHOD = git
+EVEREST_XML_SITE = $(BR2_EVEREST_XML_CUSTOM_GIT_VALUE)
+endif
+
+EVEREST_XML_LICENSE = Apache-2.0
+EVEREST_XML_LICENSE_FILES = LICENSE
+EVEREST_XML_DEPENDENCIES += hostboot-p10
+
+EVEREST_XML_INSTALL_IMAGES = YES
+EVEREST_XML_INSTALL_TARGET = YES
+
+EVEREST_XML_MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+EVEREST_XML_MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+# Defines for BIOS metadata creation
+EVEREST_XML_BIOS_SCHEMA_FILE = $(EVEREST_XML_MRW_HB_TOOLS)/bios.xsd
+EVEREST_XML_BIOS_CONFIG_FILE = \
+    $(call qstrip,$(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_BIOS_FILENAME))
+EVEREST_XML_BIOS_METADATA_FILE = \
+    $(call qstrip,$(EVEREST_XML_MRW_HB_TOOLS)/$(BR2_OPENPOWER_P10_CONFIG_NAME)_bios_metadata.xml)
+EVEREST_XML_PETITBOOT_XSLT_FILE = $(EVEREST_XML_MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
+EVEREST_XML_PETITBOOT_BIOS_METADATA_FILE = \
+    $(call qstrip, \
+        $(EVEREST_XML_MRW_HB_TOOLS)/$(BR2_OPENPOWER_P10_CONFIG_NAME)_bios_metadata_petitboot.xml)
+# XXX TODO: Figure out what to do with the bios_metadata.xml. Right now, the last xml
+#           package file processed 'wins' and all previously processed xml packages are
+#           overriden.
+EVEREST_XML_PETITBOOT_BIOS_INITRAMFS_FILE = \
+    $(TARGET_DIR)/usr/share/bios_metadata.xml
+
+ifeq ($(BR2_EVEREST_XML_OPPOWERVM_ATTRIBUTES),y)
+EVEREST_XML_OPPOWERVM_ATTR_XML = $(EVEREST_XML_MRW_HB_TOOLS)/attribute_types_oppowervm.xml
+EVEREST_XML_OPPOWERVM_TARGET_XML = $(EVEREST_XML_MRW_HB_TOOLS)/target_types_oppowervm.xml
+endif
+ifeq ($(BR2_EVEREST_XML_TARGET_TYPES_OPENPOWER_XML),y)
+EVEREST_XML_TARGET_TYPES_OPENPOWER_XML = $(EVEREST_XML_MRW_HB_TOOLS)/target_types_openpower.xml
+endif
+
+define EVEREST_XML_FILTER_UNWANTED_ATTRIBUTES
+       chmod +x $(EVEREST_XML_MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
+
+       $(EVEREST_XML_MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
+            --tgt-xml $(EVEREST_XML_MRW_HB_TOOLS)/target_types_merged.xml \
+            --tgt-xml $(EVEREST_XML_MRW_HB_TOOLS)/target_types_hb.xml \
+            --tgt-xml $(EVEREST_XML_MRW_HB_TOOLS)/target_types_oppowervm.xml \
+            --tgt-xml $(EVEREST_XML_MRW_HB_TOOLS)/target_types_openpower.xml \
+            --mrw-xml $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+                $(BR2_EVEREST_XML_TARGETING_FILENAME))
+
+       cp  $(call qstrip, $(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_TARGETING_FILENAME)).updated \
+           $(call qstrip,$(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_TARGETING_FILENAME))
+endef
+
+define EVEREST_XML_BUILD_CMDS
+        # copy the machine xml where the common lives
+        $(INSTALL) -m 0644 -D $(@D)/$(call qstrip,$(BR2_EVEREST_XML_FILENAME)) \
+            $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip,$(BR2_EVEREST_XML_FILENAME))
+        $(INSTALL) -m 0644 -D $(@D)/$(call qstrip,$(BR2_EVEREST_XML_BIOS_FILENAME)) \
+            $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip,$(BR2_EVEREST_XML_BIOS_FILENAME))
+
+        # generate the system mrw xml
+        perl -I $(EVEREST_XML_MRW_HB_TOOLS) \
+        $(EVEREST_XML_MRW_HB_TOOLS)/processMrw.pl -x \
+            $(call qstrip,$(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_FILENAME)) \
+            -o $(call qstrip,$(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_TARGETING_FILENAME))
+
+	$(if $(BR2_EVEREST_XML_FILTER_UNWANTED_ATTRIBUTES), $(call EVEREST_XML_FILTER_UNWANTED_ATTRIBUTES))
+
+        # merge in any system specific attributes, hostboot attributes
+        $(EVEREST_XML_MRW_HB_TOOLS)/mergexml.sh \
+            $(call qstrip,$(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_SYSTEM_FILENAME)) \
+            $(EVEREST_XML_MRW_HB_TOOLS)/attribute_types.xml \
+            $(EVEREST_XML_MRW_HB_TOOLS)/attribute_types_hb.xml \
+            $(EVEREST_XML_OPPOWERVM_ATTR_XML) \
+            $(EVEREST_XML_MRW_HB_TOOLS)/attribute_types_openpower.xml \
+            $(EVEREST_XML_MRW_HB_TOOLS)/target_types_merged.xml \
+            $(EVEREST_XML_MRW_HB_TOOLS)/target_types_hb.xml \
+            $(EVEREST_XML_OPPOWERVM_TARGET_XML) \
+            $(EVEREST_XML_TARGET_TYPES_OPENPOWER_XML) \
+            $(call qstrip, \
+                $(EVEREST_XML_MRW_SCRATCH)/$(BR2_EVEREST_XML_TARGETING_FILENAME)) \
+            > $(EVEREST_XML_MRW_HB_TOOLS)/$(call qstrip, \
+                $(BR2_EVEREST_XML_TARGETING_FILENAME))_temporary_hb.hb.xml;
+
+        # creating the targeting binary
+        # XXX TODO: xmltohb.pl creates a 'targeting.bin' in the output directory, we want
+        #           that file to be unique if we don't want to risk collisions on eventual
+        #           parallel builds
+        $(EVEREST_XML_MRW_HB_TOOLS)/xmltohb.pl  \
+            --hb-xml-file=$(EVEREST_XML_MRW_HB_TOOLS)/$(call qstrip, \
+                $(BR2_EVEREST_XML_TARGETING_FILENAME))_temporary_hb.hb.xml \
+            --fapi-attributes-xml-file=$(EVEREST_XML_MRW_HB_TOOLS)/fapiattrs.xml \
+            --src-output-dir=$(EVEREST_XML_MRW_HB_TOOLS)/ \
+            --img-output-dir=$(EVEREST_XML_MRW_HB_TOOLS)/ \
+            --vmm-consts-file=$(EVEREST_XML_MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
+            --bios-xml-file=$(EVEREST_XML_BIOS_CONFIG_FILE) \
+            --bios-schema-file=$(EVEREST_XML_BIOS_SCHEMA_FILE) \
+            --bios-output-file=$(EVEREST_XML_BIOS_METADATA_FILE)
+
+        # Transform BIOS XML into Petitboot specific BIOS XML via the schema
+        xsltproc -o \
+            $(EVEREST_XML_PETITBOOT_BIOS_METADATA_FILE) \
+            $(EVEREST_XML_PETITBOOT_XSLT_FILE) \
+            $(EVEREST_XML_BIOS_METADATA_FILE)
+
+        # Create the wofdata
+        if [ -e $(EVEREST_XML_MRW_HB_TOOLS)/wof-tables-img ]; then \
+            chmod +x $(EVEREST_XML_MRW_HB_TOOLS)/wof-tables-img; \
+        fi
+
+        if [ -d $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+            $(BR2_EVEREST_XML_FILENAME:.xml=.wofdata)) ]; then \
+            $(EVEREST_XML_MRW_HB_TOOLS)/wof-tables-img \
+                --create $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(EVEREST_XML_FILENAME:.xml=.wof_output)) \
+                $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_EVEREST_XML_FILENAME:.xml=wofdata)); \
+        fi
+
+        # Create the MEMD binary
+        if [ -e $(EVEREST_XML_MRW_HB_TOOLS)/memd_creation.pl ]; then \
+            chmod +x $(EVEREST_XML_MRW_HB_TOOLS)/memd_creation.pl; \
+        fi
+
+        if [ -d $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+            $(BR2_EVEREST_XML_FILENAME:.xml=.memd_binaries)) ]; then \
+            $(EVEREST_XML_MRW_HB_TOOLS)/memd_creation.pl \
+                -memd_dir $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_EVEREST_XML_FILENAME:.xml=.memd_binaries)) \
+                -memd_output $(EVEREST_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_EVEREST_XML_FILENAME:.xml=.memd_output.dat)); \
+        fi
+
+endef
+
+define EVEREST_XML_INSTALL_IMAGES_CMDS
+        mv $(EVEREST_XML_MRW_HB_TOOLS)/targeting.bin $(call qstrip, \
+            $(EVEREST_XML_MRW_HB_TOOLS)/$(BR2_EVEREST_XML_TARGETING_BIN_FILENAME))
+        if [ -e $(EVEREST_XML_MRW_HB_TOOLS)/targeting.bin.protected ]; then \
+            mv -v $(EVEREST_XML_MRW_HB_TOOLS)/targeting.bin.protected \
+                $(call qstrip, \
+                    $(EVEREST_XML_MRW_HB_TOOLS)/$(BR2_EVEREST_XML_TARGETING_BIN_FILENAME)).protected; \
+        fi
+        if [ -e $(EVEREST_XML_MRW_HB_TOOLS)/targeting.bin.unprotected ]; then \
+            mv -v $(EVEREST_XML_MRW_HB_TOOLS)/targeting.bin.unprotected \
+                $(call qstrip, \
+                    $(EVEREST_XML_MRW_HB_TOOLS)/$(BR2_EVEREST_XML_TARGETING_BIN_FILENAME)).unprotected; \
+        fi
+endef
+
+define EVEREST_XML_INSTALL_TARGET_CMDS
+        # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
+        $(INSTALL) -D -m 0644 \
+            $(EVEREST_XML_PETITBOOT_BIOS_METADATA_FILE) \
+            $(EVEREST_XML_PETITBOOT_BIOS_INITRAMFS_FILE)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/fsp-trace/Config.in b/openpower/package/fsp-trace/Config.in
new file mode 100644
index 0000000..68aa688
--- /dev/null
+++ b/openpower/package/fsp-trace/Config.in
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_FSP_TRACE
+        bool "fsp_trace"
+        default y if (BR2_OPENPOWER_PLATFORM)
+        help
+            Project to build fsp-trace tool
+
+if BR2_PACKAGE_FSP_TRACE
+
+choice
+	prompt "FSP-Trace version"
+	default BR2_FSP_TRACE_LATEST_VERSION
+
+config BR2_FSP_TRACE_LATEST_VERSION
+	bool "Use latest FSP_TRACE master"
+
+config BR2_FSP_TRACE_CUSTOM_VERSION
+	bool "Custom FSP_TRACE version"
+
+endchoice
+
+config BR2_FSP_TRACE_CUSTOM_VERSION_VALUE
+	string "FSP_TRACE version"
+	depends on BR2_FSP_TRACE_CUSTOM_VERSION
+
+config BR2_FSP_TRACE_VERSION
+	string
+	default "cf0bd9b36c0d8cb091a471973493d1370330c7d1" if BR2_FSP_TRACE_LATEST_VERSION
+	default BR2_FSP_TRACE_CUSTOM_VERSION_VALUE \
+		if BR2_FSP_TRACE_CUSTOM_VERSION
+
+endif
diff --git a/openpower/package/fsp-trace/fsp_trace.mk b/openpower/package/fsp-trace/fsp_trace.mk
new file mode 100644
index 0000000..eb7431b
--- /dev/null
+++ b/openpower/package/fsp-trace/fsp_trace.mk
@@ -0,0 +1,26 @@
+################################################################################
+#
+# fsp_trace
+#
+################################################################################
+
+FSP_TRACE_VERSION = $(call qstrip,$(BR2_FSP_TRACE_VERSION))
+FSP_TRACE_SITE ?= $(call github,open-power,fsp-trace,$(FSP_TRACE_VERSION))
+
+FSP_TRACE_LICENSE = Apache-2.0
+FSP_TRACE_LICENSE_FILES = LICENSE
+
+FSP_TRACE_INSTALL_IMAGES = YES
+FSP_TRACE_INSTALL_TARGET = NO
+
+define FSP_TRACE_BUILD_CMDS
+        bash -c 'cd $(@D) && $(MAKE)'
+endef
+
+define FSP_TRACE_INSTALL_IMAGES_CMDS
+    mkdir -p $(STAGING_DIR)/fsp-trace/
+    $(INSTALL) -D $(@D)/fsp-trace $(STAGING_DIR)/fsp-trace/
+endef
+
+
+$(eval $(generic-package))
diff --git a/openpower/package/hcode-p10/Config.in b/openpower/package/hcode-p10/Config.in
new file mode 100644
index 0000000..9f5b6ea
--- /dev/null
+++ b/openpower/package/hcode-p10/Config.in
@@ -0,0 +1,38 @@
+config BR2_PACKAGE_HCODE_P10
+        bool "hcode-p10"
+        default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER10)
+        select BR2_CPP
+        help
+            Project to build the HCODE package for P10
+
+if BR2_PACKAGE_HCODE_P10
+
+config BR2_HCODE_INCLUDE_IONV
+        bool "Enables packaging of the NVIDIA GPU image into the final hw image"
+        default y
+        help
+            Boolean used to flag whether to include NVIDIA GPU binary
+
+choice
+	prompt "HCODE version"
+	default BR2_HCODE_P10_LATEST_VERSION
+
+config BR2_HCODE_P10_LATEST_VERSION
+	bool "Use latest HCODE P10 version"
+
+config BR2_HCODE_P10_CUSTOM_VERSION
+	bool "Custom HCODE P10 version"
+
+endchoice
+
+config BR2_HCODE_P10_CUSTOM_VERSION_VALUE
+	string "HCODE P10 version"
+	depends on BR2_HCODE_P10_CUSTOM_VERSION
+
+config BR2_HCODE_P10_VERSION
+	string
+	default "hw012721a.opmst10" if BR2_HCODE_P10_LATEST_VERSION
+	default BR2_HCODE_P10_CUSTOM_VERSION_VALUE \
+		if BR2_HCODE_P10_CUSTOM_VERSION
+
+endif
diff --git a/openpower/package/hcode-p10/hcode-p10.mk b/openpower/package/hcode-p10/hcode-p10.mk
new file mode 100644
index 0000000..2dfd59e
--- /dev/null
+++ b/openpower/package/hcode-p10/hcode-p10.mk
@@ -0,0 +1,55 @@
+################################################################################
+#
+# HCODE for P10
+#
+################################################################################
+
+HCODE_P10_VERSION = $(call qstrip,$(BR2_HCODE_P10_VERSION))
+#HCODE_P10_SITE ?= $(call github,open-power,hcode,$(HCODE_P10_VERSION))
+# TODO: Need to comment out above line and enable next two lines
+# once buildable P10 HCODE is available in GHE
+HCODE_P10_SITE ?= git@github.ibm.com:open-power/hcode.git
+HCODE_P10_SITE_METHOD ?= git
+HCODE_P10_LICENSE = Apache-2.0
+
+HCODE_P10_INSTALL_IMAGES = YES
+HCODE_P10_INSTALL_TARGET = NO
+
+HCODE_P10_DEPENDENCIES = host-binutils host-ppe42-gcc hostboot-binaries
+
+HW_IMAGE_BIN_PATH = output/images/hw_image
+HW_IMAGE_BIN_NAME = p10.hw_image.bin
+HCODE_IMAGE_BIN_NAME = p10.ref_image.bin
+
+CROSS_COMPILER_PATH=$(PPE42_GCC_BIN)
+PPE_TOOL_PATH ?= $(CROSS_COMPILER_PATH)
+PPE_PREFIX    ?= $(PPE_TOOL_PATH)/bin/powerpc-eabi-
+
+###################################
+# P10 Compilation
+
+ifeq ($(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+BINARY_IONV_FILENAME=$(BR2_HOSTBOOT_P10_BINARY_IONV_FILENAME)
+else
+BINARY_IONV_FILENAME=$(BR2_HOSTBOOT_BINARY_IONV_FILENAME)
+endif
+
+HCODE_P10_ENV_VARS= CONFIG_FILE=$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/hcode/$(BR2_HCODE_CONFIG_FILE) \
+	LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib \
+	CROSS_COMPILER_PATH=$(PPE42_GCC_BIN) PPE_TOOL_PATH=$(CROSS_COMPILER_PATH) \
+	PPE_PREFIX=$(CROSS_COMPILER_PATH)/bin/powerpc-eabi- \
+        SELF_REST_PREFIX=$(CROSS_COMPILER_PATH)/bin/powerpc-eabi- \
+	RINGFILEPATH=$(STAGING_DIR)/hostboot_binaries __EKB_PREFIX=$(CXXPATH) \
+	CONFIG_IONV_FILE_LOCATION=$(STAGING_DIR)/hostboot_binaries/$(BINARY_IONV_FILENAME) \
+	CONFIG_INCLUDE_IONV=$(BR2_HCODE_INCLUDE_IONV) OPENPOWER_BUILD=1
+
+define HCODE_P10_INSTALL_IMAGES_CMDS
+	mkdir -p $(STAGING_DIR)/hcode
+	$(INSTALL) $(@D)/$(HW_IMAGE_BIN_PATH)/$(HW_IMAGE_BIN_NAME) $(STAGING_DIR)/hcode/$(HCODE_IMAGE_BIN_NAME)
+endef
+
+define HCODE_P10_BUILD_CMDS
+	$(HCODE_P10_ENV_VARS) bash -c 'cd $(@D) && source ./env.bash && $(MAKE) '
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/hostboot-binaries/Config.in b/openpower/package/hostboot-binaries/Config.in
index b715b78..ade30e5 100644
--- a/openpower/package/hostboot-binaries/Config.in
+++ b/openpower/package/hostboot-binaries/Config.in
@@ -24,8 +24,14 @@
 
 config BR2_HOSTBOOT_BINARIES_VERSION
 	string
-	default "hw101520a.opmst" if BR2_HOSTBOOT_BINARIES_LATEST_VERSION
+	default "hw012721a.opmst10" if BR2_HOSTBOOT_BINARIES_LATEST_VERSION
 	default BR2_HOSTBOOT_BINARIES_CUSTOM_VERSION_VALUE \
 		if BR2_HOSTBOOT_BINARIES_CUSTOM_VERSION
 
+config BR2_HOSTBOOT_BINARIES_USE_HCODE_BIN
+        bool "Use HCODE Binary instead of compiling HCODE"
+        default n
+        help
+            Boolean used to flag using HCODE Binary
+
 endif
diff --git a/openpower/package/hostboot-binaries/hostboot_binaries.mk b/openpower/package/hostboot-binaries/hostboot_binaries.mk
index a7649c8..bff9670 100644
--- a/openpower/package/hostboot-binaries/hostboot_binaries.mk
+++ b/openpower/package/hostboot-binaries/hostboot_binaries.mk
@@ -4,9 +4,12 @@
 #
 ################################################################################
 
-
 HOSTBOOT_BINARIES_VERSION = $(call qstrip,$(BR2_HOSTBOOT_BINARIES_VERSION))
-HOSTBOOT_BINARIES_SITE ?= $(call github,open-power,hostboot-binaries,$(HOSTBOOT_BINARIES_VERSION))
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#HOSTBOOT_BINARIES_SITE ?= $(call github,open-power,hostboot-binaries,$(HOSTBOOT_BINARIES_VERSION))
+HOSTBOOT_BINARIES_SITE ?= git@github.ibm.com:open-power/hostboot-binaries.git
+HOSTBOOT_BINARIES_SITE_METHOD ?= git
 
 HOSTBOOT_BINARIES_LICENSE = Apache-2.0
 HOSTBOOT_BINARIES_LICENSE_FILES = LICENSE
@@ -41,5 +44,44 @@
 endef
 endif
 
+###################################
+# P10:
+ifeq ($(BR2_OPENPOWER_POWER10),y)
+
+ifeq ($(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+BINARY_IONV_FILENAME=$(BR2_HOSTBOOT_P10_BINARY_IONV_FILENAME)
+BINARY_SBEC_FILENAME=$(BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME)
+else
+BINARY_IONV_FILENAME=$(BR2_HOSTBOOT_BINARY_IONV_FILENAME)
+BINARY_SBEC_FILENAME=$(BR2_HOSTBOOT_BINARY_SBEC_FILENAME)
+endif
+
+P10_RING_DYNAMIC_FILE=p10.hw.dynamic.bin
+P10_RING_OVERLAYS_FILE=p10.hw.overlays.bin
+P10_RING_QME_FILE=p10.hw.qme.rings.bin
+P10_RING_SBE_FILE=p10.hw.sbe.rings.bin
+P10_RING_FA_EC_CL2_FILE=p10.hw.fa_ec_cl2_far.bin
+P10_RING_FA_EC_MMA_FILE=p10.hw.fa_ec_mma_far.bin
+P10_RING_FA_OVRD_FILE=p10.hw.fa_ring_ovrd.bin
+P10_RING_DYNAMIC_FEATURES_FILE=p10.dynamic_features.bin
+P10_RING_DYNAMIC_SERVICES_FILE=p10.dynamic_services.bin
+P10_RING_HDCT_FILE=p10.hw.hdct.bin
+
+define HOSTBOOT_BINARIES_INSTALL_IMAGES_CMDS
+     $(INSTALL) -D $(@D)/gpu_gpe1.bin  $(STAGING_DIR)/hostboot_binaries/gpu_gpe1.bin
+     $(INSTALL) -D $(@D)/$(BINARY_IONV_FILENAME)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(BINARY_SBEC_FILENAME) $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_DYNAMIC_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_OVERLAYS_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_QME_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_SBE_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_FA_EC_CL2_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_FA_EC_MMA_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_FA_OVRD_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_DYNAMIC_FEATURES_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_DYNAMIC_SERVICES_FILE)  $(STAGING_DIR)/hostboot_binaries/
+     $(INSTALL) -D $(@D)/$(P10_RING_HDCT_FILE)  $(STAGING_DIR)/hostboot_binaries/
+endef
+endif
 
 $(eval $(generic-package))
diff --git a/openpower/package/hostboot-p10/Config.in b/openpower/package/hostboot-p10/Config.in
new file mode 100644
index 0000000..35cc45a
--- /dev/null
+++ b/openpower/package/hostboot-p10/Config.in
@@ -0,0 +1,39 @@
+config BR2_PACKAGE_HOSTBOOT_P10
+        bool "hostboot-p10"
+        default y if (BR2_OPENPOWER_POWER10)
+        select BR2_CPP
+        help
+            Project to build the Hostboot package for P10
+
+if BR2_PACKAGE_HOSTBOOT_P10
+
+choice
+	prompt "P10 Hostboot version"
+	default BR2_HOSTBOOT_P10_LATEST_VERSION
+
+config BR2_HOSTBOOT_P10_LATEST_VERSION
+	bool "Use latest Hostboot version"
+
+config BR2_HOSTBOOT_P10_CUSTOM_VERSION
+	bool "Use custom Hostboot version"
+
+endchoice
+
+config BR2_HOSTBOOT_P10_CUSTOM_VERSION_VALUE
+	string "Hostboot P10 version"
+	depends on BR2_HOSTBOOT_P10_CUSTOM_VERSION
+
+config BR2_HOSTBOOT_P10_VERSION
+	string
+	default "820a3d8273a33dc4b772c4f2148b32d5abb0a4a0" if BR2_HOSTBOOT_P10_LATEST_VERSION
+	default BR2_HOSTBOOT_P10_CUSTOM_VERSION_VALUE \
+		if BR2_HOSTBOOT_P10_CUSTOM_VERSION
+
+config BR2_HOSTBOOT_P10_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-p10/hostboot-p10.mk b/openpower/package/hostboot-p10/hostboot-p10.mk
new file mode 100644
index 0000000..f5c1d31
--- /dev/null
+++ b/openpower/package/hostboot-p10/hostboot-p10.mk
@@ -0,0 +1,47 @@
+################################################################################
+#
+# Hostboot for POWER10
+#
+################################################################################
+
+HOSTBOOT_P10_VERSION = $(call qstrip,$(BR2_HOSTBOOT_P10_VERSION))
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#HOSTBOOT_P10_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_P10_VERSION))
+HOSTBOOT_P10_SITE ?= git@github.ibm.com:open-power/hostboot.git
+HOSTBOOT_P10_SITE_METHOD ?= git
+
+HOSTBOOT_P10_LICENSE = Apache-2.0
+HOSTBOOT_P10_LICENSE_FILES = LICENSE
+HOSTBOOT_P10_DEPENDENCIES = host-binutils fsp-trace
+
+HOSTBOOT_P10_INSTALL_IMAGES = YES
+HOSTBOOT_P10_INSTALL_TARGET = NO
+
+HOSTBOOT_P10_ENV_VARS=$(TARGET_MAKE_ENV) PERL_USE_UNSAFE_INC=1 \
+    CONFIG_FILE=$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/hostboot/$(BR2_HOSTBOOT_P10_CONFIG_FILE) \
+    OPENPOWER_BUILD=1 CROSS_PREFIX="$(CCACHE) $(TARGET_CROSS)" HOST_PREFIX="" HOST_BINUTILS_DIR=$(HOST_BINUTILS_DIR) \
+    HOSTBOOT_VERSION=`cat $(HOSTBOOT_P10_VERSION_FILE)`
+
+FSP_TRACE_IMAGES_DIR = $(STAGING_DIR)/fsp-trace/
+
+# TODO: WORKAROUND: Currently the git clone causes a bad symlink
+# to be created for src/include/usr/tracinterface.H; so delete it and rebuild it
+# manually
+define HOSTBOOT_P10_BUILD_CMDS
+        $(HOSTBOOT_P10_ENV_VARS) bash -c 'cd $(@D) \
+                                          && if ! cmp --quiet src/include/usr/trace/interface.H src/include/usr/tracinterface.H ; then \
+                                                 rm -f src/include/usr/tracinterface.H && cp src/include/usr/trace/interface.H src/include/usr/tracinterface.H ; \
+                                             fi \
+                                          && source ./env.bash && $(MAKE)'
+endef
+
+define HOSTBOOT_P10_INSTALL_IMAGES_CMDS
+        cd $(@D) && $(HOSTBOOT_P10_ENV_VARS) source ./env.bash && $(@D)/src/build/tools/hbDistribute --openpower $(STAGING_DIR)/hostboot_build_images/
+        cd $(@D) && $(HOSTBOOT_P10_ENV_VARS) source ./env.bash && $(@D)/src/build/tools/hbDistribute --openpower-sim $(STAGING_DIR)/hostboot_sim_data/
+	cp $(FSP_TRACE_IMAGES_DIR)/fsp-trace $(STAGING_DIR)/hostboot_sim_data/
+        mkdir -p $(OUTPUT_IMAGES_DIR)/sim/
+	tar -zcvf $(OUTPUT_IMAGES_DIR)/sim/hostboot_sim.tar -C $(STAGING_DIR)/hostboot_sim_data/ .
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/ima-catalog/ima-catalog.mk b/openpower/package/ima-catalog/ima-catalog.mk
index f357960..c93b09d 100644
--- a/openpower/package/ima-catalog/ima-catalog.mk
+++ b/openpower/package/ima-catalog/ima-catalog.mk
@@ -8,6 +8,12 @@
 IMA_CATALOG_LICENSE = Apache-2.0
 IMA_CATALOG_DEPENDENCIES = host-dtc host-xz
 
+ifeq ($(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+IMA_CATALOG_FILENAME=$(BR2_IMA_CATALOG_P10_FILENAME)
+else
+IMA_CATALOG_FILENAME=$(BR2_IMA_CATALOG_FILENAME)
+endif
+
 IMA_CATALOG_INSTALL_IMAGES = YES
 IMA_CATALOG_INSTALL_TARGET = NO
 
@@ -16,7 +22,7 @@
 endef
 
 define IMA_CATALOG_INSTALL_IMAGES_CMDS
-       $(INSTALL) $(@D)/$(BR2_IMA_CATALOG_FILENAME) $(BINARIES_DIR)
+       $(INSTALL) $(@D)/$(IMA_CATALOG_FILENAME) $(BINARIES_DIR)
 endef
 
 $(eval $(generic-package))
diff --git a/openpower/package/machine-xml/Config.in b/openpower/package/machine-xml/Config.in
index 8f4c61b..c9d7082 100755
--- a/openpower/package/machine-xml/Config.in
+++ b/openpower/package/machine-xml/Config.in
@@ -17,17 +17,17 @@
 
 config BR2_OPENPOWER_MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES
        bool "Filter Unwanted Attributes"
-       default y if (BR2_OPENPOWER_POWER9)
+       default y if (BR2_OPENPOWER_POWER9 || BR2_OPENPOWER_POWER10)
        default n
 
 config BR2_OPENPOWER_MACHINE_XML_OPPOWERVM_ATTRIBUTES
        bool "OPPOWERVM Attributes/Target"
-       default y if (BR2_OPENPOWER_POWER9)
+       default y if (BR2_OPENPOWER_POWER9 || BR2_OPENPOWER_POWER10)
        default n
 
 config BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML
        bool "Include target_types_openpower.xml"
-       default y if (BR2_OPENPOWER_POWER9)
+       default y if (BR2_OPENPOWER_POWER9 || BR2_OPENPOWER_POWER10)
        default n
 
 config BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT_VALUE
diff --git a/openpower/package/machine-xml/machine-xml.mk b/openpower/package/machine-xml/machine-xml.mk
index cca8630..2f625d3 100644
--- a/openpower/package/machine-xml/machine-xml.mk
+++ b/openpower/package/machine-xml/machine-xml.mk
@@ -15,6 +15,9 @@
 MACHINE_XML_LICENSE_FILES = LICENSE
 MACHINE_XML_DEPENDENCIES =
 
+ifeq ($(BR2_OPENPOWER_POWER10),y)
+MACHINE_XML_DEPENDENCIES += hostboot-p10
+endif
 ifeq ($(BR2_OPENPOWER_POWER9),y)
 MACHINE_XML_DEPENDENCIES += hostboot
 endif
@@ -65,7 +68,8 @@
 
         # generate the system mrw xml
         perl -I $(MRW_HB_TOOLS) \
-        $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/$(BR2_OPENPOWER_MACHINE_XML_FILENAME)
+        $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/$(BR2_OPENPOWER_MACHINE_XML_FILENAME) \
+        -o $(MRW_SCRATCH)/$(BR2_OPENPOWER_MRW_XML_FILENAME)$
 
 	$(if $(BR2_OPENPOWER_MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES), $(call MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES))
 
diff --git a/openpower/package/occ-p10/0001-Workaround-certain-OCC-errors-for-P10.patch b/openpower/package/occ-p10/0001-Workaround-certain-OCC-errors-for-P10.patch
new file mode 100644
index 0000000..c00a28c
--- /dev/null
+++ b/openpower/package/occ-p10/0001-Workaround-certain-OCC-errors-for-P10.patch
@@ -0,0 +1,28 @@
+From 48c944978a8fea129b4fce39063386237881871b Mon Sep 17 00:00:00 2001
+From: Nick Bofferding <bofferdn@us.ibm.com>
+Date: Thu, 3 Oct 2019 14:36:31 -0500
+Subject: [PATCH] Workaround certain OCC errors for P10
+
+To allow P10 OCC code to compile, temporarily suppress errors for:
+  aggressive-loop-optimizations
+  unused-but-set-variable
+---
+ src/occ_405/occ_defs.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/occ_405/occ_defs.mk b/src/occ_405/occ_defs.mk
+index c87c44a..fa06a42 100644
+--- a/src/occ_405/occ_defs.mk
++++ b/src/occ_405/occ_defs.mk
+@@ -23,7 +23,7 @@
+ #
+ # IBM_PROLOG_END_TAG
+ 
+-GCC-CFLAGS += -Werror
++GCC-CFLAGS += -Werror -Wno-error=aggressive-loop-optimizations  -Wno-error=unused-but-set-variable
+ 
+ %.o: %.c
+ $(OBJDIR)/%.o: %.c
+-- 
+1.8.2.2
+
diff --git a/openpower/package/occ-p10/Config.in b/openpower/package/occ-p10/Config.in
new file mode 100644
index 0000000..767ca7a
--- /dev/null
+++ b/openpower/package/occ-p10/Config.in
@@ -0,0 +1,50 @@
+config BR2_PACKAGE_OCC_P10
+        bool "OCC (POWER10)"
+        default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER10)
+        select BR2_CPP
+        help
+            Project to build OCC for P10
+
+if BR2_PACKAGE_OCC_P10
+
+config BR2_OCC_P10_BIN_FILENAME
+        string "Name of P10 OCC image file"
+	default "occ.bin"
+        help
+            String used to define name of the P10 OCC binary image file
+
+config BR2_OCC_P10_GPU_BIN_BUILD
+        bool "Enables Compilation of P10 GPU Binary Image"
+        default n
+        select BR2_PACKAGE_HOSTBOOT_BINARIES
+        help
+            Boolean used to flag whether to compile P10 OCC GPU binary
+
+config BR2_OCC_P10_GPU_GPE_BIN_FILENAME
+        string "Name of P10 OCC GPU GPE Binary file"
+        help
+            String used to define name of the P10 OCC GPUE GPE binary image file
+
+choice
+	prompt "P10 OCC version"
+	default BR2_OCC_P10_LATEST_VERSION
+
+config BR2_OCC_P10_LATEST_VERSION
+	bool "Use latest P10 OCC master"
+
+config BR2_OCC_P10_CUSTOM_VERSION
+	bool "Custom P10 OCC version"
+
+endchoice
+
+config BR2_OCC_P10_CUSTOM_VERSION_VALUE
+	string "P10 OCC version"
+	depends on BR2_OCC_P10_CUSTOM_VERSION
+
+config BR2_OCC_P10_VERSION
+	string
+	default "1f10fc65b8cb4fac1aae4260c7158832df76b7a4" if BR2_OCC_P10_LATEST_VERSION
+	default BR2_OCC_P10_CUSTOM_VERSION_VALUE \
+		if BR2_OCC_P10_CUSTOM_VERSION
+
+endif
diff --git a/openpower/package/occ-p10/occ-p10.mk b/openpower/package/occ-p10/occ-p10.mk
new file mode 100644
index 0000000..64be388
--- /dev/null
+++ b/openpower/package/occ-p10/occ-p10.mk
@@ -0,0 +1,47 @@
+################################################################################
+#
+# occ for power10
+#
+################################################################################
+
+OCC_P10_VERSION = $(call qstrip,$(BR2_OCC_P10_VERSION))
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#OCC_P10_SITE ?= $(call github,open-power,occ,$(OCC_P10_VERSION))
+OCC_P10_SITE ?= git@github.ibm.com:open-power/occ.git
+OCC_P10_SITE_METHOD ?= git
+
+OCC_P10_LICENSE = Apache-2.0
+
+OCC_P10_LICENSE_FILES = LICENSE
+
+OCC_P10_INSTALL_IMAGES = YES
+OCC_P10_INSTALL_TARGET = NO
+
+OCC_P10_STAGING_DIR = $(STAGING_DIR)/occ
+
+OCC_P10_IMAGE_BIN_PATH = obj/image.bin
+
+OCC_P10_DEPENDENCIES = host-binutils host-ppe42-gcc
+ifeq ($(BR2_OCC_P10_GPU_BIN_BUILD),y)
+	OCC_P10_DEPENDENCIES += hostboot-binaries
+endif
+
+define OCC_P10_BUILD_CMDS
+	if [ "$(BR2_OCC_P10_GPU_BIN_BUILD)" == "y"  ]; then \
+	    cd $(@D)/src && \
+            make PPE_TOOL_PATH=$(PPE42_GCC_BIN) OCC_OP_BUILD=1 CROSS_PREFIX=$(TARGET_CROSS) LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib GPE1_BIN_IMAGE_PATH=$(STAGING_DIR)/hostboot_binaries/ OPOCC_GPU_SUPPORT=1 all; \
+	else \
+            cd $(@D)/src && \
+            make PPE_TOOL_PATH=$(PPE42_GCC_BIN) OCC_OP_BUILD=1 CROSS_PREFIX=$(TARGET_CROSS) LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib all; \
+	fi;
+endef
+
+OCC_P10_BUILD_CMDS ?= $(OCC_BUILD_CMDS_P9)
+
+define OCC_P10_INSTALL_IMAGES_CMDS
+       mkdir -p $(STAGING_DIR)/occ
+       cp $(@D)/$(OCC_P10_IMAGE_BIN_PATH) $(OCC_P10_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/ocmb-explorer-fw/Config.in b/openpower/package/ocmb-explorer-fw/Config.in
index b65c9fe..6b8104c 100644
--- a/openpower/package/ocmb-explorer-fw/Config.in
+++ b/openpower/package/ocmb-explorer-fw/Config.in
@@ -8,14 +8,14 @@
 
 config BR2_OCMB_EXPLORER_FW_VERSION
 	string
-	default "v7.0"
+	default "CL419357"
 
 config BR2_OCMB_EXPLORER_FW_SITE
         string
-        default "https://github.com/open-power/ocmb-explorer-fw/files/5097185"
+        default "https://github.com/open-power/ocmb-explorer-fw/files/5823431"
 
 config BR2_OCMB_EXPLORER_FW_SOURCE
         string
-        default "FW397559BinaryOnly.zip"
+        default "FW419357BinaryOnly.zip"
 
 endif
diff --git a/openpower/package/ocmb-explorer-fw/ocmb-explorer-fw.mk b/openpower/package/ocmb-explorer-fw/ocmb-explorer-fw.mk
index 178a3e5..c3f6796 100644
--- a/openpower/package/ocmb-explorer-fw/ocmb-explorer-fw.mk
+++ b/openpower/package/ocmb-explorer-fw/ocmb-explorer-fw.mk
@@ -15,6 +15,12 @@
 OCMB_EXPLORER_FW_INSTALL_IMAGES = YES
 OCMB_EXPLORER_FW_INSTALL_TARGET = NO
 
+ifeq ($(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+OCMBFW_FILENAME = $(call qstrip,$(BR2_OCMBFW_FILENAME))
+else
+OCMBFW_FILENAME = $(call qstrip,$(BR2_OCMBFW_P10_FILENAME))
+endif
+
 # Commands to extract and install the Open Capi Memory Buffer Firmware (OCMBFW)
 define OCMB_EXPLORER_FW_INSTALL_IMAGES_CMDS
       $(INSTALL) -D $(@D)/$(call qstrip,$(BR2_OCMBFW_FILENAME)) $(BINARIES_DIR)/
diff --git a/openpower/package/openpower-pnor-p10/Config.in b/openpower/package/openpower-pnor-p10/Config.in
new file mode 100644
index 0000000..a308149
--- /dev/null
+++ b/openpower/package/openpower-pnor-p10/Config.in
@@ -0,0 +1,119 @@
+config BR2_PACKAGE_OPENPOWER_PNOR_P10
+        bool "openpower_pnor_p10"
+        depends on (!BR2_OPENPOWER_PNOR)
+        select BR2_TARGET_ROOTFS_INITRAMFS
+        select BR2_PACKAGE_HOSTBOOT_P10
+        select BR2_PACKAGE_HOSTBOOT_BINARIES
+        select BR2_PACKAGE_SKIBOOT
+        select BR2_PACKAGE_OPENPOWER_FFS
+        select BR2_PACKAGE_OCC_P10
+        select BR2_PACKAGE_IMA_CATALOG
+        select BR2_PACKAGE_HOST_OPENPOWER_VPNOR
+        select BR2_PACKAGE_RAINIER_2U_XML
+        select BR2_PACKAGE_RAINIER_4U_XML
+        select BR2_PACKAGE_HCODE_P10
+        help
+            Utilites for building a targeting Power10 binary image
+
+menu "OpenPOWER PNOR P10 assembly options"
+
+choice
+    prompt "Secure Boot key transition type"
+    default BR2_OPENPOWER_P10_SECUREBOOT_NO_KEY_TRANSITION
+
+config BR2_OPENPOWER_P10_SECUREBOOT_NO_KEY_TRANSITION
+    bool "None"
+    help
+      Builds a driver that does not transition Secure Boot keys
+
+config BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_DEV
+    bool "Transition existing keys to development keys"
+    help
+      Builds a driver that transitions Secure Boot keys to development keys and
+      powers off the system.  Only usable when system security has been
+      disabled.
+
+config BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_PROD
+    bool "Transition development keys to production keys"
+    help
+      Builds a driver that transitions Secure Boot development keys to
+      vendor supplied production keys and powers off the system.
+
+endchoice
+
+config BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE
+        string "Secureboot signing mode"
+        default "development"
+        help
+            Available options [development | production]
+            Indicates the signing mode when generating the PNOR image.  Only
+            applicable when hostboot is compiled with SECUREBOOT compile flag.
+            Default mode is development.
+
+config BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME
+        string "Name of Openpower pnor xml layout file"
+        help
+            String used to define hw specific make config file
+
+config BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET
+        string "Legacy name of P10 PNOR Configuration"
+        help
+            String used to define Legacy configuration name, used for
+            building legacy PNOR-related binaries and intermediate files
+
+config BR2_OPENPOWER_P10_XMLS
+        string "List of machine XMLs to include"
+        default "rainier-2u-xml rainier-4u-xml"
+        help
+            List of machine-xmls to include in the OpenPower PNOR
+
+config BR2_SKIBOOT_P10_LID_NAME
+        string "Name of skiboot lid name to be used"
+        default "skiboot.lid"
+        help
+            String used to define skiboot lid filename
+
+config BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME
+        string "Name of sbe hostboot binary"
+        help
+            String used to define name of sbe hostboot binary file
+
+config BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME
+        string "Name of sbec hostboot binary"
+        help
+            String used to define name of sbec hostboot binary file
+
+config BR2_HOSTBOOT_P10_BINARY_IONV_FILENAME
+        string "Name of IONV binary"
+        default "ionv.bin"
+        help
+            String used to define name of ionv binary file
+
+config BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME
+        string "Name of winkle hostboot binary"
+        help
+            String used to define name of winkle hostboot binary file
+
+config BR2_IMA_CATALOG_P10_FILENAME
+        string "Name of IMA catalog binary"
+        help
+            String used to define name of IMA catalog binary file
+
+config BR2_IMA_CATALOG_P10_ECC_FILENAME
+        string "Name of IMA catalog binary"
+        help
+            String used to define name of IMA catalog binary file, ecc protected
+
+config BR2_OCMBFW_P10_FILENAME
+        string "Name of the OCMBFW Update original file"
+        default "signed_app_fw.mem"
+        help
+            String used to define name of OCBMFW Update original file (before any processing occurs)
+
+config BR2_OCMBFW_P10_PROCESSED_FILENAME
+        string "Name of OCMBFW Update binary processed file"
+        default "ocmbfw.bin.ecc"
+        help
+            String used to define the name of the OCMBFW update binary file after processing, ecc protected
+
+endmenu
diff --git a/openpower/package/openpower-pnor-p10/openpower-pnor-p10.mk b/openpower/package/openpower-pnor-p10/openpower-pnor-p10.mk
new file mode 100644
index 0000000..e5468bd
--- /dev/null
+++ b/openpower/package/openpower-pnor-p10/openpower-pnor-p10.mk
@@ -0,0 +1,369 @@
+################################################################################
+#
+# openpower_pnor_p10
+#
+################################################################################
+
+OPENPOWER_PNOR_P10_VERSION ?= b4f0e8b34309a5f301a851950f26ac194c5abbd6
+
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#OPENPOWER_PNOR_P10_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_P10_VERSION))
+OPENPOWER_PNOR_P10_SITE = git@github.ibm.com:open-power/pnor.git
+OPENPOWER_PNOR_P10_SITE_METHOD=git
+
+OPENPOWER_PNOR_P10_LICENSE = Apache-2.0
+OPENPOWER_PNOR_P10_LICENSE_FILES = LICENSE
+OPENPOWER_PNOR_P10_DEPENDENCIES = hostboot-binaries skiboot host-openpower-ffs host-openpower-pnor-util host-xz host-sb-signing-utils hostboot-p10 occ-p10 sbe-p10 hcode-p10 ocmb-explorer-fw $(call qstrip,$(BR2_OPENPOWER_P10_XMLS))
+
+ifeq ($(BR2_PACKAGE_IMA_CATALOG),y)
+OPENPOWER_PNOR_P10_DEPENDENCIES += ima-catalog
+endif
+
+ifeq ($(BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_DEV),y)
+OPENPOWER_PNOR_P10_KEY_TRANSITION_ARG = -key_transition imprint
+else ifeq ($(BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_PROD),y)
+OPENPOWER_PNOR_P10_KEY_TRANSITION_ARG = -key_transition production
+endif
+
+ifneq ($(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE),"")
+OPENPOWER_PNOR_P10_SIGN_MODE_ARG = -sign_mode $(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE)
+endif
+
+OPENPOWER_PNOR_P10_INSTALL_IMAGES = YES
+OPENPOWER_PNOR_P10_INSTALL_TARGET = NO
+
+# Subpackages we want to include in the version info (do not include openpower-pnor-p10)
+# This is used inside pkg-versions.mk
+OPENPOWER_PNOR_P10_VERSIONED_SUBPACKAGES = skiboot linux petitboot hostboot-binaries pdata hostboot-p10 occ-p10 sbe-p10 hcode-p10 ocmb-explorer-fw $(call qstrip,$(BR2_OPENPOWER_P10_XMLS))
+
+OPENPOWER_PNOR_P10_OCMB_URL = $(call qstrip,$(OCMB_EXPLORER_FW_SITE)/$(OCMB_EXPLORER_FW_SOURCE))
+
+#######
+# OPENPOWER_PNOR_P10_UPDATE_IMAGE - process/sign PNOR partitions
+# Arguments:
+#     $1 - The target-specific mrw package name (i.e., rainier-2u-xml)
+#######
+define OPENPOWER_PNOR_P10_UPDATE_IMAGE
+        echo "***Signing images for target:$(call qstrip,$(1))"
+
+        $(eval XML_VAR = $$(call UPPERCASE,$$(call qstrip,$(1))))
+        echo "***XML_VAR: $(XML_VAR)"
+
+        $(eval TARGETING_BINARY_SOURCE = $$(BR2_$(XML_VAR)_TARGETING_BIN_FILENAME))
+        echo "***TARGETING_BINARY_SOURCE: $(TARGETING_BINARY_SOURCE)"
+
+        $(eval TARGETING_BINARY_FILENAME = $$(BR2_$(XML_VAR)_TARGETING_ECC_FILENAME))
+        echo "***TARGETING_BINARY_FILENAME: $(TARGETING_BINARY_FILENAME)"
+
+        $(eval XML_FILENAME = $$(call qstrip,$$(BR2_$(XML_VAR)_FILENAME)))
+        echo "***XML_FILENAME: $(XML_FILENAME)"
+
+        $(eval WOF_BINARY_FILENAME = $$(patsubst %.xml,%.wofdata,$(XML_FILENAME)))
+        echo "***WOF_BINARY_FILENAME: $(WOF_BINARY_FILENAME)"
+
+        $(eval MEMD_BINARY_FILENAME = $$(patsubst %.xml,%.memd_output.dat,$(XML_FILENAME)))
+        echo "***MEMD_BINARY_FILENAME: $(MEMD_BINARY_FILENAME)"
+
+        $(eval DEVTREE_BINARY_FILENAME = $$(patsubst %.xml,%.dtb,$(XML_FILENAME)))
+        echo "***DEVTREE_BINARY_FILENAME: $(DEVTREE_BINARY_FILENAME)"
+
+        $(eval PNOR_SCRATCH_DIR = $(STAGING_DIR)/openpower_pnor_scratch.$(XML_VAR))
+        echo "***PNOR scratch directory: $(PNOR_SCRATCH_DIR)"
+        mkdir -p $(PNOR_SCRATCH_DIR)
+
+
+        $(TARGET_MAKE_ENV) $(@D)/update_image.pl \
+            -release p10 \
+            -op_target_dir $(STAGING_DIR)/hostboot_build_images \
+            -hb_image_dir $(STAGING_DIR)/hostboot_build_images \
+            -scratch_dir $(PNOR_SCRATCH_DIR) \
+            -hb_binary_dir $(STAGING_DIR)/hostboot_binaries \
+            -hcode_dir $(STAGING_DIR)/hcode \
+            -targeting_binary_filename $(TARGETING_BINARY_FILENAME) \
+            -targeting_binary_source $(TARGETING_BINARY_SOURCE) \
+            -targeting_RO_binary_filename $(TARGETING_BINARY_FILENAME).protected \
+            -targeting_RO_binary_source $(TARGETING_BINARY_SOURCE).protected \
+            -targeting_RW_binary_filename $(TARGETING_BINARY_FILENAME).unprotected \
+            -targeting_RW_binary_source $(TARGETING_BINARY_SOURCE).unprotected \
+            -sbe_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME) \
+            -sbe_binary_dir $(STAGING_DIR)/sbe_binaries \
+            -sbec_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME) \
+            -wink_binary_filename $(BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME) \
+            -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME) \
+            -ima_catalog_binary_filename $(BINARIES_DIR)/$(BR2_IMA_CATALOG_P10_FILENAME) \
+            -openpower_version_filename $(OPENPOWER_PNOR_P10_VERSION_FILE) \
+            -wof_binary_filename $(STAGING_DIR)/openpower_mrw_scratch/$(WOF_BINARY_FILENAME) \
+            -memd_binary_filename $(STAGING_DIR)/openpower_mrw_scratch/$(MEMD_BINARY_FILENAME) \
+            -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_P10_LID_NAME) \
+            -payload_filename skiboot.lid.xz \
+            -binary_dir $(BINARIES_DIR) \
+            -bootkernel_filename $(LINUX_IMAGE_NAME) \
+            -ocmbfw_version $(OCMB_EXPLORER_FW_VERSION) \
+            -ocmbfw_url $(OPENPOWER_PNOR_P10_OCMB_URL) \
+            -ocmbfw_original_filename $(BINARIES_DIR)/$(BR2_OCMBFW_P10_FILENAME) \
+            -ocmbfw_binary_filename $(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME) \
+            -pnor_layout $(@D)/p10Layouts/$(BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME) \
+            -sbe_img_dir $(BUILD_DIR)/sbe-p10-$(call qstrip,$(BR2_SBE_P10_VERSION))/images \
+            -devtree_binary_filename $(STAGING_DIR)/usr/share/pdata/$(DEVTREE_BINARY_FILENAME) \
+            -xz_compression \
+            $(OPENPOWER_PNOR_P10_KEY_TRANSITION_ARG) \
+            $(OPENPOWER_PNOR_P10_SIGN_MODE_ARG)
+
+        if [ -n "$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET)" ] ; then \
+            echo "***Generating legacy pnor targets..." ;\
+            mkdir -p $(STAGING_DIR)/pnor.$(XML_VAR) ; \
+            $(TARGET_MAKE_ENV) $(@D)/create_pnor_image.pl \
+                -release p10 \
+                -xml_layout_file $(@D)/p10Layouts/$(BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME) \
+                -pnor_filename $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor \
+                -hb_image_dir $(STAGING_DIR)/hostboot_build_images \
+                -scratch_dir $(PNOR_SCRATCH_DIR) \
+                -outdir $(STAGING_DIR)/pnor.$(XML_VAR)/ \
+                -payload $(PNOR_SCRATCH_DIR)/$(BR2_SKIBOOT_LID_XZ_NAME) \
+                -bootkernel $(PNOR_SCRATCH_DIR)/$(LINUX_IMAGE_NAME) \
+                -sbe_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME) \
+                -sbec_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME) \
+                -wink_binary_filename $(BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME) \
+                -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME) \
+                -targeting_binary_filename $(TARGETING_BINARY_FILENAME) \
+                -targeting_RO_binary_filename $(TARGETING_BINARY_FILENAME).protected \
+                -targeting_RW_binary_filename $(TARGETING_BINARY_FILENAME).unprotected \
+                -wofdata_binary_filename $(PNOR_SCRATCH_DIR)/wofdata.bin.ecc \
+                -memddata_binary_filename $(PNOR_SCRATCH_DIR)/memd_extra_data.bin.ecc \
+                -ocmbfw_binary_filename $(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME) \
+                -openpower_version_filename $(PNOR_SCRATCH_DIR)/openpower_pnor_version.bin  \
+                -devtree_binary_filename $(PNOR_SCRATCH_DIR)/DEVTREE.bin ;\
+            $(INSTALL) $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor $(BINARIES_DIR) ;\
+            PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i squashfs \
+                -m $(XML_VAR) \
+                -f $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor.squashfs.tar \
+                $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor -s ;\
+            $(INSTALL) $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor.squashfs.tar $(BINARIES_DIR) ;\
+            cd $(STAGING_DIR)/pnor.$(XML_VAR) ;\
+            PATH=$(HOST_DIR)/usr/sbin:$(PATH) $(HOST_DIR)/usr/bin/generate-ubi \
+                $(XML_VAR).pnor.squashfs.tar ;\
+            $(INSTALL) $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor.ubi.mtd $(BINARIES_DIR) ;\
+            $(TARGET_MAKE_ENV) $(@D)/makelidpkg \
+                $(BINARIES_DIR)/$(XML_VAR).ebmc_lids.tar.gz \
+                $(PNOR_SCRATCH_DIR); \
+            if [ -e $(STAGING_DIR)/openpower_pnor_scratch ] ; then \
+                echo "*** Reusing existing $(STAGING_DIR)/openpower_pnor_scratch => $$(readlink -f $(STAGING_DIR)/openpower_pnor_scratch)";\
+            else \
+                ln -rs $(PNOR_SCRATCH_DIR) $(STAGING_DIR)/openpower_pnor_scratch ;\
+                ln -rs $(BINARIES_DIR)/$(XML_VAR).ebmc_lids.tar.gz \
+                    $(BINARIES_DIR)/ebmc_lids.tar.gz ;\
+                ln -rs $(BINARIES_DIR)/$(XML_VAR).pnor \
+                    $(BINARIES_DIR)/$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET).pnor ;\
+                ln -rs $(BINARIES_DIR)/$(XML_VAR).pnor.squashfs.tar \
+                    $(BINARIES_DIR)/$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET).pnor.squashfs.tar ;\
+                ln -rs $(BINARIES_DIR)/$(XML_VAR).pnor.ubi.mtd \
+                    $(BINARIES_DIR)/$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET).pnor.ubi.mtd ;\
+            fi ;\
+        fi
+        # Copy images to mmc dir 
+        # HBBL
+        test -f "$(BINARIES_DIR)/mmc/HBBL.P10" ||\
+             $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hbbl.bin.ecc \
+                $(BINARIES_DIR)/mmc/HBBL.P10
+
+        # HBB
+        test -f "$(BINARIES_DIR)/mmc/HBB.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hostboot.header.bin.ecc \
+                $(BINARIES_DIR)/mmc/HBB.P10
+
+        # HBI
+        test -f "$(BINARIES_DIR)/mmc/HBI.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hostboot_extended.header.bin.ecc \
+                $(BINARIES_DIR)/mmc/HBI.P10
+
+        # HBD
+        $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(TARGETING_BINARY_FILENAME) \
+            $(BINARIES_DIR)/mmc/HBD.$(XML_VAR)
+
+        # SBE
+        test -f "$(BINARIES_DIR)/mmc/SBE.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME) \
+                $(BINARIES_DIR)/mmc/SBE.P10
+
+        # PAYLOAD
+        test -f "$(BINARIES_DIR)/mmc/PAYLOAD.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/skiboot.lid.xz \
+                $(BINARIES_DIR)/mmc/PAYLOAD.P10
+
+        # HCODE
+        test -f "$(BINARIES_DIR)/mmc/HCODE.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME) \
+                $(BINARIES_DIR)/mmc/HCODE.P10
+
+        # HBRT
+        test -f "$(BINARIES_DIR)/mmc/HBRT.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hostboot_runtime.header.bin.ecc \
+                $(BINARIES_DIR)/mmc/HBRT.P10
+
+        # OCC
+        test -f "$(BINARIES_DIR)/mmc/OCC.P10" ||\
+            $(INSTALL) -m 0644 -D $(OCC_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME).ecc \
+                $(BINARIES_DIR)/mmc/OCC.P10
+
+        # BOOTKERNEL
+        test -f "$(BINARIES_DIR)/mmc/BOOTKERNEL.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(LINUX_IMAGE_NAME) \
+                $(BINARIES_DIR)/mmc/BOOTKERNEL.P10
+
+        # VERSION
+        test -f "$(BINARIES_DIR)/mmc/VERSION.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/openpower_pnor_version.bin \
+                $(BINARIES_DIR)/mmc/VERSION.P10
+
+        # IMA_CATALOG
+        test -f "$(BINARIES_DIR)/mmc/IMA_CATALOG.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/ima_catalog.bin.ecc \
+                $(BINARIES_DIR)/mmc/IMA_CATALOG.P10
+
+        # SBKT (special content)
+        test -f "$(BINARIES_DIR)/mmc/SBKT.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/SBKT.bin \
+                $(BINARIES_DIR)/mmc/SBKT.P10
+
+        # HBEL (blank)
+        test -f "$(BINARIES_DIR)/mmc/HBEL.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hbel.bin.ecc \
+                $(BINARIES_DIR)/mmc/HBEL.P10
+
+        # GUARD (blank)
+        test -f "$(BINARIES_DIR)/mmc/GUARD.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/guard.bin.ecc \
+                $(BINARIES_DIR)/mmc/GUARD.P10
+
+        # HB_VOLATILE (blank)
+        test -f "$(BINARIES_DIR)/mmc/HB_VOLATILE.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hb_volatile.bin \
+                $(BINARIES_DIR)/mmc/HB_VOLATILE.P10
+
+        # NVRAM (blank)
+        test -f "$(BINARIES_DIR)/mmc/NVRAM.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/nvram.bin \
+                $(BINARIES_DIR)/mmc/NVRAM.P10
+
+        # ATTR_TMP (blank)
+        test -f "$(BINARIES_DIR)/mmc/ATTR_TMP.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/attr_tmp.bin.ecc \
+                $(BINARIES_DIR)/mmc/ATTR_TMP.P10
+
+        # ATTR_PERM (blank)
+        test -f "$(BINARIES_DIR)/mmc/ATTR_PERM.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/attr_perm.bin.ecc \
+                $(BINARIES_DIR)/mmc/ATTR_PERM.P10
+
+        # FIRDATA (blank, optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/firdata.bin.ecc" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/FIRDATA.P10" || \
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/firdata.bin.ecc \
+                    $(BINARIES_DIR)/mmc/FIRDATA.P10 ; \
+        fi
+
+        # SECBOOT (blank)
+        test -f "$(BINARIES_DIR)/mmc/SECBOOT.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/secboot.bin.ecc \
+                $(BINARIES_DIR)/mmc/SECBOOT.P10
+
+        # RINGOVD (blank)
+        test -f "$(BINARIES_DIR)/mmc/RINGOVD.P10" ||\
+            $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/ringOvd.bin \
+                $(BINARIES_DIR)/mmc/RINGOVD.P10
+
+        # CVPD (blank, optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/cvpd.bin.ecc" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/CVPD.P10" ||\
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/cvpd.bin.ecc \
+                    $(BINARIES_DIR)/mmc/CVPD.P10 ; \
+        fi
+
+        # DJVPD (blank, optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/djvpd_fill.bin.ecc" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/DJVPD.P10" ||\
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/djvpd_fill.bin.ecc \
+                    $(BINARIES_DIR)/mmc/DJVPD.P10 ; \
+        fi
+
+        # MVPD (blank, optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/mvpd_fill.bin.ecc" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/MVPD.P10" ||\
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/mvpd_fill.bin.ecc \
+                    $(BINARIES_DIR)/mmc/MVPD.P10 ; \
+        fi
+
+        # EECACHE (blank, optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/eecache_fill.bin.ecc" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/EECACHE.P10" ||\
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/eecache_fill.bin.ecc \
+                    $(BINARIES_DIR)/mmc/EECACHE.P10 ; \
+        fi
+
+        # WOFDATA
+        $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/wofdata.bin.ecc \
+            $(BINARIES_DIR)/mmc/WOFDATA.$(XML_VAR)
+
+        # MEMD (optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/memd_extra_data.bin.ecc" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/MEMD.P10" ||\
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/memd_extra_data.bin.ecc \
+                    $(BINARIES_DIR)/mmc/MEMD.P10 ; \
+        fi
+
+        # HDAT
+        $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hdat.bin.ecc \
+            $(BINARIES_DIR)/mmc/HDAT.$(XML_VAR)
+
+        # OCMBFW (optional)
+        if [ -f "$(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME)" ] ; then \
+            test -f "$(BINARIES_DIR)/mmc/OCMBFW.P10" ||\
+                $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME) \
+                    $(BINARIES_DIR)/mmc/OCMBFW.P10 ; \
+        fi
+
+        # DEVTREE
+        $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/DEVTREE.bin \
+            $(BINARIES_DIR)/mmc/DEVTREE.$(XML_VAR)
+
+endef
+
+define OPENPOWER_PNOR_P10_INSTALL_IMAGES_CMDS
+
+        if [ -n "$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET)" ] ; then  \
+            rm -f $(BINARIES_DIR)/*.pnor \
+                $(BINARIES_DIR)/*.pnor.squashfs.tar \
+                $(BINARIES_DIR)/*.ubi.mtd ;\
+            rm -rf $(BINARIES_DIR)/ebmc_lids.tar.gz \
+                $(BINARIES_DIR)/*.ebmc_lids.tar.gz ;\
+            rm -rf $(STAGING_DIR)/openpower_pnor_scratch \
+                $(STAGING_DIR)/openpower_pnor_scratch.* ;\
+        fi
+
+        $(foreach xmlpkg,$(BR2_OPENPOWER_P10_XMLS),\
+            $(call OPENPOWER_PNOR_P10_UPDATE_IMAGE,\
+                $(xmlpkg)))
+
+        # Create MMC Tarball
+        tar -zcvf $(BINARIES_DIR)/mmc.tar.gz -C $(BINARIES_DIR) mmc
+
+        # Create Debug Tarball (target-agnostic)
+        mkdir -p $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/
+        cp -r $(STAGING_DIR)/hostboot_build_images/* \
+            $(BUILD_DIR)/skiboot-$(SKIBOOT_VERSION)/skiboot.elf \
+            $(BUILD_DIR)/skiboot-$(SKIBOOT_VERSION)/skiboot.map \
+            $(BUILD_DIR)/linux-$(LINUX_VERSION)/.config \
+            $(BUILD_DIR)/linux-$(LINUX_VERSION)/vmlinux \
+            $(BUILD_DIR)/linux-$(LINUX_VERSION)/System.map \
+            $(STAGING_DIR)/fsp-trace/fsp-trace \
+            $(BINARIES_DIR)/zImage.epapr \
+            $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/
+        tar -zcvf $(BINARIES_DIR)/host_fw_debug.tar -C $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/  .
+
+endef
+
+$(eval $(generic-package))
+# Generate openPOWER pnor version string by combining subpackage version string files
+$(eval $(OPENPOWER_VERSION))
+
diff --git a/openpower/package/openpower-pnor-util/openpower-pnor-util.mk b/openpower/package/openpower-pnor-util/openpower-pnor-util.mk
index 1bfa73f..b5d1c21 100644
--- a/openpower/package/openpower-pnor-util/openpower-pnor-util.mk
+++ b/openpower/package/openpower-pnor-util/openpower-pnor-util.mk
@@ -6,10 +6,11 @@
 
 HOST_OPENPOWER_PNOR_UTIL_VERSION ?= 647d6134d448178e6b32892322596a5cc3d78b2d
 HOST_OPENPOWER_PNOR_UTIL_SITE ?= $(call github,openbmc,openpower-pnor-code-mgmt,$(HOST_OPENPOWER_PNOR_UTIL_VERSION))
-HOST_OPENPOWER_PNOR_UTIL_DEPENDENCIES = host-squashfs host-libflash
+HOST_OPENPOWER_PNOR_UTIL_DEPENDENCIES = host-squashfs host-libflash host-mtd
 
 define HOST_OPENPOWER_PNOR_UTIL_INSTALL_CMDS
 	$(INSTALL) -D $(@D)/generate-tar $(HOST_DIR)/usr/bin/generate-tar
+	$(INSTALL) -D $(@D)/generate-ubi $(HOST_DIR)/usr/bin/generate-ubi
 endef
 
 OPENPOWER_PNOR_UTIL_LICENSE = Apache-2.0
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 6311b50..18443b4 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_OPENPOWER_PNOR
         bool "openpower_pnor"
-        default y if (BR2_OPENPOWER_PLATFORM)
+        default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER9)
+        depends on (!BR2_PACKAGE_OPENPOWER_PNOR_P10)
         select BR2_PACKAGE_HOSTBOOT
         select BR2_PACKAGE_HOSTBOOT_BINARIES
         select BR2_PACKAGE_SKIBOOT
diff --git a/openpower/package/pdata/Config.in b/openpower/package/pdata/Config.in
new file mode 100644
index 0000000..039bd0f
--- /dev/null
+++ b/openpower/package/pdata/Config.in
@@ -0,0 +1,55 @@
+menu "pdata"
+
+config BR2_PACKAGE_PDATA
+        bool "pdata"
+        default y if (BR2_OPENPOWER_POWER10)
+        select BR2_PACKAGE_HOST_DTC
+        depends on BR2_PACKAGE_EKB
+        depends on (BR2_PACKAGE_MACHINE_XML || BR2_PACKAGE_RAINIER_2U_XML || BR2_PACKAGE_RAINIER_4U_XML)
+        help
+          To initialize and boot a server, various software components
+          ( BMC apps and Hostboot) will interact. PDATA provides device tree
+          based infrastructure to get the attributes which are required
+          to boot the server and run time usage. Also provides API's
+          to manage the attributes data.
+
+if BR2_PACKAGE_PDATA
+
+choice
+    prompt "PDATA location"
+
+config BR2_PDATA_GITHUB_PROJECT
+    bool "PDATA located at default Github project"
+
+config BR2_PDATA_CUSTOM_GIT
+    bool "PDATA located at Custom Git repository"
+
+endchoice
+
+config BR2_PDATA_CUSTOM_GIT_VALUE
+    string "URL of PDATA Custom Git repository"
+
+choice
+    prompt "PDATA version"
+    default BR2_PDATA_LATEST_VERSION
+
+config BR2_PDATA_LATEST_VERSION
+    bool "Use latest PDATA master"
+
+config BR2_PDATA_CUSTOM_VERSION
+    bool "Custom PDATA version"
+
+endchoice
+
+config BR2_PDATA_CUSTOM_VERSION_VALUE
+    string "PDATA version"
+    depends on BR2_PDATA_CUSTOM_VERSION
+
+config BR2_PDATA_VERSION
+    string
+    default "80673d139d5d89d208a14e45dc0dfda009e12fc8" if BR2_PDATA_LATEST_VERSION
+    default BR2_PDATA_CUSTOM_VERSION_VALUE if BR2_PDATA_CUSTOM_VERSION
+
+endif
+
+endmenu
diff --git a/openpower/package/pdata/pdata.mk b/openpower/package/pdata/pdata.mk
new file mode 100644
index 0000000..b1500ba
--- /dev/null
+++ b/openpower/package/pdata/pdata.mk
@@ -0,0 +1,52 @@
+################################################################################
+#
+# pdata
+#
+################################################################################
+
+PDATA_VERSION = $(call qstrip,$(BR2_PDATA_VERSION))
+ifeq ($(BR2_PDATA_GITHUB_PROJECT),y)
+# after that, when code is propagated to a public repo
+#PDATA_SITE = $(call github,phal,pdata,$(PDATA_VERSION))
+PDATA_SITE = git@github.ibm.com:phal/pdata.git
+PDATA_SITE_METHOD = git
+else ifeq ($(BR2_PDATA_CUSTOM_GIT),y)
+PDATA_SITE = $(BR2_PDATA_CUSTOM_GIT_VALUE)
+PDATA_SITE_METHOD = git
+endif
+
+PDATA_LICENSE = Apache-2.0
+PDATA_LICENSE_FILES = $(@D)/LICENSE
+PDATA_INSTALL_STAGING = YES
+PDATA_INSTALL_TARGET = NO
+PDATA_AUTORECONF = YES
+PDATA_AUTORECONF_OPTS += -I $(HOST_DIR)/share/autoconf-archive
+PDATA_DEPENDENCIES = ekb host-dtc host-autoconf-archive
+
+EKB_STAGING_DIR = $(STAGING_DIR)/ekb
+MACHINE_XML_STAGING_DIR = $(STAGING_DIR)/openpower_mrw_scratch
+
+TARGET_PROC =
+ifeq ($(BR2_OPENPOWER_POWER10),y)
+TARGET_PROC = p10
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+PDATA_DEPENDENCIES += $(call qstrip,$(BR2_OPENPOWER_P10_XMLS))
+QSTRIP_MACHINE_XMLS = $(call qstrip,$(foreach xml,$(BR2_OPENPOWER_P10_XMLS),$(MACHINE_XML_STAGING_DIR)/$(BR2_$(call UPPERCASE,$(call qstrip,$(xml)))_FILENAME)))
+else
+PDATA_DEPENDENCIES += machine-xml
+QSTRIP_MACHINE_XMLS = $(call qstrip,$(MACHINE_XML_STAGING_DIR)/$(BR2_OPENPOWER_MACHINE_XML_FILENAME))
+endif
+
+PDATA_CONF_OPTS = --enable-gen_dynamicdt CHIP=$(TARGET_PROC)
+
+PDATA_MAKE_OPTS = EKB=$(EKB_STAGING_DIR) \
+                  SYSTEMS_MRW_XML="$(QSTRIP_MACHINE_XMLS)"
+
+define PDATA_CREATE_M4_DIR
+		mkdir -p $(@D)/m4
+endef
+
+PDATA_PRE_CONFIGURE_HOOKS += PDATA_CREATE_M4_DIR
+$(eval $(autotools-package))
diff --git a/openpower/package/pkg-versions.mk b/openpower/package/pkg-versions.mk
index be50245..3d967bf 100644
--- a/openpower/package/pkg-versions.mk
+++ b/openpower/package/pkg-versions.mk
@@ -58,7 +58,7 @@
 	rm -rf $$(OPENPOWER_VERSION_DIR)/$(1).tmp_patch.txt; \
 fi
 
-endef ###
+endef # $(2)_OPENPOWER_PATCH_FILE
 
 ### Create subpackage version file
 define $(2)_OPENPOWER_VERSION_FILE
@@ -103,11 +103,15 @@
 # Add new line to version.txt
 echo "" >> $$($(2)_VERSION_FILE);
 
-endef ###
+endef # $(2)_OPENPOWER_VERSION_FILE
 
-# Add appropriate templates to hooks
+# Add appropriate templates to hooks if they're not there already
+ifeq (,$$(findstring $(2)_OPENPOWER_PATCH_FILE,$$($(2)_POST_PATCH_HOOKS)))
 $(2)_POST_PATCH_HOOKS += $(2)_OPENPOWER_PATCH_FILE
+endif
+ifeq (,$$(findstring $(2)_OPENPOWER_VERSION_FILE,$$($(2)_PRE_CONFIGURE_HOOKS)))
 $(2)_PRE_CONFIGURE_HOOKS += $(2)_OPENPOWER_VERSION_FILE
+endif
 
 # Top-level rule to print or generate a subpackage version
 $(1)-version: $$(if $$(wildcard $$($(2)_VERSION_FILE)),$(1)-print-version,$(1)-build-version)
@@ -128,99 +132,114 @@
 		@echo "	End creating version string..."
 		@echo -n "	version: "; cat $$($(2)_VERSION_FILE) | xargs echo
 
-endef
+endef # OPENPOWER_SUBPACKAGE_VERSION
 
-define OPENPOWER_VERSION
 
-UPPER_CASE_PKG = $(call UPPERCASE,$(1))
-$$(UPPER_CASE_PKG)_VERSION_FILE = $$(OPENPOWER_VERSION_DIR)/$(1).version.txt
+####
+# $(1) is the lowercase package version
+# $(2) is the uppercase pacakge version
+####
+define INNER_OPENPOWER_VERSION
+
+$(2)_VERSION_FILE = $$(OPENPOWER_VERSION_DIR)/$(1).version.txt
+ifeq ($$(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+UPPER_CASE_SIGN_MODE = $(call UPPERCASE,$$(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE))
+CONFIG_NAME = $$(BR2_OPENPOWER_P10_CONFIG_NAME)
+VERSIONED_SUBPACKAGES = $$(OPENPOWER_PNOR_P10_VERSIONED_SUBPACKAGES)
+else
 UPPER_CASE_SIGN_MODE = $(call UPPERCASE,$$(BR2_OPENPOWER_SECUREBOOT_SIGN_MODE))
+CONFIG_NAME = $$(BR2_OPENPOWER_CONFIG_NAME)
+VERSIONED_SUBPACKAGES = $$(OPENPOWER_VERSIONED_SUBPACKAGES)
+endif
 
-$$(eval $$(foreach pkg,$$(OPENPOWER_VERSIONED_SUBPACKAGES), \
+$$(eval $$(foreach pkg,$$(VERSIONED_SUBPACKAGES), \
 		$$(call OPENPOWER_SUBPACKAGE_VERSION,$$(pkg),$$(call UPPERCASE,$$(pkg)))))
 
 ### Combine subpackage files into one version file
-define $$(UPPER_CASE_PKG)_OPENPOWER_VERSION_FILE
+define $(2)_OPENPOWER_VERSION_FILE
 
 mkdir -p "$$(OPENPOWER_VERSION_DIR)"
 
 # Add vendor or default open-power
 if [ -n "$$(OPBUILD_VENDOR)" ]; then \
-echo -n "$$(OPBUILD_VENDOR)-" > $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+echo -n "$$(OPBUILD_VENDOR)-" > $$($(2)_VERSION_FILE); \
 else \
-echo -n "open-power-" > $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+echo -n "open-power-" > $$($(2)_VERSION_FILE); \
 fi
 
 # Add platform or default from defconfig
 if [ -n "$$(OPBUILD_PLATFORM)" ]; then \
-echo -n "$$(OPBUILD_PLATFORM)-" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+echo -n "$$(OPBUILD_PLATFORM)-" >> $$($(2)_VERSION_FILE); \
 else \
-echo -n "$$(BR2_OPENPOWER_CONFIG_NAME)-" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+echo -n "$$(CONFIG_NAME)-" >> $$($(2)_VERSION_FILE); \
 fi
 
 # Add op-build version
 # Order: OPBUILD_VERSION, tag, commit, unknown
 if [ -n "$$(OPBUILD_VERSION)" ]; then \
-	echo -n "$$(OPBUILD_VERSION)" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+	echo -n "$$(OPBUILD_VERSION)" >> $$($(2)_VERSION_FILE); \
 else \
 cd "$$(BR2_EXTERNAL_OP_BUILD_PATH)"; (git describe --always --dirty || echo "unknown") \
 	| xargs echo -n \
-	>> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+	>> $$($(2)_VERSION_FILE); \
 fi
 
 # Flag whether op-build is production signed
 if [ "$$(UPPER_CASE_SIGN_MODE)" == 'PRODUCTION' ]; then \
-	echo -n "-prod" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+	echo -n "-prod" >> $$($(2)_VERSION_FILE); \
 fi
 
-# Add new line to $$($$(UPPER_CASE_PKG)_VERSION_FILE)
-echo "" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE);
+# Add new line to $$($(2)_VERSION_FILE)
+echo "" >> $$($(2)_VERSION_FILE);
 
 # Add a specific line for op-build if it has been overwritten
 if [ -n "$$(OPBUILD_VENDOR)" ]; then \
-echo -n "	op-build-" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+echo -n "	op-build-" >> $$($(2)_VERSION_FILE); \
 (cd "$$(BR2_EXTERNAL_OP_BUILD_PATH)"; (git describe --always --dirty  || echo "unknown")) \
 	| xargs echo \
-	>> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+	>> $$($(2)_VERSION_FILE); \
 fi
 
 # Include the currently checked-out buildroot version
-echo -n "	buildroot-" >> $$($$(UPPER_CASE_PKG)_VERSION_FILE);
+echo -n "	buildroot-" >> $$($(2)_VERSION_FILE);
 (git describe --always --dirty || echo "unknown") \
 	| xargs echo \
-	>> $$($$(UPPER_CASE_PKG)_VERSION_FILE); \
+	>> $$($(2)_VERSION_FILE); \
 
 
-# Combing subpackage version files into $$($$(UPPER_CASE_PKG)_VERSION_FILE)
+# Combing subpackage version files into $$($(2)_VERSION_FILE)
 $$(foreach verFile,$$(ALL_SUBPACKAGE_VERSIONS),
 	if [ -f $$(verFile) ]; then cat $$(verFile) \
-	>> $$($$(UPPER_CASE_PKG)_VERSION_FILE); fi )
+	>>$$($(2)_VERSION_FILE); fi )
 
-endef ###
+endef #  $(2)_OPENPOWER_VERSION_FILE
 
-$$(UPPER_CASE_PKG)_PRE_BUILD_HOOKS += $$(UPPER_CASE_PKG)_OPENPOWER_VERSION_FILE
+$(2)_PRE_BUILD_HOOKS += $(2)_OPENPOWER_VERSION_FILE
 
 # Top-level rule to print or generate openpower-pnor version
-$(1)-version: $$(if $$(wildcard $$($$(UPPER_CASE_PKG)_VERSION_FILE)),$(1)-print-version,$(1)-build-version)
+$(1)-version: $$(if $$(wildcard $$($(2)_VERSION_FILE)),$(1)-print-version,$(1)-build-version)
 
 # Rule to print out pnor version
 $(1)-print-version:
-		@echo "=== $$(UPPER_CASE_PKG)_VERSION ==="
-		@cat $$($$(UPPER_CASE_PKG)_VERSION_FILE)
+		@echo "=== $(2)_VERSION ==="
+		@cat $$($(2)_VERSION_FILE)
 		@echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
 
 # Rule to generate pnor version
-$(1)-build-version: $$(foreach pkg,$$(OPENPOWER_VERSIONED_SUBPACKAGES), $$(pkg)-version)
-		@$$($$(UPPER_CASE_PKG)_OPENPOWER_VERSION_FILE)
-		@echo "=== $$(UPPER_CASE_PKG)_VERSION ==="
-		@cat $$($$(UPPER_CASE_PKG)_VERSION_FILE)
+$(1)-build-version: $$(foreach pkg,$$(VERSIONED_SUBPACKAGES), $$(pkg)-version)
+		@$$($(2)_OPENPOWER_VERSION_FILE)
+		@echo "=== $(2)_VERSION ==="
+		@cat $$($(2)_VERSION_FILE)
 		@echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
 
 # Rule to force re-generation of all versioned subpackages
-$(1)-build-version-all: $$(foreach pkg,$$(OPENPOWER_VERSIONED_SUBPACKAGES), $$(pkg)-build-version)
-		@$$($$(UPPER_CASE_PKG)_OPENPOWER_VERSION_FILE)
-		@echo "=== $$(UPPER_CASE_PKG)_VERSION ==="
-		@cat $$($$(UPPER_CASE_PKG)_VERSION_FILE)
+$(1)-build-version-all: $$(foreach pkg,$$(VERSIONED_SUBPACKAGES), $$(pkg)-build-version)
+		@$$($(2)_OPENPOWER_VERSION_FILE)
+		@echo "=== $(2)_VERSION ==="
+		@cat $$($(2)_VERSION_FILE)
 		@echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
 
-endef
+endef # INNER_OPENPOWER_VERSION
+
+OPENPOWER_VERSION = $(call INNER_OPENPOWER_VERSION,$(pkgname),$(call UPPERCASE,$(pkgname)))
+
diff --git a/openpower/package/ppe42-gcc/ppe42-gcc.mk b/openpower/package/ppe42-gcc/ppe42-gcc.mk
index 8aa73ce..faae762 100644
--- a/openpower/package/ppe42-gcc/ppe42-gcc.mk
+++ b/openpower/package/ppe42-gcc/ppe42-gcc.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PPE42_GCC_VERSION ?= b4772a9fa65ea0dd812f8f305ce157bb1cb5ab4a
+PPE42_GCC_VERSION ?= 3d454701206d141a26777c3f6c1d966921f363de
 PPE42_GCC_SITE ?= $(call github,open-power,ppe42-gcc,$(PPE42_GCC_VERSION))
 PPE42_GCC_LICENSE = GPLv3+
 
diff --git a/openpower/package/rainier-2u-xml/Config.in b/openpower/package/rainier-2u-xml/Config.in
new file mode 100644
index 0000000..6b94a48
--- /dev/null
+++ b/openpower/package/rainier-2u-xml/Config.in
@@ -0,0 +1,86 @@
+menu "Rainier 2U XML (MRW)"
+
+config BR2_PACKAGE_RAINIER_2U_XML
+        bool "rainier_2u_xml"
+
+if BR2_PACKAGE_RAINIER_2U_XML
+
+choice
+	prompt "Rainier 2U XML location"
+
+config BR2_RAINIER_2U_XML_GITHUB_PROJECT
+       bool "OpenPOWER Github project name"
+
+config BR2_RAINIER_2U_XML_CUSTOM_GIT
+       bool "Custom URL of Rainier 2U xml repository"
+
+endchoice
+
+config BR2_RAINIER_2U_XML_FILTER_UNWANTED_ATTRIBUTES
+       bool "Filter Unwanted Attributes"
+       default y
+
+config BR2_RAINIER_2U_XML_OPPOWERVM_ATTRIBUTES
+       bool "OPPOWERVM Attributes/Target"
+       default y
+
+config BR2_RAINIER_2U_XML_TARGET_TYPES_OPENPOWER_XML
+       bool "Include target_types_openpower.xml"
+       default y
+
+config BR2_RAINIER_2U_XML_CUSTOM_GIT_VALUE
+	string "URL of Rainier 2U xml repository"
+	depends on BR2_RAINIER_2U_XML_CUSTOM_GIT
+
+config BR2_RAINIER_2U_XML_GITHUB_PROJECT_VALUE
+       string "The Github project name (e.g. rainier-2u-xml)"
+       default "rainier-2u-xml"
+       depends on BR2_RAINIER_2U_XML_GITHUB_PROJECT
+
+config BR2_RAINIER_2U_XML_VERSION
+       string "Version of Rainier 2U XML"
+
+config BR2_RAINIER_2U_XML_FILENAME
+       string "Rainier 2U XML filename (e.g. Rainier-2U-MRW.xml)"
+       default "Rainier-2U-MRW.xml"
+       help
+           The name of the MRW XML file. Note that this file MUST
+           come with the '.xml' prefix (all lowercase)
+
+config BR2_RAINIER_2U_XML_SYSTEM_FILENAME
+        string "Targeting Rainier 2U system xml filename"
+        default ""
+        help
+            Defines the name of the system XML filename
+            to be used when creating targeting binary image
+
+config BR2_RAINIER_2U_XML_TARGETING_FILENAME
+        string "Targeting Rainier 2U mrw xml filename"
+        default ""
+        help
+            Defines the name of the mrw XML filename
+            to be used when creating targeting binary image
+
+config BR2_RAINIER_2U_XML_BIOS_FILENAME
+        string "BIOS Rainier 2U metadata XML filename"
+        default "Rainier-2U-MRW_bios.xml"
+        help
+            Defines the name of the BIOS XML filename
+            to parse when generating BIOS metadata
+
+config BR2_RAINIER_2U_XML_TARGETING_BIN_FILENAME
+        string "Name of the openpower binary targeting file"
+        default "Rainier-2U-MRW.targeting.bin"
+        help
+            String used to define name of openpower targeting binary file
+
+config BR2_RAINIER_2U_XML_TARGETING_ECC_FILENAME
+        string "Name of the openpower binary targeting ecc file"
+        default "Rainier-2U-MRW.targeting.bin.ecc"
+        help
+            String used to define name of openpower
+            targeting binary file, ecc protected
+
+endif
+
+endmenu
diff --git a/openpower/package/rainier-2u-xml/rainier-2u-xml.mk b/openpower/package/rainier-2u-xml/rainier-2u-xml.mk
new file mode 100644
index 0000000..9b07cde
--- /dev/null
+++ b/openpower/package/rainier-2u-xml/rainier-2u-xml.mk
@@ -0,0 +1,167 @@
+################################################################################
+# rainier-2u-xml
+#
+################################################################################
+
+RAINIER_2U_XML_VERSION ?= $(call qstrip,$(BR2_RAINIER_2U_XML_VERSION))
+ifeq ($(BR2_RAINIER_2U_XML_GITHUB_PROJECT),y)
+RAINIER_2U_XML_SITE = $(call github,open-power,$(BR2_RAINIER_2U_XML_GITHUB_PROJECT_VALUE),$(RAINIER_2U_XML_VERSION))
+else ifeq ($(BR2_RAINIER_2U_XML_CUSTOM_GIT),y)
+RAINIER_2U_XML_SITE_METHOD = git
+RAINIER_2U_XML_SITE = $(BR2_RAINIER_2U_XML_CUSTOM_GIT_VALUE)
+endif
+
+RAINIER_2U_XML_LICENSE = Apache-2.0
+RAINIER_2U_XML_LICENSE_FILES = LICENSE
+RAINIER_2U_XML_DEPENDENCIES += hostboot-p10
+
+RAINIER_2U_XML_INSTALL_IMAGES = YES
+RAINIER_2U_XML_INSTALL_TARGET = YES
+
+RAINIER_2U_XML_MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+RAINIER_2U_XML_MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+# Defines for BIOS metadata creation
+RAINIER_2U_XML_BIOS_SCHEMA_FILE = $(RAINIER_2U_XML_MRW_HB_TOOLS)/bios.xsd
+RAINIER_2U_XML_BIOS_CONFIG_FILE = \
+    $(call qstrip,$(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_BIOS_FILENAME))
+RAINIER_2U_XML_BIOS_METADATA_FILE = \
+    $(call qstrip,$(RAINIER_2U_XML_MRW_HB_TOOLS)/$(BR2_OPENPOWER_P10_CONFIG_NAME)_bios_metadata.xml)
+RAINIER_2U_XML_PETITBOOT_XSLT_FILE = $(RAINIER_2U_XML_MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
+RAINIER_2U_XML_PETITBOOT_BIOS_METADATA_FILE = \
+    $(call qstrip, \
+        $(RAINIER_2U_XML_MRW_HB_TOOLS)/$(BR2_OPENPOWER_P10_CONFIG_NAME)_bios_metadata_petitboot.xml)
+# XXX TODO: Figure out what to do with the bios_metadata.xml. Right now, the last xml
+#           package file processed 'wins' and all previously processed xml packages are
+#           overriden.
+RAINIER_2U_XML_PETITBOOT_BIOS_INITRAMFS_FILE = \
+    $(TARGET_DIR)/usr/share/bios_metadata.xml
+
+ifeq ($(BR2_RAINIER_2U_XML_OPPOWERVM_ATTRIBUTES),y)
+RAINIER_2U_XML_OPPOWERVM_ATTR_XML = $(RAINIER_2U_XML_MRW_HB_TOOLS)/attribute_types_oppowervm.xml
+RAINIER_2U_XML_OPPOWERVM_TARGET_XML = $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_oppowervm.xml
+endif
+ifeq ($(BR2_RAINIER_2U_XML_TARGET_TYPES_OPENPOWER_XML),y)
+RAINIER_2U_XML_TARGET_TYPES_OPENPOWER_XML = $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_openpower.xml
+endif
+
+define RAINIER_2U_XML_FILTER_UNWANTED_ATTRIBUTES
+       chmod +x $(RAINIER_2U_XML_MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
+
+       $(RAINIER_2U_XML_MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
+            --tgt-xml $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_merged.xml \
+            --tgt-xml $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_hb.xml \
+            --tgt-xml $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_oppowervm.xml \
+            --tgt-xml $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_openpower.xml \
+            --mrw-xml $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+                $(BR2_RAINIER_2U_XML_TARGETING_FILENAME))
+
+       cp  $(call qstrip, $(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_TARGETING_FILENAME)).updated \
+           $(call qstrip,$(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_TARGETING_FILENAME))
+endef
+
+define RAINIER_2U_XML_BUILD_CMDS
+        # copy the machine xml where the common lives
+        $(INSTALL) -m 0644 -D $(@D)/$(call qstrip,$(BR2_RAINIER_2U_XML_FILENAME)) \
+            $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip,$(BR2_RAINIER_2U_XML_FILENAME))
+        $(INSTALL) -m 0644 -D $(@D)/$(call qstrip,$(BR2_RAINIER_2U_XML_BIOS_FILENAME)) \
+            $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip,$(BR2_RAINIER_2U_XML_BIOS_FILENAME))
+
+        # generate the system mrw xml
+        perl -I $(RAINIER_2U_XML_MRW_HB_TOOLS) \
+        $(RAINIER_2U_XML_MRW_HB_TOOLS)/processMrw.pl -x \
+            $(call qstrip,$(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_FILENAME)) \
+            -o $(call qstrip,$(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_TARGETING_FILENAME))$
+
+	$(if $(BR2_RAINIER_2U_XML_FILTER_UNWANTED_ATTRIBUTES), $(call RAINIER_2U_XML_FILTER_UNWANTED_ATTRIBUTES))
+
+        # merge in any system specific attributes, hostboot attributes
+        $(RAINIER_2U_XML_MRW_HB_TOOLS)/mergexml.sh \
+            $(call qstrip,$(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_SYSTEM_FILENAME)) \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/attribute_types.xml \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/attribute_types_hb.xml \
+            $(RAINIER_2U_XML_OPPOWERVM_ATTR_XML) \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/attribute_types_openpower.xml \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_merged.xml \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/target_types_hb.xml \
+            $(RAINIER_2U_XML_OPPOWERVM_TARGET_XML) \
+            $(RAINIER_2U_XML_TARGET_TYPES_OPENPOWER_XML) \
+            $(call qstrip, \
+                $(RAINIER_2U_XML_MRW_SCRATCH)/$(BR2_RAINIER_2U_XML_TARGETING_FILENAME)) \
+            > $(RAINIER_2U_XML_MRW_HB_TOOLS)/$(call qstrip, \
+                $(BR2_RAINIER_2U_XML_TARGETING_FILENAME))_temporary_hb.hb.xml;
+
+        # creating the targeting binary
+        # XXX TODO: xmltohb.pl creates a 'targeting.bin' in the output directory, we want
+        #           that file to be unique if we don't want to risk collisions on eventual
+        #           parallel builds
+        $(RAINIER_2U_XML_MRW_HB_TOOLS)/xmltohb.pl  \
+            --hb-xml-file=$(RAINIER_2U_XML_MRW_HB_TOOLS)/$(call qstrip, \
+                $(BR2_RAINIER_2U_XML_TARGETING_FILENAME))_temporary_hb.hb.xml \
+            --fapi-attributes-xml-file=$(RAINIER_2U_XML_MRW_HB_TOOLS)/fapiattrs.xml \
+            --src-output-dir=$(RAINIER_2U_XML_MRW_HB_TOOLS)/ \
+            --img-output-dir=$(RAINIER_2U_XML_MRW_HB_TOOLS)/ \
+            --vmm-consts-file=$(RAINIER_2U_XML_MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
+            --bios-xml-file=$(RAINIER_2U_XML_BIOS_CONFIG_FILE) \
+            --bios-schema-file=$(RAINIER_2U_XML_BIOS_SCHEMA_FILE) \
+            --bios-output-file=$(RAINIER_2U_XML_BIOS_METADATA_FILE)
+
+        # Transform BIOS XML into Petitboot specific BIOS XML via the schema
+        xsltproc -o \
+            $(RAINIER_2U_XML_PETITBOOT_BIOS_METADATA_FILE) \
+            $(RAINIER_2U_XML_PETITBOOT_XSLT_FILE) \
+            $(RAINIER_2U_XML_BIOS_METADATA_FILE)
+
+        # Create the wofdata
+        if [ -e $(RAINIER_2U_XML_MRW_HB_TOOLS)/wof-tables-img ]; then \
+            chmod +x $(RAINIER_2U_XML_MRW_HB_TOOLS)/wof-tables-img; \
+        fi
+
+        if [ -d $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+            $(BR2_RAINIER_2U_XML_FILENAME:.xml=.wofdata)) ]; then \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/wof-tables-img \
+                --create $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(RAINIER_2U_XML_FILENAME:.xml=.wof_output)) \
+                $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_RAINIER_2U_XML_FILENAME:.xml=wofdata)); \
+        fi
+
+        # Create the MEMD binary
+        if [ -e $(RAINIER_2U_XML_MRW_HB_TOOLS)/memd_creation.pl ]; then \
+            chmod +x $(RAINIER_2U_XML_MRW_HB_TOOLS)/memd_creation.pl; \
+        fi
+
+        if [ -d $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+            $(BR2_RAINIER_2U_XML_FILENAME:.xml=.memd_binaries)) ]; then \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/memd_creation.pl \
+                -memd_dir $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_RAINIER_2U_XML_FILENAME:.xml=.memd_binaries)) \
+                -memd_output $(RAINIER_2U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_RAINIER_2U_XML_FILENAME:.xml=.memd_output.dat)); \
+        fi
+
+endef
+
+define RAINIER_2U_XML_INSTALL_IMAGES_CMDS
+        mv $(RAINIER_2U_XML_MRW_HB_TOOLS)/targeting.bin $(call qstrip, \
+            $(RAINIER_2U_XML_MRW_HB_TOOLS)/$(BR2_RAINIER_2U_XML_TARGETING_BIN_FILENAME))
+        if [ -e $(RAINIER_2U_XML_MRW_HB_TOOLS)/targeting.bin.protected ]; then \
+            mv -v $(RAINIER_2U_XML_MRW_HB_TOOLS)/targeting.bin.protected \
+                $(call qstrip, \
+                    $(RAINIER_2U_XML_MRW_HB_TOOLS)/$(BR2_RAINIER_2U_XML_TARGETING_BIN_FILENAME)).protected; \
+        fi
+        if [ -e $(RAINIER_2U_XML_MRW_HB_TOOLS)/targeting.bin.unprotected ]; then \
+            mv -v $(RAINIER_2U_XML_MRW_HB_TOOLS)/targeting.bin.unprotected \
+                $(call qstrip, \
+                    $(RAINIER_2U_XML_MRW_HB_TOOLS)/$(BR2_RAINIER_2U_XML_TARGETING_BIN_FILENAME)).unprotected; \
+        fi
+endef
+
+define RAINIER_2U_XML_INSTALL_TARGET_CMDS
+        # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
+        $(INSTALL) -D -m 0644 \
+            $(RAINIER_2U_XML_PETITBOOT_BIOS_METADATA_FILE) \
+            $(RAINIER_2U_XML_PETITBOOT_BIOS_INITRAMFS_FILE)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/rainier-4u-xml/Config.in b/openpower/package/rainier-4u-xml/Config.in
new file mode 100644
index 0000000..0270703
--- /dev/null
+++ b/openpower/package/rainier-4u-xml/Config.in
@@ -0,0 +1,86 @@
+menu "Rainier 4U XML (MRW)"
+
+config BR2_PACKAGE_RAINIER_4U_XML
+        bool "rainier_4u_xml"
+
+if BR2_PACKAGE_RAINIER_4U_XML
+
+choice
+	prompt "Rainier 4U XML location"
+
+config BR2_RAINIER_4U_XML_GITHUB_PROJECT
+       bool "OpenPOWER Github project name"
+
+config BR2_RAINIER_4U_XML_CUSTOM_GIT
+       bool "Custom URL of Rainier 4U xml repository"
+
+endchoice
+
+config BR2_RAINIER_4U_XML_FILTER_UNWANTED_ATTRIBUTES
+       bool "Filter Unwanted Attributes"
+       default y
+
+config BR2_RAINIER_4U_XML_OPPOWERVM_ATTRIBUTES
+       bool "OPPOWERVM Attributes/Target"
+       default y
+
+config BR2_RAINIER_4U_XML_TARGET_TYPES_OPENPOWER_XML
+       bool "Include target_types_openpower.xml"
+       default y
+
+config BR2_RAINIER_4U_XML_CUSTOM_GIT_VALUE
+	string "URL of Rainier 4U xml repository"
+	depends on BR2_RAINIER_4U_XML_CUSTOM_GIT
+
+config BR2_RAINIER_4U_XML_GITHUB_PROJECT_VALUE
+       string "The Github project name (e.g. rainier-4u-xml)"
+       default "rainier-4u-xml"
+       depends on BR2_RAINIER_4U_XML_GITHUB_PROJECT
+
+config BR2_RAINIER_4U_XML_VERSION
+       string "Version of Rainier 4U XML"
+
+config BR2_RAINIER_4U_XML_FILENAME
+       string "Rainier 4U XML filename (e.g. Rainier-4U-MRW.xml)"
+       default "Rainier-4U-MRW.xml"
+       help
+           The name of the MRW XML file. Note that this file MUST
+           come with the '.xml' prefix (all lowercase)
+
+config BR2_RAINIER_4U_XML_SYSTEM_FILENAME
+        string "Targeting Rainier 4U system xml filename"
+        default ""
+        help
+            Defines the name of the system XML filename
+            to be used when creating targeting binary image
+
+config BR2_RAINIER_4U_XML_TARGETING_FILENAME
+        string "Targeting Rainier 4U mrw xml filename"
+        default ""
+        help
+            Defines the name of the mrw XML filename
+            to be used when creating targeting binary image
+
+config BR2_RAINIER_4U_XML_BIOS_FILENAME
+        string "BIOS Rainier 4U metadata XML filename"
+        default "Rainier-4U-MRW_bios.xml"
+        help
+            Defines the name of the BIOS XML filename
+            to parse when generating BIOS metadata
+
+config BR2_RAINIER_4U_XML_TARGETING_BIN_FILENAME
+        string "Name of the openpower binary targeting file"
+        default "Rainier-4U-MRW.targeting.bin"
+        help
+            String used to define name of openpower targeting binary file
+
+config BR2_RAINIER_4U_XML_TARGETING_ECC_FILENAME
+        string "Name of the openpower binary targeting ecc file"
+        default "Rainier-4U-MRW.targeting.bin.ecc"
+        help
+            String used to define name of openpower
+            targeting binary file, ecc protected
+
+endif
+
+endmenu
diff --git a/openpower/package/rainier-4u-xml/rainier-4u-xml.mk b/openpower/package/rainier-4u-xml/rainier-4u-xml.mk
new file mode 100644
index 0000000..abdb1eb
--- /dev/null
+++ b/openpower/package/rainier-4u-xml/rainier-4u-xml.mk
@@ -0,0 +1,167 @@
+################################################################################
+# rainier-4u-xml
+#
+################################################################################
+
+RAINIER_4U_XML_VERSION ?= $(call qstrip,$(BR2_RAINIER_4U_XML_VERSION))
+ifeq ($(BR2_RAINIER_4U_XML_GITHUB_PROJECT),y)
+RAINIER_4U_XML_SITE = $(call github,open-power,$(BR2_RAINIER_4U_XML_GITHUB_PROJECT_VALUE),$(RAINIER_4U_XML_VERSION))
+else ifeq ($(BR2_RAINIER_4U_XML_CUSTOM_GIT),y)
+RAINIER_4U_XML_SITE_METHOD = git
+RAINIER_4U_XML_SITE = $(BR2_RAINIER_4U_XML_CUSTOM_GIT_VALUE)
+endif
+
+RAINIER_4U_XML_LICENSE = Apache-2.0
+RAINIER_4U_XML_LICENSE_FILES = LICENSE
+RAINIER_4U_XML_DEPENDENCIES += hostboot-p10
+
+RAINIER_4U_XML_INSTALL_IMAGES = YES
+RAINIER_4U_XML_INSTALL_TARGET = YES
+
+RAINIER_4U_XML_MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+RAINIER_4U_XML_MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+# Defines for BIOS metadata creation
+RAINIER_4U_XML_BIOS_SCHEMA_FILE = $(RAINIER_4U_XML_MRW_HB_TOOLS)/bios.xsd
+RAINIER_4U_XML_BIOS_CONFIG_FILE = \
+    $(call qstrip,$(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_BIOS_FILENAME))
+RAINIER_4U_XML_BIOS_METADATA_FILE = \
+    $(call qstrip,$(RAINIER_4U_XML_MRW_HB_TOOLS)/$(BR2_OPENPOWER_P10_CONFIG_NAME)_bios_metadata.xml)
+RAINIER_4U_XML_PETITBOOT_XSLT_FILE = $(RAINIER_4U_XML_MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
+RAINIER_4U_XML_PETITBOOT_BIOS_METADATA_FILE = \
+    $(call qstrip, \
+        $(RAINIER_4U_XML_MRW_HB_TOOLS)/$(BR2_OPENPOWER_P10_CONFIG_NAME)_bios_metadata_petitboot.xml)
+# XXX TODO: Figure out what to do with the bios_metadata.xml. Right now, the last xml
+#           package file processed 'wins' and all previously processed xml packages are
+#           overriden.
+RAINIER_4U_XML_PETITBOOT_BIOS_INITRAMFS_FILE = \
+    $(TARGET_DIR)/usr/share/bios_metadata.xml
+
+ifeq ($(BR2_RAINIER_4U_XML_OPPOWERVM_ATTRIBUTES),y)
+RAINIER_4U_XML_OPPOWERVM_ATTR_XML = $(RAINIER_4U_XML_MRW_HB_TOOLS)/attribute_types_oppowervm.xml
+RAINIER_4U_XML_OPPOWERVM_TARGET_XML = $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_oppowervm.xml
+endif
+ifeq ($(BR2_RAINIER_4U_XML_TARGET_TYPES_OPENPOWER_XML),y)
+RAINIER_4U_XML_TARGET_TYPES_OPENPOWER_XML = $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_openpower.xml
+endif
+
+define RAINIER_4U_XML_FILTER_UNWANTED_ATTRIBUTES
+       chmod +x $(RAINIER_4U_XML_MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
+
+       $(RAINIER_4U_XML_MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
+            --tgt-xml $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_merged.xml \
+            --tgt-xml $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_hb.xml \
+            --tgt-xml $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_oppowervm.xml \
+            --tgt-xml $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_openpower.xml \
+            --mrw-xml $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+                $(BR2_RAINIER_4U_XML_TARGETING_FILENAME))
+
+       cp  $(call qstrip, $(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_TARGETING_FILENAME)).updated \
+           $(call qstrip,$(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_TARGETING_FILENAME))
+endef
+
+define RAINIER_4U_XML_BUILD_CMDS
+        # copy the machine xml where the common lives
+        $(INSTALL) -m 0644 -D $(@D)/$(call qstrip,$(BR2_RAINIER_4U_XML_FILENAME)) \
+            $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip,$(BR2_RAINIER_4U_XML_FILENAME))
+        $(INSTALL) -m 0644 -D $(@D)/$(call qstrip,$(BR2_RAINIER_4U_XML_BIOS_FILENAME)) \
+            $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip,$(BR2_RAINIER_4U_XML_BIOS_FILENAME))
+
+        # generate the system mrw xml
+        perl -I $(RAINIER_4U_XML_MRW_HB_TOOLS) \
+        $(RAINIER_4U_XML_MRW_HB_TOOLS)/processMrw.pl -x \
+            $(call qstrip,$(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_FILENAME)) \
+            -o $(call qstrip,$(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_TARGETING_FILENAME))
+
+	$(if $(BR2_RAINIER_4U_XML_FILTER_UNWANTED_ATTRIBUTES), $(call RAINIER_4U_XML_FILTER_UNWANTED_ATTRIBUTES))
+
+        # merge in any system specific attributes, hostboot attributes
+        $(RAINIER_4U_XML_MRW_HB_TOOLS)/mergexml.sh \
+            $(call qstrip,$(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_SYSTEM_FILENAME)) \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/attribute_types.xml \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/attribute_types_hb.xml \
+            $(RAINIER_4U_XML_OPPOWERVM_ATTR_XML) \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/attribute_types_openpower.xml \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_merged.xml \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/target_types_hb.xml \
+            $(RAINIER_4U_XML_OPPOWERVM_TARGET_XML) \
+            $(RAINIER_4U_XML_TARGET_TYPES_OPENPOWER_XML) \
+            $(call qstrip, \
+                $(RAINIER_4U_XML_MRW_SCRATCH)/$(BR2_RAINIER_4U_XML_TARGETING_FILENAME)) \
+            > $(RAINIER_4U_XML_MRW_HB_TOOLS)/$(call qstrip, \
+                $(BR2_RAINIER_4U_XML_TARGETING_FILENAME))_temporary_hb.hb.xml;
+
+        # creating the targeting binary
+        # XXX TODO: xmltohb.pl creates a 'targeting.bin' in the output directory, we want
+        #           that file to be unique if we don't want to risk collisions on eventual
+        #           parallel builds
+        $(RAINIER_4U_XML_MRW_HB_TOOLS)/xmltohb.pl  \
+            --hb-xml-file=$(RAINIER_4U_XML_MRW_HB_TOOLS)/$(call qstrip, \
+                $(BR2_RAINIER_4U_XML_TARGETING_FILENAME))_temporary_hb.hb.xml \
+            --fapi-attributes-xml-file=$(RAINIER_4U_XML_MRW_HB_TOOLS)/fapiattrs.xml \
+            --src-output-dir=$(RAINIER_4U_XML_MRW_HB_TOOLS)/ \
+            --img-output-dir=$(RAINIER_4U_XML_MRW_HB_TOOLS)/ \
+            --vmm-consts-file=$(RAINIER_4U_XML_MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
+            --bios-xml-file=$(RAINIER_4U_XML_BIOS_CONFIG_FILE) \
+            --bios-schema-file=$(RAINIER_4U_XML_BIOS_SCHEMA_FILE) \
+            --bios-output-file=$(RAINIER_4U_XML_BIOS_METADATA_FILE)
+
+        # Transform BIOS XML into Petitboot specific BIOS XML via the schema
+        xsltproc -o \
+            $(RAINIER_4U_XML_PETITBOOT_BIOS_METADATA_FILE) \
+            $(RAINIER_4U_XML_PETITBOOT_XSLT_FILE) \
+            $(RAINIER_4U_XML_BIOS_METADATA_FILE)
+
+        # Create the wofdata
+        if [ -e $(RAINIER_4U_XML_MRW_HB_TOOLS)/wof-tables-img ]; then \
+            chmod +x $(RAINIER_4U_XML_MRW_HB_TOOLS)/wof-tables-img; \
+        fi
+
+        if [ -d $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+            $(BR2_RAINIER_4U_XML_FILENAME:.xml=.wofdata)) ]; then \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/wof-tables-img \
+                --create $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(RAINIER_4U_XML_FILENAME:.xml=.wof_output)) \
+                $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_RAINIER_4U_XML_FILENAME:.xml=wofdata)); \
+        fi
+
+        # Create the MEMD binary
+        if [ -e $(RAINIER_4U_XML_MRW_HB_TOOLS)/memd_creation.pl ]; then \
+            chmod +x $(RAINIER_4U_XML_MRW_HB_TOOLS)/memd_creation.pl; \
+        fi
+
+        if [ -d $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+            $(BR2_RAINIER_4U_XML_FILENAME:.xml=.memd_binaries)) ]; then \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/memd_creation.pl \
+                -memd_dir $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_RAINIER_4U_XML_FILENAME:.xml=.memd_binaries)) \
+                -memd_output $(RAINIER_4U_XML_MRW_SCRATCH)/$(call qstrip, \
+                    $(BR2_RAINIER_4U_XML_FILENAME:.xml=.memd_output.dat)); \
+        fi
+
+endef
+
+define RAINIER_4U_XML_INSTALL_IMAGES_CMDS
+        mv $(RAINIER_4U_XML_MRW_HB_TOOLS)/targeting.bin $(call qstrip, \
+            $(RAINIER_4U_XML_MRW_HB_TOOLS)/$(BR2_RAINIER_4U_XML_TARGETING_BIN_FILENAME))
+        if [ -e $(RAINIER_4U_XML_MRW_HB_TOOLS)/targeting.bin.protected ]; then \
+            mv -v $(RAINIER_4U_XML_MRW_HB_TOOLS)/targeting.bin.protected \
+                $(call qstrip, \
+                    $(RAINIER_4U_XML_MRW_HB_TOOLS)/$(BR2_RAINIER_4U_XML_TARGETING_BIN_FILENAME)).protected; \
+        fi
+        if [ -e $(RAINIER_4U_XML_MRW_HB_TOOLS)/targeting.bin.unprotected ]; then \
+            mv -v $(RAINIER_4U_XML_MRW_HB_TOOLS)/targeting.bin.unprotected \
+                $(call qstrip, \
+                    $(RAINIER_4U_XML_MRW_HB_TOOLS)/$(BR2_RAINIER_4U_XML_TARGETING_BIN_FILENAME)).unprotected; \
+        fi
+endef
+
+define RAINIER_4U_XML_INSTALL_TARGET_CMDS
+        # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
+        $(INSTALL) -D -m 0644 \
+            $(RAINIER_4U_XML_PETITBOOT_BIOS_METADATA_FILE) \
+            $(RAINIER_4U_XML_PETITBOOT_BIOS_INITRAMFS_FILE)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/sb-signing-framework/Config.in b/openpower/package/sb-signing-framework/Config.in
index 7ac3848..406a322 100644
--- a/openpower/package/sb-signing-framework/Config.in
+++ b/openpower/package/sb-signing-framework/Config.in
@@ -1,5 +1,5 @@
 config BR2_PACKAGE_HOST_SB_SIGNING_FRAMEWORK
         bool "OpenPOWER secureboot signing server interface"
-        default y if BR2_OPENPOWER_PLATFORM && ((BR2_OPENPOWER_SECUREBOOT_SIGN_MODE = "production") || (BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_PROD) )
+        default y if BR2_OPENPOWER_PLATFORM && ((BR2_OPENPOWER_SECUREBOOT_SIGN_MODE = "production") || (BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_PROD) || (BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE = "production") || (BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_PROD) )
         help
             Client interface to signing server for signing OpenPOWER firmware images
diff --git a/openpower/package/sb-signing-utils/sb-signing-utils.mk b/openpower/package/sb-signing-utils/sb-signing-utils.mk
index 85f201b..efc0f64 100644
--- a/openpower/package/sb-signing-utils/sb-signing-utils.mk
+++ b/openpower/package/sb-signing-utils/sb-signing-utils.mk
@@ -16,6 +16,10 @@
 HOST_SB_SIGNING_UTILS_DEPENDENCIES += host-sb-signing-framework
 else ifeq ($(BR2_OPENPOWER_SECUREBOOT_KEY_TRANSITION_TO_PROD),y)
 HOST_SB_SIGNING_UTILS_DEPENDENCIES += host-sb-signing-framework
+else ifeq ($(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE),production)
+HOST_SB_SIGNING_UTILS_DEPENDENCIES += host-sb-signing-framework
+else ifeq ($(BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_PROD),y)
+HOST_SB_SIGNING_UTILS_DEPENDENCIES += host-sb-signing-framework
 endif
 
 HOST_SB_SIGNING_UTILS_AUTORECONF = YES
diff --git a/openpower/package/sbe-p10/Config.in b/openpower/package/sbe-p10/Config.in
new file mode 100644
index 0000000..8bc4248
--- /dev/null
+++ b/openpower/package/sbe-p10/Config.in
@@ -0,0 +1,33 @@
+config BR2_PACKAGE_SBE_P10
+        bool "sbe-p10"
+        default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER10)
+        select BR2_CPP
+        depends on BR2_PACKAGE_HCODE_P10
+        help
+            Project to build the sbe firmware codebase for P10
+
+if BR2_PACKAGE_SBE_P10
+
+choice
+	prompt "SBE version"
+	default BR2_SBE_P10_LATEST_VERSION
+
+config BR2_SBE_P10_LATEST_VERSION
+	bool "Use latest SBE master"
+
+config BR2_SBE_P10_CUSTOM_VERSION
+	bool "Custom SBE version"
+
+endchoice
+
+config BR2_SBE_P10_CUSTOM_VERSION_VALUE
+	string "SBE version"
+	depends on BR2_SBE_P10_CUSTOM_VERSION
+
+config BR2_SBE_P10_VERSION
+	string
+	default "9a8e8a7dde97196a68ad4a44f00e0d59688fdf71" if BR2_SBE_P10_LATEST_VERSION
+	default BR2_SBE_P10_CUSTOM_VERSION_VALUE \
+		if BR2_SBE_P10_CUSTOM_VERSION
+
+endif
diff --git a/openpower/package/sbe-p10/sbe-p10.mk b/openpower/package/sbe-p10/sbe-p10.mk
new file mode 100644
index 0000000..de85d15
--- /dev/null
+++ b/openpower/package/sbe-p10/sbe-p10.mk
@@ -0,0 +1,42 @@
+################################################################################
+#
+# SBE for P10
+#
+################################################################################
+
+SBE_P10_VERSION = $(call qstrip,$(BR2_SBE_P10_VERSION))
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#SBE_P10_SITE ?= $(call github,open-power,sbe,$(SBE_P10_VERSION))
+SBE_P10_SITE ?= git@github.ibm.com:open-power/sbe.git
+SBE_P10_SITE_METHOD ?= git
+
+SBE_P10_LICENSE = Apache-2.0
+SBE_P10_DEPENDENCIES = host-ppe42-gcc hcode-p10
+# TODO WORKAROUND ... host-ppe42-gc not compiling
+# host-ppe42-gcc hcode-p10
+
+SBE_P10_INSTALL_IMAGES = YES
+SBE_P10_INSTALL_TARGET = NO
+
+ifeq ($(BR2_PACKAGE_OPENPOWER_PNOR_P10),y)
+BINARY_SBE_FILENAME=$(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME)
+else
+BINARY_SBE_FILENAME=$(BR2_HOSTBOOT_BINARY_SBE_FILENAME)
+endif
+
+define SBE_P10_BUILD_CMDS
+	SBE_COMMIT_ID=$(SBE_P10_VERSION) $(MAKE) -C $(@D) \
+		LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib \
+		CROSS_COMPILER_PATH=$(PPE42_GCC_BIN) \
+		all
+endef
+
+define SBE_P10_INSTALL_IMAGES_CMDS
+	$(INSTALL) -D $(@D)/images/ipl_image_tool $(HOST_DIR)/usr/bin/
+	python $(@D)/src/build/sbeOpDistribute.py  --sbe_binary_dir=$(STAGING_DIR)/sbe_binaries --img_dir=$(@D)/images --sbe_binary_filename $(BINARY_SBE_FILENAME)
+	cp $(@D)/src/build/sbeOpDistribute.py $(STAGING_DIR)/sbe_binaries/
+	cp $(@D)/src/build/sbeOpToolsRegister.py $(STAGING_DIR)/sbe_binaries/
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 7f1c9bf..9f12680 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -31,15 +31,17 @@
 
 config BR2_SKIBOOT_VERSION
 	string
-	default "v6.7-26-g46d7eafbd" if BR2_SKIBOOT_LATEST_VERSION
+	default "v6.6-338-g85df0812" if BR2_SKIBOOT_LATEST_VERSION
 	default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_SKIBOOT_CUSTOM_VERSION
 
 config BR2_SKIBOOT_CUSTOM_GIT
 	bool "Custom git repository"
+	default y
 
 config BR2_SKIBOOT_CUSTOM_REPO_URL
 	string "URL of custom repository"
+	default "git@github.ibm.com:p10/skiboot.git"
 	depends on BR2_SKIBOOT_CUSTOM_GIT
 
 config BR2_SKIBOOT_DEVICETREE
diff --git a/openpower/platform/Config.in b/openpower/platform/Config.in
index 0cea229..efe480b 100644
--- a/openpower/platform/Config.in
+++ b/openpower/platform/Config.in
@@ -1,9 +1,14 @@
 config BR2_OPENPOWER_PLATFORM
     bool "Enables only one openPower platform"
     default n
-    depends on (BR2_OPENPOWER_POWER9)
+    depends on ((BR2_OPENPOWER_POWER9 || BR2_OPENPOWER_POWER10) && !(BR2_OPENPOWER_POWER9 && BR2_OPENPOWER_POWER10))
 
 config BR2_OPENPOWER_POWER9
     bool "Enables the OpenPower p9 platform"
     default n
     depends on BR2_powerpc64 || BR2_powerpc64le
+
+config BR2_OPENPOWER_POWER10
+    bool "Enables the OpenPower p10 platform"
+    default n
+    depends on BR2_powerpc64 || BR2_powerpc64le
