summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2016-08-03 09:00:36 -0500
committerGitHub <noreply@github.com>2016-08-03 09:00:36 -0500
commit43882ebce3063d3b1c9353f598a61f4fa557dd71 (patch)
tree1ac1ace5aacc179cb68e70288ed0e0643fe563c8
parent588d8abc3efdaa41b0820f2c13103148980a4e36 (diff)
parent3f516831046609645fb5722292b8daad0446e745 (diff)
downloadblackbird-op-build-43882ebce3063d3b1c9353f598a61f4fa557dd71.tar.gz
blackbird-op-build-43882ebce3063d3b1c9353f598a61f4fa557dd71.zip
Merge pull request #564 from open-power/master-nextv1.10
Merge master-next to master for 1.10.
-rw-r--r--.gitmodules2
m---------buildroot0
-rw-r--r--openpower/configs/barreleye_defconfig10
-rw-r--r--openpower/configs/firenze_defconfig69
-rw-r--r--openpower/configs/firestone_defconfig10
-rw-r--r--openpower/configs/garrison_defconfig14
-rw-r--r--openpower/configs/habanero_defconfig10
-rw-r--r--openpower/configs/linux/skiroot_defconfig9
-rw-r--r--openpower/configs/openpower_mambo_defconfig9
-rw-r--r--openpower/configs/openpower_p9_mambo_defconfig46
-rw-r--r--openpower/configs/palmetto_defconfig11
-rw-r--r--openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch (renamed from openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch)8
-rw-r--r--openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch (renamed from openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch)4
-rw-r--r--openpower/linux/0003-scsi-ignore-errors-from-scsi_dh_add_device.patch (renamed from openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch)6
-rw-r--r--openpower/linux/0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch (renamed from openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch)6
-rw-r--r--openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch56
-rw-r--r--openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch161
-rw-r--r--openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch286
-rw-r--r--openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch38
-rw-r--r--openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch88
-rw-r--r--openpower/linux/0010-Release-4.4.16-openpower1.patch (renamed from openpower/linux/linux-0007-Release-4.4.9-openpower2.patch)10
-rw-r--r--openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch62
-rw-r--r--openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch42
-rw-r--r--openpower/overlay/etc/fstab1
-rwxr-xr-xopenpower/package/Config.in2
-rwxr-xr-xopenpower/package/barreleye-xml/Config.in1
-rwxr-xr-xopenpower/package/barreleye-xml/barreleye-xml.mk4
-rw-r--r--openpower/package/common-p8-xml/Config.in4
-rwxr-xr-xopenpower/package/firestone-xml/Config.in1
-rw-r--r--openpower/package/firestone-xml/firestone.mk4
-rwxr-xr-xopenpower/package/garrison-xml/Config.in1
-rw-r--r--openpower/package/garrison-xml/garrison.mk4
-rwxr-xr-xopenpower/package/habanero-xml/Config.in1
-rw-r--r--openpower/package/habanero-xml/habanero-xml.mk4
-rw-r--r--openpower/package/hostboot/hostboot.mk4
-rw-r--r--openpower/package/occ/occ.mk2
-rw-r--r--openpower/package/openpower-mrw/Config.in3
-rw-r--r--openpower/package/openpower-pnor/Config.in19
-rw-r--r--openpower/package/openpower-pnor/openpower-pnor.mk9
-rwxr-xr-xopenpower/package/palmetto-xml/Config.in1
-rw-r--r--openpower/package/palmetto-xml/palmetto-xml.mk4
-rw-r--r--openpower/package/petitboot/Config.in2
-rw-r--r--openpower/package/petitboot/petitboot.mk4
-rw-r--r--openpower/package/pkg-versions.mk2
-rw-r--r--openpower/package/skiboot/Config.in2
-rw-r--r--openpower/package/skiboot/skiboot.mk1
-rwxr-xr-xopenpower/scripts/firenze-firmware-whitelist46
-rwxr-xr-xopenpower/scripts/op-target-dependencies1
-rwxr-xr-xopenpower/scripts/release-notes180
49 files changed, 1068 insertions, 196 deletions
diff --git a/.gitmodules b/.gitmodules
index 20509fa3..6bda6279 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,4 +1,4 @@
[submodule "buildroot"]
path = buildroot
- branch = 2015.11.1-op-build
+ branch = 2016.05-op-build
url = https://github.com/open-power/buildroot
diff --git a/buildroot b/buildroot
-Subproject bc248fac945aa9c81052386d1f02e837e53fdaf
+Subproject 81b8d98f563e3045d80284d357df6cab4a61037
diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index 1a45b180..7c0bbb80 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -5,7 +5,6 @@ BR2_OPENPOWER_PLATFORM=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
-# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
BR2_GLIBC_VERSION_2_23=y
BR2_OPENPOWER_CONFIG_NAME="barreleye"
@@ -32,10 +31,6 @@ BR2_OPENPOWER_PNOR_UPDATE_FILENAME="barreleye_update.pnor"
BR2_TARGET_GENERIC_HOSTNAME="skiroot"
-# skiboot requirements
-BR2_PACKAGE_SKIBOOT=y
-BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
-
# petitboot requirements
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW"
@@ -46,8 +41,10 @@ BR2_ROOTFS_OVERLAY="../openpower/overlay"
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_LATEST_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
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"
@@ -66,7 +63,6 @@ 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
diff --git a/openpower/configs/firenze_defconfig b/openpower/configs/firenze_defconfig
new file mode 100644
index 00000000..b18aa359
--- /dev/null
+++ b/openpower/configs/firenze_defconfig
@@ -0,0 +1,69 @@
+BR2_powerpc64le=y
+BR2_powerpc_power8=y
+BR2_OPENPOWER_PLATFORM=y
+
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_GLIBC_VERSION_2_23=y
+
+# No HostBoot, OCC, or PNOR required
+BR2_PACKAGE_HOSTBOOT=n
+BR2_PACKAGE_HOSTBOOT_BINARIES=n
+
+BR2_OPENPOWER_CONFIG_NAME="openpower-firenze"
+
+BR2_PACKAGE_OCC=n
+
+BR2_PACKAGE_OPENPOWER_PNOR=n
+
+# no cappucode either
+BR2_PACKAGE_CAPP_UCODE=n
+
+BR2_TARGET_GENERIC_HOSTNAME="skiroot"
+
+# skiboot will be built but we don't need embedded payload
+BR2_PACKAGE_SKIBOOT=y
+BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
+BR2_SKIBOOT_CUSTOM_VERSION=y
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.3.0"
+
+# petitboot requirements
+BR2_ENABLE_LOCALE_PURGE=y
+BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW"
+BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
+BR2_ROOTFS_OVERLAY="../openpower/overlay"
+BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
+BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firenze-firmware-whitelist"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
+BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
+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"
+BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
+BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y
+BR2_PACKAGE_LINUX_FIRMWARE_RADEON=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_NCURSES_WCHAR=y
+BR2_PACKAGE_DROPBEAR=y
+# BR2_PACKAGE_DROPBEAR_SERVER is not set
+BR2_PACKAGE_ETHTOOL=y
+BR2_PACKAGE_NETCAT=y
+BR2_PACKAGE_RSYNC=y
+BR2_PACKAGE_PETITBOOT=y
+BR2_PACKAGE_PETITBOOT_MTD=y
+BR2_PACKAGE_IPMITOOL=y
+BR2_PACKAGE_MDADM=y
+BR2_TARGET_ROOTFS_CPIO_XZ=y
+# do not include rootfs in zImage
+BR2_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_INITRAMFS=n
+BR2_PACKAGE_LOADKEYS=y
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 5eb16b1a..8a8dbc96 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -5,7 +5,6 @@ BR2_OPENPOWER_PLATFORM=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
-# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
BR2_GLIBC_VERSION_2_23=y
BR2_OPENPOWER_CONFIG_NAME="firestone"
@@ -32,10 +31,6 @@ BR2_OPENPOWER_PNOR_UPDATE_FILENAME="firestone_update.pnor"
BR2_TARGET_GENERIC_HOSTNAME="skiroot"
-# skiboot requirements
-BR2_PACKAGE_SKIBOOT=y
-BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
-
# petitboot requirements
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW"
@@ -46,8 +41,10 @@ BR2_ROOTFS_OVERLAY="../openpower/overlay"
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_LATEST_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
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"
@@ -66,7 +63,6 @@ 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
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index 02398312..370e2434 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -5,7 +5,6 @@ BR2_OPENPOWER_PLATFORM=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
-# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
BR2_GLIBC_VERSION_2_23=y
BR2_OPENPOWER_CONFIG_NAME="garrison"
@@ -33,21 +32,23 @@ BR2_OPENPOWER_PNOR_UPDATE_FILENAME="garrison_update.pnor"
BR2_TARGET_GENERIC_HOSTNAME="skiroot"
# skiboot requirements
-BR2_PACKAGE_SKIBOOT=y
-BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
+BR2_SKIBOOT_CUSTOM_VERSION=y
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.3.0"
# petitboot requirements
BR2_ENABLE_LOCALE_PURGE=y
-BR2_ENABLE_LOCALE_WHITELIST="C en_US"
-BR2_GENERATE_LOCALE="en_US.UTF-8"
+BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW"
+BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
BR2_ROOTFS_OVERLAY="../openpower/overlay"
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_LATEST_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
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"
@@ -66,7 +67,6 @@ 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
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index ffa09676..6da169e9 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -5,7 +5,6 @@ BR2_OPENPOWER_PLATFORM=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
-# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
BR2_GLIBC_VERSION_2_23=y
BR2_OPENPOWER_CONFIG_NAME="habanero"
@@ -32,10 +31,6 @@ BR2_OPENPOWER_PNOR_UPDATE_FILENAME="habanero_update.pnor"
BR2_TARGET_GENERIC_HOSTNAME="skiroot"
-# skiboot requirements
-BR2_PACKAGE_SKIBOOT=y
-BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
-
# petitboot requirements
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW"
@@ -46,8 +41,10 @@ BR2_ROOTFS_OVERLAY="../openpower/overlay"
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_LATEST_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
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"
@@ -66,7 +63,6 @@ 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
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index b76ecb86..688524db 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -71,7 +71,6 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_ATA_OVER_ETH=m
CONFIG_VIRTIO_BLK=m
-CONFIG_BLK_DEV_NVME=m
CONFIG_EEPROM_AT24=y
# CONFIG_CXL is not set
CONFIG_BLK_DEV_SD=m
@@ -138,6 +137,7 @@ CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IXGB=m
CONFIG_IXGBE=m
+CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MYRI10GE=m
CONFIG_QLGE=m
@@ -157,6 +157,7 @@ CONFIG_HW_RANDOM=y
CONFIG_GEN_RTC=y
CONFIG_RAW_DRIVER=y
CONFIG_MAX_RAW_DEVS=1024
+CONFIG_TCG_TIS_I2C_NUVOTON=y
# CONFIG_I2C_COMPAT is not set
CONFIG_I2C_CHARDEV=y
# CONFIG_I2C_HELPER_AUTO is not set
@@ -223,13 +224,13 @@ CONFIG_SCHEDSTATS=y
# CONFIG_FTRACE is not set
CONFIG_XMON=y
CONFIG_XMON_DEFAULT=y
+CONFIG_SECURITY=y
+CONFIG_IMA=y
+CONFIG_EVM=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
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index c7ba28e8..52de2e41 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -20,10 +20,6 @@ BR2_PACKAGE_OPENPOWER_PNOR=n
BR2_TARGET_GENERIC_HOSTNAME="skiroot"
-# skiboot will be built but we don't need embedded payload
-BR2_PACKAGE_SKIBOOT=y
-BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
-
# petitboot requirements
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C en_US"
@@ -34,8 +30,10 @@ BR2_ROOTFS_OVERLAY="../openpower/overlay"
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_LATEST_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
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"
@@ -53,7 +51,6 @@ BR2_PACKAGE_NETCAT=y
BR2_PACKAGE_RSYNC=y
BR2_PACKAGE_PETITBOOT=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
diff --git a/openpower/configs/openpower_p9_mambo_defconfig b/openpower/configs/openpower_p9_mambo_defconfig
new file mode 100644
index 00000000..f7672a41
--- /dev/null
+++ b/openpower/configs/openpower_p9_mambo_defconfig
@@ -0,0 +1,46 @@
+BR2_powerpc64le=y
+BR2_powerpc_power8=y
+BR2_KERNEL_HEADERS_4_4=y
+BR2_GLIBC_VERSION_2_23=y
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_BINUTILS_VERSION_2_26_X=y
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_ENABLE_LOCALE_PURGE=y
+BR2_ENABLE_LOCALE_WHITELIST="C en_US"
+BR2_GENERATE_LOCALE="en_US.UTF-8"
+BR2_TARGET_GENERIC_HOSTNAME="skiroot-p9"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt"
+BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
+BR2_ROOTFS_OVERLAY="../openpower/overlay"
+BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
+BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.7-rc3.tar.xz"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
+BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
+BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_LINUX_FIRMWARE=y
+BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
+BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4=y
+BR2_PACKAGE_I2C_TOOLS=y
+BR2_PACKAGE_IPMITOOL=y
+BR2_PACKAGE_MDADM=y
+BR2_PACKAGE_NCURSES_WCHAR=y
+BR2_PACKAGE_DROPBEAR=y
+# BR2_PACKAGE_DROPBEAR_SERVER is not set
+BR2_PACKAGE_ETHTOOL=y
+BR2_PACKAGE_NETCAT=y
+BR2_PACKAGE_RSYNC=y
+BR2_TARGET_ROOTFS_CPIO_XZ=y
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_OPENPOWER_PLATFORM=y
+# BR2_PACKAGE_HOSTBOOT is not set
+# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
+# BR2_PACKAGE_OPENPOWER_PNOR is not set
+BR2_OPENPOWER_CONFIG_NAME="openpower-mambo-p9"
+BR2_PACKAGE_PETITBOOT=y
+# BR2_PACKAGE_OCC is not set
+BR2_SKIBOOT_CUSTOM_VERSION=y
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.3.0"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index 6b7a269d..1c7fe2a8 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -5,7 +5,6 @@ BR2_OPENPOWER_PLATFORM=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
-# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
BR2_GLIBC_VERSION_2_23=y
BR2_OPENPOWER_CONFIG_NAME="palmetto"
@@ -30,11 +29,6 @@ BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutSingleSide.xml"
BR2_OPENPOWER_PNOR_FILENAME="palmetto.pnor"
BR2_TARGET_GENERIC_HOSTNAME="skiroot"
-
-# skiboot requirements
-BR2_PACKAGE_SKIBOOT=y
-BR2_PACKAGE_SKIBOOT_EMBED_PAYLOAD=n
-
# petitboot requirements
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C en_US"
@@ -45,8 +39,10 @@ BR2_ROOTFS_OVERLAY="../openpower/overlay"
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_LATEST_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.4.16"
BR2_KERNEL_HEADERS_4_4=y
+BR2_BINUTILS_VERSION_2_26_X=y
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,7 +61,6 @@ 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
diff --git a/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch b/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
index 5534929f..ca5c2401 100644
--- a/openpower/linux/linux-0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
+++ b/openpower/linux/0001-xhci-Use-xhci_pci_remove-for-xhci-device-shutdown.patch
@@ -1,7 +1,7 @@
-From 996db84dbe234e5f3845c0408c68d5c091d3d201 Mon Sep 17 00:00:00 2001
+From 4b30502e3137f771b947da627ac7d14286f57b1c 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
+Subject: [PATCH 01/10] 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>
@@ -10,10 +10,10 @@ Signed-off-by: Joel Stanley <joel@jms.id.au>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index ea4fb4b0cd44..186a544e1d1f 100644
+index de644e56aa3b..f398ed390ff8 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -441,7 +441,7 @@ static struct pci_driver xhci_pci_driver = {
+@@ -446,7 +446,7 @@ static struct pci_driver xhci_pci_driver = {
.remove = xhci_pci_remove,
/* suspend and resume implemented later */
diff --git a/openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch b/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
index bafbb624..bb42caaf 100644
--- a/openpower/linux/linux-0004-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
+++ b/openpower/linux/0002-drivers-drm-ast-Switch-SCU-to-VGA-output-on-POST.patch
@@ -1,7 +1,7 @@
-From 0d888c4e2a38d43e5e24bae62b18418ab667f38a Mon Sep 17 00:00:00 2001
+From 1a148c6eb2c728b2063f1d114d06932abcb1d710 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 02/10] 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
diff --git a/openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch b/openpower/linux/0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
index c1408454..19e9e3d8 100644
--- a/openpower/linux/linux-0005-scsi-ignore-errors-from-scsi_dh_add_device.patch
+++ b/openpower/linux/0003-scsi-ignore-errors-from-scsi_dh_add_device.patch
@@ -1,7 +1,7 @@
-From 26d223cac4dea89aadf26eba6559220d2e925d88 Mon Sep 17 00:00:00 2001
+From 69f5346b57b03d0809e45e331afca7cb09ee17f5 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 03/10] 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
@@ -18,7 +18,7 @@ Signed-off-by: Joel Stanley <joel@jms.id.au>
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
-index c8115b4fe474..750df9b9b11c 100644
+index f7ae898833dd..7232d43e2207 100644
--- a/drivers/scsi/scsi_sysfs.c
+++ b/drivers/scsi/scsi_sysfs.c
@@ -1058,11 +1058,12 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
diff --git a/openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch b/openpower/linux/0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
index 6070d5e1..b21736ca 100644
--- a/openpower/linux/linux-0006-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
+++ b/openpower/linux/0004-net-mlx4_core-Set-UAR-page-size-to-4KB-regardless-of.patch
@@ -1,7 +1,7 @@
-From 6189e547b0a411e22dffdd79768d67945eb81c8b Mon Sep 17 00:00:00 2001
+From 5671fd1faf1b9185ad846db4e134f05a1b109ca3 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 04/10] net/mlx4_core: Set UAR page size to 4KB regardless of
system page size
problem description:
@@ -105,7 +105,7 @@ index 12aab5a659d3..02e925d6f734 100644
context->pri_path.ackto = 1 & 0x07;
context->pri_path.sched_queue = 0x83 | (priv->port - 1) << 6;
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
-index 4421bf5463f6..e0946ab22010 100644
+index e4019a803a9c..0debb611da8b 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
@@ -213,7 +213,9 @@ int mlx4_en_activate_tx_ring(struct mlx4_en_priv *priv,
diff --git a/openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch
new file mode 100644
index 00000000..2345b112
--- /dev/null
+++ b/openpower/linux/0005-xhci-do-not-halt-the-secondary-HCD.patch
@@ -0,0 +1,56 @@
+From 6bd20334f0036becdbc6e6fb04f2cca0a26862c7 Mon Sep 17 00:00:00 2001
+From: Joel Stanley <joel@jms.id.au>
+Date: Tue, 19 Jul 2016 22:43:26 +0930
+Subject: [PATCH 05/10] 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.
+
+Sined-off-by: Joel Stanley <joel@jms.id.au>
+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 6fe0174da226..8f48dd84ddd2 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -682,6 +682,21 @@ void xhci_stop(struct usb_hcd *hcd)
+
+ mutex_lock(&xhci->mutex);
+
++ /*
++ * 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.
++ */
++ if (!usb_hcd_is_primary_hcd(hcd)) {
++ /* 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;
++ mutex_unlock(&xhci->mutex);
++ return;
++ }
++
+ if (!(xhci->xhc_state & XHCI_STATE_HALTED)) {
+ spin_lock_irq(&xhci->lock);
+
+@@ -693,11 +708,6 @@ void xhci_stop(struct usb_hcd *hcd)
+ spin_unlock_irq(&xhci->lock);
+ }
+
+- if (!usb_hcd_is_primary_hcd(hcd)) {
+- mutex_unlock(&xhci->mutex);
+- return;
+- }
+-
+ xhci_cleanup_msix(xhci);
+
+ /* Deleting Compliance Mode Recovery Timer */
+--
+2.8.1
+
diff --git a/openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch b/openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch
new file mode 100644
index 00000000..8c900eeb
--- /dev/null
+++ b/openpower/linux/0006-net-mlx5-Add-pci-shutdown-callback.patch
@@ -0,0 +1,161 @@
+From e5debfe251a2aee37b54f768855aac11593c0e2e Mon Sep 17 00:00:00 2001
+From: Carol L Soto <clsoto@linux.vnet.ibm.com>
+Date: Tue, 12 Jul 2016 17:04:07 -0500
+Subject: [PATCH 06/10] net/mlx5: Add pci shutdown callback
+
+Backport of commit 5fc7197d3a256 ("net/mlx5: Add pci shutdown callback")
+so we can use for the OpenPower kernel.
+
+This patch introduces kexec support for mlx5.
+When switching kernels, kexec() calls shutdown, which unloads
+the driver and cleans its resources.
+
+In addition, remove unregister netdev from shutdown flow. This will
+allow a clean shutdown, even if some netdev clients did not release their
+reference from this netdev. Releasing The HW resources only is enough as
+the kernel is shutting down
+
+Signed-off-by: Majd Dibbiny <majd@mellanox.com>
+Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
+Signed-off-by: Haggai Abramovsky <hagaya@mellanox.com>
+Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Carol L Soto <clsoto@linux.vnet.ibm.com>
+(cherry picked from commit 5fc7197d3a256d9c5de3134870304b24892a4908)
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++++++++++--
+ drivers/net/ethernet/mellanox/mlx5/core/main.c | 23 +++++++++++++++++++----
+ include/linux/mlx5/driver.h | 7 ++++---
+ 3 files changed, 36 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+index cbd17e25beeb..887a54c8e98b 100644
+--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
++++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+@@ -2241,7 +2241,16 @@ static void mlx5e_destroy_netdev(struct mlx5_core_dev *mdev, void *vpriv)
+ schedule_work(&priv->set_rx_mode_work);
+ mlx5e_disable_async_events(priv);
+ flush_scheduled_work();
+- unregister_netdev(netdev);
++ if (test_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &mdev->intf_state)) {
++ netif_device_detach(netdev);
++ mutex_lock(&priv->state_lock);
++ if (test_bit(MLX5E_STATE_OPENED, &priv->state))
++ mlx5e_close_locked(netdev);
++ mutex_unlock(&priv->state_lock);
++ } else {
++ unregister_netdev(netdev);
++ }
++
+ mlx5e_destroy_flow_tables(priv);
+ mlx5e_destroy_tirs(priv);
+ mlx5e_destroy_rqt(priv, MLX5E_SINGLE_RQ_RQT);
+@@ -2252,7 +2261,9 @@ static void mlx5e_destroy_netdev(struct mlx5_core_dev *mdev, void *vpriv)
+ mlx5_dealloc_transport_domain(priv->mdev, priv->tdn);
+ mlx5_core_dealloc_pd(priv->mdev, priv->pdn);
+ mlx5_unmap_free_uar(priv->mdev, &priv->cq_uar);
+- free_netdev(netdev);
++
++ if (!test_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &mdev->intf_state))
++ free_netdev(netdev);
+ }
+
+ static void *mlx5e_get_netdev(void *vpriv)
+diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
+index 6cf6d93d8831..8a371bdb823e 100644
+--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
++++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
+@@ -914,7 +914,7 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ int err;
+
+ mutex_lock(&dev->intf_state_mutex);
+- if (dev->interface_state == MLX5_INTERFACE_STATE_UP) {
++ if (test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) {
+ dev_warn(&dev->pdev->dev, "%s: interface is up, NOP\n",
+ __func__);
+ goto out;
+@@ -1063,7 +1063,8 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ if (err)
+ pr_info("failed request module on %s\n", MLX5_IB_MOD);
+
+- dev->interface_state = MLX5_INTERFACE_STATE_UP;
++ clear_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state);
++ set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state);
+ out:
+ mutex_unlock(&dev->intf_state_mutex);
+
+@@ -1125,7 +1126,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ int err = 0;
+
+ mutex_lock(&dev->intf_state_mutex);
+- if (dev->interface_state == MLX5_INTERFACE_STATE_DOWN) {
++ if (test_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state)) {
+ dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n",
+ __func__);
+ goto out;
+@@ -1155,7 +1156,8 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv)
+ mlx5_cmd_cleanup(dev);
+
+ out:
+- dev->interface_state = MLX5_INTERFACE_STATE_DOWN;
++ clear_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state);
++ set_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state);
+ mutex_unlock(&dev->intf_state_mutex);
+ return err;
+ }
+@@ -1365,6 +1367,18 @@ static const struct pci_error_handlers mlx5_err_handler = {
+ .resume = mlx5_pci_resume
+ };
+
++static void shutdown(struct pci_dev *pdev)
++{
++ struct mlx5_core_dev *dev = pci_get_drvdata(pdev);
++ struct mlx5_priv *priv = &dev->priv;
++
++ dev_info(&pdev->dev, "Shutdown was called\n");
++ /* Notify mlx5 clients that the kernel is being shut down */
++ set_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &dev->intf_state);
++ mlx5_unload_one(dev, priv);
++ mlx5_pci_disable_device(dev);
++}
++
+ static const struct pci_device_id mlx5_core_pci_table[] = {
+ { PCI_VDEVICE(MELLANOX, 0x1011) }, /* Connect-IB */
+ { PCI_VDEVICE(MELLANOX, 0x1012) }, /* Connect-IB VF */
+@@ -1382,6 +1396,7 @@ static struct pci_driver mlx5_core_driver = {
+ .id_table = mlx5_core_pci_table,
+ .probe = init_one,
+ .remove = remove_one,
++ .shutdown = shutdown,
+ .err_handler = &mlx5_err_handler
+ };
+
+diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
+index 412aa988c6ad..dc26d9942120 100644
+--- a/include/linux/mlx5/driver.h
++++ b/include/linux/mlx5/driver.h
+@@ -493,8 +493,9 @@ enum mlx5_device_state {
+ };
+
+ enum mlx5_interface_state {
+- MLX5_INTERFACE_STATE_DOWN,
+- MLX5_INTERFACE_STATE_UP,
++ MLX5_INTERFACE_STATE_DOWN = BIT(0),
++ MLX5_INTERFACE_STATE_UP = BIT(1),
++ MLX5_INTERFACE_STATE_SHUTDOWN = BIT(2),
+ };
+
+ enum mlx5_pci_status {
+@@ -518,7 +519,7 @@ struct mlx5_core_dev {
+ enum mlx5_device_state state;
+ /* sync interface state */
+ struct mutex intf_state_mutex;
+- enum mlx5_interface_state interface_state;
++ unsigned long intf_state;
+ void (*event) (struct mlx5_core_dev *dev,
+ enum mlx5_dev_event event,
+ unsigned long param);
+--
+2.8.1
+
diff --git a/openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch b/openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch
new file mode 100644
index 00000000..4705841e
--- /dev/null
+++ b/openpower/linux/0007-powerpc-boot-Add-OPAL-console-to-epapr-wrappers.patch
@@ -0,0 +1,286 @@
+From fb2735117c60dbaa22da54bec8615b2682b66cb9 Mon Sep 17 00:00:00 2001
+From: Oliver O'Halloran <oohall@gmail.com>
+Date: Fri, 24 Jun 2016 17:28:43 +1000
+Subject: [PATCH 07/10] powerpc/boot: Add OPAL console to epapr wrappers
+
+This patch adds an OPAL console backend to the powerpc boot wrapper so
+that decompression failures inside the wrapper can be reported to the
+user. This is important since it typically indicates data corruption in
+the firmware and other nasty things.
+
+Currently this only works when building a little endian kernel. When
+compiling a 64 bit BE kernel the wrapper is always build 32 bit to be
+compatible with some 32 bit firmwares. BE support will be added at a
+later date. Another limitation of this is that only the "raw" type of
+OPAL console is supported, however machines that provide a hvsi console
+also provide a raw console so this is not an issue in practice.
+
+Actually-written-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
+Cc: Stewart Smith <stewart@linux.vnet.ibm.com>
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ arch/powerpc/boot/Makefile | 4 +-
+ arch/powerpc/boot/opal-calls.S | 58 +++++++++++++++++++++++++
+ arch/powerpc/boot/opal.c | 97 ++++++++++++++++++++++++++++++++++++++++++
+ arch/powerpc/boot/ops.h | 1 +
+ arch/powerpc/boot/ppc_asm.h | 4 ++
+ arch/powerpc/boot/serial.c | 2 +
+ arch/powerpc/boot/types.h | 10 +++++
+ 7 files changed, 174 insertions(+), 2 deletions(-)
+ create mode 100644 arch/powerpc/boot/opal-calls.S
+ create mode 100644 arch/powerpc/boot/opal.c
+
+diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
+index 99e4487248ff..321a603f6ae3 100644
+--- a/arch/powerpc/boot/Makefile
++++ b/arch/powerpc/boot/Makefile
+@@ -70,7 +70,7 @@ $(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o): \
+ libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
+ libfdtheader := fdt.h libfdt.h libfdt_internal.h
+
+-$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \
++$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o opal.o): \
+ $(addprefix $(obj)/,$(libfdtheader))
+
+ src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
+@@ -78,7 +78,7 @@ src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
+ ns16550.c serial.c simple_alloc.c div64.S util.S \
+ gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \
+ oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
+- uartlite.c mpc52xx-psc.c
++ uartlite.c mpc52xx-psc.c opal.c opal-calls.S
+ src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
+ src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
+ src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c fsl-soc.c
+diff --git a/arch/powerpc/boot/opal-calls.S b/arch/powerpc/boot/opal-calls.S
+new file mode 100644
+index 000000000000..ff2f1b97bc53
+--- /dev/null
++++ b/arch/powerpc/boot/opal-calls.S
+@@ -0,0 +1,58 @@
++/*
++ * Copyright (c) 2016 IBM Corporation.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++
++#include "ppc_asm.h"
++#include "../include/asm/opal-api.h"
++
++ .text
++
++#define OPAL_CALL(name, token) \
++ .globl name; \
++name: \
++ li r0, token; \
++ b opal_call;
++
++opal_call:
++ mflr r11
++ std r11,16(r1)
++ mfcr r12
++ stw r12,8(r1)
++ mr r13,r2
++
++ /* Set opal return address */
++ ld r11,opal_return@got(r2)
++ mtlr r11
++ mfmsr r12
++
++ /* switch to BE when we enter OPAL */
++ li r11,MSR_LE
++ andc r12,r12,r11
++ mtspr SPRN_HSRR1,r12
++
++ /* load the opal call entry point and base */
++ ld r11,opal@got(r2)
++ ld r12,8(r11)
++ ld r2,0(r11)
++ mtspr SPRN_HSRR0,r12
++ hrfid
++
++opal_return:
++ FIXUP_ENDIAN
++ mr r2,r13;
++ lwz r11,8(r1);
++ ld r12,16(r1)
++ mtcr r11;
++ mtlr r12
++ blr
++
++OPAL_CALL(opal_console_write, OPAL_CONSOLE_WRITE);
++OPAL_CALL(opal_console_read, OPAL_CONSOLE_READ);
++OPAL_CALL(opal_console_write_buffer_space, OPAL_CONSOLE_WRITE_BUFFER_SPACE);
++OPAL_CALL(opal_poll_events, OPAL_POLL_EVENTS);
++OPAL_CALL(opal_console_flush, OPAL_CONSOLE_FLUSH);
+diff --git a/arch/powerpc/boot/opal.c b/arch/powerpc/boot/opal.c
+new file mode 100644
+index 000000000000..3a2ce1e1f048
+--- /dev/null
++++ b/arch/powerpc/boot/opal.c
+@@ -0,0 +1,97 @@
++/*
++ * Copyright (c) 2016 IBM Corporation.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License
++ * as published by the Free Software Foundation; either version
++ * 2 of the License, or (at your option) any later version.
++ */
++
++#include "ops.h"
++#include "stdio.h"
++#include "io.h"
++#include <libfdt.h>
++#include "../include/asm/opal-api.h"
++
++/* Global OPAL struct used by opal-call.S */
++struct opal {
++ u64 base;
++ u64 entry;
++} opal;
++
++static u32 opal_con_id;
++
++int64_t opal_console_write(int64_t term_number, u64 *length, const u8 *buffer);
++int64_t opal_console_read(int64_t term_number, uint64_t *length, u8 *buffer);
++int64_t opal_console_write_buffer_space(uint64_t term_number, uint64_t *length);
++int64_t opal_console_flush(uint64_t term_number);
++int64_t opal_poll_events(uint64_t *outstanding_event_mask);
++
++static int opal_con_open(void)
++{
++ return 0;
++}
++
++static void opal_con_putc(unsigned char c)
++{
++ int64_t rc;
++ uint64_t olen, len;
++
++ do {
++ rc = opal_console_write_buffer_space(opal_con_id, &olen);
++ len = be64_to_cpu(olen);
++ if (rc)
++ return;
++ opal_poll_events(NULL);
++ } while (len < 1);
++
++
++ olen = cpu_to_be64(1);
++ opal_console_write(opal_con_id, &olen, &c);
++}
++
++static void opal_con_close(void)
++{
++ opal_console_flush(opal_con_id);
++}
++
++static void opal_init(void)
++{
++ void *opal_node;
++
++ opal_node = finddevice("/ibm,opal");
++ if (!opal_node)
++ return;
++ if (getprop(opal_node, "opal-base-address", &opal.base, sizeof(u64)) < 0)
++ return;
++ opal.base = be64_to_cpu(opal.base);
++ if (getprop(opal_node, "opal-entry-address", &opal.entry, sizeof(u64)) < 0)
++ return;
++ opal.entry = be64_to_cpu(opal.entry);
++}
++
++#ifdef __powerpc64__
++int opal_console_init(void *devp, struct serial_console_data *scdp)
++{
++ opal_init();
++
++ if (devp) {
++ int n = getprop(devp, "reg", &opal_con_id, sizeof(u32));
++ if (n != sizeof(u32))
++ return -1;
++ opal_con_id = be32_to_cpu(opal_con_id);
++ } else
++ opal_con_id = 0;
++
++ scdp->open = opal_con_open;
++ scdp->putc = opal_con_putc;
++ scdp->close = opal_con_close;
++
++ return 0;
++}
++#else
++int opal_console_init(void *devp, struct serial_console_data *scdp)
++{
++ return -1;
++}
++#endif
+diff --git a/arch/powerpc/boot/ops.h b/arch/powerpc/boot/ops.h
+index 5e75e1c5518e..e19b64ef977a 100644
+--- a/arch/powerpc/boot/ops.h
++++ b/arch/powerpc/boot/ops.h
+@@ -89,6 +89,7 @@ int mpsc_console_init(void *devp, struct serial_console_data *scdp);
+ int cpm_console_init(void *devp, struct serial_console_data *scdp);
+ int mpc5200_psc_console_init(void *devp, struct serial_console_data *scdp);
+ int uartlite_console_init(void *devp, struct serial_console_data *scdp);
++int opal_console_init(void *devp, struct serial_console_data *scdp);
+ void *simple_alloc_init(char *base, unsigned long heap_size,
+ unsigned long granularity, unsigned long max_allocs);
+ extern void flush_cache(void *, unsigned long);
+diff --git a/arch/powerpc/boot/ppc_asm.h b/arch/powerpc/boot/ppc_asm.h
+index 35ea60c1f070..b03373d8b386 100644
+--- a/arch/powerpc/boot/ppc_asm.h
++++ b/arch/powerpc/boot/ppc_asm.h
+@@ -61,6 +61,10 @@
+
+ #define SPRN_TBRL 268
+ #define SPRN_TBRU 269
++#define SPRN_HSRR0 0x13A /* Hypervisor Save/Restore 0 */
++#define SPRN_HSRR1 0x13B /* Hypervisor Save/Restore 1 */
++
++#define MSR_LE 0x0000000000000001
+
+ #define FIXUP_ENDIAN \
+ tdi 0, 0, 0x48; /* Reverse endian of b . + 8 */ \
+diff --git a/arch/powerpc/boot/serial.c b/arch/powerpc/boot/serial.c
+index 167ee9433de6..e04c1e4063ae 100644
+--- a/arch/powerpc/boot/serial.c
++++ b/arch/powerpc/boot/serial.c
+@@ -132,6 +132,8 @@ int serial_console_init(void)
+ else if (dt_is_compatible(devp, "xlnx,opb-uartlite-1.00.b") ||
+ dt_is_compatible(devp, "xlnx,xps-uartlite-1.00.a"))
+ rc = uartlite_console_init(devp, &serial_cd);
++ else if (dt_is_compatible(devp, "ibm,opal-console-raw"))
++ rc = opal_console_init(devp, &serial_cd);
+
+ /* Add other serial console driver calls here */
+
+diff --git a/arch/powerpc/boot/types.h b/arch/powerpc/boot/types.h
+index 31393d17a9c1..85565a89bcc2 100644
+--- a/arch/powerpc/boot/types.h
++++ b/arch/powerpc/boot/types.h
+@@ -12,6 +12,16 @@ typedef short s16;
+ typedef int s32;
+ typedef long long s64;
+
++/* required for opal-api.h */
++typedef u8 uint8_t;
++typedef u16 uint16_t;
++typedef u32 uint32_t;
++typedef u64 uint64_t;
++typedef s8 int8_t;
++typedef s16 int16_t;
++typedef s32 int32_t;
++typedef s64 int64_t;
++
+ #define min(x,y) ({ \
+ typeof(x) _x = (x); \
+ typeof(y) _y = (y); \
+--
+2.8.1
+
diff --git a/openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch b/openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch
new file mode 100644
index 00000000..e4efe68c
--- /dev/null
+++ b/openpower/linux/0008-tty-hvc-Use-opal-irqchip-interface-if-available.patch
@@ -0,0 +1,38 @@
+From 02f5c9908edd9066788c53a0175ba9d3d217248c Mon Sep 17 00:00:00 2001
+From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Date: Wed, 13 Jul 2016 11:15:42 +1000
+Subject: [PATCH 08/10] tty/hvc: Use opal irqchip interface if available
+
+Update the hvc driver to use the OPAL irqchip if made available by the
+running firmware. If it is not present, the driver falls back to the
+existing OPAL event number.
+
+Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Cc: <stable@vger.kernel.org> # 4.1.x-
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/tty/hvc/hvc_opal.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
+index 47b54c6aefd2..276b796b24e4 100644
+--- a/drivers/tty/hvc/hvc_opal.c
++++ b/drivers/tty/hvc/hvc_opal.c
+@@ -214,7 +214,13 @@ static int hvc_opal_probe(struct platform_device *dev)
+ dev->dev.of_node->full_name,
+ boot ? " (boot console)" : "");
+
+- irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
++ irq = irq_of_parse_and_map(dev->dev.of_node, 0);
++ if (!irq) {
++ pr_info("hvc%d: No interrupts property, using OPAL event\n",
++ termno);
++ irq = opal_event_request(ilog2(OPAL_EVENT_CONSOLE_INPUT));
++ }
++
+ if (!irq) {
+ pr_err("hvc_opal: Unable to map interrupt for device %s\n",
+ dev->dev.of_node->full_name);
+--
+2.8.1
+
diff --git a/openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch b/openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch
new file mode 100644
index 00000000..dc675540
--- /dev/null
+++ b/openpower/linux/0009-tty-hvc-Use-IRQF_SHARED-for-OPAL-hvc-consoles.patch
@@ -0,0 +1,88 @@
+From 42474bf9816cd3f7498e606494050ac30cf803e8 Mon Sep 17 00:00:00 2001
+From: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Date: Wed, 13 Jul 2016 11:15:41 +1000
+Subject: [PATCH 09/10] tty/hvc: Use IRQF_SHARED for OPAL hvc consoles
+
+Commit 2def86a7200c
+("hvc: Convert to using interrupts instead of opal events")
+enabled the use of interrupts in the hvc_driver for OPAL platforms.
+However on machines with more than one hvc console, any console after
+the first will fail to register an interrupt handler in
+notifier_add_irq() since all consoles share the same IRQ number but do
+not set the IRQF_SHARED flag:
+
+[ 51.179907] genirq: Flags mismatch irq 31. 00000000 (hvc_console) vs.
+00000000 (hvc_console)
+[ 51.180010] hvc_open: request_irq failed with rc -16.
+
+This error propagates up to hvc_open() and the console is closed, but
+OPAL will still generate interrupts that are not handled, leading to
+rcu_sched stall warnings.
+
+Set IRQF_SHARED when calling request_irq, allowing additional consoles
+to start properly. This is only set for consoles handled by
+hvc_opal_probe(), leaving other types unaffected.
+
+Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
+Cc: <stable@vger.kernel.org> # 4.1.x-
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ drivers/tty/hvc/hvc_console.h | 1 +
+ drivers/tty/hvc/hvc_irq.c | 7 +++++--
+ drivers/tty/hvc/hvc_opal.c | 3 +++
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/tty/hvc/hvc_console.h b/drivers/tty/hvc/hvc_console.h
+index 913101980827..798c48d0d32c 100644
+--- a/drivers/tty/hvc/hvc_console.h
++++ b/drivers/tty/hvc/hvc_console.h
+@@ -60,6 +60,7 @@ struct hvc_struct {
+ struct winsize ws;
+ struct work_struct tty_resize;
+ struct list_head next;
++ unsigned long flags;
+ };
+
+ /* implemented by a low level driver */
+diff --git a/drivers/tty/hvc/hvc_irq.c b/drivers/tty/hvc/hvc_irq.c
+index c9adb0559f61..57d9df7ee1c9 100644
+--- a/drivers/tty/hvc/hvc_irq.c
++++ b/drivers/tty/hvc/hvc_irq.c
+@@ -14,6 +14,9 @@ static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance)
+ /* if hvc_poll request a repoll, then kick the hvcd thread */
+ if (hvc_poll(dev_instance))
+ hvc_kick();
++ /* We're safe to always return IRQ_HANDLED as the hvcd thread will
++ * iterate through each hvc_struct
++ */
+ return IRQ_HANDLED;
+ }
+
+@@ -28,8 +31,8 @@ int notifier_add_irq(struct hvc_struct *hp, int irq)
+ hp->irq_requested = 0;
+ return 0;
+ }
+- rc = request_irq(irq, hvc_handle_interrupt, 0,
+- "hvc_console", hp);
++ rc = request_irq(irq, hvc_handle_interrupt, hp->flags,
++ "hvc_console", hp);
+ if (!rc)
+ hp->irq_requested = 1;
+ return rc;
+diff --git a/drivers/tty/hvc/hvc_opal.c b/drivers/tty/hvc/hvc_opal.c
+index 276b796b24e4..510799311099 100644
+--- a/drivers/tty/hvc/hvc_opal.c
++++ b/drivers/tty/hvc/hvc_opal.c
+@@ -230,6 +230,9 @@ static int hvc_opal_probe(struct platform_device *dev)
+ hp = hvc_alloc(termno, irq, ops, MAX_VIO_PUT_CHARS);
+ if (IS_ERR(hp))
+ return PTR_ERR(hp);
++
++ /* hvc consoles on powernv may need to share a single irq */
++ hp->flags = IRQF_SHARED;
+ dev_set_drvdata(&dev->dev, hp);
+
+ return 0;
+--
+2.8.1
+
diff --git a/openpower/linux/linux-0007-Release-4.4.9-openpower2.patch b/openpower/linux/0010-Release-4.4.16-openpower1.patch
index fc7c869e..d633d26c 100644
--- a/openpower/linux/linux-0007-Release-4.4.9-openpower2.patch
+++ b/openpower/linux/0010-Release-4.4.16-openpower1.patch
@@ -1,7 +1,7 @@
-From 46fa670c69c3a100f3579b59182ae2457d58daf8 Mon Sep 17 00:00:00 2001
+From e27e36de137244ab337ed6a098d9777e6754d806 Mon Sep 17 00:00:00 2001
From: Joel Stanley <joel@jms.id.au>
Date: Thu, 14 Apr 2016 21:40:26 +0930
-Subject: [PATCH 7/7] Release 4.4.9-openpower2
+Subject: [PATCH 10/10] Release 4.4.16-openpower1
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
@@ -9,15 +9,15 @@ Signed-off-by: Joel Stanley <joel@jms.id.au>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 0722cdf52152..a75988596f8f 100644
+index da7621cadc8e..0207133997ad 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 4
PATCHLEVEL = 4
- SUBLEVEL = 9
+ SUBLEVEL = 16
-EXTRAVERSION =
-+EXTRAVERSION = -openpower2
++EXTRAVERSION = -openpower1
NAME = Blurry Fish Butt
# *DOCUMENTATION*
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 c3d0af6a..00000000
--- a/openpower/linux/linux-0002-Revert-usb-xhci-stop-everything-on-the-first-call-to.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 3b14bbcd5006de154dd3a8830a56f3d4a9c3622e 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 ec9e758d5fcd..0e66476d4866 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -666,6 +666,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.
- *
-@@ -680,14 +689,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.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 6118ab41..00000000
--- a/openpower/linux/linux-0003-xhci-do-not-halt-the-secondary-HCD.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From ebac2735434d75a2b2a14506c92300b4088d9d9d 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 0e66476d4866..ce7b10506bac 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -671,7 +671,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.8.1
-
diff --git a/openpower/overlay/etc/fstab b/openpower/overlay/etc/fstab
index d373dc6b..ece6d843 100644
--- a/openpower/overlay/etc/fstab
+++ b/openpower/overlay/etc/fstab
@@ -4,3 +4,4 @@ proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs mode=0777 0 0
sysfs /sys sysfs defaults 0 0
+securityfs /sys/kernel/security securityfs defaults 0 0
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index 902d2ecb..571d4c00 100755
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -1,6 +1,8 @@
source "$BR2_EXTERNAL/package/openpower-ffs/Config.in"
source "$BR2_EXTERNAL/package/hostboot/Config.in"
source "$BR2_EXTERNAL/package/hostboot-binaries/Config.in"
+source "$BR2_EXTERNAL/package/openpower-mrw/Config.in"
+source "$BR2_EXTERNAL/package/common-p8-xml/Config.in"
source "$BR2_EXTERNAL/package/palmetto-xml/Config.in"
source "$BR2_EXTERNAL/package/habanero-xml/Config.in"
source "$BR2_EXTERNAL/package/firestone-xml/Config.in"
diff --git a/openpower/package/barreleye-xml/Config.in b/openpower/package/barreleye-xml/Config.in
index 9187dace..5a8ba74e 100755
--- a/openpower/package/barreleye-xml/Config.in
+++ b/openpower/package/barreleye-xml/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_BARRELEYE_XML
bool "barreleye_xml"
default y if (BR2_OPENPOWER_CONFIG_NAME = "barreleye")
+ select BR2_PACKAGE_COMMON_P8_XML
help
Utilites for building xml and the targeting binary image
diff --git a/openpower/package/barreleye-xml/barreleye-xml.mk b/openpower/package/barreleye-xml/barreleye-xml.mk
index b18b14c0..13a33650 100755
--- a/openpower/package/barreleye-xml/barreleye-xml.mk
+++ b/openpower/package/barreleye-xml/barreleye-xml.mk
@@ -4,11 +4,11 @@
#
################################################################################
-BARRELEYE_XML_VERSION ?= 81ac3ff3c4ccd16d2174f455c1cb17976daca948
+BARRELEYE_XML_VERSION ?= 253622f22fe142ea67a0025e9bcc3044db038898
BARRELEYE_XML_SITE = $(call github,open-power,barreleye-xml,$(BARRELEYE_XML_VERSION))
BARRELEYE_XML_LICENSE = Apache-2.0
-BARRELEYE_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+BARRELEYE_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
BARRELEYE_XML_INSTALL_IMAGES = YES
BARRELEYE_XML_INSTALL_TARGET = YES
diff --git a/openpower/package/common-p8-xml/Config.in b/openpower/package/common-p8-xml/Config.in
index e69de29b..2c017028 100644
--- a/openpower/package/common-p8-xml/Config.in
+++ b/openpower/package/common-p8-xml/Config.in
@@ -0,0 +1,4 @@
+config BR2_PACKAGE_COMMON_P8_XML
+ bool "Common P8 XML files"
+ default y if BR2_PACKAGE_HOSTBOOT
+ select BR2_PACKAGE_OPENPOWER_MRW
diff --git a/openpower/package/firestone-xml/Config.in b/openpower/package/firestone-xml/Config.in
index f0c09489..3990b29a 100755
--- a/openpower/package/firestone-xml/Config.in
+++ b/openpower/package/firestone-xml/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_FIRESTONE_XML
bool "firestone_xml"
default y if (BR2_OPENPOWER_CONFIG_NAME = "firestone")
+ select BR2_PACKAGE_COMMON_P8_XML
help
Utilites for building xml and the targeting binary image
diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
index 5f631fd8..c86a4412 100644
--- a/openpower/package/firestone-xml/firestone.mk
+++ b/openpower/package/firestone-xml/firestone.mk
@@ -4,11 +4,11 @@
#
################################################################################
-FIRESTONE_XML_VERSION ?= 15e371874a8dec1d8ef279aef2d0a0fed3ded8dd
+FIRESTONE_XML_VERSION ?= 783df1f6efce8f0283ca6683825578d1a260cad3
FIRESTONE_XML_SITE ?= $(call github,open-power,firestone-xml,$(FIRESTONE_XML_VERSION))
FIRESTONE_XML_LICENSE = Apache-2.0
-FIRESTONE_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+FIRESTONE_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
FIRESTONE_XML_INSTALL_IMAGES = YES
FIRESTONE_XML_INSTALL_TARGET = YES
diff --git a/openpower/package/garrison-xml/Config.in b/openpower/package/garrison-xml/Config.in
index a1626d02..a71a2c84 100755
--- a/openpower/package/garrison-xml/Config.in
+++ b/openpower/package/garrison-xml/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_GARRISON_XML
bool "garrison_xml"
default y if (BR2_OPENPOWER_CONFIG_NAME = "garrison")
+ select BR2_PACKAGE_COMMON_P8_XML
help
Utilites for building xml and the targeting binary image
diff --git a/openpower/package/garrison-xml/garrison.mk b/openpower/package/garrison-xml/garrison.mk
index a3b019f7..80fa36e7 100644
--- a/openpower/package/garrison-xml/garrison.mk
+++ b/openpower/package/garrison-xml/garrison.mk
@@ -4,11 +4,11 @@
#
################################################################################
-GARRISON_XML_VERSION ?= 124e1216e3d19715baaf576d809209124c73313e
+GARRISON_XML_VERSION ?= a207cab42b8c73db783d96975cb81b2ab9462ea7
GARRISON_XML_SITE ?= $(call github,open-power,garrison-xml,$(GARRISON_XML_VERSION))
GARRISON_XML_LICENSE = Apache-2.0
-GARRISON_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+GARRISON_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
GARRISON_XML_INSTALL_IMAGES = YES
GARRISON_XML_INSTALL_TARGET = YES
diff --git a/openpower/package/habanero-xml/Config.in b/openpower/package/habanero-xml/Config.in
index 2939cb62..02420ce2 100755
--- a/openpower/package/habanero-xml/Config.in
+++ b/openpower/package/habanero-xml/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_HABANERO_XML
bool "habanero_xml"
default y if (BR2_OPENPOWER_CONFIG_NAME = "habanero")
+ select BR2_PACKAGE_COMMON_P8_XML
help
Utilites for building xml and the targeting binary image
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
index b85a9520..307c47d8 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,11 +4,11 @@
#
################################################################################
-HABANERO_XML_VERSION ?= 5a2a5413a6e2cd55f2e30342e898980a3d3a15d7
+HABANERO_XML_VERSION ?= 5565b8fe1feaa4cdb3b296912069c02f46c4cc59
HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
HABANERO_XML_LICENSE = Apache-2.0
-HABANERO_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+HABANERO_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
HABANERO_XML_INSTALL_IMAGES = YES
HABANERO_XML_INSTALL_TARGET = YES
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index af6df352..c2a45602 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
#
################################################################################
-HOSTBOOT_VERSION ?= dcf07f54b2b8cdf15ee930cc027660d37637331e
+HOSTBOOT_VERSION ?= 1f6784db750fc7df499381496b82c8ca4472d375
HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
HOSTBOOT_LICENSE = Apache-2.0
@@ -23,7 +23,7 @@ define HOSTBOOT_BUILD_CMDS
endef
define HOSTBOOT_INSTALL_IMAGES_CMDS
- cd $(@D) && $(@D)/src/build/tools/hbDistribute --openpower $(STAGING_DIR)/hostboot_build_images/
+ cd $(@D) && source ./env.bash && $(@D)/src/build/tools/hbDistribute --openpower $(STAGING_DIR)/hostboot_build_images/
endef
$(eval $(generic-package))
diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk
index d18c3e57..bcf165b8 100644
--- a/openpower/package/occ/occ.mk
+++ b/openpower/package/occ/occ.mk
@@ -4,7 +4,7 @@
#
################################################################################
-OCC_VERSION ?= 19a3ebc0f759ba4af88ef1664c0e373cd8487653
+OCC_VERSION ?= 69fb5874cd32bb827b0699d08f385adc8e9de374
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-mrw/Config.in b/openpower/package/openpower-mrw/Config.in
index e69de29b..633e1664 100644
--- a/openpower/package/openpower-mrw/Config.in
+++ b/openpower/package/openpower-mrw/Config.in
@@ -0,0 +1,3 @@
+config BR2_PACKAGE_OPENPOWER_MRW
+ bool "Machine Readable Workbook (MRW) infrastructure"
+ default y if BR2_PACKAGE_HOSTBOOT
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index cc7cc711..7719eda6 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -1,6 +1,17 @@
config BR2_PACKAGE_OPENPOWER_PNOR
bool "openpower_pnor"
default y if (BR2_OPENPOWER_PLATFORM && BR2_powerpc_power8)
+ select BR2_PACKAGE_HOSTBOOT
+ select BR2_PACKAGE_HOSTBOOT_BINARIES
+ select BR2_PACKAGE_SKIBOOT
+ select BR2_PACKAGE_OPENPOWER_FFS
+ select BR2_PACKAGE_OCC
+ select BR2_PACKAGE_CAPP_UCODE
+ select BR2_PACKAGE_BARRELEYE_XML if (BR2_OPENPOWER_XML_PACKAGE = "barreleye-xml")
+ select BR2_PACKAGE_FIRESTONE_XML if (BR2_OPENPOWER_XML_PACKAGE = "firestone-xml")
+ select BR2_PACKAGE_GARRISON_XML if (BR2_OPENPOWER_XML_PACKAGE = "garrison-xml")
+ select BR2_PACKAGE_HABANERO_XML if (BR2_OPENPOWER_XML_PACKAGE = "habanero-xml")
+ select BR2_PACKAGE_PALMETTO_XML if (BR2_OPENPOWER_XML_PACKAGE = "palmetto-xml")
help
Utilites for building a targeting binary image
@@ -37,7 +48,8 @@ config BR2_SKIBOOT_LID_NAME
config BR2_TARGET_SKIBOOT_XZ
boolean "Compress the skiboot image with XZ"
- default n
+ select BR2_OPENPOWER_PNOR_XZ_ENABLED
+ default y
config BR2_SKIBOOT_LID_XZ_NAME
string "Name of compressed skiboot lid"
@@ -73,6 +85,5 @@ config BR2_OPENPOWER_TARGETING_ECC_FILENAME
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
+ bool "Enable xz compression in PNOR payloads"
+ default n
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index c4184f41..1e777ada 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -8,7 +8,7 @@
# make doesn't care for quotes in the dependencies.
XML_PACKAGE=$(subst $\",,$(BR2_OPENPOWER_XML_PACKAGE))
-OPENPOWER_PNOR_VERSION ?= b937782225b96b6fb176f8acb59278026c8d9fd6
+OPENPOWER_PNOR_VERSION ?= cdfe37976dae7d3171ce9b999cf91f1b5d80e9cc
OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
OPENPOWER_PNOR_LICENSE = Apache-2.0
@@ -25,7 +25,7 @@ endif
endif
ifeq ($(BR2_OPENPOWER_PNOR_XZ_ENABLED),y)
-OPENPOWER_PNOR_DEPENDENCIES += host_xz
+OPENPOWER_PNOR_DEPENDENCIES += host-xz
endif
@@ -58,7 +58,7 @@ define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS
-capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \
-openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE) \
-payload $(BINARIES_DIR)/$(BR2_SKIBOOT_LID_NAME) \
- -xz_compression $(BR2_OPENPOWER_PNOR_XZ_ENABLED)
+ $(if ($(BR2_OPENPOWER_PNOR_XZ_ENABLED),y),-xz_compression true)
mkdir -p $(STAGING_DIR)/pnor/
$(TARGET_MAKE_ENV) $(@D)/create_pnor_image.pl \
@@ -74,8 +74,7 @@ define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS
-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) \
- -xz_compression $(BR2_OPENPOWER_PNOR_XZ_ENABLED)
+ -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
$(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) $(BINARIES_DIR)
diff --git a/openpower/package/palmetto-xml/Config.in b/openpower/package/palmetto-xml/Config.in
index b07d5174..05a094f7 100755
--- a/openpower/package/palmetto-xml/Config.in
+++ b/openpower/package/palmetto-xml/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_PALMETTO_XML
bool "palmetto_xml"
default y if (BR2_OPENPOWER_CONFIG_NAME = "palmetto")
+ select BR2_PACKAGE_COMMON_P8_XML
help
Utilites for building xml and the targeting binary image
diff --git a/openpower/package/palmetto-xml/palmetto-xml.mk b/openpower/package/palmetto-xml/palmetto-xml.mk
index 8130f4e2..7cc554dd 100644
--- a/openpower/package/palmetto-xml/palmetto-xml.mk
+++ b/openpower/package/palmetto-xml/palmetto-xml.mk
@@ -4,11 +4,11 @@
#
################################################################################
-PALMETTO_XML_VERSION ?= 82818682f2c2009c30d700df6d5f8897a3096e4f
+PALMETTO_XML_VERSION ?= c6f563966e9fadc4fb60194c064b2310c9b916b1
PALMETTO_XML_SITE = $(call github,open-power,palmetto-xml,$(PALMETTO_XML_VERSION))
PALMETTO_XML_LICENSE = Apache-2.0
-PALMETTO_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
+PALMETTO_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
PALMETTO_XML_INSTALL_IMAGES = YES
PALMETTO_XML_INSTALL_TARGET = YES
diff --git a/openpower/package/petitboot/Config.in b/openpower/package/petitboot/Config.in
index e5769de8..327f8524 100644
--- a/openpower/package/petitboot/Config.in
+++ b/openpower/package/petitboot/Config.in
@@ -13,8 +13,6 @@ config BR2_PACKAGE_PETITBOOT
select BR2_PACKAGE_POWERPC_UTILS if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
# run-time dependency only
select BR2_PACKAGE_IPRUTILS if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
- # run-time dependency only
- select BR2_PACKAGE_NVME if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
help
Petitboot is a small kexec-based bootloader
diff --git a/openpower/package/petitboot/petitboot.mk b/openpower/package/petitboot/petitboot.mk
index 21d673b1..4d943617 100644
--- a/openpower/package/petitboot/petitboot.mk
+++ b/openpower/package/petitboot/petitboot.mk
@@ -4,7 +4,7 @@
#
################################################################################
-PETITBOOT_VERSION = v1.0.1
+PETITBOOT_VERSION = v1.2.1
PETITBOOT_SITE ?= $(call github,open-power,petitboot,$(PETITBOOT_VERSION))
PETITBOOT_DEPENDENCIES = ncurses udev host-bison host-flex lvm2
PETITBOOT_LICENSE = GPLv2
@@ -19,6 +19,8 @@ PETITBOOT_CONF_OPTS += --with-ncurses --without-twin-x11 --without-twin-fbdev \
HOST_PROG_SHUTDOWN=/usr/libexec/petitboot/bb-kexec-reboot \
$(if $(BR2_PACKAGE_BUSYBOX),--with-tftp=busybox)
+PETITBOOT_AUTORECONF_ENV += PETITBOOT_VERSION=`cat $(PETITBOOT_VERSION_FILE) | cut -d '-' -f 2-`
+
ifdef PETITBOOT_DEBUG
PETITBOOT_CONF_OPTS += --enable-debug
endif
diff --git a/openpower/package/pkg-versions.mk b/openpower/package/pkg-versions.mk
index 474d455b..5ad13235 100644
--- a/openpower/package/pkg-versions.mk
+++ b/openpower/package/pkg-versions.mk
@@ -114,7 +114,7 @@ endef ###
# Add appropriate templates to hooks
$(2)_POST_PATCH_HOOKS += $(2)_OPENPOWER_PATCH_FILE
-$(2)_PRE_BUILD_HOOKS += $(2)_OPENPOWER_VERSION_FILE
+$(2)_PRE_CONFIGURE_HOOKS += $(2)_OPENPOWER_VERSION_FILE
# Top-level rule to print or generate a subpackage version
$(1)-version: $$(if $$(wildcard $$($(2)_VERSION_FILE)),$(1)-print-version,$(1)-build-version)
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 277a3b55..be8370e8 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -31,7 +31,7 @@ config BR2_SKIBOOT_CUSTOM_VERSION_VALUE
config BR2_SKIBOOT_VERSION
string
- default "skiboot-5.2.2" if BR2_SKIBOOT_LATEST_VERSION
+ default "skiboot-5.2.5" if BR2_SKIBOOT_LATEST_VERSION
default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
if BR2_SKIBOOT_CUSTOM_VERSION
diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk
index 90b21104..8ff91591 100644
--- a/openpower/package/skiboot/skiboot.mk
+++ b/openpower/package/skiboot/skiboot.mk
@@ -7,6 +7,7 @@
SKIBOOT_VERSION = $(call qstrip,$(BR2_SKIBOOT_VERSION))
SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION))
+SKIBOOT_LICENSE = Apache-2.0
SKIBOOT_INSTALL_IMAGES = YES
SKIBOOT_INSTALL_TARGET = NO
diff --git a/openpower/scripts/firenze-firmware-whitelist b/openpower/scripts/firenze-firmware-whitelist
new file mode 100755
index 00000000..801ef8b4
--- /dev/null
+++ b/openpower/scripts/firenze-firmware-whitelist
@@ -0,0 +1,46 @@
+#!/bin/bash
+# Scan the /lib/firmware directory of the target and delete any firmware
+# binaries that are not in our whitelist
+
+# A whitelist of entire directories or specific binary files
+whitelist=( 'acenic'
+ 'bnx2'
+ 'bnx2x'
+ 'cxgb4'
+ 'cxgb3'
+ 'e100'
+ 'radeon/CAICOS_me.bin'
+ 'radeon/CEDAR_rlc.bin'
+ 'radeon/CAICOS_mc.bin'
+ 'radeon/CAICOS_pfp.bin'
+ 'radeon/CEDAR_pfp.bin'
+ 'radeon/CAICOS_smc.bin'
+ 'radeon/CEDAR_smc.bin'
+ 'radeon/CEDAR_me.bin'
+ 'radeon/CYPRESS_uvd.bin')
+
+if [ -z "${TARGET_DIR}" ] ; then
+ echo "TARGET_DIR not defined, setting to $1"
+ TARGET_DIR=$1
+fi
+
+files=$(find ${TARGET_DIR}/lib/firmware/*)
+for file in ${files};
+do
+ if [ -d $file ] ; then
+ continue
+ fi
+
+ found=0
+ for item in ${whitelist[@]};
+ do
+ if [ "${file/${item}}" != "${file}" ] ; then
+ found=1
+ break
+ fi
+ done
+
+ if [ "${found}" -ne "1" ] ; then
+ rm -v ${file}
+ fi
+done
diff --git a/openpower/scripts/op-target-dependencies b/openpower/scripts/op-target-dependencies
index cd24a56b..c99c69d2 100755
--- a/openpower/scripts/op-target-dependencies
+++ b/openpower/scripts/op-target-dependencies
@@ -56,7 +56,6 @@ sub package_deps
my $package = shift;
my $level = shift;
- $package =~ s/-install-images//; # Strip off -install-images subpass.
$package =~ s/-rebuild.*//; # Strip off -rebuild* subpass.
$package =~ s/linux[0-9]*/linux/; # Strip off linux version.
diff --git a/openpower/scripts/release-notes b/openpower/scripts/release-notes
new file mode 100755
index 00000000..402c88d0
--- /dev/null
+++ b/openpower/scripts/release-notes
@@ -0,0 +1,180 @@
+#!/bin/env perl
+use strict;
+
+my $repos =
+{
+ 'op-build' => { REPO => "http://github.com/open-power/op-build" },
+ 'hostboot' => { REPO => "http://github.com/open-power/hostboot" ,
+ DIR => "openpower/package/hostboot",
+ PACKAGE => "HOSTBOOT" },
+ 'skiboot' => { REPO => "http://github.com/open-power/skiboot" ,
+ DIR => "openpower/package/skiboot",
+ PACKAGE => "SKIBOOT" },
+ 'occ' => { REPO => "http://github.com/open-power/occ" ,
+ DIR => "openpower/package/occ",
+ PACKAGE => "OCC" },
+ 'pnor' => { REPO => "http://github.com/open-power/pnor" ,
+ DIR => "openpower/package/openpower-pnor",
+ PACKAGE => "OPENPOWER_PNOR" },
+ 'palmetto-xml' => { REPO => "http://github.com/open-power/palmetto-xml" ,
+ DIR => "openpower/package/palmetto-xml",
+ PACKAGE => "PALMETTO_XML" },
+ 'habanero-xml' => { REPO => "http://github.com/open-power/habanero-xml" ,
+ DIR => "openpower/package/habanero-xml",
+ PACKAGE => "HABANERO_XML" },
+ 'firestone-xml' => { REPO => "http://github.com/open-power/firestone-xml" ,
+ DIR => "openpower/package/firestone-xml",
+ PACKAGE => "FIRESTONE_XML" },
+ 'garrison-xml' => { REPO => "http://github.com/open-power/garrison-xml" ,
+ DIR => "openpower/package/garrison-xml",
+ PACKAGE => "GARRISON_XML" },
+ 'barreleye-xml' => { REPO => "http://github.com/open-power/barreleye-xml" ,
+ DIR => "openpower/package/barreleye-xml",
+ PACKAGE => "BARRELEYE_XML" },
+ 'petitboot' => { REPO => "http://github.com/open-power/petitboot" ,
+ DIR => "openpower/package/petitboot",
+ PACKAGE => "PETITBOOT" },
+};
+
+my $begin_release = shift;
+my $end_release = shift;
+
+foreach my $repo (keys %{$repos})
+{
+ if (-e $repo)
+ {
+ system("cd $repo; git fetch") && die "Could not fetch $repo";
+ }
+ else
+ {
+ system("git clone $repos->{$repo}->{REPO} $repo") &&
+ die "Could not clone $repo";
+ }
+}
+
+system("cd op-build; git checkout $end_release --force; git reset HEAD --hard");
+
+
+open(OP_SUMMARY, "cd op-build; ".
+ "git diff $begin_release...$end_release --name-only |".
+ "grep -e \"\.mk\" -e \"Config.in\" |".
+ "xargs git diff $begin_release...$end_release -- |".
+ "grep -e '^[+-][^[:space:]]*_VERSION' ".
+ "-e'^[+-][[:space:]]*default.*if.*LATEST_VERSION' |") || die;
+
+my $old_level = {};
+my $new_level = {};
+
+while(my $line = <OP_SUMMARY>)
+{
+ chomp $line;
+ if ($line =~ m/\$/) # Sanity check there are not variables here.
+ {
+ next;
+ }
+ if ($line =~ m/-([^[:space:]]*)_VERSION([[:space:]]*\?*=[[:space:]]*)(.*)/)
+ {
+ print "Old $1:$3\n";
+ $old_level->{$1} = $3;
+ }
+ if ($line =~ m/\+([^[:space:]]*)_VERSION([[:space:]]*\?*=[[:space:]]*)(.*)/)
+ {
+ print "New $1:$3\n";
+ $new_level->{$1} = $3;
+ }
+ if ($line =~ m/-[[:space:]]*default[[:space:]]*"([^[:space:]]*)"[[:space:]]*if[[:space:]]BR2_([^[:space:]]*)_LATEST_VERSION/)
+ {
+ print "Old $2:$1\n";
+ $old_level->{$2} = $1;
+ }
+ if ($line =~ m/\+[[:space:]]*default[[:space:]]*"([^[:space:]]*)"[[:space:]]*if[[:space:]]BR2_([^[:space:]]*)_LATEST_VERSION/)
+ {
+ print "New $2:$1\n";
+ $new_level->{$2} = $1;
+ }
+}
+
+open(OUTPUT, "> RELEASE.md") || die "Failed to open RELEASE.md";
+
+print OUTPUT "# Release Notes for OpenPower Firmware $end_release\n";
+
+my $op_url = $repos->{'op-build'}->{REPO};
+
+foreach my $repo (sort keys %{$repos})
+{
+ next if (not exists $repos->{$repo}->{PACKAGE});
+
+ my $package = $repos->{$repo}->{PACKAGE};
+ my $url = $repos->{$repo}->{REPO};
+ my $dir = $repos->{$repo}->{DIR};
+
+ print OUTPUT "## Package: $repo\n";
+ print OUTPUT "[Repository]($url)\n";
+ print OUTPUT "\n";
+
+ my $package = $repos->{$repo}->{PACKAGE};
+
+ # Display patches.
+ if (open(LSLOG, "ls op-build/$dir/*.patch | ".
+ "xargs -n1 --no-run-if-empty basename |"))
+ {
+ print OUTPUT "### Patches\n";
+ while (my $logline = <LSLOG>)
+ {
+ chomp $logline;
+ print OUTPUT "* [$logline]".
+ "($op_url/tree/$end_release/$dir/$logline)\n";
+ }
+ close LSLOG;
+ print OUTPUT "\n";
+ }
+ else
+ {
+ print OUTPUT "None.\n";
+ }
+
+ # Display changes.
+ print OUTPUT "### Commits\n";
+ if ((not exists $old_level->{$package}) &&
+ (not exists $new_level->{$package}))
+ {
+ # No change identified.
+ print "No changes: $repo\n";
+ print OUTPUT "No changes.\n";
+ next;
+ }
+
+ if ((exists $old_level->{$package}) &&
+ (exists $new_level->{$package}))
+ {
+ print "Changes in $repo...\n";
+
+ open(GITLOG, "cd $repo; git shortlog $old_level->{$package}...".
+ "$new_level->{$package} --no-merges --format=".
+ "\"* [%h]($url/commit/%h) %s\" |");
+
+ while (my $logline = <GITLOG>)
+ {
+ chomp $logline;
+ $logline =~ s/^[[:space:]]*//;
+ print OUTPUT "$logline\n";
+ }
+ close GITLOG;
+ print OUTPUT "\n";
+ next;
+ }
+
+ if (not exists $old_level->{$package})
+ {
+ print "New package $repo.\n";
+ print OUTPUT "New package.\n";
+ next;
+ }
+
+ if (not exists $new_level->{$package})
+ {
+ print "Deleted package $repo.\n";
+ print OUTPUT "Package removed.\n";
+ next;
+ }
+}
OpenPOWER on IntegriCloud