Merge branch 'master' into master-p10

Pull the upstream 'master' branch into master-p10. This is
a necessary step in allowing us to eventually merge back
the master-p10 branch upstream.

A few highlights in solving the conflicts:
 * buildroot is now the upstream openpower version (2020.08.2)
 * the openpower-pnor package is the upstream version (without
   Power10 support). This is due to us using openpower-pnor-p10
   for Power10 recently.

Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>

Conflicts:
	.gitmodules
	README.md
	buildroot
	openpower/package/Config.in
	openpower/package/hostboot-binaries/Config.in
	openpower/package/ocmb-explorer-fw/Config.in
	openpower/package/ocmb-explorer-fw/ocmb-explorer-fw.mk
	openpower/package/openpower-pnor/Config.in
	openpower/package/openpower-pnor/openpower-pnor.mk
	openpower/package/ppe42-binutils/Config.in
	openpower/package/ppe42-gcc/Config.in
	openpower/package/skiboot/Config.in
	openpower/platform/Config.in
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