diff --git a/buildroot b/buildroot
index d2eb9d6..fe30e21 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit d2eb9d62c1f1651c49369fe566c8f989134f9c09
+Subproject commit fe30e2102946766db28f4c9aec049ca224a0becc
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 =
