diff --git a/README.md b/README.md
index 8b54b9c..8e8d880 100644
--- a/README.md
+++ b/README.md
@@ -66,9 +66,9 @@
 2. Install the packages necessary for the build:
 
         sudo dnf install gcc-c++ flex bison git ctags cscope expat-devel patch \
-          zlib-devel zlib-static texinfo perl-bignum "perl(XML::Simple)" \
+          zlib-devel zlib-static texinfo "perl(bigint)" "perl(XML::Simple)" \
           "perl(YAML)" "perl(XML::SAX)" "perl(Fatal)" "perl(Thread::Queue)" \
           "perl(Env)" "perl(XML::LibXML)" "perl(Digest::SHA1)" "perl(ExtUtils::MakeMaker)" \
           libxml2-devel which wget unzip tar cpio python bzip2 bc findutils ncurses-devel \
-          openssl-devel make libxslt vim-common
+          openssl-devel make libxslt vim-common lzo-devel python2
 
diff --git a/buildroot b/buildroot
index d2eb9d6..17f1172 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit d2eb9d62c1f1651c49369fe566c8f989134f9c09
+Subproject commit 17f117295f545db5207c0a6ffd515035af0c4f49
diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index c4434f8..532ca03 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 ff6a7f8..937c940 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 16371b0..f9167e6 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 a4d77df..4ee72b3 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 5b433bd..9b88767 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 4a7c439..6460dcd 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index 554158a..d0cda0e 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -23,12 +23,15 @@
 # CONFIG_AIO is not set
 CONFIG_PERF_EVENTS=y
 # CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB_MERGE_DEFAULT is not set
+CONFIG_SLAB_FREELIST_RANDOM=y
 CONFIG_SLAB_FREELIST_HARDENED=y
 CONFIG_PPC64=y
 CONFIG_ALTIVEC=y
 CONFIG_VSX=y
 CONFIG_NR_CPUS=2048
 CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_PANIC_TIMEOUT=30
 # CONFIG_PPC_VAS is not set
 # CONFIG_PPC_PSERIES is not set
 # CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
@@ -36,6 +39,7 @@
 CONFIG_CPU_IDLE=y
 CONFIG_HZ_100=y
 CONFIG_KEXEC=y
+CONFIG_KEXEC_FILE=y
 CONFIG_PRESERVE_FA_DUMP=y
 CONFIG_IRQ_ALL_CPUS=y
 CONFIG_NUMA=y
@@ -49,7 +53,6 @@
 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
@@ -64,12 +67,8 @@
 CONFIG_IP_MULTICAST=y
 CONFIG_NET_IPIP=y
 CONFIG_SYN_COOKIES=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
 CONFIG_DNS_RESOLVER=y
 # CONFIG_WIRELESS is not set
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_MTD=m
@@ -150,7 +149,6 @@
 # CONFIG_NET_VENDOR_DLINK is not set
 CONFIG_BE2NET=m
 # CONFIG_NET_VENDOR_EZCHIP is not set
-# CONFIG_NET_VENDOR_HP is not set
 # CONFIG_NET_VENDOR_HUAWEI is not set
 CONFIG_E1000=m
 CONFIG_E1000E=m
@@ -174,7 +172,6 @@
 # CONFIG_NET_VENDOR_NVIDIA is not set
 # CONFIG_NET_VENDOR_OKI is not set
 # CONFIG_NET_VENDOR_PACKET_ENGINES is not set
-CONFIG_QLGE=m
 CONFIG_NETXEN_NIC=m
 CONFIG_QED=m
 CONFIG_QEDE=m
@@ -214,6 +211,7 @@
 CONFIG_HW_RANDOM=y
 CONFIG_TCG_TPM=y
 CONFIG_TCG_TIS_I2C_NUVOTON=y
+# CONFIG_DEVPORT is not set
 CONFIG_I2C=y
 # CONFIG_I2C_COMPAT is not set
 CONFIG_I2C_CHARDEV=y
@@ -240,7 +238,6 @@
 CONFIG_HID_EZKEY=y
 CONFIG_HID_ITE=y
 CONFIG_HID_KENSINGTON=y
-CONFIG_HID_LOGITECH=y
 CONFIG_HID_MICROSOFT=y
 CONFIG_HID_MONTEREY=y
 CONFIG_USB_HIDDEV=y
@@ -278,10 +275,15 @@
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
 CONFIG_ENCRYPTED_KEYS=y
-# CONFIG_CRYPTO_ECHAINIV is not set
-CONFIG_CRYPTO_XTS=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
+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_INTEGRITY is not set
+CONFIG_LSM="yama,loadpin,safesetid,integrity"
 # CONFIG_CRYPTO_HW is not set
 CONFIG_CRC16=y
 CONFIG_CRC_ITU_T=y
@@ -293,13 +295,20 @@
 # CONFIG_XZ_DEC_SPARC is not set
 CONFIG_PRINTK_TIME=y
 CONFIG_MAGIC_SYSRQ=y
+CONFIG_SLUB_DEBUG_ON=y
 CONFIG_DEBUG_STACKOVERFLOW=y
 CONFIG_SOFTLOCKUP_DETECTOR=y
 CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
 CONFIG_HARDLOCKUP_DETECTOR=y
 CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y
 CONFIG_WQ_WATCHDOG=y
+CONFIG_PANIC_ON_OOPS=y
 # CONFIG_SCHED_DEBUG is not set
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_DEBUG_SG=y
+CONFIG_DEBUG_NOTIFIERS=y
+CONFIG_DEBUG_CREDENTIALS=y
 # CONFIG_FTRACE is not set
 # CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_BUG_ON_DATA_CORRUPTION=y
 CONFIG_XMON=y
diff --git a/openpower/configs/mihawk_defconfig b/openpower/configs/mihawk_defconfig
index 333e131..b4f2c4a 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 1c326a6..de9f857 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 31b41f3..8c8fdf2 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 fc4b51e..e23c8bc 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 4b1eaad..414efc4 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 8a29cd3..e6cd6bd 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 2b865b8..6773777 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 dc14941..255147e 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 faaedee..4443420 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 ce01345..12ddf5c 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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"
@@ -48,7 +48,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="witherspoon.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="witherspoon-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="c622cb5a5dd3ebc2a4eef558d1b70740f914e6f7"
+BR2_OPENPOWER_MACHINE_XML_VERSION="0f9b3666becbd5a94d31ff39a2f2a81260c961ed"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="witherspoon.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="WITHERSPOON_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="WITHERSPOON_hb.mrw.xml"
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index b923613..a2fc116 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 13dd574..5b3c921 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.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.16"
 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 a911fe6..e2dda15 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/3] 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.
@@ -10,18 +10,20 @@
 Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
- drivers/usb/host/xhci.c | 1 +
- 1 file changed, 1 insertion(+)
+ drivers/usb/host/xhci.c | 3 +++
+ 1 file changed, 3 insertions(+)
 
 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index ee9d2e0fc53a..e2ced6c34620 100644
+index 9b3b1b16eafb..2a3aa1509d40 100644
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -793,6 +793,7 @@ static void xhci_shutdown(struct usb_hcd *hcd)
- 	/* Yet another workaround for spurious wakeups at shutdown with HSW */
- 	if (xhci->quirks & XHCI_SPURIOUS_WAKEUP)
- 		pci_set_power_state(to_pci_dev(hcd->self.sysdev), PCI_D3hot);
+@@ -789,6 +789,9 @@ void xhci_shutdown(struct usb_hcd *hcd)
+ 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
+ 			"xhci_shutdown completed - status = %x",
+ 			readl(&xhci->op_regs->status));
++
++	/* TI XHCI controllers do not come back after kexec without this hack */
 +	pci_reset_function_locked(to_pci_dev(hcd->self.sysdev));
  }
+ EXPORT_SYMBOL_GPL(xhci_shutdown);
  
- #ifdef CONFIG_PM
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..3f92079 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/3] 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/0008-Release-OpenPower-kernel.patch b/openpower/linux/0003-Release-OpenPower-kernel.patch
similarity index 74%
rename from openpower/linux/0008-Release-OpenPower-kernel.patch
rename to openpower/linux/0003-Release-OpenPower-kernel.patch
index 1a1240f..b9504bb 100644
--- a/openpower/linux/0008-Release-OpenPower-kernel.patch
+++ b/openpower/linux/0003-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 3/3] 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 7a3e659c79ae..6f9b6f4b3b5c 100644
+index e16d2e58ed4b..cabff177cbb4 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -2,7 +2,7 @@
  VERSION = 5
- PATCHLEVEL = 3
- SUBLEVEL = 7
+ PATCHLEVEL = 4
+ SUBLEVEL = 16
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
- NAME = Bobtail Squid
+ NAME = Kleptomaniac Octopus
  
  # *DOCUMENTATION*
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/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 5a92339..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 56dfa7a2a6f2..ce70e7776cfd 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 =
diff --git a/openpower/package/hcode/Config.in b/openpower/package/hcode/Config.in
index 2e15d99..434bc99 100644
--- a/openpower/package/hcode/Config.in
+++ b/openpower/package/hcode/Config.in
@@ -31,7 +31,7 @@
 
 config BR2_HCODE_VERSION
 	string
-	default "hw121219a.opmst" if BR2_HCODE_LATEST_VERSION
+	default "hw021320a.opmst" if BR2_HCODE_LATEST_VERSION
 	default BR2_HCODE_CUSTOM_VERSION_VALUE \
 		if BR2_HCODE_CUSTOM_VERSION
 
diff --git a/openpower/package/hostboot-binaries/Config.in b/openpower/package/hostboot-binaries/Config.in
index 861dc3e..2866153 100644
--- a/openpower/package/hostboot-binaries/Config.in
+++ b/openpower/package/hostboot-binaries/Config.in
@@ -24,7 +24,7 @@
 
 config BR2_HOSTBOOT_BINARIES_VERSION
 	string
-	default "hw080119a.940" if BR2_HOSTBOOT_BINARIES_LATEST_VERSION
+	default "hw013120a.opmst" if BR2_HOSTBOOT_BINARIES_LATEST_VERSION
 	default BR2_HOSTBOOT_BINARIES_CUSTOM_VERSION_VALUE \
 		if BR2_HOSTBOOT_BINARIES_CUSTOM_VERSION
 
diff --git a/openpower/package/hostboot/Config.in b/openpower/package/hostboot/Config.in
index 902d415..3ec891c 100644
--- a/openpower/package/hostboot/Config.in
+++ b/openpower/package/hostboot/Config.in
@@ -25,7 +25,7 @@
 
 config BR2_HOSTBOOT_VERSION
 	string
-	default "70ef787002a78ebbe6430a5f3355d42a8b1790b9" if BR2_HOSTBOOT_LATEST_VERSION
+	default "46174931e05562140af4ef53b5074420cf142332" if BR2_HOSTBOOT_LATEST_VERSION
 	default BR2_HOSTBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_HOSTBOOT_CUSTOM_VERSION
 
diff --git a/openpower/package/ima-catalog/ima-catalog.mk b/openpower/package/ima-catalog/ima-catalog.mk
index 19d2d6e..f357960 100644
--- a/openpower/package/ima-catalog/ima-catalog.mk
+++ b/openpower/package/ima-catalog/ima-catalog.mk
@@ -3,7 +3,7 @@
 # ima-catalog.mk
 #
 ################################################################################
-IMA_CATALOG_VERSION ?= 3d30c7aca6c8ef066f92384271827ad5b66392bf 
+IMA_CATALOG_VERSION ?= 89e00ee3ef424b5ff49f4d89d609004ae863bf26 
 IMA_CATALOG_SITE ?= $(call github,open-power,ima-catalog,$(IMA_CATALOG_VERSION))
 IMA_CATALOG_LICENSE = Apache-2.0
 IMA_CATALOG_DEPENDENCIES = host-dtc host-xz
diff --git a/openpower/package/libflash/libflash.mk b/openpower/package/libflash/libflash.mk
index c1fe08f..723c90b 100644
--- a/openpower/package/libflash/libflash.mk
+++ b/openpower/package/libflash/libflash.mk
@@ -4,16 +4,18 @@
 #
 ################################################################################
 
+LIBFLASH_VERSION = $(call qstrip,$(BR2_SKIBOOT_VERSION))
+
 ifeq ($(BR2_SKIBOOT_CUSTOM_GIT),y)
 LIBFLASH_SITE = $(call qstrip,$(BR2_SKIBOOT_CUSTOM_REPO_URL))
 LIBFLASH_SITE_METHOD = git
 else
-LIBFLASH_VERSION = $(call qstrip,$(BR2_SKIBOOT_VERSION))
 LIBFLASH_SITE = $(call github,open-power,skiboot,$(LIBFLASH_VERSION))
 endif
 
 LIBFLASH_INSTALL_STAGING = YES
 LIBFLASH_INSTALL_TARGET = YES
+LIBFLASH_DEPENDENCIES += skiboot
 
 LIBFLASH_LICENSE_FILES = LICENCE
 
diff --git a/openpower/package/ocmb-explorer-fw/Config.in b/openpower/package/ocmb-explorer-fw/Config.in
index 0acf63b..f84251f 100644
--- a/openpower/package/ocmb-explorer-fw/Config.in
+++ b/openpower/package/ocmb-explorer-fw/Config.in
@@ -24,7 +24,7 @@
 
 config BR2_OCMB_EXPLORER_FW_VERSION
 	string
-	default "v2.0" if BR2_OCMB_EXPLORER_FW_LATEST_VERSION
+	default "v3.0" if BR2_OCMB_EXPLORER_FW_LATEST_VERSION
 	default BR2_OCMB_EXPLORER_FW_CUSTOM_VERSION_VALUE \
 		if BR2_OCMB_EXPLORER_FW_CUSTOM_VERSION
 
diff --git a/openpower/package/openpower-pnor-util/openpower-pnor-util.mk b/openpower/package/openpower-pnor-util/openpower-pnor-util.mk
index 4681962..1bfa73f 100644
--- a/openpower/package/openpower-pnor-util/openpower-pnor-util.mk
+++ b/openpower/package/openpower-pnor-util/openpower-pnor-util.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOST_OPENPOWER_PNOR_UTIL_VERSION ?= d23b5b74cfadea0618e5984e8d3565d2696d26b8
+HOST_OPENPOWER_PNOR_UTIL_VERSION ?= 647d6134d448178e6b32892322596a5cc3d78b2d
 HOST_OPENPOWER_PNOR_UTIL_SITE ?= $(call github,openbmc,openpower-pnor-code-mgmt,$(HOST_OPENPOWER_PNOR_UTIL_VERSION))
 HOST_OPENPOWER_PNOR_UTIL_DEPENDENCIES = host-squashfs host-libflash
 
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index c4f02b2..29d3f01 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OPENPOWER_PNOR_VERSION ?= 7674cbe461c6ed6d324644b88954fce1946a70d7
+OPENPOWER_PNOR_VERSION ?= 6fb8d914134d544a8466c739370947e32d5a4469
 OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
 
 OPENPOWER_PNOR_LICENSE = Apache-2.0
@@ -174,10 +174,10 @@
         # If this is a VPNOR system, run the generate-tar command and
         # create a tarball
         if [ "$(BR2_BUILD_PNOR_SQUASHFS)" == "y" ]; then \
-            PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i squashfs -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) -s; \
+            PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i squashfs -m $(BR2_OPENPOWER_CONFIG_NAME) -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) -s; \
             $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).squashfs.tar $(BINARIES_DIR); \
         else \
-            PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i static -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).static.tar.gz $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) -s; \
+            PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i static -m $(BR2_OPENPOWER_CONFIG_NAME) -f $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).static.tar.gz $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) -s; \
             $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME).static.tar.gz $(BINARIES_DIR); \
         fi
 
diff --git a/openpower/package/petitboot/petitboot.hash b/openpower/package/petitboot/petitboot.hash
index 610c3de..015e87b 100644
--- a/openpower/package/petitboot/petitboot.hash
+++ b/openpower/package/petitboot/petitboot.hash
@@ -1 +1 @@
-sha256 b680747297e17ea1e730d5eacfe09f53f9b1e02d89dfea2fd5766c4b07415cdb  petitboot-v1.11.tar.gz
+sha256 121cab15b1eaaccbe9e054ee1af79d379dc4576379c2c09eb69ccad3ffd7bc5d  petitboot-v1.12.tar.gz
diff --git a/openpower/package/petitboot/petitboot.mk b/openpower/package/petitboot/petitboot.mk
index e001517..d4e95a8 100644
--- a/openpower/package/petitboot/petitboot.mk
+++ b/openpower/package/petitboot/petitboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PETITBOOT_VERSION = v1.11
+PETITBOOT_VERSION = v1.12
 PETITBOOT_SOURCE = petitboot-$(PETITBOOT_VERSION).tar.gz
 PETITBOOT_SITE ?= https://github.com/open-power/petitboot/releases/download/$(PETITBOOT_VERSION)
 PETITBOOT_DEPENDENCIES = ncurses udev host-bison host-flex lvm2
diff --git a/openpower/package/sbe/Config.in b/openpower/package/sbe/Config.in
index 4f3facb..fe2bc97 100644
--- a/openpower/package/sbe/Config.in
+++ b/openpower/package/sbe/Config.in
@@ -26,7 +26,7 @@
 
 config BR2_SBE_VERSION
 	string
-	default "230eeb0ee6f7283b1b961f1ff9534027df118ce6" if BR2_SBE_LATEST_VERSION
+	default "512f92467c65876005f92ebe1d3f2abe078db265" if BR2_SBE_LATEST_VERSION
 	default BR2_SBE_CUSTOM_VERSION_VALUE \
 		if BR2_SBE_CUSTOM_VERSION
 
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 4ee5c35..93d3a43 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -31,7 +31,7 @@
 
 config BR2_SKIBOOT_VERSION
 	string
-	default "v6.5-145-g80fd2e96" if BR2_SKIBOOT_LATEST_VERSION
+	default "v6.5-219-g53944d45" if BR2_SKIBOOT_LATEST_VERSION
 	default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_SKIBOOT_CUSTOM_VERSION
 
