diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index 5ac7ee8..98f6061 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/blackbird_defconfig b/openpower/configs/blackbird_defconfig
index dabc84a..dbb9117 100644
--- a/openpower/configs/blackbird_defconfig
+++ b/openpower/configs/blackbird_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/firenze_defconfig b/openpower/configs/firenze_defconfig
index 760a0ae..fde29f7 100644
--- a/openpower/configs/firenze_defconfig
+++ b/openpower/configs/firenze_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index acf8b97..b0e726d 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index ab4b8d3..c10538d 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index ace3ed3..f36aa3b 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/mihawk_defconfig b/openpower/configs/mihawk_defconfig
index 296529c..647e9c7 100644
--- a/openpower/configs/mihawk_defconfig
+++ b/openpower/configs/mihawk_defconfig
@@ -17,7 +17,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/nicole_defconfig b/openpower/configs/nicole_defconfig
index a506d8b..117067e 100644
--- a/openpower/configs/nicole_defconfig
+++ b/openpower/configs/nicole_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/opal_defconfig b/openpower/configs/opal_defconfig
index 26ce092..43bceb5 100644
--- a/openpower/configs/opal_defconfig
+++ b/openpower/configs/opal_defconfig
@@ -12,7 +12,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/p8dtu_defconfig b/openpower/configs/p8dtu_defconfig
index 9dc94ed..1b3addf 100644
--- a/openpower/configs/p8dtu_defconfig
+++ b/openpower/configs/p8dtu_defconfig
@@ -17,7 +17,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/p9dsu_defconfig b/openpower/configs/p9dsu_defconfig
index d0f55bd..06de322 100644
--- a/openpower/configs/p9dsu_defconfig
+++ b/openpower/configs/p9dsu_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 8e91d20..7f1199d 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/pseries_defconfig b/openpower/configs/pseries_defconfig
index 613ed36..4eaceca 100644
--- a/openpower/configs/pseries_defconfig
+++ b/openpower/configs/pseries_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/pseries_skiroot_defconfig"
diff --git a/openpower/configs/romulus_defconfig b/openpower/configs/romulus_defconfig
index 60d0546..1c73f62 100644
--- a/openpower/configs/romulus_defconfig
+++ b/openpower/configs/romulus_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/vesnin_defconfig b/openpower/configs/vesnin_defconfig
index c174cf8..416beaa 100644
--- a/openpower/configs/vesnin_defconfig
+++ b/openpower/configs/vesnin_defconfig
@@ -15,7 +15,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig
index 3c43220..db3aff3 100644
--- a/openpower/configs/witherspoon_defconfig
+++ b/openpower/configs/witherspoon_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index 9fd53f1..5959e39 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -16,7 +16,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig
index 2406c06..5ae779c 100644
--- a/openpower/configs/zz_defconfig
+++ b/openpower/configs/zz_defconfig
@@ -14,7 +14,7 @@
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.18"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.7"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
diff --git a/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch b/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch
index 197210f..b42708b 100644
--- a/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch
+++ b/openpower/linux/0001-xhci-Reset-controller-on-xhci-shutdown.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 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/8] xhci: Reset controller on xhci shutdown
+Subject: [PATCH 1/4] 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.
@@ -14,7 +14,7 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 73ad81eb2a8e..b9a6a80317ea 100644
+index 9b3b1b16eafb..2a3aa1509d40 100644
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
 @@ -789,6 +789,9 @@ void xhci_shutdown(struct usb_hcd *hcd)
diff --git a/openpower/linux/0005-powerpc-configs-add-FADump-support-in-petitboot-kern.patch b/openpower/linux/0002-powerpc-configs-add-FADump-awareness-to-skiroot_defc.patch
similarity index 69%
rename from openpower/linux/0005-powerpc-configs-add-FADump-support-in-petitboot-kern.patch
rename to openpower/linux/0002-powerpc-configs-add-FADump-awareness-to-skiroot_defc.patch
index 2983711..107e938 100644
--- a/openpower/linux/0005-powerpc-configs-add-FADump-support-in-petitboot-kern.patch
+++ b/openpower/linux/0002-powerpc-configs-add-FADump-awareness-to-skiroot_defc.patch
@@ -1,20 +1,24 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Hari Bathini <hbathini@linux.ibm.com>
-Date: Wed, 9 Oct 2019 10:45:41 +0530
-Subject: [PATCH 5/8] powerpc/configs: add FADump support in petitboot kernel
+Date: Wed, 9 Oct 2019 19:34:29 +0530
+Subject: [PATCH 2/4] powerpc/configs: add FADump awareness to
+ skiroot_defconfig
 
 FADump is supported on PowerNV platform. To fulfill this support, the
 petitboot kernel must be FADump aware. Enable config PRESERVE_FA_DUMP
 to make the petitboot kernel FADump aware.
 
 Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/157062986936.23016.10146169203560084401.stgit@hbathini.in.ibm.com
+(cherry picked from commit aaa351504449c4babb80753c72920e4b25fbd8a9)
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
  arch/powerpc/configs/skiroot_defconfig | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/arch/powerpc/configs/skiroot_defconfig b/arch/powerpc/configs/skiroot_defconfig
-index 557b530b2f70..7a1f0cc62c67 100644
+index 1253482a67c0..1e18454083ff 100644
 --- a/arch/powerpc/configs/skiroot_defconfig
 +++ b/arch/powerpc/configs/skiroot_defconfig
 @@ -46,6 +46,7 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
diff --git a/openpower/linux/0002-powerpc-opal-add-MPIPL-interface-definitions.patch b/openpower/linux/0002-powerpc-opal-add-MPIPL-interface-definitions.patch
deleted file mode 100644
index 9fad7d8..0000000
--- a/openpower/linux/0002-powerpc-opal-add-MPIPL-interface-definitions.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hari Bathini <hbathini@linux.ibm.com>
-Date: Wed, 9 Oct 2019 10:45:19 +0530
-Subject: [PATCH 2/8] powerpc/opal: add MPIPL interface definitions
-
-MPIPL is Memory Preserving IPL supported from POWER9. This enables the
-kernel to reset the system with memory 'preserved'. Also, it supports
-copying memory from a source address to some destination address during
-MPIPL boot. Add MPIPL interface definitions here to leverage these f/w
-features in adding FADump support for PowerNV platform.
-
-This is the backport of upstream commit 6f5f193e84d3 ("powerpc/opal:
-add MPIPL interface definitions").
-
-Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/include/asm/opal-api.h        | 44 +++++++++++++++++++++-
- arch/powerpc/include/asm/opal.h            |  5 +++
- arch/powerpc/platforms/powernv/opal-call.c |  3 ++
- 3 files changed, 51 insertions(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/include/asm/opal-api.h b/arch/powerpc/include/asm/opal-api.h
-index 383242eb0dea..3c39e7f7ba4c 100644
---- a/arch/powerpc/include/asm/opal-api.h
-+++ b/arch/powerpc/include/asm/opal-api.h
-@@ -208,7 +208,10 @@
- #define OPAL_HANDLE_HMI2			166
- #define	OPAL_NX_COPROC_INIT			167
- #define OPAL_XIVE_GET_VP_STATE			170
--#define OPAL_LAST				170
-+#define OPAL_MPIPL_UPDATE			173
-+#define OPAL_MPIPL_REGISTER_TAG			174
-+#define OPAL_MPIPL_QUERY_TAG			175
-+#define OPAL_LAST				175
- 
- #define QUIESCE_HOLD			1 /* Spin all calls at entry */
- #define QUIESCE_REJECT			2 /* Fail all calls with OPAL_BUSY */
-@@ -1059,6 +1062,7 @@ enum {
- 	OPAL_REBOOT_NORMAL		= 0,
- 	OPAL_REBOOT_PLATFORM_ERROR	= 1,
- 	OPAL_REBOOT_FULL_IPL		= 2,
-+	OPAL_REBOOT_MPIPL		= 3,
- };
- 
- /* Argument to OPAL_PCI_TCE_KILL */
-@@ -1135,6 +1139,44 @@ enum {
- #define OPAL_PCI_P2P_LOAD		0x2
- #define OPAL_PCI_P2P_STORE		0x4
- 
-+/* MPIPL update operations */
-+enum opal_mpipl_ops {
-+	OPAL_MPIPL_ADD_RANGE			= 0,
-+	OPAL_MPIPL_REMOVE_RANGE			= 1,
-+	OPAL_MPIPL_REMOVE_ALL			= 2,
-+	OPAL_MPIPL_FREE_PRESERVED_MEMORY	= 3,
-+};
-+
-+/* Tag will point to various metadata area. Kernel will
-+ * use tag to get metadata value.
-+ */
-+enum opal_mpipl_tags {
-+	OPAL_MPIPL_TAG_CPU	= 0,
-+	OPAL_MPIPL_TAG_OPAL	= 1,
-+	OPAL_MPIPL_TAG_KERNEL	= 2,
-+	OPAL_MPIPL_TAG_BOOT_MEM	= 3,
-+};
-+
-+/* Preserved memory details */
-+struct opal_mpipl_region {
-+	__be64	src;
-+	__be64	dest;
-+	__be64	size;
-+};
-+
-+/* Structure version */
-+#define OPAL_MPIPL_VERSION		0x01
-+
-+struct opal_mpipl_fadump {
-+	u8	version;
-+	u8	reserved[7];
-+	__be32	crashing_pir;	/* OPAL crashing CPU PIR */
-+	__be32	cpu_data_version;
-+	__be32	cpu_data_size;
-+	__be32	region_cnt;
-+	struct	opal_mpipl_region region[];
-+} __packed;
-+
- #endif /* __ASSEMBLY__ */
- 
- #endif /* __OPAL_API_H */
-diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
-index d5a0807d21db..a0cf8fba4d12 100644
---- a/arch/powerpc/include/asm/opal.h
-+++ b/arch/powerpc/include/asm/opal.h
-@@ -39,6 +39,7 @@ int64_t opal_npu_spa_clear_cache(uint64_t phb_id, uint32_t bdfn,
- 				uint64_t PE_handle);
- int64_t opal_npu_tl_set(uint64_t phb_id, uint32_t bdfn, long cap,
- 			uint64_t rate_phys, uint32_t size);
-+
- int64_t opal_console_write(int64_t term_number, __be64 *length,
- 			   const uint8_t *buffer);
- int64_t opal_console_read(int64_t term_number, __be64 *length,
-@@ -297,6 +298,10 @@ int opal_sensor_group_clear(u32 group_hndl, int token);
- int opal_sensor_group_enable(u32 group_hndl, int token, bool enable);
- int opal_nx_coproc_init(uint32_t chip_id, uint32_t ct);
- 
-+s64 opal_mpipl_update(enum opal_mpipl_ops op, u64 src, u64 dest, u64 size);
-+s64 opal_mpipl_register_tag(enum opal_mpipl_tags tag, u64 addr);
-+s64 opal_mpipl_query_tag(enum opal_mpipl_tags tag, u64 *addr);
-+
- s64 opal_signal_system_reset(s32 cpu);
- s64 opal_quiesce(u64 shutdown_type, s32 cpu);
- 
-diff --git a/arch/powerpc/platforms/powernv/opal-call.c b/arch/powerpc/platforms/powernv/opal-call.c
-index dccdc9df5213..a2aa5e433ac8 100644
---- a/arch/powerpc/platforms/powernv/opal-call.c
-+++ b/arch/powerpc/platforms/powernv/opal-call.c
-@@ -287,3 +287,6 @@ OPAL_CALL(opal_pci_set_pbcq_tunnel_bar,		OPAL_PCI_SET_PBCQ_TUNNEL_BAR);
- OPAL_CALL(opal_sensor_read_u64,			OPAL_SENSOR_READ_U64);
- OPAL_CALL(opal_sensor_group_enable,		OPAL_SENSOR_GROUP_ENABLE);
- OPAL_CALL(opal_nx_coproc_init,			OPAL_NX_COPROC_INIT);
-+OPAL_CALL(opal_mpipl_update,			OPAL_MPIPL_UPDATE);
-+OPAL_CALL(opal_mpipl_register_tag,		OPAL_MPIPL_REGISTER_TAG);
-+OPAL_CALL(opal_mpipl_query_tag,			OPAL_MPIPL_QUERY_TAG);
diff --git a/openpower/linux/0003-powerpc-config-Enable-secuity-features-in-skiroot.patch b/openpower/linux/0003-powerpc-config-Enable-secuity-features-in-skiroot.patch
new file mode 100644
index 0000000..45ed2be
--- /dev/null
+++ b/openpower/linux/0003-powerpc-config-Enable-secuity-features-in-skiroot.patch
@@ -0,0 +1,47 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Joel Stanley <joel@jms.id.au>
+Date: Thu, 2 Jan 2020 17:32:11 +1100
+Subject: [PATCH 3/4] powerpc/config: Enable secuity features in skiroot
+
+This turns on HARDENED_USERCOPY with HARDENED_USERCOPY_PAGESPAN, and
+FORTIFY_SOURCE.
+
+It also enables SECURITY_LOCKDOWN_LSM with _EARLY and
+LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY options enabled.
+
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ arch/powerpc/configs/skiroot_defconfig | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/configs/skiroot_defconfig b/arch/powerpc/configs/skiroot_defconfig
+index 1e18454083ff..bbd30eb1482e 100644
+--- a/arch/powerpc/configs/skiroot_defconfig
++++ b/arch/powerpc/configs/skiroot_defconfig
+@@ -33,7 +33,6 @@ CONFIG_JUMP_LABEL=y
+ CONFIG_STRICT_KERNEL_RWX=y
+ CONFIG_MODULES=y
+ CONFIG_MODULE_UNLOAD=y
+-CONFIG_MODULE_SIG=y
+ CONFIG_MODULE_SIG_FORCE=y
+ CONFIG_MODULE_SIG_SHA512=y
+ CONFIG_PARTITION_ADVANCED=y
+@@ -278,6 +277,18 @@ CONFIG_NLS_CODEPAGE_437=y
+ CONFIG_NLS_ASCII=y
+ CONFIG_NLS_ISO8859_1=y
+ CONFIG_NLS_UTF8=y
++CONFIG_ENCRYPTED_KEYS=y
++CONFIG_SECURITY=y
++CONFIG_HARDENED_USERCOPY=y
++# CONFIG_HARDENED_USERCOPY_FALLBACK is not set
++CONFIG_HARDENED_USERCOPY_PAGESPAN=y
++CONFIG_FORTIFY_SOURCE=y
++CONFIG_SECURITY_LOCKDOWN_LSM=y
++CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
++CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY=y
++# CONFIG_INTEGRITY is not set
++CONFIG_LSM="yama,loadpin,safesetid,integrity"
++# CONFIG_CRYPTO_HW is not set
+ CONFIG_CRC16=y
+ CONFIG_CRC_ITU_T=y
+ CONFIG_LIBCRC32C=y
diff --git a/openpower/linux/0003-powerpc-fadump-improve-how-crashed-kernel-s-memory-i.patch b/openpower/linux/0003-powerpc-fadump-improve-how-crashed-kernel-s-memory-i.patch
deleted file mode 100644
index eb6750b..0000000
--- a/openpower/linux/0003-powerpc-fadump-improve-how-crashed-kernel-s-memory-i.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hari Bathini <hbathini@linux.ibm.com>
-Date: Wed, 9 Oct 2019 10:45:26 +0530
-Subject: [PATCH 3/8] powerpc/fadump: improve how crashed kernel's memory is
- reserved
-
-The size parameter to fadump_reserve_crash_area() function is not needed
-as all the memory above boot memory size must be preserved anyway. Update
-the function by dropping this redundant parameter.
-
-This is the backport of upstream commit b2a815a554a3 ("powerpc/fadump:
-improve how crashed kernel's memory is reserved").
-
-Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/kernel/fadump.c | 53 ++++++++++++++++++++----------------
- 1 file changed, 30 insertions(+), 23 deletions(-)
-
-diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
-index 4eab97292cc2..4dacce3fac72 100644
---- a/arch/powerpc/kernel/fadump.c
-+++ b/arch/powerpc/kernel/fadump.c
-@@ -33,6 +33,9 @@
- #include <asm/setup.h>
- 
- static struct fw_dump fw_dump;
-+
-+static void __init fadump_reserve_crash_area(u64 base);
-+
- static struct fadump_mem_struct fdm;
- static const struct fadump_mem_struct *fdm_active;
- #ifdef CONFIG_CMA
-@@ -426,26 +429,6 @@ static unsigned long get_fadump_area_size(void)
- 	return size;
- }
- 
--static void __init fadump_reserve_crash_area(unsigned long base,
--					     unsigned long size)
--{
--	struct memblock_region *reg;
--	unsigned long mstart, mend, msize;
--
--	for_each_memblock(memory, reg) {
--		mstart = max_t(unsigned long, base, reg->base);
--		mend = reg->base + reg->size;
--		mend = min(base + size, mend);
--
--		if (mstart < mend) {
--			msize = mend - mstart;
--			memblock_reserve(mstart, msize);
--			pr_info("Reserved %ldMB of memory at %#016lx for saving crash dump\n",
--				(msize >> 20), mstart);
--		}
--	}
--}
--
- int __init fadump_reserve_mem(void)
- {
- 	unsigned long base, size, memory_boundary;
-@@ -510,13 +493,13 @@ int __init fadump_reserve_mem(void)
- #endif
- 		/*
- 		 * If last boot has crashed then reserve all the memory
--		 * above boot_memory_size so that we don't touch it until
-+		 * above boot memory size so that we don't touch it until
- 		 * dump is written to disk by userspace tool. This memory
--		 * will be released for general use once the dump is saved.
-+		 * can be released for general use by invalidating fadump.
- 		 */
- 		base = fw_dump.boot_memory_size;
- 		size = memory_boundary - base;
--		fadump_reserve_crash_area(base, size);
-+		fadump_reserve_crash_area(base);
- 
- 		fw_dump.fadumphdr_addr =
- 				be64_to_cpu(fdm_active->rmr_region.destination_address) +
-@@ -1701,3 +1684,27 @@ int __init setup_fadump(void)
- 	return 1;
- }
- subsys_initcall(setup_fadump);
-+
-+/* Preserve everything above the base address */
-+static void __init fadump_reserve_crash_area(u64 base)
-+{
-+	struct memblock_region *reg;
-+	u64 mstart, msize;
-+
-+	for_each_memblock(memory, reg) {
-+		mstart = reg->base;
-+		msize  = reg->size;
-+
-+		if ((mstart + msize) < base)
-+			continue;
-+
-+		if (mstart < base) {
-+			msize -= (base - mstart);
-+			mstart = base;
-+		}
-+
-+		pr_info("Reserving %lluMB of memory at %#016llx for preserving crash data",
-+			(msize >> 20), mstart);
-+		memblock_reserve(mstart, msize);
-+	}
-+}
diff --git a/openpower/linux/0008-Release-OpenPower-kernel.patch b/openpower/linux/0004-Release-OpenPower-kernel.patch
similarity index 74%
rename from openpower/linux/0008-Release-OpenPower-kernel.patch
rename to openpower/linux/0004-Release-OpenPower-kernel.patch
index 2ccd09d..5e40910 100644
--- a/openpower/linux/0008-Release-OpenPower-kernel.patch
+++ b/openpower/linux/0004-Release-OpenPower-kernel.patch
@@ -1,7 +1,7 @@
 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Joel Stanley <joel@jms.id.au>
 Date: Tue, 16 Jul 2019 11:40:02 +0930
-Subject: [PATCH 8/8] Release OpenPower kernel
+Subject: [PATCH 4/4] Release OpenPower kernel
 
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
@@ -9,15 +9,15 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index a3fb24bb6dd5..3d63e3b4c24d 100644
+index 0e2e0a034064..a23214c8627b 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -2,7 +2,7 @@
  VERSION = 5
- PATCHLEVEL = 3
- SUBLEVEL = 18
+ PATCHLEVEL = 4
+ SUBLEVEL = 7
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
- NAME = Bobtail Squid
+ NAME = Kleptomaniac Octopus
  
  # *DOCUMENTATION*
diff --git a/openpower/linux/0004-powerpc-fadump-add-support-to-preserve-crash-data-on.patch b/openpower/linux/0004-powerpc-fadump-add-support-to-preserve-crash-data-on.patch
deleted file mode 100644
index 7341da8..0000000
--- a/openpower/linux/0004-powerpc-fadump-add-support-to-preserve-crash-data-on.patch
+++ /dev/null
@@ -1,291 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hari Bathini <hbathini@linux.ibm.com>
-Date: Wed, 9 Oct 2019 10:45:34 +0530
-Subject: [PATCH 4/8] powerpc/fadump: add support to preserve crash data on
- FADUMP disabled kernel
-
-Add a new kernel config option, CONFIG_PRESERVE_FA_DUMP that ensures
-that crash data, from previously crash'ed kernel, is preserved. This
-helps in cases where FADump is not enabled but the subsequent memory
-preserving kernel boot is likely to process this crash data. One
-typical usecase for this config option is petitboot kernel.
-
-As OPAL allows registering address with it in the first kernel and
-retrieving it after MPIPL, use it to store the top of boot memory.
-A kernel that intends to preserve crash data retrieves it and avoids
-using memory beyond this address.
-
-Move arch_reserved_kernel_pages() function as it is needed for both
-FA_DUMP and PRESERVE_FA_DUMP configurations.
-
-This is the backport of upstream commit bec53196adf4 ("powerpc/fadump:
-add support to preserve crash data on FADUMP disabled kernel").
-
-Also, OPAL FADump metadata definition from upstream commit 742a265accd3
-("powerpc/fadump: register kernel metadata address with opal") is
-backported here for completeness.
-
-Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- arch/powerpc/Kconfig              |   9 +++
- arch/powerpc/include/asm/fadump.h |  17 ++++-
- arch/powerpc/kernel/Makefile      |   4 +-
- arch/powerpc/kernel/fadump.c      | 123 ++++++++++++++++++++++++++++--
- arch/powerpc/kernel/prom.c        |   4 +-
- 5 files changed, 146 insertions(+), 11 deletions(-)
-
-diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index d8dcd8820369..a286c203e732 100644
---- a/arch/powerpc/Kconfig
-+++ b/arch/powerpc/Kconfig
-@@ -579,6 +579,15 @@ config FA_DUMP
- 
- 	  If unsure, say "N"
- 
-+config PRESERVE_FA_DUMP
-+	bool "Preserve Firmware-assisted dump"
-+	depends on PPC64 && PPC_POWERNV && !FA_DUMP
-+	help
-+	  On a kernel with FA_DUMP disabled, this option helps to preserve
-+	  crash data from a previously crash'ed kernel. Useful when the next
-+	  memory preserving kernel boot would process this crash data.
-+	  Petitboot kernel is the typical usecase for this option.
-+
- config IRQ_ALL_CPUS
- 	bool "Distribute interrupts on all CPUs by default"
- 	depends on SMP
-diff --git a/arch/powerpc/include/asm/fadump.h b/arch/powerpc/include/asm/fadump.h
-index 17d9b6acaf63..0401a6ffde0c 100644
---- a/arch/powerpc/include/asm/fadump.h
-+++ b/arch/powerpc/include/asm/fadump.h
-@@ -193,9 +193,6 @@ struct fad_crash_memory_ranges {
- };
- 
- extern int is_fadump_memory_area(u64 addr, ulong size);
--extern int early_init_dt_scan_fw_dump(unsigned long node,
--		const char *uname, int depth, void *data);
--extern int fadump_reserve_mem(void);
- extern int setup_fadump(void);
- extern int is_fadump_active(void);
- extern int should_fadump_crash(void);
-@@ -208,4 +205,18 @@ static inline int should_fadump_crash(void) { return 0; }
- static inline void crash_fadump(struct pt_regs *regs, const char *str) { }
- static inline void fadump_cleanup(void) { }
- #endif
-+
-+#ifdef CONFIG_PRESERVE_FA_DUMP
-+/* Firmware-assisted dump configuration details. */
-+struct fw_dump {
-+	u64	boot_mem_top;
-+	u64	dump_active;
-+};
-+#endif
-+
-+#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
-+extern int early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
-+				      int depth, void *data);
-+extern int fadump_reserve_mem(void);
-+#endif
- #endif
-diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
-index 61527f1d4d05..fdeb81a28eb7 100644
---- a/arch/powerpc/kernel/Makefile
-+++ b/arch/powerpc/kernel/Makefile
-@@ -78,7 +78,9 @@ obj-$(CONFIG_EEH)              += eeh.o eeh_pe.o eeh_dev.o eeh_cache.o \
- 				  eeh_driver.o eeh_event.o eeh_sysfs.o
- obj-$(CONFIG_GENERIC_TBSYNC)	+= smp-tbsync.o
- obj-$(CONFIG_CRASH_DUMP)	+= crash_dump.o
--obj-$(CONFIG_FA_DUMP)		+= fadump.o
-+ifneq ($(CONFIG_FA_DUMP)$(CONFIG_PRESERVE_FA_DUMP),)
-+obj-y				+= fadump.o
-+endif
- ifdef CONFIG_PPC32
- obj-$(CONFIG_E500)		+= idle_e500.o
- endif
-diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
-index 4dacce3fac72..1202dadf1d58 100644
---- a/arch/powerpc/kernel/fadump.c
-+++ b/arch/powerpc/kernel/fadump.c
-@@ -24,11 +24,13 @@
- #include <linux/slab.h>
- #include <linux/cma.h>
- #include <linux/hugetlb.h>
-+#include <linux/libfdt.h>
- 
- #include <asm/debugfs.h>
- #include <asm/page.h>
- #include <asm/prom.h>
- #include <asm/rtas.h>
-+#include <asm/opal.h>
- #include <asm/fadump.h>
- #include <asm/setup.h>
- 
-@@ -36,6 +38,7 @@ static struct fw_dump fw_dump;
- 
- static void __init fadump_reserve_crash_area(u64 base);
- 
-+#ifndef CONFIG_PRESERVE_FA_DUMP
- static struct fadump_mem_struct fdm;
- static const struct fadump_mem_struct *fdm_active;
- #ifdef CONFIG_CMA
-@@ -542,11 +545,6 @@ int __init fadump_reserve_mem(void)
- 	return 1;
- }
- 
--unsigned long __init arch_reserved_kernel_pages(void)
--{
--	return memblock_reserved_size() / PAGE_SIZE;
--}
--
- /* Look for fadump= cmdline option. */
- static int __init early_fadump_param(char *p)
- {
-@@ -1684,6 +1682,116 @@ int __init setup_fadump(void)
- 	return 1;
- }
- subsys_initcall(setup_fadump);
-+#else /* !CONFIG_PRESERVE_FA_DUMP */
-+
-+/* Maximum number of memory regions kernel supports */
-+#define OPAL_FADUMP_MAX_MEM_REGS		128
-+
-+/*
-+ * OPAL FADump kernel metadata
-+ *
-+ * The address of this structure will be registered with f/w for retrieving
-+ * and processing during crash dump.
-+ */
-+struct opal_fadump_mem_struct {
-+	u8	version;
-+	u8	reserved[3];
-+	u16	region_cnt;             /* number of regions */
-+	u16	registered_regions;     /* Regions registered for MPIPL */
-+	u64	fadumphdr_addr;
-+	struct opal_mpipl_region	rgn[OPAL_FADUMP_MAX_MEM_REGS];
-+} __packed;
-+
-+
-+/*
-+ * When dump is active but PRESERVE_FA_DUMP is enabled on the kernel,
-+ * ensure crash data is preserved in hope that the subsequent memory
-+ * preserving kernel boot is going to process this crash data.
-+ */
-+void __init opal_fadump_dt_scan(struct fw_dump *fadump_conf, u64 node)
-+{
-+	const struct opal_fadump_mem_struct *opal_fdm_active;
-+	const __be32 *prop;
-+	unsigned long dn;
-+	u64 addr = 0;
-+	s64 ret;
-+
-+	dn = of_get_flat_dt_subnode_by_name(node, "dump");
-+	if (dn == -FDT_ERR_NOTFOUND)
-+		return;
-+
-+	/*
-+	 * Check if dump has been initiated on last reboot.
-+	 */
-+	prop = of_get_flat_dt_prop(dn, "mpipl-boot", NULL);
-+	if (!prop)
-+		return;
-+
-+	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_KERNEL, &addr);
-+	if ((ret != OPAL_SUCCESS) || !addr) {
-+		pr_debug("Could not get Kernel metadata (%lld)\n", ret);
-+		return;
-+	}
-+
-+	/*
-+	 * Preserve memory only if kernel memory regions are registered
-+	 * with f/w for MPIPL.
-+	 */
-+	addr = be64_to_cpu(addr);
-+	pr_debug("Kernel metadata addr: %llx\n", addr);
-+	opal_fdm_active = (void *)addr;
-+	if (opal_fdm_active->registered_regions == 0)
-+		return;
-+
-+	ret = opal_mpipl_query_tag(OPAL_MPIPL_TAG_BOOT_MEM, &addr);
-+	if ((ret != OPAL_SUCCESS) || !addr) {
-+		pr_err("Failed to get boot memory tag (%lld)\n", ret);
-+		return;
-+	}
-+
-+	/*
-+	 * Memory below this address can be used for booting a
-+	 * capture kernel or petitboot kernel. Preserve everything
-+	 * above this address for processing crashdump.
-+	 */
-+	fadump_conf->boot_mem_top = be64_to_cpu(addr);
-+	pr_debug("Preserve everything above %llx\n", fadump_conf->boot_mem_top);
-+
-+	pr_info("Firmware-assisted dump is active.\n");
-+	fadump_conf->dump_active = 1;
-+}
-+
-+/* Scan the Firmware Assisted dump configuration details. */
-+int __init early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
-+				      int depth, void *data)
-+{
-+	if ((depth != 1) || (strcmp(uname, "ibm,opal") != 0))
-+		return 0;
-+
-+	opal_fadump_dt_scan(&fw_dump, node);
-+	return 1;
-+}
-+
-+/*
-+ * When dump is active but PRESERVE_FA_DUMP is enabled on the kernel,
-+ * preserve crash data. The subsequent memory preserving kernel boot
-+ * is likely to process this crash data.
-+ */
-+int __init fadump_reserve_mem(void)
-+{
-+	if (fw_dump.dump_active) {
-+		/*
-+		 * If last boot has crashed then reserve all the memory
-+		 * above boot memory to preserve crash data.
-+		 */
-+		pr_info("Preserving crash data for processing in next boot.\n");
-+		fadump_reserve_crash_area(fw_dump.boot_mem_top);
-+	} else
-+		pr_debug("FADump-aware kernel..\n");
-+
-+	return 1;
-+}
-+#endif /* CONFIG_PRESERVE_FA_DUMP */
- 
- /* Preserve everything above the base address */
- static void __init fadump_reserve_crash_area(u64 base)
-@@ -1708,3 +1816,8 @@ static void __init fadump_reserve_crash_area(u64 base)
- 		memblock_reserve(mstart, msize);
- 	}
- }
-+
-+unsigned long __init arch_reserved_kernel_pages(void)
-+{
-+	return memblock_reserved_size() / PAGE_SIZE;
-+}
-diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
-index 7159e791a70d..9c3861bda216 100644
---- a/arch/powerpc/kernel/prom.c
-+++ b/arch/powerpc/kernel/prom.c
-@@ -704,7 +704,7 @@ void __init early_init_devtree(void *params)
- 	of_scan_flat_dt(early_init_dt_scan_opal, NULL);
- #endif
- 
--#ifdef CONFIG_FA_DUMP
-+#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
- 	/* scan tree to see if dump is active during last boot */
- 	of_scan_flat_dt(early_init_dt_scan_fw_dump, NULL);
- #endif
-@@ -731,7 +731,7 @@ void __init early_init_devtree(void *params)
- 	if (PHYSICAL_START > MEMORY_START)
- 		memblock_reserve(MEMORY_START, 0x8000);
- 	reserve_kdump_trampoline();
--#ifdef CONFIG_FA_DUMP
-+#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
- 	/*
- 	 * If we fail to reserve memory for firmware-assisted dump then
- 	 * fallback to kexec based kdump.
diff --git a/openpower/linux/0006-scsi-lpfc-Fix-oops-when-fewer-hdwqs-than-cpus.patch b/openpower/linux/0006-scsi-lpfc-Fix-oops-when-fewer-hdwqs-than-cpus.patch
deleted file mode 100644
index 9238a0a..0000000
--- a/openpower/linux/0006-scsi-lpfc-Fix-oops-when-fewer-hdwqs-than-cpus.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: James Smart <jsmart2021@gmail.com>
-Date: Wed, 14 Aug 2019 16:56:43 -0700
-Subject: [PATCH 6/8] scsi: lpfc: Fix oops when fewer hdwqs than cpus
-
-When tearing down the adapter for a reset, online/offline, or driver
-unload, the queue free routine would hit a GPF oops.  This only occurs on
-conditions where the number of hardware queues created is fewer than the
-number of cpus in the system. In this condition cpus share a hardware
-queue. And of course, it's the 2nd cpu that shares a hardware that
-attempted to free it a second time and hit the oops.
-
-Fix by reworking the cpu to hardware queue mapping such that:
-Assignment of hardware queues to cpus occur in two passes:
-first pass: is first time assignment of a hardware queue to a cpu.
-  This will set the LPFC_CPU_FIRST_IRQ flag for the cpu.
-second pass: for cpus that did not get a hardware queue they will
-  be assigned one from a primary cpu (one set in first pass).
-
-Deletion of hardware queues is driven by cpu itteration, and queues
-will only be deleted if the LPFC_CPU_FIRST_IRQ flag is set.
-
-Also contains a few small cleanup fixes and a little better logging.
-
-Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
-Signed-off-by: James Smart <jsmart2021@gmail.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-(cherry picked from commit 3ad348d94452d6ab3aa0316105fb9f34f8ed3140)
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/lpfc/lpfc_init.c | 144 +++++++++++++++++++++-------------
- 1 file changed, 89 insertions(+), 55 deletions(-)
-
-diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
-index 1ac98becb5ba..a5b515fdda2e 100644
---- a/drivers/scsi/lpfc/lpfc_init.c
-+++ b/drivers/scsi/lpfc/lpfc_init.c
-@@ -8864,7 +8864,7 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba)
- 		}
- 		qdesc->qe_valid = 1;
- 		qdesc->hdwq = cpup->hdwq;
--		qdesc->chann = cpu; /* First CPU this EQ is affinitised to */
-+		qdesc->chann = cpu; /* First CPU this EQ is affinitized to */
- 		qdesc->last_cpu = qdesc->chann;
- 
- 		/* Save the allocated EQ in the Hardware Queue */
-@@ -10711,7 +10711,7 @@ lpfc_find_hyper(struct lpfc_hba *phba, int cpu,
- static void
- lpfc_cpu_affinity_check(struct lpfc_hba *phba, int vectors)
- {
--	int i, cpu, idx, new_cpu, start_cpu, first_cpu;
-+	int i, cpu, idx, next_idx, new_cpu, start_cpu, first_cpu;
- 	int max_phys_id, min_phys_id;
- 	int max_core_id, min_core_id;
- 	struct lpfc_vector_map_info *cpup;
-@@ -10753,8 +10753,8 @@ lpfc_cpu_affinity_check(struct lpfc_hba *phba, int vectors)
- #endif
- 
- 		lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
--				"3328 CPU physid %d coreid %d\n",
--				cpup->phys_id, cpup->core_id);
-+				"3328 CPU %d physid %d coreid %d flag x%x\n",
-+				cpu, cpup->phys_id, cpup->core_id, cpup->flag);
- 
- 		if (cpup->phys_id > max_phys_id)
- 			max_phys_id = cpup->phys_id;
-@@ -10812,17 +10812,17 @@ lpfc_cpu_affinity_check(struct lpfc_hba *phba, int vectors)
- 			cpup->eq = idx;
- 			cpup->irq = pci_irq_vector(phba->pcidev, idx);
- 
--			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
--					"3336 Set Affinity: CPU %d "
--					"irq %d eq %d\n",
--					cpu, cpup->irq, cpup->eq);
--
- 			/* If this is the first CPU thats assigned to this
- 			 * vector, set LPFC_CPU_FIRST_IRQ.
- 			 */
- 			if (!i)
- 				cpup->flag |= LPFC_CPU_FIRST_IRQ;
- 			i++;
-+
-+			lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
-+					"3336 Set Affinity: CPU %d "
-+					"irq %d eq %d flag x%x\n",
-+					cpu, cpup->irq, cpup->eq, cpup->flag);
- 		}
- 	}
- 
-@@ -10936,69 +10936,103 @@ lpfc_cpu_affinity_check(struct lpfc_hba *phba, int vectors)
- 		}
- 	}
- 
-+	/* Assign hdwq indices that are unique across all cpus in the map
-+	 * that are also FIRST_CPUs.
-+	 */
-+	idx = 0;
-+	for_each_present_cpu(cpu) {
-+		cpup = &phba->sli4_hba.cpu_map[cpu];
-+
-+		/* Only FIRST IRQs get a hdwq index assignment. */
-+		if (!(cpup->flag & LPFC_CPU_FIRST_IRQ))
-+			continue;
-+
-+		/* 1 to 1, the first LPFC_CPU_FIRST_IRQ cpus to a unique hdwq */
-+		cpup->hdwq = idx;
-+		idx++;
-+		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
-+				"3333 Set Affinity: CPU %d (phys %d core %d): "
-+				"hdwq %d eq %d irq %d flg x%x\n",
-+				cpu, cpup->phys_id, cpup->core_id,
-+				cpup->hdwq, cpup->eq, cpup->irq, cpup->flag);
-+	}
- 	/* Finally we need to associate a hdwq with each cpu_map entry
- 	 * This will be 1 to 1 - hdwq to cpu, unless there are less
- 	 * hardware queues then CPUs. For that case we will just round-robin
- 	 * the available hardware queues as they get assigned to CPUs.
-+	 * The next_idx is the idx from the FIRST_CPU loop above to account
-+	 * for irq_chann < hdwq.  The idx is used for round-robin assignments
-+	 * and needs to start at 0.
- 	 */
--	idx = 0;
-+	next_idx = idx;
- 	start_cpu = 0;
-+	idx = 0;
- 	for_each_present_cpu(cpu) {
- 		cpup = &phba->sli4_hba.cpu_map[cpu];
--		if (idx >=  phba->cfg_hdw_queue) {
--			/* We need to reuse a Hardware Queue for another CPU,
--			 * so be smart about it and pick one that has its
--			 * IRQ/EQ mapped to the same phys_id (CPU package).
--			 * and core_id.
--			 */
--			new_cpu = start_cpu;
--			for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) {
--				new_cpup = &phba->sli4_hba.cpu_map[new_cpu];
--				if ((new_cpup->hdwq != LPFC_VECTOR_MAP_EMPTY) &&
--				    (new_cpup->phys_id == cpup->phys_id) &&
--				    (new_cpup->core_id == cpup->core_id))
--					goto found_hdwq;
--				new_cpu = cpumask_next(
--					new_cpu, cpu_present_mask);
--				if (new_cpu == nr_cpumask_bits)
--					new_cpu = first_cpu;
--			}
- 
--			/* If we can't match both phys_id and core_id,
--			 * settle for just a phys_id match.
--			 */
--			new_cpu = start_cpu;
--			for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) {
--				new_cpup = &phba->sli4_hba.cpu_map[new_cpu];
--				if ((new_cpup->hdwq != LPFC_VECTOR_MAP_EMPTY) &&
--				    (new_cpup->phys_id == cpup->phys_id))
--					goto found_hdwq;
--				new_cpu = cpumask_next(
--					new_cpu, cpu_present_mask);
--				if (new_cpu == nr_cpumask_bits)
--					new_cpu = first_cpu;
-+		/* FIRST cpus are already mapped. */
-+		if (cpup->flag & LPFC_CPU_FIRST_IRQ)
-+			continue;
-+
-+		/* If the cfg_irq_chann < cfg_hdw_queue, set the hdwq
-+		 * of the unassigned cpus to the next idx so that all
-+		 * hdw queues are fully utilized.
-+		 */
-+		if (next_idx < phba->cfg_hdw_queue) {
-+			cpup->hdwq = next_idx;
-+			next_idx++;
-+			continue;
-+		}
-+
-+		/* Not a First CPU and all hdw_queues are used.  Reuse a
-+		 * Hardware Queue for another CPU, so be smart about it
-+		 * and pick one that has its IRQ/EQ mapped to the same phys_id
-+		 * (CPU package) and core_id.
-+		 */
-+		new_cpu = start_cpu;
-+		for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) {
-+			new_cpup = &phba->sli4_hba.cpu_map[new_cpu];
-+			if (new_cpup->hdwq != LPFC_VECTOR_MAP_EMPTY &&
-+			    new_cpup->phys_id == cpup->phys_id &&
-+			    new_cpup->core_id == cpup->core_id) {
-+				goto found_hdwq;
- 			}
-+			new_cpu = cpumask_next(new_cpu, cpu_present_mask);
-+			if (new_cpu == nr_cpumask_bits)
-+				new_cpu = first_cpu;
-+		}
- 
--			/* Otherwise just round robin on cfg_hdw_queue */
--			cpup->hdwq = idx % phba->cfg_hdw_queue;
--			goto logit;
--found_hdwq:
--			/* We found an available entry, copy the IRQ info */
--			start_cpu = cpumask_next(new_cpu, cpu_present_mask);
--			if (start_cpu == nr_cpumask_bits)
--				start_cpu = first_cpu;
--			cpup->hdwq = new_cpup->hdwq;
--		} else {
--			/* 1 to 1, CPU to hdwq */
--			cpup->hdwq = idx;
-+		/* If we can't match both phys_id and core_id,
-+		 * settle for just a phys_id match.
-+		 */
-+		new_cpu = start_cpu;
-+		for (i = 0; i < phba->sli4_hba.num_present_cpu; i++) {
-+			new_cpup = &phba->sli4_hba.cpu_map[new_cpu];
-+			if (new_cpup->hdwq != LPFC_VECTOR_MAP_EMPTY &&
-+			    new_cpup->phys_id == cpup->phys_id)
-+				goto found_hdwq;
-+
-+			new_cpu = cpumask_next(new_cpu, cpu_present_mask);
-+			if (new_cpu == nr_cpumask_bits)
-+				new_cpu = first_cpu;
- 		}
--logit:
-+
-+		/* Otherwise just round robin on cfg_hdw_queue */
-+		cpup->hdwq = idx % phba->cfg_hdw_queue;
-+		idx++;
-+		goto logit;
-+ found_hdwq:
-+		/* We found an available entry, copy the IRQ info */
-+		start_cpu = cpumask_next(new_cpu, cpu_present_mask);
-+		if (start_cpu == nr_cpumask_bits)
-+			start_cpu = first_cpu;
-+		cpup->hdwq = new_cpup->hdwq;
-+ logit:
- 		lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
- 				"3335 Set Affinity: CPU %d (phys %d core %d): "
- 				"hdwq %d eq %d irq %d flg x%x\n",
- 				cpu, cpup->phys_id, cpup->core_id,
- 				cpup->hdwq, cpup->eq, cpup->irq, cpup->flag);
--		idx++;
- 	}
- 
- 	/* The cpu_map array will be used later during initialization
diff --git a/openpower/linux/0007-scsi-lpfc-Limit-xri-count-for-kdump-environment.patch b/openpower/linux/0007-scsi-lpfc-Limit-xri-count-for-kdump-environment.patch
deleted file mode 100644
index 71ae797..0000000
--- a/openpower/linux/0007-scsi-lpfc-Limit-xri-count-for-kdump-environment.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: James Smart <jsmart2021@gmail.com>
-Date: Wed, 14 Aug 2019 16:56:31 -0700
-Subject: [PATCH 7/8] scsi: lpfc: Limit xri count for kdump environment
-
-scsi-mq operation inherently performs pre-allocation of resources for
-blk-mq request queues. Even though the kdump environment reduces the
-configuration to a single CPU, thus 1 hardware queue, which helps
-significantly, the resources are still rather large due to the per request
-allocations. blk-mq pre-allocations can be over 4KB per request.  With
-adapter can_queue values in the 4k or 8k range, this can easily be 32MBs
-before any other driver memory is factored in.  Driver SGL DMA buffer
-allocation can be up to 8KB per request as well adding an additional
-64MB. Totals are well over 100MB for a single shost.  Given kdump memory
-auto-sizing utilities don't accommodate this amount of memory well, it's
-very possible for kdump to fail due to lack of memory.
-
-Fix by having the driver recognize that it is booting within a kdump
-context and reduce the number of requests it will support to a more
-reasonable value.
-
-Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
-Signed-off-by: James Smart <jsmart2021@gmail.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-(cherry picked from commit 31f06d2e73726160645f8d9976a0b3f42e136da7)
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/scsi/lpfc/lpfc_init.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
-index a5b515fdda2e..7edbba7debc2 100644
---- a/drivers/scsi/lpfc/lpfc_init.c
-+++ b/drivers/scsi/lpfc/lpfc_init.c
-@@ -39,6 +39,7 @@
- #include <linux/msi.h>
- #include <linux/irq.h>
- #include <linux/bitops.h>
-+#include <linux/crash_dump.h>
- 
- #include <scsi/scsi.h>
- #include <scsi/scsi_device.h>
-@@ -8309,6 +8310,10 @@ lpfc_sli4_read_config(struct lpfc_hba *phba)
- 			bf_get(lpfc_mbx_rd_conf_extnts_inuse, rd_config);
- 		phba->sli4_hba.max_cfg_param.max_xri =
- 			bf_get(lpfc_mbx_rd_conf_xri_count, rd_config);
-+		/* Reduce resource usage in kdump environment */
-+		if (is_kdump_kernel() &&
-+		    phba->sli4_hba.max_cfg_param.max_xri > 512)
-+			phba->sli4_hba.max_cfg_param.max_xri = 512;
- 		phba->sli4_hba.max_cfg_param.xri_base =
- 			bf_get(lpfc_mbx_rd_conf_xri_base, rd_config);
- 		phba->sli4_hba.max_cfg_param.max_vpi =
