Merge 'master-next' into 'master' for v1.9.
diff --git a/buildroot b/buildroot
index dcb6dc3..bc248fa 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit dcb6dc3dfc9e2c31d1cff197be18ddde40404b06
+Subproject commit bc248fac945aa9c81052386d1f02e837e53fdaff
diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index d3eda3a..1a45b18 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -30,11 +30,11 @@
 BR2_OPENPOWER_PNOR_FILENAME="barreleye.pnor"
 BR2_OPENPOWER_PNOR_UPDATE_FILENAME="barreleye_update.pnor"
 
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
 # skiboot requirements
-BR2_TARGET_SKIBOOT=y
-BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.2.0"
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
 
 # petitboot requirements
 BR2_ENABLE_LOCALE_PURGE=y
@@ -46,9 +46,8 @@
 BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
+BR2_LINUX_KERNEL_LATEST_VERSION=y
 BR2_KERNEL_HEADERS_4_4=y
-BR2_DEFAULT_KERNEL_HEADERS="4.4.5"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
@@ -65,8 +64,10 @@
 BR2_PACKAGE_NETCAT=y
 BR2_PACKAGE_RSYNC=y
 BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_PACKAGE_IPMITOOL=y
 BR2_PACKAGE_POWERPC_UTILS=y
 BR2_PACKAGE_MDADM=y
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_PACKAGE_LOADKEYS=y
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 2ba04a9..5eb16b1 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -30,9 +30,11 @@
 BR2_OPENPOWER_PNOR_FILENAME="firestone.pnor"
 BR2_OPENPOWER_PNOR_UPDATE_FILENAME="firestone_update.pnor"
 
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
 # skiboot requirements
-BR2_TARGET_SKIBOOT=y
-BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
 
 # petitboot requirements
 BR2_ENABLE_LOCALE_PURGE=y
@@ -44,9 +46,8 @@
 BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
+BR2_LINUX_KERNEL_LATEST_VERSION=y
 BR2_KERNEL_HEADERS_4_4=y
-BR2_DEFAULT_KERNEL_HEADERS="4.4.5"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
@@ -63,8 +64,10 @@
 BR2_PACKAGE_NETCAT=y
 BR2_PACKAGE_RSYNC=y
 BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_PACKAGE_IPMITOOL=y
 BR2_PACKAGE_POWERPC_UTILS=y
 BR2_PACKAGE_MDADM=y
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_PACKAGE_LOADKEYS=y
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index 4b2010a..0239831 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -30,11 +30,11 @@
 BR2_OPENPOWER_PNOR_FILENAME="garrison.pnor"
 BR2_OPENPOWER_PNOR_UPDATE_FILENAME="garrison_update.pnor"
 
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
 # skiboot requirements
-BR2_TARGET_SKIBOOT=y
-BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.2.0"
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
 
 # petitboot requirements
 BR2_ENABLE_LOCALE_PURGE=y
@@ -46,9 +46,8 @@
 BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
+BR2_LINUX_KERNEL_LATEST_VERSION=y
 BR2_KERNEL_HEADERS_4_4=y
-BR2_DEFAULT_KERNEL_HEADERS="4.4.5"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
@@ -65,8 +64,10 @@
 BR2_PACKAGE_NETCAT=y
 BR2_PACKAGE_RSYNC=y
 BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_PACKAGE_IPMITOOL=y
 BR2_PACKAGE_POWERPC_UTILS=y
 BR2_PACKAGE_MDADM=y
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_PACKAGE_LOADKEYS=y
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index a936321..ffa0967 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -30,9 +30,11 @@
 BR2_OPENPOWER_PNOR_FILENAME="habanero.pnor"
 BR2_OPENPOWER_PNOR_UPDATE_FILENAME="habanero_update.pnor"
 
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
 # skiboot requirements
-BR2_TARGET_SKIBOOT=y
-BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
 
 # petitboot requirements
 BR2_ENABLE_LOCALE_PURGE=y
@@ -44,9 +46,8 @@
 BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
+BR2_LINUX_KERNEL_LATEST_VERSION=y
 BR2_KERNEL_HEADERS_4_4=y
-BR2_DEFAULT_KERNEL_HEADERS="4.4.5"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
@@ -63,8 +64,10 @@
 BR2_PACKAGE_NETCAT=y
 BR2_PACKAGE_RSYNC=y
 BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_PACKAGE_IPMITOOL=y
 BR2_PACKAGE_POWERPC_UTILS=y
 BR2_PACKAGE_MDADM=y
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_PACKAGE_LOADKEYS=y
diff --git a/openpower/configs/hostboot/garrison.config b/openpower/configs/hostboot/garrison.config
index 72fabe2..e8218cf 100755
--- a/openpower/configs/hostboot/garrison.config
+++ b/openpower/configs/hostboot/garrison.config
@@ -55,9 +55,7 @@
 
 # Enable Checktop Analysis
 set ENABLE_CHECKSTOP_ANALYSIS
-# Turn off IPLTIME_CHECKSTOP_ANALYSIS for now until memory issue can be solved.
-# Seems to only be an issue for lager ddr4 configs.
-#set IPLTIME_CHECKSTOP_ANALYSIS
+set IPLTIME_CHECKSTOP_ANALYSIS
 
 # Hostboot will detect hardware changes
 set HOST_HCDB_SUPPORT
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index bdc692a..b76ecb8 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -1,4 +1,5 @@
 CONFIG_PPC64=y
+CONFIG_POWER8_CPU=y
 CONFIG_ALTIVEC=y
 CONFIG_VSX=y
 CONFIG_SMP=y
@@ -20,14 +21,12 @@
 CONFIG_LOG_BUF_SHIFT=20
 CONFIG_RELAY=y
 CONFIG_BLK_DEV_INITRD=y
-CONFIG_BLK_DEV_NVME=y
 # CONFIG_RD_GZIP is not set
 # CONFIG_RD_BZIP2 is not set
 # CONFIG_RD_LZMA is not set
 # CONFIG_RD_LZO is not set
 # CONFIG_RD_LZ4 is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_KALLSYMS_ALL=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_COMPAT_BRK is not set
 CONFIG_JUMP_LABEL=y
@@ -45,7 +44,10 @@
 # CONFIG_BOUNCE is not set
 CONFIG_PPC_64K_PAGES=y
 CONFIG_SCHED_SMT=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=tty0 console=hvc0"
 # CONFIG_SECCOMP is not set
+CONFIG_PCI_MSI=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -57,85 +59,90 @@
 # CONFIG_INET_XFRM_MODE_TUNNEL is not set
 # CONFIG_INET_XFRM_MODE_BEET is not set
 # CONFIG_IPV6 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
+CONFIG_MTD_POWERNV_FLASH=m
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=65536
-CONFIG_ATA_OVER_ETH=y
-CONFIG_VIRTIO_BLK=y
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_BLK_DEV_NVME=m
 CONFIG_EEPROM_AT24=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=y
-CONFIG_BLK_DEV_SR=y
+# CONFIG_CXL is not set
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_BLK_DEV_SR=m
 CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SG=m
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_SCSI_FC_ATTRS=y
-CONFIG_SCSI_CXGB3_ISCSI=y
-CONFIG_SCSI_CXGB4_ISCSI=y
-CONFIG_SCSI_BNX2_ISCSI=y
-CONFIG_BE2ISCSI=y
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
 CONFIG_SCSI_AACRAID=y
 CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=y
-CONFIG_MEGARAID_MAILBOX=y
-CONFIG_MEGARAID_SAS=y
-CONFIG_SCSI_MPT2SAS=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
 CONFIG_SCSI_SYM53C8XX_2=y
 CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
-CONFIG_SCSI_IPR=y
+CONFIG_SCSI_IPR=m
 # CONFIG_SCSI_IPR_TRACE is not set
 # CONFIG_SCSI_IPR_DUMP is not set
-CONFIG_SCSI_QLA_FC=y
-CONFIG_SCSI_QLA_ISCSI=y
-CONFIG_SCSI_LPFC=y
-CONFIG_SCSI_VIRTIO=y
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_VIRTIO=m
 CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_ALUA=y
+CONFIG_SCSI_DH_ALUA=m
 CONFIG_ATA=y
 CONFIG_SATA_AHCI=y
 # CONFIG_ATA_SFF is not set
 CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_LINEAR=y
-CONFIG_MD_RAID0=y
-CONFIG_MD_RAID1=y
-CONFIG_MD_RAID10=y
-CONFIG_MD_RAID456=y
-CONFIG_MD_MULTIPATH=y
-CONFIG_MD_FAULTY=y
-CONFIG_BLK_DEV_DM=y
-CONFIG_DM_CRYPT=y
-CONFIG_DM_SNAPSHOT=y
-CONFIG_DM_MIRROR=y
-CONFIG_DM_ZERO=y
-CONFIG_DM_MULTIPATH=y
-CONFIG_NETCONSOLE=y
-CONFIG_TUN=y
-CONFIG_VIRTIO_NET=y
-CONFIG_VORTEX=y
-CONFIG_ACENIC=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_NETCONSOLE=m
+CONFIG_TUN=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VORTEX=m
+CONFIG_ACENIC=m
 CONFIG_ACENIC_OMIT_TIGON_I=y
-CONFIG_PCNET32=y
+CONFIG_PCNET32=m
 CONFIG_TIGON3=y
-CONFIG_BNX2X=y
+CONFIG_BNX2X=m
 CONFIG_CHELSIO_T1=y
-CONFIG_BE2NET=y
-CONFIG_S2IO=y
-CONFIG_E100=y
-CONFIG_E1000=y
-CONFIG_E1000E=y
-CONFIG_IXGB=y
-CONFIG_IXGBE=y
-CONFIG_MLX4_EN=y
-CONFIG_MYRI10GE=y
-CONFIG_QLGE=y
-CONFIG_NETXEN_NIC=y
-CONFIG_SFC=y
+CONFIG_BE2NET=m
+CONFIG_S2IO=m
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_MLX4_EN=m
+CONFIG_MYRI10GE=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_SFC=m
 # CONFIG_WLAN is not set
 # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
 CONFIG_INPUT_EVDEV=y
@@ -178,31 +185,34 @@
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO_PCI=y
 # CONFIG_IOMMU_SUPPORT is not set
-CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS=m
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
-CONFIG_XFS_FS=y
+CONFIG_XFS_FS=m
 CONFIG_XFS_POSIX_ACL=y
-CONFIG_BTRFS_FS=y
+CONFIG_BTRFS_FS=m
 CONFIG_BTRFS_FS_POSIX_ACL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_ISO9660_FS=y
-CONFIG_UDF_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_ISO9660_FS=m
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
 CONFIG_PROC_KCORE=y
 CONFIG_TMPFS=y
 CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_NFS_FS=y
+CONFIG_NFS_FS=m
 CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_CIFS=y
+CONFIG_NFS_V4=m
+CONFIG_CIFS=m
 # CONFIG_CIFS_DEBUG is not set
 CONFIG_NLS_DEFAULT="utf8"
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
+CONFIG_CRC16=y
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
 CONFIG_PRINTK_TIME=y
 CONFIG_DEBUG_FS=y
 CONFIG_MAGIC_SYSRQ=y
@@ -214,7 +224,12 @@
 CONFIG_XMON=y
 CONFIG_XMON_DEFAULT=y
 # CONFIG_CRYPTO_ECHAINIV is not set
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_CMAC=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MD4=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_DES=y
 # CONFIG_CRYPTO_HW is not set
-CONFIG_MTD=y
-CONFIG_MTD_POWERNV_FLASH=y
-CONFIG_PCI_MSI=y
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index 8a803d0..c7ba28e 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -18,9 +18,11 @@
 # we don't need a PNOR layout for Mambo
 BR2_PACKAGE_OPENPOWER_PNOR=n
 
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
 # skiboot will be built but we don't need embedded payload
-BR2_TARGET_SKIBOOT=y
-BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
 
 # petitboot requirements
 BR2_ENABLE_LOCALE_PURGE=y
@@ -32,9 +34,8 @@
 BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
+BR2_LINUX_KERNEL_LATEST_VERSION=y
 BR2_KERNEL_HEADERS_4_4=y
-BR2_DEFAULT_KERNEL_HEADERS="4.4.5"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 67dcc1e..6b7a269 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -29,9 +29,11 @@
 BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutSingleSide.xml"
 BR2_OPENPOWER_PNOR_FILENAME="palmetto.pnor"
 
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
 # skiboot requirements
-BR2_TARGET_SKIBOOT=y
-BR2_TARGET_SKIBOOT_EMBED_PAYLOAD=n
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
 
 # petitboot requirements
 BR2_ENABLE_LOCALE_PURGE=y
@@ -43,9 +45,8 @@
 BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
 BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_SAME_AS_HEADERS=y
+BR2_LINUX_KERNEL_LATEST_VERSION=y
 BR2_KERNEL_HEADERS_4_4=y
-BR2_DEFAULT_KERNEL_HEADERS="4.4.5"
 BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL)/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
@@ -62,9 +63,10 @@
 BR2_PACKAGE_NETCAT=y
 BR2_PACKAGE_RSYNC=y
 BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_PACKAGE_IPMITOOL=y
 BR2_PACKAGE_POWERPC_UTILS=y
 BR2_PACKAGE_MDADM=y
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_TARGET_ROOTFS_INITRAMFS=y
-
+BR2_PACKAGE_LOADKEYS=y
diff --git a/openpower/linux/linux-0001-xhci-Cleanup-only-when-releasing-primary-hcd.patch b/openpower/linux/linux-0001-xhci-Cleanup-only-when-releasing-primary-hcd.patch
new file mode 100644
index 0000000..5cbb9a2
--- /dev/null
+++ b/openpower/linux/linux-0001-xhci-Cleanup-only-when-releasing-primary-hcd.patch
@@ -0,0 +1,130 @@
+From 296911584cc5dda6763857110862f5267b7f47ee Mon Sep 17 00:00:00 2001
+From: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
+Date: Thu, 5 May 2016 13:24:02 +0930
+Subject: [PATCH 1/5] xhci: Cleanup only when releasing primary hcd
+
+Under stress occasions some TI devices might not return early when
+reading the status register during the quirk invocation of xhci_irq made
+by usb_hcd_pci_remove.  This means that instead of returning, we end up
+handling this interruption in the middle of a shutdown.  Since
+xhci->event_ring has already been freed in xhci_mem_cleanup, we end up
+accessing freed memory, causing the Oops below.
+
+commit 8c24d6d7b09d ("usb: xhci: stop everything on the first call to
+xhci_stop") is the one that changed the instant in which we clean up the
+event queue when stopping a device.  Before, we didn't call
+xhci_mem_cleanup at the first time xhci_stop is executed (for the shared
+HCD), instead, we only did it after the invocation for the primary HCD,
+much later at the removal path.  The code flow for this oops looks like
+this:
+
+xhci_pci_remove()
+	usb_remove_hcd(xhci->shared)
+	        xhci_stop(xhci->shared)
+ 			xhci_halt()
+			xhci_mem_cleanup(xhci);  // Free the event_queue
+	usb_hcd_pci_remove(primary)
+		xhci_irq()  // Access the event_queue if STS_EINT is set. Crash.
+		xhci_stop()
+			xhci_halt()
+			// return early
+
+The fix modifies xhci_stop to only cleanup the xhci data when releasing
+the primary HCD.  This way, we still have the event_queue configured
+when invoking xhci_irq.  We still halt the device on the first call to
+xhci_stop, though.
+
+I could reproduce this issue several times on the mainline kernel by
+doing a bind-unbind stress test with a specific storage gadget attached.
+I also ran the same test over-night with my patch applied and didn't
+observe the issue anymore.
+
+[  113.334124] Unable to handle kernel paging request for data at address 0x00000028
+[  113.335514] Faulting instruction address: 0xd00000000d4f767c
+[  113.336839] Oops: Kernel access of bad area, sig: 11 [#1]
+[  113.338214] SMP NR_CPUS=1024 NUMA PowerNV
+
+[c000000efe47ba90] c000000000720850 usb_hcd_irq+0x50/0x80
+[c000000efe47bac0] c00000000073d328 usb_hcd_pci_remove+0x68/0x1f0
+[c000000efe47bb00] d00000000daf0128 xhci_pci_remove+0x78/0xb0
+[xhci_pci]
+[c000000efe47bb30] c00000000055cf70 pci_device_remove+0x70/0x110
+[c000000efe47bb70] c00000000061c6bc __device_release_driver+0xbc/0x190
+[c000000efe47bba0] c00000000061c7d0 device_release_driver+0x40/0x70
+[c000000efe47bbd0] c000000000619510 unbind_store+0x120/0x150
+[c000000efe47bc20] c0000000006183c4 drv_attr_store+0x64/0xa0
+[c000000efe47bc60] c00000000039f1d0 sysfs_kf_write+0x80/0xb0
+[c000000efe47bca0] c00000000039e14c kernfs_fop_write+0x18c/0x1f0
+[c000000efe47bcf0] c0000000002e962c __vfs_write+0x6c/0x190
+[c000000efe47bd90] c0000000002eab40 vfs_write+0xc0/0x200
+[c000000efe47bde0] c0000000002ec85c SyS_write+0x6c/0x110
+[c000000efe47be30] c000000000009260 system_call+0x38/0x108
+
+Signed-off-by: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
+Cc: Roger Quadros <rogerq@ti.com>
+Cc: joel@jms.id.au
+Cc: stable@vger.kernel.org
+Reviewed-by: Roger Quadros <rogerq@ti.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/usb/host/xhci-ring.c |  3 ++-
+ drivers/usb/host/xhci.c      | 27 +++++++++++++++------------
+ 2 files changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
+index 2b63969c2bbf..920296f555dd 100644
+--- a/drivers/usb/host/xhci-ring.c
++++ b/drivers/usb/host/xhci-ring.c
+@@ -2727,7 +2727,8 @@ hw_died:
+ 		writel(irq_pending, &xhci->ir_set->irq_pending);
+ 	}
+ 
+-	if (xhci->xhc_state & XHCI_STATE_DYING) {
++	if (xhci->xhc_state & XHCI_STATE_DYING ||
++	    xhci->xhc_state & XHCI_STATE_HALTED) {
+ 		xhci_dbg(xhci, "xHCI dying, ignoring interrupt. "
+ 				"Shouldn't IRQs be disabled?\n");
+ 		/* Clear the event handler busy flag (RW1C);
+diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
+index ec9e758d5fcd..6fe0174da226 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -680,20 +680,23 @@ void xhci_stop(struct usb_hcd *hcd)
+ 	u32 temp;
+ 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
+ 
+-	if (xhci->xhc_state & XHCI_STATE_HALTED)
+-		return;
+-
+ 	mutex_lock(&xhci->mutex);
+-	spin_lock_irq(&xhci->lock);
+-	xhci->xhc_state |= XHCI_STATE_HALTED;
+-	xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
+ 
+-	/* Make sure the xHC is halted for a USB3 roothub
+-	 * (xhci_stop() could be called as part of failed init).
+-	 */
+-	xhci_halt(xhci);
+-	xhci_reset(xhci);
+-	spin_unlock_irq(&xhci->lock);
++	if (!(xhci->xhc_state & XHCI_STATE_HALTED)) {
++		spin_lock_irq(&xhci->lock);
++
++		xhci->xhc_state |= XHCI_STATE_HALTED;
++		xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
++		xhci_halt(xhci);
++		xhci_reset(xhci);
++
++		spin_unlock_irq(&xhci->lock);
++	}
++
++	if (!usb_hcd_is_primary_hcd(hcd)) {
++		mutex_unlock(&xhci->mutex);
++		return;
++	}
+ 
+ 	xhci_cleanup_msix(xhci);
+ 
+-- 
+2.8.1
+
diff --git a/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch b/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
deleted file mode 100644
index 2c071b4..0000000
--- a/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3f099329a4aa747c3cccb502bb3a671df6e76cfd Mon Sep 17 00:00:00 2001
-From: Thadeu Lima De Souza Cascardo <thadeul@br.ibm.com>
-Date: Tue, 25 Mar 2014 10:45:16 -0400
-Subject: [PATCH 1/7] xhci: Use xhci_pci_remove for xhci device shutdown
-
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/usb/host/xhci-pci.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index c2d65206ec6c..c2d33e274542 100644
---- a/drivers/usb/host/xhci-pci.c
-+++ b/drivers/usb/host/xhci-pci.c
-@@ -438,7 +438,7 @@ static struct pci_driver xhci_pci_driver = {
- 	.remove =	xhci_pci_remove,
- 	/* suspend and resume implemented later */
- 
--	.shutdown = 	usb_hcd_pci_shutdown,
-+	.shutdown = 	xhci_pci_remove,
- #ifdef CONFIG_PM
- 	.driver = {
- 		.pm = &usb_hcd_pci_pm_ops
--- 
-2.7.3
-
diff --git a/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch b/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch
deleted file mode 100644
index 9dcb6c3..0000000
--- a/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 797d3fde5250abb4dedf00536282b8f93e4b66fe Mon Sep 17 00:00:00 2001
-From: Joel Stanley <joel@jms.id.au>
-Date: Thu, 28 Jan 2016 13:07:06 +1030
-Subject: [PATCH 2/7] Revert "usb: xhci: stop everything on the first call to
- xhci_stop"
-
-This reverts commit 8c24d6d7b09deee3036ddc4f2b81b53b28c8f877.
-
-With this patch, the driver stops everything at the first call to
-xhci_stop, which is always for the secondary HCD when executing the
-.remove handler. We instead want to only stop when the primray HCD is
-shutting down.
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/usb/host/xhci.c | 20 +++++++++++++++-----
- 1 file changed, 15 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 776d59c32bc5..cef80e930db9 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -665,6 +665,15 @@ int xhci_run(struct usb_hcd *hcd)
- }
- EXPORT_SYMBOL_GPL(xhci_run);
- 
-+static void xhci_only_stop_hcd(struct usb_hcd *hcd)
-+{
-+	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
-+
-+	spin_lock_irq(&xhci->lock);
-+	xhci_halt(xhci);
-+	spin_unlock_irq(&xhci->lock);
-+}
-+
- /*
-  * Stop xHCI driver.
-  *
-@@ -679,14 +688,15 @@ void xhci_stop(struct usb_hcd *hcd)
- 	u32 temp;
- 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
- 
--	if (xhci->xhc_state & XHCI_STATE_HALTED)
-+	mutex_lock(&xhci->mutex);
-+
-+	if (!usb_hcd_is_primary_hcd(hcd)) {
-+		xhci_only_stop_hcd(xhci->shared_hcd);
-+		mutex_unlock(&xhci->mutex);
- 		return;
-+	}
- 
--	mutex_lock(&xhci->mutex);
- 	spin_lock_irq(&xhci->lock);
--	xhci->xhc_state |= XHCI_STATE_HALTED;
--	xhci->cmd_ring_state = CMD_RING_STATE_STOPPED;
--
- 	/* Make sure the xHC is halted for a USB3 roothub
- 	 * (xhci_stop() could be called as part of failed init).
- 	 */
--- 
-2.7.3
-
diff --git a/openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch b/openpower/linux/linux-0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
similarity index 93%
rename from openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
rename to openpower/linux/linux-0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
index f924468..56b1d41 100644
--- a/openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
+++ b/openpower/linux/linux-0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
@@ -1,7 +1,7 @@
-From c12cb7a8c9c8d780ff454399bf4bbbffdd3941f4 Mon Sep 17 00:00:00 2001
+From dc8a683e28d099efb7bc21dce897673afd1d0b58 Mon Sep 17 00:00:00 2001
 From: Jeremy Kerr <jk@ozlabs.org>
 Date: Wed, 2 Mar 2016 11:25:47 +0800
-Subject: [PATCH 4/7] drivers/drm/ast: Switch SCU to VGA output on POST
+Subject: [PATCH 2/5] drivers/drm/ast: Switch SCU to VGA output on POST
 
 On AST BMC platforms, the BMC may be using the VGA device for UART
 mirroring. In this case, we need to switch the DAC output to
@@ -68,5 +68,5 @@
 +	ast_moutdwm(ast, scu_addr | 0x2c, val);
 +}
 -- 
-2.7.3
+2.8.1
 
diff --git a/openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch b/openpower/linux/linux-0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
similarity index 90%
rename from openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch
rename to openpower/linux/linux-0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
index f6dec62..62734df 100644
--- a/openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch
+++ b/openpower/linux/linux-0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
@@ -1,7 +1,7 @@
-From 9d3559f97bd5183d4f84bbef3ea445a2ef841080 Mon Sep 17 00:00:00 2001
+From 0da7781c1a731d0459ba664a08d303672cbd4fb3 Mon Sep 17 00:00:00 2001
 From: Hannes Reinecke <hare@suse.de>
 Date: Tue, 1 Mar 2016 13:57:59 +1100
-Subject: [PATCH 5/7] scsi: ignore errors from scsi_dh_add_device()
+Subject: [PATCH 3/5] scsi: ignore errors from scsi_dh_add_device()
 
 device handler initialisation might fail due to a number of
 reasons. But as device_handlers are optional this shouldn't
@@ -38,5 +38,5 @@
  	device_enable_async_suspend(&sdev->sdev_dev);
  	error = device_add(&sdev->sdev_dev);
 -- 
-2.7.3
+2.8.1
 
diff --git a/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch
deleted file mode 100644
index 5e42d2f..0000000
--- a/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 05ac3b2476dd66ba26622d437c2517dd3ac389f1 Mon Sep 17 00:00:00 2001
-From: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
-Date: Mon, 10 Mar 2014 13:02:13 -0300
-Subject: [PATCH 3/7] xhci: do not halt the secondary HCD
-
-We can't halt the secondary HCD, because it's also the primary HCD,
-which will cause problems if we have devices attached to the primary
-HCD, like a keyboard.
-
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/usb/host/xhci.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index cef80e930db9..90f48eb32d93 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -670,7 +670,18 @@ static void xhci_only_stop_hcd(struct usb_hcd *hcd)
- 	struct xhci_hcd *xhci = hcd_to_xhci(hcd);
- 
- 	spin_lock_irq(&xhci->lock);
--	xhci_halt(xhci);
-+	/*
-+	 * We can't halt the secondary HCD, because it's also the
-+	 * primary HCD, which will cause problems if we have devices
-+	 * attached to the primary HCD, like a keyboard.
-+	 */
-+	/*xhci_halt(xhci);*/
-+
-+	/* The shared_hcd is going to be deallocated shortly (the USB core only
-+	 * calls this function when allocation fails in usb_add_hcd(), or
-+	 * usb_remove_hcd() is called).  So we need to unset xHCI's pointer.
-+	 */
-+	xhci->shared_hcd = NULL;
- 	spin_unlock_irq(&xhci->lock);
- }
- 
--- 
-2.7.3
-
diff --git a/openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch b/openpower/linux/linux-0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
similarity index 98%
rename from openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
rename to openpower/linux/linux-0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
index 11f9135..63711fe 100644
--- a/openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
+++ b/openpower/linux/linux-0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
@@ -1,7 +1,7 @@
-From 50d6158618c001b19967ab48aa9e25b2885b3374 Mon Sep 17 00:00:00 2001
+From cd938ce413d38e771471275cf75f4714849883e2 Mon Sep 17 00:00:00 2001
 From: Huy Nguyen <huyn@mellanox.com>
 Date: Wed, 17 Feb 2016 17:24:26 +0200
-Subject: [PATCH 6/7] net/mlx4_core: Set UAR page size to 4KB regardless of
+Subject: [PATCH 4/5] net/mlx4_core: Set UAR page size to 4KB regardless of
  system page size
 
 problem description:
@@ -295,5 +295,5 @@
 +}
  #endif /* MLX4_DEVICE_H */
 -- 
-2.7.3
+2.8.1
 
diff --git a/openpower/linux/linux-0007-Release-4.4.6-openpower1.patch b/openpower/linux/linux-0005-Release-4.4.9-openpower1.patch
similarity index 63%
rename from openpower/linux/linux-0007-Release-4.4.6-openpower1.patch
rename to openpower/linux/linux-0005-Release-4.4.9-openpower1.patch
index b8c7e49..5126525 100644
--- a/openpower/linux/linux-0007-Release-4.4.6-openpower1.patch
+++ b/openpower/linux/linux-0005-Release-4.4.9-openpower1.patch
@@ -1,7 +1,7 @@
-From 67b6cef1f1fe1801bbe015be2bccc5e3d9d32f2a Mon Sep 17 00:00:00 2001
+From 1ef895a037e6db091b3f349081f0af6f09d572c5 Mon Sep 17 00:00:00 2001
 From: Joel Stanley <joel@jms.id.au>
-Date: Tue, 20 Oct 2015 15:01:06 +1030
-Subject: [PATCH 7/7] Release 4.4.6-openpower1
+Date: Thu, 14 Apr 2016 21:40:26 +0930
+Subject: [PATCH 5/5] Release 4.4.9-openpower1
 
 Signed-off-by: Joel Stanley <joel@jms.id.au>
 ---
@@ -9,18 +9,18 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index 87d12b44ab66..9a78974bdab4 100644
+index 0722cdf52152..adca207f285e 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,7 +1,7 @@
  VERSION = 4
  PATCHLEVEL = 4
- SUBLEVEL = 6
+ SUBLEVEL = 9
 -EXTRAVERSION =
 +EXTRAVERSION = -openpower1
  NAME = Blurry Fish Butt
  
  # *DOCUMENTATION*
 -- 
-2.7.3
+2.8.1
 
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index e7e26fb..902d2ec 100755
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -13,3 +13,4 @@
 source "$BR2_EXTERNAL/package/capp-ucode/Config.in"
 source "$BR2_EXTERNAL/package/skiboot/Config.in"
 source "$BR2_EXTERNAL/package/libflash/Config.in"
+source "$BR2_EXTERNAL/package/loadkeys/Config.in"
diff --git a/openpower/package/barreleye-xml/barreleye-xml.mk b/openpower/package/barreleye-xml/barreleye-xml.mk
index 69600f3..b18b14c 100755
--- a/openpower/package/barreleye-xml/barreleye-xml.mk
+++ b/openpower/package/barreleye-xml/barreleye-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BARRELEYE_XML_VERSION ?= 1250f06d5b9693ac0e9609b0fa5dd6112b3dadf7
+BARRELEYE_XML_VERSION ?= 81ac3ff3c4ccd16d2174f455c1cb17976daca948
 BARRELEYE_XML_SITE = $(call github,open-power,barreleye-xml,$(BARRELEYE_XML_VERSION))
 
 BARRELEYE_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/garrison-xml/garrison.mk b/openpower/package/garrison-xml/garrison.mk
index 3d4e4bb..a3b019f 100644
--- a/openpower/package/garrison-xml/garrison.mk
+++ b/openpower/package/garrison-xml/garrison.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GARRISON_XML_VERSION ?= b9af9c03a968d9f3238f93e18cd53a6f914a5de2
+GARRISON_XML_VERSION ?= 124e1216e3d19715baaf576d809209124c73313e
 GARRISON_XML_SITE ?= $(call github,open-power,garrison-xml,$(GARRISON_XML_VERSION))
 
 GARRISON_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch b/openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI.patch
similarity index 76%
rename from openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
rename to openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI.patch
index cc25c45..66bc026 100644
--- a/openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
+++ b/openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI.patch
@@ -1,12 +1,10 @@
 From 005cac73915ee6f6b67e9b01ae840b798c1fc80e Mon Sep 17 00:00:00 2001
 From: Andrew Geissler <andrewg@us.ibm.com>
 Date: Mon, 16 Feb 2015 13:43:51 -0600
-Subject: [PATCH] GCC 4.9: Make compiler use ELFv1 ABI and use -O2
+Subject: [PATCH] GCC 4.9: Make compiler use ELFv1 ABI.
 
 GCC4.9 defaults to ELFv2 ABI support but we do not have all
 of the needed tools to suppor this.
-GCC4.9 also does not work well with -O3 so I've had to
-knock us down to -O2 for now.
 
 Change-Id: Iacf49c46b1fb25776ba60d6506ccadff7b46bf60
 RTC: 123430
@@ -18,16 +16,6 @@
 index 8ca32b1..c729341 100644
 --- a/src/build/mkrules/cflags.env.mk
 +++ b/src/build/mkrules/cflags.env.mk
-@@ -28,7 +28,8 @@
- # Description:
- #     Configuration of the compiler, linker, etc. flags.
- 
--OPT_LEVEL ?= -O3
-+# TODO RTC 124305 - Get -O3 to work with gcc4.9
-+OPT_LEVEL ?= -O2
- 
- ifdef MODULE
- COMMONFLAGS += -fPIC -Bsymbolic -Bsymbolic-functions
 @@ -36,10 +37,12 @@ CFLAGS += -D__HOSTBOOT_MODULE=$(MODULE)
  endif
  
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 1d099e4..af6df35 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= c2236377ece011d405610d6cbc0796f6a948c0eb
+HOSTBOOT_VERSION ?= dcf07f54b2b8cdf15ee930cc027660d37637331e
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
diff --git a/openpower/package/loadkeys/Config.in b/openpower/package/loadkeys/Config.in
new file mode 100644
index 0000000..c53391c
--- /dev/null
+++ b/openpower/package/loadkeys/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_LOADKEYS
+	bool "loadkeys"
+	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
+	select BR2_PACKAGE_CHECK
+	# Uses fork()
+	depends on BR2_USE_MMU
+	help
+	  Custom package to install just the 'loadkeys'
+	  binary from the kbd package.
+
+	  http://kernel.org/pub/linux/utils/kbd/
diff --git a/openpower/package/loadkeys/S16-keymap b/openpower/package/loadkeys/S16-keymap
new file mode 100755
index 0000000..aa3f068
--- /dev/null
+++ b/openpower/package/loadkeys/S16-keymap
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+case "$1" in
+    start)
+        loadkeys /etc/kbd/config
+        ;;
+esac
+
+exit 0
diff --git a/openpower/package/loadkeys/backtab-keymap b/openpower/package/loadkeys/backtab-keymap
new file mode 100644
index 0000000..953b990
--- /dev/null
+++ b/openpower/package/loadkeys/backtab-keymap
@@ -0,0 +1,10 @@
+# Enable backtab for VGA consoles
+# Thanks to http://web.mit.edu/daveg/Info/backtab-howto.txt
+
+keycode  15 = Tab   F91
+	alt     keycode  15 = Meta_Tab
+	shift   alt     keycode  15 = F92
+
+# backtab and M-backtab
+string F91 = "\033[Z"
+string F92 = "\033\033[Z"
diff --git a/openpower/package/loadkeys/loadkeys.hash b/openpower/package/loadkeys/loadkeys.hash
new file mode 100644
index 0000000..39a4cdd
--- /dev/null
+++ b/openpower/package/loadkeys/loadkeys.hash
@@ -0,0 +1,2 @@
+# From https://www.kernel.org/pub/linux/utils/kbd/sha256sums.asc
+sha256	7a899de1c0eb75f3aea737095a736f2375e1cbfbe693fc14a3fe0bfb4649fb5e	kbd-2.0.3.tar.xz
diff --git a/openpower/package/loadkeys/loadkeys.mk b/openpower/package/loadkeys/loadkeys.mk
new file mode 100644
index 0000000..db6cbca
--- /dev/null
+++ b/openpower/package/loadkeys/loadkeys.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# loadkeys - Custom installer for the kbd package
+#
+################################################################################
+
+LOADKEYS_VERSION = 2.0.3
+LOADKEYS_SOURCE = kbd-$(LOADKEYS_VERSION).tar.xz
+LOADKEYS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kbd
+LOADKEYS_CONF_OPTS = --disable-vlock
+LOADKEYS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
+LOADKEYS_LICENSE = GPLv2+
+LOADKEYS_LICENSE_FILES = COPYING
+LOADKEYS_INSTALL_STAGING = NO
+LOADKEYS_INSTALL_TARGET = YES
+
+define LOADKEYS_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/src/loadkeys \
+		$(TARGET_DIR)/usr/bin/
+endef
+
+define LOADKEYS_POST_INSTALL
+	$(INSTALL) -D -m 0755 $(BR2_EXTERNAL)/package/loadkeys/S16-keymap \
+		$(TARGET_DIR)/etc/init.d/
+	$(INSTALL) -D -m 0755 $(BR2_EXTERNAL)/package/loadkeys/backtab-keymap \
+		$(TARGET_DIR)/etc/kbd/config
+endef
+
+LOADKEYS_POST_INSTALL_TARGET_HOOKS += LOADKEYS_POST_INSTALL
+
+$(eval $(autotools-package))
diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk
index a09827c..d18c3e5 100644
--- a/openpower/package/occ/occ.mk
+++ b/openpower/package/occ/occ.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OCC_VERSION ?= 1093bf945e6c22650ca0b83da2347ee7d21cbe41
+OCC_VERSION ?= 19a3ebc0f759ba4af88ef1664c0e373cd8487653
 OCC_SITE ?= $(call github,open-power,occ,$(OCC_VERSION))
 OCC_LICENSE = Apache-2.0
 OCC_DEPENDENCIES = host-binutils host-p8-pore-binutils
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 2234d4e..cc7cc71 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -33,7 +33,18 @@
         string "Name of skiboot lid name to be used"
         default "skiboot.lid"
         help
-            String used to define sapphire lid filename
+            String used to define skiboot lid filename
+
+config BR2_TARGET_SKIBOOT_XZ
+        boolean "Compress the skiboot image with XZ"
+        default n
+
+config BR2_SKIBOOT_LID_XZ_NAME
+        string "Name of compressed skiboot lid"
+        default "skiboot.lid" if !BR2_TARGET_SKIBOOT_XZ
+        default "skiboot.lid.xz" if BR2_TARGET_SKIBOOT_XZ
+        help
+            String used to define compressed skiboot lid filename
 
 config BR2_HOSTBOOT_BINARY_SBE_FILENAME
         string "Name of sbe hostboot binary"
@@ -60,3 +71,8 @@
         string "Name of openpower binary targeting file"
         help
             String used to define name of openpower targeting binary file, ecc protected
+
+config BR2_OPENPOWER_PNOR_XZ_ENABLED
+        string "False if we are not compressing with XZ anywhere"
+        default "false" if !BR2_TARGET_SKIBOOT_XZ
+        default "true" if BR2_TARGET_SKIBOOT_XZ
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index 2d7086c..c4184f4 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -8,13 +8,13 @@
 # make doesn't care for quotes in the dependencies.
 XML_PACKAGE=$(subst $\",,$(BR2_OPENPOWER_XML_PACKAGE))
 
-OPENPOWER_PNOR_VERSION ?= 1e4410052a26acf4b439226860afae9507f0d94a
+OPENPOWER_PNOR_VERSION ?= b937782225b96b6fb176f8acb59278026c8d9fd6
 OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
 
 OPENPOWER_PNOR_LICENSE = Apache-2.0
 OPENPOWER_PNOR_DEPENDENCIES = hostboot hostboot-binaries $(XML_PACKAGE) skiboot host-openpower-ffs occ capp-ucode
 
-ifeq ($(BR2_TARGET_SKIBOOT_EMBED_PAYLOAD),n)
+ifeq ($(BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD),n)
 
 ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
 OPENPOWER_PNOR_DEPENDENCIES += linux-rebuild-with-initramfs
@@ -24,6 +24,11 @@
 
 endif
 
+ifeq ($(BR2_OPENPOWER_PNOR_XZ_ENABLED),y)
+OPENPOWER_PNOR_DEPENDENCIES += host_xz
+endif
+
+
 OPENPOWER_PNOR_INSTALL_IMAGES = YES
 OPENPOWER_PNOR_INSTALL_TARGET = NO
 
@@ -51,7 +56,9 @@
             -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
             -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \
             -capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \
-            -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
+            -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) \
+            -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_LID_NAME) \
+            -xz_compression $(BR2_OPENPOWER_PNOR_XZ_ENABLED)
 
         mkdir -p $(STAGING_DIR)/pnor/
         $(TARGET_MAKE_ENV) $(@D)/create_pnor_image.pl \
@@ -60,14 +67,15 @@
             -hb_image_dir $(HOSTBOOT_IMAGE_DIR) \
             -scratch_dir $(OPENPOWER_PNOR_SCRATCH_DIR) \
             -outdir $(STAGING_DIR)/pnor/ \
-            -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_LID_NAME) \
+            -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_LID_XZ_NAME) \
             -bootkernel $(BINARIES_DIR)/$(LINUX_IMAGE_NAME) \
             -sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
             -sbec_binary_filename $(BR2_HOSTBOOT_BINARY_SBEC_FILENAME) \
             -wink_binary_filename $(BR2_HOSTBOOT_BINARY_WINK_FILENAME) \
             -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_BIN_FILENAME) \
             -targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
-            -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
+            -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) \
+            -xz_compression $(BR2_OPENPOWER_PNOR_XZ_ENABLED)
 
         $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) $(BINARIES_DIR)
 
diff --git a/openpower/package/petitboot/Config.in b/openpower/package/petitboot/Config.in
index 08801ec..e5769de 100644
--- a/openpower/package/petitboot/Config.in
+++ b/openpower/package/petitboot/Config.in
@@ -2,6 +2,7 @@
 	bool "petitboot"
 	# petitboot needs udev /dev management
 	depends on BR2_PACKAGE_HAS_UDEV
+	select BR2_PACKAGE_LVM2
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_NCURSES_TARGET_PANEL
 	select BR2_PACKAGE_NCURSES_TARGET_FORM
diff --git a/openpower/package/petitboot/petitboot.mk b/openpower/package/petitboot/petitboot.mk
index 1736435..21d673b 100644
--- a/openpower/package/petitboot/petitboot.mk
+++ b/openpower/package/petitboot/petitboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PETITBOOT_VERSION = 72928ed32ab3684be74e4a3b90329dee7cfa6bbb
+PETITBOOT_VERSION = v1.0.1
 PETITBOOT_SITE ?= $(call github,open-power,petitboot,$(PETITBOOT_VERSION))
 PETITBOOT_DEPENDENCIES = ncurses udev host-bison host-flex lvm2
 PETITBOOT_LICENSE = GPLv2
@@ -67,6 +67,8 @@
 	ln -sf /usr/sbin/pb-udhcpc \
 		$(TARGET_DIR)/usr/share/udhcpc/default.script.d/
 
+	mkdir -p $(TARGET_DIR)/var/log/petitboot
+
 	$(MAKE) -C $(@D)/po DESTDIR=$(TARGET_DIR) install
 endef
 
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 796a513..277a3b5 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -1,15 +1,15 @@
 menu "Skiboot"
 
-config BR2_TARGET_SKIBOOT
+config BR2_PACKAGE_SKIBOOT
 	bool "skiboot"
 	depends on BR2_powerpc64 || BR2_powerpc64le
         default y if (BR2_OPENPOWER_PLATFORM && BR2_powerpc_power8)
 	help
 	  Build skiboot POWER8 firmware
 
-if BR2_TARGET_SKIBOOT
+if BR2_PACKAGE_SKIBOOT
 
-config BR2_TARGET_SKIBOOT_EMBED_PAYLOAD
+config BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD
 	bool "Embed kernel payload in skiboot image"
 	depends on BR2_LINUX_KERNEL_ZIMAGE_EPAPR
 
@@ -31,7 +31,7 @@
 
 config BR2_SKIBOOT_VERSION
 	string
-	default "skiboot-5.1.15" if BR2_SKIBOOT_LATEST_VERSION
+	default "skiboot-5.2.2" if BR2_SKIBOOT_LATEST_VERSION
 	default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_SKIBOOT_CUSTOM_VERSION