Merge remote-tracking branch 'remotes/upstream/master'
diff --git a/buildroot b/buildroot
index c28573e..23118ce 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit c28573e576611706ffe34819109d3beacb8ff6a8
+Subproject commit 23118cea706cc738c334b868606b19bfda016705
diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index b25db86..d3e3943 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -40,12 +40,15 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER8=y
BR2_HOSTBOOT_CONFIG_FILE="barreleye.config"
-BR2_BARRELEYE_SYSTEM_XML_FILENAME="BARRELEYE_hb.system.xml"
-BR2_BARRELEYE_MRW_XML_FILENAME="BARRELEYE_hb.mrw.xml"
-BR2_BARRELEYE_BIOS_XML_FILENAME="BARRELEYE_bios.xml"
+BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML=y
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="barreleye-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="253622f22fe142ea67a0025e9bcc3044db038898"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="barreleye.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="BARRELEYE_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="BARRELEYE_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="BARRELEYE_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
BR2_OPENPOWER_CONFIG_NAME="barreleye"
-BR2_OPENPOWER_XML_PACKAGE="barreleye-xml"
BR2_OPENPOWER_PNOR_FILENAME="barreleye.pnor"
BR2_OPENPOWER_PNOR_UPDATE_FILENAME="barreleye_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
diff --git a/openpower/configs/firenze_defconfig b/openpower/configs/firenze_defconfig
index 1fd42f9..13d4990 100644
--- a/openpower/configs/firenze_defconfig
+++ b/openpower/configs/firenze_defconfig
@@ -15,7 +15,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -41,6 +41,7 @@
BR2_OPENPOWER_POWER8=y
# BR2_PACKAGE_HOSTBOOT is not set
# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
+# BR2_PACKAGE_MACHINE_XML is not set
# BR2_PACKAGE_OPENPOWER_PNOR is not set
BR2_OPENPOWER_CONFIG_NAME="openpower-firenze"
BR2_PACKAGE_PETITBOOT=y
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 9715034..46f7956 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -40,12 +40,14 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER8=y
BR2_HOSTBOOT_CONFIG_FILE="firestone.config"
-BR2_FIRESTONE_SYSTEM_XML_FILENAME="FIRESTONE_hb.system.xml"
-BR2_FIRESTONE_MRW_XML_FILENAME="FIRESTONE_hb.mrw.xml"
-BR2_FIRESTONE_BIOS_XML_FILENAME="FIRESTONE_bios.xml"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="firestone-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="2494a430656504d014780000adbc2c2e7cfc54ab"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="firestone.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="FIRESTONE_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="FIRESTONE_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="FIRESTONE_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
BR2_OPENPOWER_CONFIG_NAME="firestone"
-BR2_OPENPOWER_XML_PACKAGE="firestone-xml"
BR2_OPENPOWER_PNOR_FILENAME="firestone.pnor"
BR2_OPENPOWER_PNOR_UPDATE_FILENAME="firestone_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index a73cb8d..172a8f7 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -40,12 +40,14 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER8=y
BR2_HOSTBOOT_CONFIG_FILE="garrison.config"
-BR2_GARRISON_SYSTEM_XML_FILENAME="GARRISON_hb.system.xml"
-BR2_GARRISON_MRW_XML_FILENAME="GARRISON_hb.mrw.xml"
-BR2_GARRISON_BIOS_XML_FILENAME="GARRISON_bios.xml"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="garrison-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="19a516499e1090c20c5a3303db256529ef22c1c9"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="garrison.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="GARRISON_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="GARRISON_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="GARRISON_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
BR2_OPENPOWER_CONFIG_NAME="garrison"
-BR2_OPENPOWER_XML_PACKAGE="garrison-xml"
BR2_OPENPOWER_PNOR_FILENAME="garrison.pnor"
BR2_OPENPOWER_PNOR_UPDATE_FILENAME="garrison_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="naples_sbe.img.ecc"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index 2bed733..f4ebe50 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -1,5 +1,6 @@
BR2_powerpc64le=y
BR2_powerpc_power8=y
+BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/habanero-patches"
BR2_GLIBC_VERSION_2_24=y
BR2_BINUTILS_VERSION_2_27_X=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
@@ -16,7 +17,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -40,12 +41,15 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER8=y
BR2_HOSTBOOT_CONFIG_FILE="habanero.config"
-BR2_HABANERO_SYSTEM_XML_FILENAME="HABANERO_hb.system.xml"
-BR2_HABANERO_MRW_XML_FILENAME="HABANERO_hb.mrw.xml"
-BR2_HABANERO_BIOS_XML_FILENAME="HABANERO_bios.xml"
+BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML=y
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="habanero-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="6a78496c286e284719a8201148a5088030b897de"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="habanero.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="HABANERO_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="HABANERO_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="HABANERO_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
BR2_OPENPOWER_CONFIG_NAME="habanero"
-BR2_OPENPOWER_XML_PACKAGE="habanero-xml"
BR2_OPENPOWER_PNOR_FILENAME="habanero.pnor"
BR2_OPENPOWER_PNOR_UPDATE_FILENAME="habanero_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
diff --git a/openpower/configs/hostboot/witherspoon.config b/openpower/configs/hostboot/witherspoon.config
index 8777ea9..a3380fb 100755
--- a/openpower/configs/hostboot/witherspoon.config
+++ b/openpower/configs/hostboot/witherspoon.config
@@ -1,6 +1,8 @@
-# The Serial Flash Controller is the AST2400 BMC.
-set SFC_IS_AST2500
+# The BMC MBOX Protocol is used to access PNOR
+unset SFC_IS_AST2500
unset SFC_IS_AST2400
+set PNORDD_IS_BMCMBOX
+unset PNORDD_IS_SFC
unset BMC_DOES_SFC_INIT
unset SFC_IS_IBM_DPSS
set ALLOW_MICRON_PNOR
@@ -15,12 +17,12 @@
set DJVPD_WRITE_TO_HW
set DJVPD_READ_FROM_PNOR
set DJVPD_WRITE_TO_PNOR
-unset MEMVPD_READ_FROM_HW
-unset MEMVPD_WRITE_TO_HW
+set MEMVPD_READ_FROM_HW
+set MEMVPD_WRITE_TO_HW
set MEMVPD_READ_FROM_PNOR
set MEMVPD_WRITE_TO_PNOR
-unset PVPD_READ_FROM_HW
-unset PVPD_WRITE_TO_HW
+set PVPD_READ_FROM_HW
+set PVPD_WRITE_TO_HW
set PVPD_READ_FROM_PNOR
set PVPD_WRITE_TO_PNOR
unset CDIMM_FORMAT_FOR_CVPD
@@ -41,12 +43,15 @@
set CONSOLE
set BMC_AST2500
-set DISABLE_HOSTBOOT_RUNTIME
+unset DISABLE_HOSTBOOT_RUNTIME
# Compile in hostboot runtime PRD
set HBRT_PRD
-unset HTMGT
-unset START_OCC_DURING_BOOT
+
+# Compile in hb rt HTMGT : Load/Start OCC
+set HTMGT
+set START_OCC_DURING_BOOT
+unset CONSOLE_OUTPUT_OCC_COMM
#PNOR flags
unset PNOR_TWO_SIDE_SUPPORT
diff --git a/openpower/configs/hostboot/zaius.config b/openpower/configs/hostboot/zaius.config
index 099e62c..cd0390e 100755
--- a/openpower/configs/hostboot/zaius.config
+++ b/openpower/configs/hostboot/zaius.config
@@ -1,6 +1,8 @@
-# The Serial Flash Controller is the AST2500 BMC.
-set SFC_IS_AST2500
+# The BMC MBOX Protocol is used to access PNOR
+unset SFC_IS_AST2500
unset SFC_IS_AST2400
+set PNORDD_IS_BMCMBOX
+unset PNORDD_IS_SFC
unset BMC_DOES_SFC_INIT
unset SFC_IS_IBM_DPSS
set ALLOW_MICRON_PNOR
@@ -41,7 +43,7 @@
set CONSOLE
set BMC_AST2500
-set DISABLE_HOSTBOOT_RUNTIME
+unset DISABLE_HOSTBOOT_RUNTIME
# Compile in hostboot runtime PRD
set HBRT_PRD
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index d8b8b1b..7e86f24 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -39,7 +39,6 @@
# CONFIG_PPC_PSERIES is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_IDLE=y
-CONFIG_GEN_RTC=y
CONFIG_HZ_100=y
CONFIG_KEXEC=y
CONFIG_IRQ_ALL_CPUS=y
@@ -52,7 +51,6 @@
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=tty0 console=hvc0 quiet"
# CONFIG_SECCOMP is not set
-CONFIG_PCI_MSI=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
@@ -151,7 +149,6 @@
CONFIG_NETXEN_NIC=m
CONFIG_SFC=m
# CONFIG_WLAN is not set
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_MISC=y
# CONFIG_SERIO_SERPORT is not set
@@ -189,6 +186,8 @@
# CONFIG_USB_EHCI_HCD_PPC_OF is not set
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GENERIC=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_PCI=y
# CONFIG_IOMMU_SUPPORT is not set
@@ -221,7 +220,6 @@
CONFIG_CRC_ITU_T=y
CONFIG_LIBCRC32C=y
CONFIG_PRINTK_TIME=y
-CONFIG_DEBUG_FS=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_STACKOVERFLOW=y
diff --git a/openpower/configs/linux/skiroot_p9_defconfig b/openpower/configs/linux/skiroot_p9_defconfig
index a6f9452..9884909 100644
--- a/openpower/configs/linux/skiroot_p9_defconfig
+++ b/openpower/configs/linux/skiroot_p9_defconfig
@@ -39,7 +39,6 @@
# CONFIG_PPC_PSERIES is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CONFIG_CPU_IDLE=y
-CONFIG_GEN_RTC=y
CONFIG_HZ_100=y
CONFIG_KEXEC=y
CONFIG_IRQ_ALL_CPUS=y
@@ -52,7 +51,6 @@
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=tty0 console=hvc0 powersave=off"
# CONFIG_SECCOMP is not set
-CONFIG_PCI_MSI=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
@@ -143,7 +141,6 @@
CONFIG_NETXEN_NIC=m
CONFIG_SFC=m
# CONFIG_WLAN is not set
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_MISC=y
# CONFIG_SERIO_SERPORT is not set
@@ -180,6 +177,8 @@
# CONFIG_USB_EHCI_HCD_PPC_OF is not set
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_STORAGE=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_GENERIC=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_PCI=y
# CONFIG_IOMMU_SUPPORT is not set
@@ -208,7 +207,6 @@
CONFIG_CRC_ITU_T=y
CONFIG_LIBCRC32C=y
CONFIG_PRINTK_TIME=y
-CONFIG_DEBUG_FS=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_STACKOVERFLOW=y
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index f3a61ce..cf7a6fd 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -14,7 +14,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -37,10 +37,14 @@
BR2_TARGET_ROOTFS_INITRAMFS=y
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER8=y
+# BR2_PACKAGE_HOST_OPENPOWER_FFS is not set
# BR2_PACKAGE_HOSTBOOT is not set
# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
+# BR2_PACKAGE_MACHINE_XML is not set
# BR2_PACKAGE_OPENPOWER_PNOR is not set
BR2_OPENPOWER_CONFIG_NAME="openpower-mambo"
BR2_PACKAGE_PETITBOOT=y
+# BR2_PACKAGE_HOST_P8_PORE_BINUTILS is not set
# BR2_PACKAGE_OCC is not set
+# BR2_PACKAGE_CAPP_UCODE is not set
# BR2_PACKAGE_IMA_CATALOG is not set
diff --git a/openpower/configs/openpower_p9_mambo_defconfig b/openpower/configs/openpower_p9_mambo_defconfig
index 5b782cf..c00a5fd 100644
--- a/openpower/configs/openpower_p9_mambo_defconfig
+++ b/openpower/configs/openpower_p9_mambo_defconfig
@@ -14,7 +14,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -37,10 +37,17 @@
BR2_TARGET_ROOTFS_INITRAMFS=y
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER9=y
+# BR2_PACKAGE_HOST_OPENPOWER_FFS is not set
# BR2_PACKAGE_HOSTBOOT is not set
# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
+# BR2_PACKAGE_MACHINE_XML is not set
# BR2_PACKAGE_OPENPOWER_PNOR is not set
BR2_OPENPOWER_CONFIG_NAME="openpower-mambo-p9"
BR2_PACKAGE_PETITBOOT=y
+# BR2_PACKAGE_HOST_P8_PORE_BINUTILS is not set
# BR2_PACKAGE_OCC is not set
+# BR2_PACKAGE_CAPP_UCODE is not set
+# BR2_PACKAGE_HOST_PPE42_BINUTILS is not set
+# BR2_PACKAGE_HOST_PPE42_GCC is not set
# BR2_PACKAGE_IMA_CATALOG is not set
+# BR2_PACKAGE_SBE is not set
diff --git a/openpower/configs/p9dsu_defconfig b/openpower/configs/p9dsu_defconfig
index f51c74a..4bf65f5 100644
--- a/openpower/configs/p9dsu_defconfig
+++ b/openpower/configs/p9dsu_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -41,9 +41,14 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER9=y
BR2_HOSTBOOT_CONFIG_FILE="p9dsu.config"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="p9dsu-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="d429ddccae90d79769e4a0b5c8e07e37aa3edef5"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="p9dsu.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="P9DSU_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="P9DSU_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="P9DSU_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
BR2_OPENPOWER_CONFIG_NAME="p9dsu"
-BR2_OPENPOWER_XML_PACKAGE="p9dsu-xml"
BR2_OPENPOWER_PNOR_FILENAME="p9dsu.pnor"
BR2_OPENPOWER_PNOR_UPDATE_FILENAME="p9dsu_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="nimbus_sbe.img.ecc"
@@ -57,9 +62,6 @@
BR2_OCC_BIN_FILENAME="occ.bin"
BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.5.0-rc2"
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-16-g9abb449b9c57"
BR2_PACKAGE_LOADKEYS=y
-BR2_P9DSU_SYSTEM_XML_FILENAME="P9DSU_hb.system.xml"
-BR2_P9DSU_MRW_XML_FILENAME="P9DSU_hb.mrw.xml"
-BR2_P9DSU_BIOS_XML_FILENAME="P9DSU_bios.xml"
-BR2_IMA_CATALOG_DTS="POWER9"
\ No newline at end of file
+BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index d7c89a1..41691b7 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -1,5 +1,6 @@
BR2_powerpc64le=y
BR2_powerpc_power8=y
+BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/palmetto-patches"
BR2_GLIBC_VERSION_2_24=y
BR2_BINUTILS_VERSION_2_27_X=y
BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
@@ -15,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig"
@@ -39,12 +40,14 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER8=y
BR2_HOSTBOOT_CONFIG_FILE="palmetto.config"
-BR2_PALMETTO_SYSTEM_XML_FILENAME="PALMETTO_hb.system.xml"
-BR2_PALMETTO_MRW_XML_FILENAME="PALMETTO_hb.mrw.xml"
-BR2_PALMETTO_BIOS_XML_FILENAME="PALMETTO_bios.xml"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="palmetto-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="c6f563966e9fadc4fb60194c064b2310c9b916b1"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="palmetto.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="PALMETTO_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="PALMETTO_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="PALMETTO_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutSingleSide.xml"
BR2_OPENPOWER_CONFIG_NAME="palmetto"
-BR2_OPENPOWER_XML_PACKAGE="palmetto-xml"
BR2_OPENPOWER_PNOR_FILENAME="palmetto.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="venice_sbe.img.ecc"
BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
diff --git a/openpower/configs/romulus_defconfig b/openpower/configs/romulus_defconfig
index 395959a..534add2 100644
--- a/openpower/configs/romulus_defconfig
+++ b/openpower/configs/romulus_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -41,17 +41,19 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER9=y
BR2_HOSTBOOT_CONFIG_FILE="romulus.config"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="romulus-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="301279cbdb3595ad1bbdce4d9d2189db0470a62a"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="romulus.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="ROMULUS_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="ROMULUS_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="ROMULUS_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
BR2_OPENPOWER_CONFIG_NAME="romulus"
-BR2_OPENPOWER_XML_PACKAGE="romulus-xml"
BR2_OPENPOWER_PNOR_FILENAME="romulus.pnor"
-#BR2_OPENPOWER_PNOR_UPDATE_FILENAME="romulus_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="nimbus_sbe.img.ecc"
BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc"
BR2_IMA_CATALOG_FILENAME="ima_catalog.bin"
-BR2_IMA_CATALOG_DTS="POWER9"
-#BR2_IMA_CATALOG_ECC_FILENAME="ima_catalog.bin.ecc"
BR2_OPENPOWER_TARGETING_BIN_FILENAME="ROMULUS_HB.targeting.bin"
BR2_OPENPOWER_TARGETING_ECC_FILENAME="ROMULUS_HB.targeting.bin.ecc"
BR2_PACKAGE_PETITBOOT=y
@@ -59,8 +61,6 @@
BR2_OCC_BIN_FILENAME="occ.bin"
BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.5.0-rc2"
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-16-g9abb449b9c57"
BR2_PACKAGE_LOADKEYS=y
-BR2_ROMULUS_SYSTEM_XML_FILENAME="ROMULUS_hb.system.xml"
-BR2_ROMULUS_MRW_XML_FILENAME="ROMULUS_hb.mrw.xml"
-BR2_ROMULUS_BIOS_XML_FILENAME="ROMULUS_bios.xml"
+BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig
index 419737e..5c886ec 100644
--- a/openpower/configs/witherspoon_defconfig
+++ b/openpower/configs/witherspoon_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -41,9 +41,14 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER9=y
BR2_HOSTBOOT_CONFIG_FILE="witherspoon.config"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="witherspoon-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="96746e9052376274ee9e8b4a99dd4e840cbccfab"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="witherspoon.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="WITHERSPOON_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="WITHERSPOON_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="WITHERSPOON_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
BR2_OPENPOWER_CONFIG_NAME="witherspoon"
-BR2_OPENPOWER_XML_PACKAGE="witherspoon-xml"
BR2_OPENPOWER_PNOR_FILENAME="witherspoon.pnor"
BR2_OPENPOWER_PNOR_UPDATE_FILENAME="witherspoon_update.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="nimbus_sbe.img.ecc"
@@ -57,9 +62,6 @@
BR2_OCC_BIN_FILENAME="occ.bin"
BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.5.0-rc2"
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-16-g9abb449b9c57"
BR2_PACKAGE_LOADKEYS=y
-BR2_WITHERSPOON_SYSTEM_XML_FILENAME="WITHERSPOON_hb.system.xml"
-BR2_WITHERSPOON_MRW_XML_FILENAME="WITHERSPOON_hb.mrw.xml"
-BR2_WITHERSPOON_BIOS_XML_FILENAME="WITHERSPOON_bios.xml"
BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index 3bdf058..fcb1a0d 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -16,7 +16,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -41,9 +41,14 @@
BR2_OPENPOWER_PLATFORM=y
BR2_OPENPOWER_POWER9=y
BR2_HOSTBOOT_CONFIG_FILE="zaius.config"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="zaius-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="bc19a36a49f9b11e86d3703032f20418e6a23244"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="zaius.xml"
+BR2_OPENPOWER_SYSTEM_XML_FILENAME="ZAIUS_hb.system.xml"
+BR2_OPENPOWER_MRW_XML_FILENAME="ZAIUS_hb.mrw.xml"
+BR2_OPENPOWER_BIOS_XML_FILENAME="ZAIUS_bios.xml"
BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
BR2_OPENPOWER_CONFIG_NAME="zaius"
-BR2_OPENPOWER_XML_PACKAGE="zaius-xml"
BR2_OPENPOWER_PNOR_FILENAME="zaius.pnor"
BR2_HOSTBOOT_BINARY_SBE_FILENAME="nimbus_sbe.img.ecc"
BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
@@ -56,9 +61,6 @@
BR2_OCC_BIN_FILENAME="occ.bin"
BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.5.0-rc2"
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-16-g9abb449b9c57"
BR2_PACKAGE_LOADKEYS=y
-BR2_ZAIUS_SYSTEM_XML_FILENAME="ZAIUS_hb.system.xml"
-BR2_ZAIUS_MRW_XML_FILENAME="ZAIUS_hb.mrw.xml"
-BR2_ZAIUS_BIOS_XML_FILENAME="ZAIUS_bios.xml"
BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig
index d0aab79..dca6bd6 100644
--- a/openpower/configs/zz_defconfig
+++ b/openpower/configs/zz_defconfig
@@ -15,7 +15,7 @@
BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.10.7"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.11.2"
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_p9_defconfig"
@@ -42,6 +42,7 @@
# BR2_PACKAGE_HOST_OPENPOWER_FFS is not set
# BR2_PACKAGE_HOSTBOOT is not set
# BR2_PACKAGE_HOSTBOOT_BINARIES is not set
+# BR2_PACKAGE_MACHINE_XML is not set
# BR2_PACKAGE_OPENPOWER_PNOR is not set
BR2_OPENPOWER_CONFIG_NAME="openpower-firenze"
# BR2_TARGET_SKIBOOT_XZ is not set
@@ -51,7 +52,7 @@
# BR2_PACKAGE_OCC is not set
# BR2_PACKAGE_CAPP_UCODE is not set
BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.5.0-rc2"
+BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-16-g9abb449b9c57"
BR2_PACKAGE_LOADKEYS=y
# BR2_PACKAGE_HOST_PPE42_BINUTILS is not set
# BR2_PACKAGE_HOST_PPE42_GCC is not set
diff --git a/openpower/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 b6226cf..ba1eeaf 100644
--- a/openpower/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 0000000000000000000000000000000000000000 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 01/12] xhci: Use xhci_pci_remove for xhci device shutdown
+Subject: [PATCH 1/4] 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 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index 954abfd5014d..dc8c490f6dd4 100644
+index 7b86508ac8cf..c358d5e7ef79 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -471,7 +471,7 @@ static struct pci_driver xhci_pci_driver = {
+@@ -470,7 +470,7 @@ static struct pci_driver xhci_pci_driver = {
.remove = xhci_pci_remove,
/* suspend and resume implemented later */
diff --git a/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch b/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
index 92c5a95..ad7d0a1 100644
--- a/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
+++ b/openpower/linux/0002-xhci-do-not-halt-the-secondary-HCD.patch
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 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 02/12] xhci: do not halt the secondary HCD
+Subject: [PATCH 2/4] 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
@@ -13,7 +13,7 @@
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 9a0ec116654a..315020dac049 100644
+index 953fd8f62df0..d17a7039b154 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -689,6 +689,21 @@ void xhci_stop(struct usb_hcd *hcd)
diff --git a/openpower/linux/0003-drm-ast-const-ify-mode-setting-tables.patch b/openpower/linux/0003-drm-ast-const-ify-mode-setting-tables.patch
deleted file mode 100644
index c9670e5..0000000
--- a/openpower/linux/0003-drm-ast-const-ify-mode-setting-tables.patch
+++ /dev/null
@@ -1,277 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Date: Fri, 17 Feb 2017 13:45:24 +1100
-Subject: [PATCH 03/12] drm/ast: const'ify mode setting tables
-
-And fix some comment alignment & space/tabs while at it
-
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_drv.h | 4 +-
- drivers/gpu/drm/ast/ast_mode.c | 8 +--
- drivers/gpu/drm/ast/ast_tables.h | 106 +++++++++++++++++++--------------------
- 3 files changed, 59 insertions(+), 59 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
-index 3bedcf7ddd2a..3fd9d6e96bce 100644
---- a/drivers/gpu/drm/ast/ast_drv.h
-+++ b/drivers/gpu/drm/ast/ast_drv.h
-@@ -304,8 +304,8 @@ struct ast_vbios_dclk_info {
- };
-
- struct ast_vbios_mode_info {
-- struct ast_vbios_stdtable *std_table;
-- struct ast_vbios_enhtable *enh_table;
-+ const struct ast_vbios_stdtable *std_table;
-+ const struct ast_vbios_enhtable *enh_table;
- };
-
- extern int ast_mode_init(struct drm_device *dev);
-diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
-index e26c98f51eb4..1ff596e90225 100644
---- a/drivers/gpu/drm/ast/ast_mode.c
-+++ b/drivers/gpu/drm/ast/ast_mode.c
-@@ -80,9 +80,9 @@ static bool ast_get_vbios_mode_info(struct drm_crtc *crtc, struct drm_display_mo
- {
- struct ast_private *ast = crtc->dev->dev_private;
- u32 refresh_rate_index = 0, mode_id, color_index, refresh_rate;
-+ const struct ast_vbios_enhtable *best = NULL;
- u32 hborder, vborder;
- bool check_sync;
-- struct ast_vbios_enhtable *best = NULL;
-
- switch (crtc->primary->fb->bits_per_pixel) {
- case 8:
-@@ -146,7 +146,7 @@ static bool ast_get_vbios_mode_info(struct drm_crtc *crtc, struct drm_display_mo
- refresh_rate = drm_mode_vrefresh(mode);
- check_sync = vbios_mode->enh_table->flags & WideScreenMode;
- do {
-- struct ast_vbios_enhtable *loop = vbios_mode->enh_table;
-+ const struct ast_vbios_enhtable *loop = vbios_mode->enh_table;
-
- while (loop->refresh_rate != 0xff) {
- if ((check_sync) &&
-@@ -225,7 +225,7 @@ static void ast_set_std_reg(struct drm_crtc *crtc, struct drm_display_mode *mode
- struct ast_vbios_mode_info *vbios_mode)
- {
- struct ast_private *ast = crtc->dev->dev_private;
-- struct ast_vbios_stdtable *stdtable;
-+ const struct ast_vbios_stdtable *stdtable;
- u32 i;
- u8 jreg;
-
-@@ -381,7 +381,7 @@ static void ast_set_dclk_reg(struct drm_device *dev, struct drm_display_mode *mo
- struct ast_vbios_mode_info *vbios_mode)
- {
- struct ast_private *ast = dev->dev_private;
-- struct ast_vbios_dclk_info *clk_info;
-+ const struct ast_vbios_dclk_info *clk_info;
-
- clk_info = &dclk_table[vbios_mode->enh_table->dclk_index];
-
-diff --git a/drivers/gpu/drm/ast/ast_tables.h b/drivers/gpu/drm/ast/ast_tables.h
-index 3608d5aa7451..a4ddf901a54f 100644
---- a/drivers/gpu/drm/ast/ast_tables.h
-+++ b/drivers/gpu/drm/ast/ast_tables.h
-@@ -78,37 +78,37 @@
- #define VCLK97_75 0x19
- #define VCLK118_25 0x1A
-
--static struct ast_vbios_dclk_info dclk_table[] = {
-- {0x2C, 0xE7, 0x03}, /* 00: VCLK25_175 */
-- {0x95, 0x62, 0x03}, /* 01: VCLK28_322 */
-- {0x67, 0x63, 0x01}, /* 02: VCLK31_5 */
-- {0x76, 0x63, 0x01}, /* 03: VCLK36 */
-- {0xEE, 0x67, 0x01}, /* 04: VCLK40 */
-- {0x82, 0x62, 0x01}, /* 05: VCLK49_5 */
-- {0xC6, 0x64, 0x01}, /* 06: VCLK50 */
-- {0x94, 0x62, 0x01}, /* 07: VCLK56_25 */
-- {0x80, 0x64, 0x00}, /* 08: VCLK65 */
-- {0x7B, 0x63, 0x00}, /* 09: VCLK75 */
-- {0x67, 0x62, 0x00}, /* 0A: VCLK78_75 */
-- {0x7C, 0x62, 0x00}, /* 0B: VCLK94_5 */
-- {0x8E, 0x62, 0x00}, /* 0C: VCLK108 */
-- {0x85, 0x24, 0x00}, /* 0D: VCLK135 */
-- {0x67, 0x22, 0x00}, /* 0E: VCLK157_5 */
-- {0x6A, 0x22, 0x00}, /* 0F: VCLK162 */
-- {0x4d, 0x4c, 0x80}, /* 10: VCLK154 */
-- {0xa7, 0x78, 0x80}, /* 11: VCLK83.5 */
-- {0x28, 0x49, 0x80}, /* 12: VCLK106.5 */
-- {0x37, 0x49, 0x80}, /* 13: VCLK146.25 */
-- {0x1f, 0x45, 0x80}, /* 14: VCLK148.5 */
-- {0x47, 0x6c, 0x80}, /* 15: VCLK71 */
-- {0x25, 0x65, 0x80}, /* 16: VCLK88.75 */
-- {0x77, 0x58, 0x80}, /* 17: VCLK119 */
-- {0x32, 0x67, 0x80}, /* 18: VCLK85_5 */
-- {0x6a, 0x6d, 0x80}, /* 19: VCLK97_75 */
-- {0x3b, 0x2c, 0x81}, /* 1A: VCLK118_25 */
-+static const struct ast_vbios_dclk_info dclk_table[] = {
-+ {0x2C, 0xE7, 0x03}, /* 00: VCLK25_175 */
-+ {0x95, 0x62, 0x03}, /* 01: VCLK28_322 */
-+ {0x67, 0x63, 0x01}, /* 02: VCLK31_5 */
-+ {0x76, 0x63, 0x01}, /* 03: VCLK36 */
-+ {0xEE, 0x67, 0x01}, /* 04: VCLK40 */
-+ {0x82, 0x62, 0x01}, /* 05: VCLK49_5 */
-+ {0xC6, 0x64, 0x01}, /* 06: VCLK50 */
-+ {0x94, 0x62, 0x01}, /* 07: VCLK56_25 */
-+ {0x80, 0x64, 0x00}, /* 08: VCLK65 */
-+ {0x7B, 0x63, 0x00}, /* 09: VCLK75 */
-+ {0x67, 0x62, 0x00}, /* 0A: VCLK78_75 */
-+ {0x7C, 0x62, 0x00}, /* 0B: VCLK94_5 */
-+ {0x8E, 0x62, 0x00}, /* 0C: VCLK108 */
-+ {0x85, 0x24, 0x00}, /* 0D: VCLK135 */
-+ {0x67, 0x22, 0x00}, /* 0E: VCLK157_5 */
-+ {0x6A, 0x22, 0x00}, /* 0F: VCLK162 */
-+ {0x4d, 0x4c, 0x80}, /* 10: VCLK154 */
-+ {0xa7, 0x78, 0x80}, /* 11: VCLK83.5 */
-+ {0x28, 0x49, 0x80}, /* 12: VCLK106.5 */
-+ {0x37, 0x49, 0x80}, /* 13: VCLK146.25 */
-+ {0x1f, 0x45, 0x80}, /* 14: VCLK148.5 */
-+ {0x47, 0x6c, 0x80}, /* 15: VCLK71 */
-+ {0x25, 0x65, 0x80}, /* 16: VCLK88.75 */
-+ {0x77, 0x58, 0x80}, /* 17: VCLK119 */
-+ {0x32, 0x67, 0x80}, /* 18: VCLK85_5 */
-+ {0x6a, 0x6d, 0x80}, /* 19: VCLK97_75 */
-+ {0x3b, 0x2c, 0x81}, /* 1A: VCLK118_25 */
- };
-
--static struct ast_vbios_stdtable vbios_stdtable[] = {
-+static const struct ast_vbios_stdtable vbios_stdtable[] = {
- /* MD_2_3_400 */
- {
- 0x67,
-@@ -181,21 +181,21 @@ static struct ast_vbios_stdtable vbios_stdtable[] = {
- },
- };
-
--static struct ast_vbios_enhtable res_640x480[] = {
-+static const struct ast_vbios_enhtable res_640x480[] = {
- { 800, 640, 8, 96, 525, 480, 2, 2, VCLK25_175, /* 60Hz */
- (SyncNN | HBorder | VBorder | Charx8Dot), 60, 1, 0x2E },
- { 832, 640, 16, 40, 520, 480, 1, 3, VCLK31_5, /* 72Hz */
- (SyncNN | HBorder | VBorder | Charx8Dot), 72, 2, 0x2E },
- { 840, 640, 16, 64, 500, 480, 1, 3, VCLK31_5, /* 75Hz */
- (SyncNN | Charx8Dot) , 75, 3, 0x2E },
-- { 832, 640, 56, 56, 509, 480, 1, 3, VCLK36, /* 85Hz */
-+ { 832, 640, 56, 56, 509, 480, 1, 3, VCLK36, /* 85Hz */
- (SyncNN | Charx8Dot) , 85, 4, 0x2E },
-- { 832, 640, 56, 56, 509, 480, 1, 3, VCLK36, /* end */
-+ { 832, 640, 56, 56, 509, 480, 1, 3, VCLK36, /* end */
- (SyncNN | Charx8Dot) , 0xFF, 4, 0x2E },
- };
-
--static struct ast_vbios_enhtable res_800x600[] = {
-- {1024, 800, 24, 72, 625, 600, 1, 2, VCLK36, /* 56Hz */
-+static const struct ast_vbios_enhtable res_800x600[] = {
-+ {1024, 800, 24, 72, 625, 600, 1, 2, VCLK36, /* 56Hz */
- (SyncPP | Charx8Dot), 56, 1, 0x30 },
- {1056, 800, 40, 128, 628, 600, 1, 4, VCLK40, /* 60Hz */
- (SyncPP | Charx8Dot), 60, 2, 0x30 },
-@@ -210,7 +210,7 @@ static struct ast_vbios_enhtable res_800x600[] = {
- };
-
-
--static struct ast_vbios_enhtable res_1024x768[] = {
-+static const struct ast_vbios_enhtable res_1024x768[] = {
- {1344, 1024, 24, 136, 806, 768, 3, 6, VCLK65, /* 60Hz */
- (SyncNN | Charx8Dot), 60, 1, 0x31 },
- {1328, 1024, 24, 136, 806, 768, 3, 6, VCLK75, /* 70Hz */
-@@ -223,7 +223,7 @@ static struct ast_vbios_enhtable res_1024x768[] = {
- (SyncPP | Charx8Dot), 0xFF, 4, 0x31 },
- };
-
--static struct ast_vbios_enhtable res_1280x1024[] = {
-+static const struct ast_vbios_enhtable res_1280x1024[] = {
- {1688, 1280, 48, 112, 1066, 1024, 1, 3, VCLK108, /* 60Hz */
- (SyncPP | Charx8Dot), 60, 1, 0x32 },
- {1688, 1280, 16, 144, 1066, 1024, 1, 3, VCLK135, /* 75Hz */
-@@ -234,7 +234,7 @@ static struct ast_vbios_enhtable res_1280x1024[] = {
- (SyncPP | Charx8Dot), 0xFF, 3, 0x32 },
- };
-
--static struct ast_vbios_enhtable res_1600x1200[] = {
-+static const struct ast_vbios_enhtable res_1600x1200[] = {
- {2160, 1600, 64, 192, 1250, 1200, 1, 3, VCLK162, /* 60Hz */
- (SyncPP | Charx8Dot), 60, 1, 0x33 },
- {2160, 1600, 64, 192, 1250, 1200, 1, 3, VCLK162, /* end */
-@@ -242,23 +242,23 @@ static struct ast_vbios_enhtable res_1600x1200[] = {
- };
-
- /* 16:9 */
--static struct ast_vbios_enhtable res_1360x768[] = {
-- {1792, 1360, 64,112, 795, 768, 3, 6, VCLK85_5, /* 60Hz */
-+static const struct ast_vbios_enhtable res_1360x768[] = {
-+ {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5, /* 60Hz */
- (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x39 },
-- {1792, 1360, 64,112, 795, 768, 3, 6, VCLK85_5, /* end */
-+ {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5, /* end */
- (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 1, 0x39 },
- };
-
--static struct ast_vbios_enhtable res_1600x900[] = {
-- {1760, 1600, 48, 32, 926, 900, 3, 5, VCLK97_75, /* 60Hz CVT RB */
-+static const struct ast_vbios_enhtable res_1600x900[] = {
-+ {1760, 1600, 48, 32, 926, 900, 3, 5, VCLK97_75, /* 60Hz CVT RB */
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x3A },
-- {2112, 1600, 88,168, 934, 900, 3, 5, VCLK118_25, /* 60Hz CVT */
-+ {2112, 1600, 88, 168, 934, 900, 3, 5, VCLK118_25, /* 60Hz CVT */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x3A },
-- {2112, 1600, 88,168, 934, 900, 3, 5, VCLK118_25, /* 60Hz CVT */
-+ {2112, 1600, 88, 168, 934, 900, 3, 5, VCLK118_25, /* 60Hz CVT */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x3A },
- };
-
--static struct ast_vbios_enhtable res_1920x1080[] = {
-+static const struct ast_vbios_enhtable res_1920x1080[] = {
- {2200, 1920, 88, 44, 1125, 1080, 4, 5, VCLK148_5, /* 60Hz */
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x38 },
- {2200, 1920, 88, 44, 1125, 1080, 4, 5, VCLK148_5, /* 60Hz */
-@@ -267,8 +267,8 @@ static struct ast_vbios_enhtable res_1920x1080[] = {
-
-
- /* 16:10 */
--static struct ast_vbios_enhtable res_1280x800[] = {
-- {1440, 1280, 48, 32, 823, 800, 3, 6, VCLK71, /* 60Hz RB */
-+static const struct ast_vbios_enhtable res_1280x800[] = {
-+ {1440, 1280, 48, 32, 823, 800, 3, 6, VCLK71, /* 60Hz RB */
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x35 },
- {1680, 1280, 72,128, 831, 800, 3, 6, VCLK83_5, /* 60Hz */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x35 },
-@@ -277,7 +277,7 @@ static struct ast_vbios_enhtable res_1280x800[] = {
-
- };
-
--static struct ast_vbios_enhtable res_1440x900[] = {
-+static const struct ast_vbios_enhtable res_1440x900[] = {
- {1600, 1440, 48, 32, 926, 900, 3, 6, VCLK88_75, /* 60Hz RB */
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x36 },
- {1904, 1440, 80,152, 934, 900, 3, 6, VCLK106_5, /* 60Hz */
-@@ -286,8 +286,8 @@ static struct ast_vbios_enhtable res_1440x900[] = {
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x36 },
- };
-
--static struct ast_vbios_enhtable res_1680x1050[] = {
-- {1840, 1680, 48, 32, 1080, 1050, 3, 6, VCLK119, /* 60Hz RB */
-+static const struct ast_vbios_enhtable res_1680x1050[] = {
-+ {1840, 1680, 48, 32, 1080, 1050, 3, 6, VCLK119, /* 60Hz RB */
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x37 },
- {2240, 1680,104,176, 1089, 1050, 3, 6, VCLK146_25, /* 60Hz */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x37 },
-@@ -295,10 +295,10 @@ static struct ast_vbios_enhtable res_1680x1050[] = {
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 2, 0x37 },
- };
-
--static struct ast_vbios_enhtable res_1920x1200[] = {
-- {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz RB*/
-+static const struct ast_vbios_enhtable res_1920x1200[] = {
-+ {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz RB*/
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x34 },
-- {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz RB */
-+ {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz RB */
- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 1, 0x34 },
- };
-
---
-2.11.0
-
diff --git a/openpower/linux/0003-powerpc-powernv-Add-OPAL-exports-attributes-to-sysfs.patch b/openpower/linux/0003-powerpc-powernv-Add-OPAL-exports-attributes-to-sysfs.patch
new file mode 100644
index 0000000..d31ee40
--- /dev/null
+++ b/openpower/linux/0003-powerpc-powernv-Add-OPAL-exports-attributes-to-sysfs.patch
@@ -0,0 +1,120 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Matt Brown <matthew.brown.dev@gmail.com>
+Date: Thu, 30 Mar 2017 10:28:01 +1100
+Subject: [PATCH 3/4] powerpc/powernv: Add OPAL exports attributes to sysfs
+
+New versions of OPAL have a device node /ibm,opal/firmware/exports, each
+property of which describes a range of memory in OPAL that Linux might
+want to export to userspace for debugging.
+
+This patch adds a sysfs file under 'opal/exports' for each property
+found there, and makes it read-only by root.
+
+Signed-off-by: Matt Brown <matthew.brown.dev@gmail.com>
+[mpe: Drop counting of props, rename to attr, free on sysfs error, c'log]
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+(cherry picked from commit 11fe909d236263f62808dc3c73caf798e026d7aa)
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+
+Signed-off-by: Joel Stanley <joel@jms.id.au>
+---
+ arch/powerpc/platforms/powernv/opal.c | 76 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 76 insertions(+)
+
+diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
+index e0f856bfbfe8..25ea8f6fe7f8 100644
+--- a/arch/powerpc/platforms/powernv/opal.c
++++ b/arch/powerpc/platforms/powernv/opal.c
+@@ -595,6 +595,79 @@ static void opal_export_symmap(void)
+ pr_warn("Error %d creating OPAL symbols file\n", rc);
+ }
+
++static ssize_t export_attr_read(struct file *fp, struct kobject *kobj,
++ struct bin_attribute *bin_attr, char *buf,
++ loff_t off, size_t count)
++{
++ return memory_read_from_buffer(buf, count, &off, bin_attr->private,
++ bin_attr->size);
++}
++
++/*
++ * opal_export_attrs: creates a sysfs node for each property listed in
++ * the device-tree under /ibm,opal/firmware/exports/
++ * All new sysfs nodes are created under /opal/exports/.
++ * This allows for reserved memory regions (e.g. HDAT) to be read.
++ * The new sysfs nodes are only readable by root.
++ */
++static void opal_export_attrs(void)
++{
++ struct bin_attribute *attr;
++ struct device_node *np;
++ struct property *prop;
++ struct kobject *kobj;
++ u64 vals[2];
++ int rc;
++
++ np = of_find_node_by_path("/ibm,opal/firmware/exports");
++ if (!np)
++ return;
++
++ /* Create new 'exports' directory - /sys/firmware/opal/exports */
++ kobj = kobject_create_and_add("exports", opal_kobj);
++ if (!kobj) {
++ pr_warn("kobject_create_and_add() of exports failed\n");
++ return;
++ }
++
++ for_each_property_of_node(np, prop) {
++ if (!strcmp(prop->name, "name") || !strcmp(prop->name, "phandle"))
++ continue;
++
++ if (of_property_read_u64_array(np, prop->name, &vals[0], 2))
++ continue;
++
++ attr = kmalloc(sizeof(*attr), GFP_KERNEL);
++
++ if (attr == NULL) {
++ pr_warn("Failed kmalloc for bin_attribute!");
++ continue;
++ }
++
++ attr->attr.name = kstrdup(prop->name, GFP_KERNEL);
++ attr->attr.mode = 0400;
++ attr->read = export_attr_read;
++ attr->private = __va(vals[0]);
++ attr->size = vals[1];
++
++ if (attr->attr.name == NULL) {
++ pr_warn("Failed kstrdup for bin_attribute attr.name");
++ kfree(attr);
++ continue;
++ }
++
++ rc = sysfs_create_bin_file(kobj, attr);
++ if (rc) {
++ pr_warn("Error %d creating OPAL sysfs exports/%s file\n",
++ rc, prop->name);
++ kfree(attr->attr.name);
++ kfree(attr);
++ }
++ }
++
++ of_node_put(np);
++}
++
+ static void __init opal_dump_region_init(void)
+ {
+ void *addr;
+@@ -733,6 +806,9 @@ static int __init opal_init(void)
+ opal_msglog_sysfs_init();
+ }
+
++ /* Export all properties */
++ opal_export_attrs();
++
+ /* Initialize platform devices: IPMI backend, PRD & flash interface */
+ opal_pdev_init("ibm,opal-ipmi");
+ opal_pdev_init("ibm,opal-flash");
+--
+2.11.0
+
diff --git a/openpower/linux/0012-Release-OpenPower-kernel.patch b/openpower/linux/0004-Release-OpenPower-kernel.patch
similarity index 72%
rename from openpower/linux/0012-Release-OpenPower-kernel.patch
rename to openpower/linux/0004-Release-OpenPower-kernel.patch
index 861001b..a5ef22e 100644
--- a/openpower/linux/0012-Release-OpenPower-kernel.patch
+++ b/openpower/linux/0004-Release-OpenPower-kernel.patch
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Joel Stanley <joel@jms.id.au>
-Date: Tue, 28 Feb 2017 12:15:10 +1030
-Subject: [PATCH 12/12] Release OpenPower kernel
+Date: Wed, 3 May 2017 13:25:26 +0930
+Subject: [PATCH 4/4] Release OpenPower kernel
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
@@ -9,13 +9,13 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 976e8d1a468a..507f49235ac9 100644
+index d7b64830a7b7..e77804c0405d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 4
- PATCHLEVEL = 10
- SUBLEVEL = 7
+ PATCHLEVEL = 11
+ SUBLEVEL = 2
-EXTRAVERSION =
+EXTRAVERSION = -openpower1
NAME = Fearless Coyote
diff --git a/openpower/linux/0004-drm-ast-Remove-spurrious-include.patch b/openpower/linux/0004-drm-ast-Remove-spurrious-include.patch
deleted file mode 100644
index ffa2606..0000000
--- a/openpower/linux/0004-drm-ast-Remove-spurrious-include.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Date: Fri, 17 Feb 2017 13:55:58 +1100
-Subject: [PATCH 04/12] drm/ast: Remove spurrious include
-
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_main.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
-index fb9976254224..f01a937165b7 100644
---- a/drivers/gpu/drm/ast/ast_main.c
-+++ b/drivers/gpu/drm/ast/ast_main.c
-@@ -32,8 +32,6 @@
- #include <drm/drm_fb_helper.h>
- #include <drm/drm_crtc_helper.h>
-
--#include "ast_dram_tables.h"
--
- void ast_set_index_reg_mask(struct ast_private *ast,
- uint32_t base, uint8_t index,
- uint8_t mask, uint8_t val)
---
-2.11.0
-
diff --git a/openpower/linux/0005-drm-ast-Fix-calculation-of-MCLK.patch b/openpower/linux/0005-drm-ast-Fix-calculation-of-MCLK.patch
deleted file mode 100644
index e72a789..0000000
--- a/openpower/linux/0005-drm-ast-Fix-calculation-of-MCLK.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Date: Fri, 17 Feb 2017 13:57:30 +1100
-Subject: [PATCH 05/12] drm/ast: Fix calculation of MCLK
-
-Some braces were missing causing an incorrect calculation.
-
-Y.C. Chen from Aspeed provided me with the right formula
-which I tested on AST2400 and 2500.
-
-The MCLK isn't currently used by the driver (it will eventually
-to filter modes) so the issue isn't catastrophic.
-
-Also make the printed value a bit more meaningful
-
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_main.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
-index f01a937165b7..8d87d3ca439b 100644
---- a/drivers/gpu/drm/ast/ast_main.c
-+++ b/drivers/gpu/drm/ast/ast_main.c
-@@ -354,7 +354,7 @@ static int ast_get_dram_info(struct drm_device *dev)
- div = 0x1;
- break;
- }
-- ast->mclk = ref_pll * (num + 2) / (denum + 2) * (div * 1000);
-+ ast->mclk = ref_pll * (num + 2) / ((denum + 2) * (div * 1000));
- return 0;
- }
-
-@@ -498,7 +498,9 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags)
- if (ret)
- goto out_free;
- ast->vram_size = ast_get_vram_info(dev);
-- DRM_INFO("dram %d %d %d %08x\n", ast->mclk, ast->dram_type, ast->dram_bus_width, ast->vram_size);
-+ DRM_INFO("dram MCLK=%u Mhz type=%d bus_width=%d size=%08x\n",
-+ ast->mclk, ast->dram_type,
-+ ast->dram_bus_width, ast->vram_size);
- }
-
- if (need_post)
---
-2.11.0
-
diff --git a/openpower/linux/0006-drm-ast-Base-support-for-AST2500.patch b/openpower/linux/0006-drm-ast-Base-support-for-AST2500.patch
deleted file mode 100644
index 34fb54a..0000000
--- a/openpower/linux/0006-drm-ast-Base-support-for-AST2500.patch
+++ /dev/null
@@ -1,325 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Y.C. Chen" <yc_chen@aspeedtech.com>
-Date: Fri, 17 Feb 2017 14:36:46 +1100
-Subject: [PATCH 06/12] drm/ast: Base support for AST2500
-
-Add detection and mode setting updates for AST2500 generation chip,
-code originally from Aspeed and slightly reworked for coding style
-mostly by Ben. This doesn't contain the BMC DRAM POST code which
-is in a separate patch.
-
-Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
----
-
-v2. Add 800Mhz default mclk for AST2500
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_drv.h | 2 ++
- drivers/gpu/drm/ast/ast_main.c | 32 +++++++++++++++++++---
- drivers/gpu/drm/ast/ast_mode.c | 30 ++++++++++++++++-----
- drivers/gpu/drm/ast/ast_tables.h | 58 +++++++++++++++++++++++++++++++++-------
- 4 files changed, 103 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
-index 3fd9d6e96bce..d1c1d530abaa 100644
---- a/drivers/gpu/drm/ast/ast_drv.h
-+++ b/drivers/gpu/drm/ast/ast_drv.h
-@@ -64,6 +64,7 @@ enum ast_chip {
- AST2150,
- AST2300,
- AST2400,
-+ AST2500,
- AST1180,
- };
-
-@@ -80,6 +81,7 @@ enum ast_tx_chip {
- #define AST_DRAM_1Gx32 3
- #define AST_DRAM_2Gx16 6
- #define AST_DRAM_4Gx16 7
-+#define AST_DRAM_8Gx16 8
-
- struct ast_fbdev;
-
-diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
-index 8d87d3ca439b..5a83d3793000 100644
---- a/drivers/gpu/drm/ast/ast_main.c
-+++ b/drivers/gpu/drm/ast/ast_main.c
-@@ -142,7 +142,10 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- ast->chip = AST1100;
- DRM_INFO("AST 1180 detected\n");
- } else {
-- if (dev->pdev->revision >= 0x30) {
-+ if (dev->pdev->revision >= 0x40) {
-+ ast->chip = AST2500;
-+ DRM_INFO("AST 2500 detected\n");
-+ } else if (dev->pdev->revision >= 0x30) {
- ast->chip = AST2400;
- DRM_INFO("AST 2400 detected\n");
- } else if (dev->pdev->revision >= 0x20) {
-@@ -196,6 +199,9 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)
- if (ast->chip == AST2400 &&
- (scu_rev & 0x300) == 0x100) /* ast1400 */
- ast->support_wide_screen = true;
-+ if (ast->chip == AST2500 &&
-+ scu_rev == 0x100) /* ast2510 */
-+ ast->support_wide_screen = true;
- }
- break;
- }
-@@ -291,7 +297,10 @@ static int ast_get_dram_info(struct drm_device *dev)
- default:
- ast->dram_bus_width = 16;
- ast->dram_type = AST_DRAM_1Gx16;
-- ast->mclk = 396;
-+ if (ast->chip == AST2500)
-+ ast->mclk = 800;
-+ else
-+ ast->mclk = 396;
- return 0;
- }
-
-@@ -300,7 +309,23 @@ static int ast_get_dram_info(struct drm_device *dev)
- else
- ast->dram_bus_width = 32;
-
-- if (ast->chip == AST2300 || ast->chip == AST2400) {
-+ if (ast->chip == AST2500) {
-+ switch (mcr_cfg & 0x03) {
-+ case 0:
-+ ast->dram_type = AST_DRAM_1Gx16;
-+ break;
-+ default:
-+ case 1:
-+ ast->dram_type = AST_DRAM_2Gx16;
-+ break;
-+ case 2:
-+ ast->dram_type = AST_DRAM_4Gx16;
-+ break;
-+ case 3:
-+ ast->dram_type = AST_DRAM_8Gx16;
-+ break;
-+ }
-+ } else if (ast->chip == AST2300 || ast->chip == AST2400) {
- switch (mcr_cfg & 0x03) {
- case 0:
- ast->dram_type = AST_DRAM_512Mx16;
-@@ -523,6 +548,7 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags)
- ast->chip == AST2200 ||
- ast->chip == AST2300 ||
- ast->chip == AST2400 ||
-+ ast->chip == AST2500 ||
- ast->chip == AST1180) {
- dev->mode_config.max_width = 1920;
- dev->mode_config.max_height = 2048;
-diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
-index 1ff596e90225..e4db1c72940c 100644
---- a/drivers/gpu/drm/ast/ast_mode.c
-+++ b/drivers/gpu/drm/ast/ast_mode.c
-@@ -271,7 +271,11 @@ static void ast_set_crtc_reg(struct drm_crtc *crtc, struct drm_display_mode *mod
- {
- struct ast_private *ast = crtc->dev->dev_private;
- u8 jreg05 = 0, jreg07 = 0, jreg09 = 0, jregAC = 0, jregAD = 0, jregAE = 0;
-- u16 temp;
-+ u16 temp, precache = 0;
-+
-+ if ((ast->chip == AST2500) &&
-+ (vbios_mode->enh_table->flags & AST2500PreCatchCRT))
-+ precache = 40;
-
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x11, 0x7f, 0x00);
-
-@@ -297,12 +301,12 @@ static void ast_set_crtc_reg(struct drm_crtc *crtc, struct drm_display_mode *mod
- jregAD |= 0x01; /* HBE D[5] */
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x03, 0xE0, (temp & 0x1f));
-
-- temp = (mode->crtc_hsync_start >> 3) - 1;
-+ temp = ((mode->crtc_hsync_start-precache) >> 3) - 1;
- if (temp & 0x100)
- jregAC |= 0x40; /* HRS D[5] */
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x04, 0x00, temp);
-
-- temp = ((mode->crtc_hsync_end >> 3) - 1) & 0x3f;
-+ temp = (((mode->crtc_hsync_end-precache) >> 3) - 1) & 0x3f;
- if (temp & 0x20)
- jregAD |= 0x04; /* HRE D[5] */
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x05, 0x60, (u8)((temp & 0x1f) | jreg05));
-@@ -363,6 +367,11 @@ static void ast_set_crtc_reg(struct drm_crtc *crtc, struct drm_display_mode *mod
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x09, 0xdf, jreg09);
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xAE, 0x00, (jregAE | 0x80));
-
-+ if (precache)
-+ ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0x3f, 0x80);
-+ else
-+ ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0x3f, 0x00);
-+
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0x11, 0x7f, 0x80);
- }
-
-@@ -383,12 +392,16 @@ static void ast_set_dclk_reg(struct drm_device *dev, struct drm_display_mode *mo
- struct ast_private *ast = dev->dev_private;
- const struct ast_vbios_dclk_info *clk_info;
-
-- clk_info = &dclk_table[vbios_mode->enh_table->dclk_index];
-+ if (ast->chip == AST2500)
-+ clk_info = &dclk_table_ast2500[vbios_mode->enh_table->dclk_index];
-+ else
-+ clk_info = &dclk_table[vbios_mode->enh_table->dclk_index];
-
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xc0, 0x00, clk_info->param1);
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xc1, 0x00, clk_info->param2);
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xbb, 0x0f,
-- (clk_info->param3 & 0x80) | ((clk_info->param3 & 0x3) << 4));
-+ (clk_info->param3 & 0xc0) |
-+ ((clk_info->param3 & 0x3) << 4));
- }
-
- static void ast_set_ext_reg(struct drm_crtc *crtc, struct drm_display_mode *mode,
-@@ -421,7 +434,8 @@ static void ast_set_ext_reg(struct drm_crtc *crtc, struct drm_display_mode *mode
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xa8, 0xfd, jregA8);
-
- /* Set Threshold */
-- if (ast->chip == AST2300 || ast->chip == AST2400) {
-+ if (ast->chip == AST2300 || ast->chip == AST2400 ||
-+ ast->chip == AST2500) {
- ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa7, 0x78);
- ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0xa6, 0x60);
- } else if (ast->chip == AST2100 ||
-@@ -794,7 +808,9 @@ static int ast_mode_valid(struct drm_connector *connector,
- if ((mode->hdisplay == 1600) && (mode->vdisplay == 900))
- return MODE_OK;
-
-- if ((ast->chip == AST2100) || (ast->chip == AST2200) || (ast->chip == AST2300) || (ast->chip == AST2400) || (ast->chip == AST1180)) {
-+ if ((ast->chip == AST2100) || (ast->chip == AST2200) ||
-+ (ast->chip == AST2300) || (ast->chip == AST2400) ||
-+ (ast->chip == AST2500) || (ast->chip == AST1180)) {
- if ((mode->hdisplay == 1920) && (mode->vdisplay == 1080))
- return MODE_OK;
-
-diff --git a/drivers/gpu/drm/ast/ast_tables.h b/drivers/gpu/drm/ast/ast_tables.h
-index a4ddf901a54f..5f4c2e833a65 100644
---- a/drivers/gpu/drm/ast/ast_tables.h
-+++ b/drivers/gpu/drm/ast/ast_tables.h
-@@ -47,6 +47,7 @@
- #define SyncPN (PVSync | NHSync)
- #define SyncNP (NVSync | PHSync)
- #define SyncNN (NVSync | NHSync)
-+#define AST2500PreCatchCRT 0x00004000
-
- /* DCLK Index */
- #define VCLK25_175 0x00
-@@ -108,6 +109,36 @@ static const struct ast_vbios_dclk_info dclk_table[] = {
- {0x3b, 0x2c, 0x81}, /* 1A: VCLK118_25 */
- };
-
-+static const struct ast_vbios_dclk_info dclk_table_ast2500[] = {
-+ {0x2C, 0xE7, 0x03}, /* 00: VCLK25_175 */
-+ {0x95, 0x62, 0x03}, /* 01: VCLK28_322 */
-+ {0x67, 0x63, 0x01}, /* 02: VCLK31_5 */
-+ {0x76, 0x63, 0x01}, /* 03: VCLK36 */
-+ {0xEE, 0x67, 0x01}, /* 04: VCLK40 */
-+ {0x82, 0x62, 0x01}, /* 05: VCLK49_5 */
-+ {0xC6, 0x64, 0x01}, /* 06: VCLK50 */
-+ {0x94, 0x62, 0x01}, /* 07: VCLK56_25 */
-+ {0x80, 0x64, 0x00}, /* 08: VCLK65 */
-+ {0x7B, 0x63, 0x00}, /* 09: VCLK75 */
-+ {0x67, 0x62, 0x00}, /* 0A: VCLK78_75 */
-+ {0x7C, 0x62, 0x00}, /* 0B: VCLK94_5 */
-+ {0x8E, 0x62, 0x00}, /* 0C: VCLK108 */
-+ {0x85, 0x24, 0x00}, /* 0D: VCLK135 */
-+ {0x67, 0x22, 0x00}, /* 0E: VCLK157_5 */
-+ {0x6A, 0x22, 0x00}, /* 0F: VCLK162 */
-+ {0x4d, 0x4c, 0x80}, /* 10: VCLK154 */
-+ {0xa7, 0x78, 0x80}, /* 11: VCLK83.5 */
-+ {0x28, 0x49, 0x80}, /* 12: VCLK106.5 */
-+ {0x37, 0x49, 0x80}, /* 13: VCLK146.25 */
-+ {0x1f, 0x45, 0x80}, /* 14: VCLK148.5 */
-+ {0x47, 0x6c, 0x80}, /* 15: VCLK71 */
-+ {0x25, 0x65, 0x80}, /* 16: VCLK88.75 */
-+ {0x58, 0x01, 0x42}, /* 17: VCLK119 */
-+ {0x32, 0x67, 0x80}, /* 18: VCLK85_5 */
-+ {0x6a, 0x6d, 0x80}, /* 19: VCLK97_75 */
-+ {0x44, 0x20, 0x43}, /* 1A: VCLK118_25 */
-+};
-+
- static const struct ast_vbios_stdtable vbios_stdtable[] = {
- /* MD_2_3_400 */
- {
-@@ -246,12 +277,14 @@ static const struct ast_vbios_enhtable res_1360x768[] = {
- {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5, /* 60Hz */
- (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x39 },
- {1792, 1360, 64, 112, 795, 768, 3, 6, VCLK85_5, /* end */
-- (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 1, 0x39 },
-+ (SyncPP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 0xFF, 1, 0x39 },
- };
-
- static const struct ast_vbios_enhtable res_1600x900[] = {
- {1760, 1600, 48, 32, 926, 900, 3, 5, VCLK97_75, /* 60Hz CVT RB */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x3A },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 60, 1, 0x3A },
- {2112, 1600, 88, 168, 934, 900, 3, 5, VCLK118_25, /* 60Hz CVT */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x3A },
- {2112, 1600, 88, 168, 934, 900, 3, 5, VCLK118_25, /* 60Hz CVT */
-@@ -260,16 +293,19 @@ static const struct ast_vbios_enhtable res_1600x900[] = {
-
- static const struct ast_vbios_enhtable res_1920x1080[] = {
- {2200, 1920, 88, 44, 1125, 1080, 4, 5, VCLK148_5, /* 60Hz */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x38 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 60, 1, 0x38 },
- {2200, 1920, 88, 44, 1125, 1080, 4, 5, VCLK148_5, /* 60Hz */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 1, 0x38 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 0xFF, 1, 0x38 },
- };
-
-
- /* 16:10 */
- static const struct ast_vbios_enhtable res_1280x800[] = {
- {1440, 1280, 48, 32, 823, 800, 3, 6, VCLK71, /* 60Hz RB */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x35 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 60, 1, 0x35 },
- {1680, 1280, 72,128, 831, 800, 3, 6, VCLK83_5, /* 60Hz */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x35 },
- {1680, 1280, 72,128, 831, 800, 3, 6, VCLK83_5, /* 60Hz */
-@@ -279,7 +315,8 @@ static const struct ast_vbios_enhtable res_1280x800[] = {
-
- static const struct ast_vbios_enhtable res_1440x900[] = {
- {1600, 1440, 48, 32, 926, 900, 3, 6, VCLK88_75, /* 60Hz RB */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x36 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 60, 1, 0x36 },
- {1904, 1440, 80,152, 934, 900, 3, 6, VCLK106_5, /* 60Hz */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x36 },
- {1904, 1440, 80,152, 934, 900, 3, 6, VCLK106_5, /* 60Hz */
-@@ -288,7 +325,8 @@ static const struct ast_vbios_enhtable res_1440x900[] = {
-
- static const struct ast_vbios_enhtable res_1680x1050[] = {
- {1840, 1680, 48, 32, 1080, 1050, 3, 6, VCLK119, /* 60Hz RB */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x37 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 60, 1, 0x37 },
- {2240, 1680,104,176, 1089, 1050, 3, 6, VCLK146_25, /* 60Hz */
- (SyncPN | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 2, 0x37 },
- {2240, 1680,104,176, 1089, 1050, 3, 6, VCLK146_25, /* 60Hz */
-@@ -297,9 +335,11 @@ static const struct ast_vbios_enhtable res_1680x1050[] = {
-
- static const struct ast_vbios_enhtable res_1920x1200[] = {
- {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz RB*/
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 60, 1, 0x34 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 60, 1, 0x34 },
- {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz RB */
-- (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo), 0xFF, 1, 0x34 },
-+ (SyncNP | Charx8Dot | LineCompareOff | WideScreenMode | NewModeInfo |
-+ AST2500PreCatchCRT), 0xFF, 1, 0x34 },
- };
-
- #endif
---
-2.11.0
-
diff --git a/openpower/linux/0007-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch b/openpower/linux/0007-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
deleted file mode 100644
index da79871..0000000
--- a/openpower/linux/0007-drm-ast-Fixed-vram-size-incorrect-issue-on-POWER.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Y.C. Chen" <yc_chen@aspeedtech.com>
-Date: Fri, 17 Feb 2017 10:56:47 +0800
-Subject: [PATCH 07/12] drm/ast: Fixed vram size incorrect issue on POWER
-
-The default value of VGA scratch may incorrect.
-Should initial h/w before get vram info.
-
-Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_main.c | 6 +++---
- drivers/gpu/drm/ast/ast_post.c | 2 +-
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
-index 5a83d3793000..eefc5124eeb3 100644
---- a/drivers/gpu/drm/ast/ast_main.c
-+++ b/drivers/gpu/drm/ast/ast_main.c
-@@ -518,6 +518,9 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags)
-
- ast_detect_chip(dev, &need_post);
-
-+ if (need_post)
-+ ast_post_gpu(dev);
-+
- if (ast->chip != AST1180) {
- ret = ast_get_dram_info(dev);
- if (ret)
-@@ -528,9 +531,6 @@ int ast_driver_load(struct drm_device *dev, unsigned long flags)
- ast->dram_bus_width, ast->vram_size);
- }
-
-- if (need_post)
-- ast_post_gpu(dev);
--
- ret = ast_mm_init(ast);
- if (ret)
- goto out_free;
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index c7c58becb25d..5b7db846a2c1 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -75,7 +75,7 @@ ast_set_def_ext_reg(struct drm_device *dev)
- const u8 *ext_reg_info;
-
- /* reset scratch */
-- for (i = 0x81; i <= 0x8f; i++)
-+ for (i = 0x81; i <= 0x9f; i++)
- ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, 0x00);
-
- if (ast->chip == AST2300 || ast->chip == AST2400) {
---
-2.11.0
-
diff --git a/openpower/linux/0008-drm-ast-Factor-mmc_test-code-in-POST-code.patch b/openpower/linux/0008-drm-ast-Factor-mmc_test-code-in-POST-code.patch
deleted file mode 100644
index f85a1ce..0000000
--- a/openpower/linux/0008-drm-ast-Factor-mmc_test-code-in-POST-code.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Date: Sat, 18 Feb 2017 14:19:10 +1100
-Subject: [PATCH 08/12] drm/ast: Factor mmc_test code in POST code
-
-There's a some duplication for what's essentially copies of
-two loops, so factor it. The upcoming AST2500 POST code adds
-more of them. Also cleanup return types for the test functions,
-most of them return a boolean, some return a u32.
-
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
-
-v2. - Keep the split between the "test" and "test2" functions
- as they have a different exit condition in the loop and
- a different return type.
- - Fix the return types accross the call chain
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_post.c | 82 ++++++++++++++++--------------------------
- 1 file changed, 31 insertions(+), 51 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 5b7db846a2c1..89b09d60b2be 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -441,85 +441,65 @@ static const u32 pattern[8] = {
- 0x7C61D253
- };
-
--static int mmc_test_burst(struct ast_private *ast, u32 datagen)
-+static bool mmc_test(struct ast_private *ast, u32 datagen, u8 test_ctl)
- {
- u32 data, timeout;
-
- ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
-- ast_moutdwm(ast, 0x1e6e0070, 0x000000c1 | (datagen << 3));
-+ ast_moutdwm(ast, 0x1e6e0070, (datagen << 3) | test_ctl);
- timeout = 0;
- do {
- data = ast_mindwm(ast, 0x1e6e0070) & 0x3000;
-- if (data & 0x2000) {
-- return 0;
-- }
-+ if (data & 0x2000)
-+ return false;
- if (++timeout > TIMEOUT) {
- ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
-- return 0;
-+ return false;
- }
- } while (!data);
-- ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
-- return 1;
-+ ast_moutdwm(ast, 0x1e6e0070, 0x0);
-+ return true;
- }
-
--static int mmc_test_burst2(struct ast_private *ast, u32 datagen)
-+static u32 mmc_test2(struct ast_private *ast, u32 datagen, u8 test_ctl)
- {
- u32 data, timeout;
-
- ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
-- ast_moutdwm(ast, 0x1e6e0070, 0x00000041 | (datagen << 3));
-+ ast_moutdwm(ast, 0x1e6e0070, (datagen << 3) | test_ctl);
- timeout = 0;
- do {
- data = ast_mindwm(ast, 0x1e6e0070) & 0x1000;
- if (++timeout > TIMEOUT) {
- ast_moutdwm(ast, 0x1e6e0070, 0x0);
-- return -1;
-+ return 0xffffffff;
- }
- } while (!data);
- data = ast_mindwm(ast, 0x1e6e0078);
- data = (data | (data >> 16)) & 0xffff;
-- ast_moutdwm(ast, 0x1e6e0070, 0x0);
-+ ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
- return data;
- }
-
--static int mmc_test_single(struct ast_private *ast, u32 datagen)
-+
-+static bool mmc_test_burst(struct ast_private *ast, u32 datagen)
- {
-- u32 data, timeout;
-+ return mmc_test(ast, datagen, 0xc1);
-+}
-
-- ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
-- ast_moutdwm(ast, 0x1e6e0070, 0x000000c5 | (datagen << 3));
-- timeout = 0;
-- do {
-- data = ast_mindwm(ast, 0x1e6e0070) & 0x3000;
-- if (data & 0x2000)
-- return 0;
-- if (++timeout > TIMEOUT) {
-- ast_moutdwm(ast, 0x1e6e0070, 0x0);
-- return 0;
-- }
-- } while (!data);
-- ast_moutdwm(ast, 0x1e6e0070, 0x0);
-- return 1;
-+static u32 mmc_test_burst2(struct ast_private *ast, u32 datagen)
-+{
-+ return mmc_test2(ast, datagen, 0x41);
- }
-
--static int mmc_test_single2(struct ast_private *ast, u32 datagen)
-+static bool mmc_test_single(struct ast_private *ast, u32 datagen)
- {
-- u32 data, timeout;
-+ return mmc_test(ast, datagen, 0xc5);
-+}
-
-- ast_moutdwm(ast, 0x1e6e0070, 0x00000000);
-- ast_moutdwm(ast, 0x1e6e0070, 0x00000005 | (datagen << 3));
-- timeout = 0;
-- do {
-- data = ast_mindwm(ast, 0x1e6e0070) & 0x1000;
-- if (++timeout > TIMEOUT) {
-- ast_moutdwm(ast, 0x1e6e0070, 0x0);
-- return -1;
-- }
-- } while (!data);
-- data = ast_mindwm(ast, 0x1e6e0078);
-- data = (data | (data >> 16)) & 0xffff;
-- ast_moutdwm(ast, 0x1e6e0070, 0x0);
-- return data;
-+static u32 mmc_test_single2(struct ast_private *ast, u32 datagen)
-+{
-+ return mmc_test2(ast, datagen, 0x05);
- }
-
- static int cbr_test(struct ast_private *ast)
-@@ -597,16 +577,16 @@ static u32 cbr_scan2(struct ast_private *ast)
- return data2;
- }
-
--static u32 cbr_test3(struct ast_private *ast)
-+static bool cbr_test3(struct ast_private *ast)
- {
- if (!mmc_test_burst(ast, 0))
-- return 0;
-+ return false;
- if (!mmc_test_single(ast, 0))
-- return 0;
-- return 1;
-+ return false;
-+ return true;
- }
-
--static u32 cbr_scan3(struct ast_private *ast)
-+static bool cbr_scan3(struct ast_private *ast)
- {
- u32 patcnt, loop;
-
-@@ -617,9 +597,9 @@ static u32 cbr_scan3(struct ast_private *ast)
- break;
- }
- if (loop == 2)
-- return 0;
-+ return false;
- }
-- return 1;
-+ return true;
- }
-
- static bool finetuneDQI_L(struct ast_private *ast, struct ast2300_dram_param *param)
---
-2.11.0
-
diff --git a/openpower/linux/0009-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch b/openpower/linux/0009-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
deleted file mode 100644
index d0dc48f..0000000
--- a/openpower/linux/0009-drm-ast-Rename-ast_init_dram_2300-to-ast_post_chip_2.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Date: Fri, 17 Feb 2017 13:51:34 +1100
-Subject: [PATCH 09/12] drm/ast: Rename ast_init_dram_2300 to
- ast_post_chip_2300
-
-The function does more than initializing the DRAM and in turns
-calls other functions to do the actual init. This will keeping
-things more consistent with the upcoming AST2500 POST code.
-
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_post.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 89b09d60b2be..3716795d27c8 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -31,7 +31,7 @@
-
- #include "ast_dram_tables.h"
-
--static void ast_init_dram_2300(struct drm_device *dev);
-+static void ast_post_chip_2300(struct drm_device *dev);
-
- void ast_enable_vga(struct drm_device *dev)
- {
-@@ -377,7 +377,7 @@ void ast_post_gpu(struct drm_device *dev)
-
- if (ast->config_mode == ast_use_p2a) {
- if (ast->chip == AST2300 || ast->chip == AST2400)
-- ast_init_dram_2300(dev);
-+ ast_post_chip_2300(dev);
- else
- ast_init_dram_reg(dev);
-
-@@ -1585,7 +1585,7 @@ static void ddr2_init(struct ast_private *ast, struct ast2300_dram_param *param)
-
- }
-
--static void ast_init_dram_2300(struct drm_device *dev)
-+static void ast_post_chip_2300(struct drm_device *dev)
- {
- struct ast_private *ast = dev->dev_private;
- struct ast2300_dram_param param;
---
-2.11.0
-
diff --git a/openpower/linux/0010-drm-ast-POST-code-for-the-new-AST2500.patch b/openpower/linux/0010-drm-ast-POST-code-for-the-new-AST2500.patch
deleted file mode 100644
index 6e42f86..0000000
--- a/openpower/linux/0010-drm-ast-POST-code-for-the-new-AST2500.patch
+++ /dev/null
@@ -1,559 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Y.C. Chen" <yc_chen@aspeedtech.com>
-Date: Fri, 17 Feb 2017 14:45:07 +1100
-Subject: [PATCH 10/12] drm/ast: POST code for the new AST2500
-
-This is used when the BMC isn't running any code and thus has
-to be initialized by the host.
-
-The code originates from Aspeed (Y.C. Chen) and has been cleaned
-up for coding style purposes by BenH.
-
-Signed-off-by: Y.C. Chen <yc_chen@aspeedtech.com>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
-
-v2. - Fix bug in ddr_test_2500 reported by Emil Velikov
- - Rebase on updated mmc_test factoring patch
- - Fix missing else statement in 2500 POST code
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/gpu/drm/ast/ast_dram_tables.h | 62 +++++
- drivers/gpu/drm/ast/ast_post.c | 417 +++++++++++++++++++++++++++++++++-
- 2 files changed, 476 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/ast/ast_dram_tables.h b/drivers/gpu/drm/ast/ast_dram_tables.h
-index cc04539c0ff3..1d9c4e75d303 100644
---- a/drivers/gpu/drm/ast/ast_dram_tables.h
-+++ b/drivers/gpu/drm/ast/ast_dram_tables.h
-@@ -141,4 +141,66 @@ static const struct ast_dramstruct ast2100_dram_table_data[] = {
- { 0xffff, 0xffffffff },
- };
-
-+/*
-+ * AST2500 DRAM settings modules
-+ */
-+#define REGTBL_NUM 17
-+#define REGIDX_010 0
-+#define REGIDX_014 1
-+#define REGIDX_018 2
-+#define REGIDX_020 3
-+#define REGIDX_024 4
-+#define REGIDX_02C 5
-+#define REGIDX_030 6
-+#define REGIDX_214 7
-+#define REGIDX_2E0 8
-+#define REGIDX_2E4 9
-+#define REGIDX_2E8 10
-+#define REGIDX_2EC 11
-+#define REGIDX_2F0 12
-+#define REGIDX_2F4 13
-+#define REGIDX_2F8 14
-+#define REGIDX_RFC 15
-+#define REGIDX_PLL 16
-+
-+static const u32 ast2500_ddr3_1600_timing_table[REGTBL_NUM] = {
-+ 0x64604D38, /* 0x010 */
-+ 0x29690599, /* 0x014 */
-+ 0x00000300, /* 0x018 */
-+ 0x00000000, /* 0x020 */
-+ 0x00000000, /* 0x024 */
-+ 0x02181E70, /* 0x02C */
-+ 0x00000040, /* 0x030 */
-+ 0x00000024, /* 0x214 */
-+ 0x02001300, /* 0x2E0 */
-+ 0x0E0000A0, /* 0x2E4 */
-+ 0x000E001B, /* 0x2E8 */
-+ 0x35B8C105, /* 0x2EC */
-+ 0x08090408, /* 0x2F0 */
-+ 0x9B000800, /* 0x2F4 */
-+ 0x0E400A00, /* 0x2F8 */
-+ 0x9971452F, /* tRFC */
-+ 0x000071C1 /* PLL */
-+};
-+
-+static const u32 ast2500_ddr4_1600_timing_table[REGTBL_NUM] = {
-+ 0x63604E37, /* 0x010 */
-+ 0xE97AFA99, /* 0x014 */
-+ 0x00019000, /* 0x018 */
-+ 0x08000000, /* 0x020 */
-+ 0x00000400, /* 0x024 */
-+ 0x00000410, /* 0x02C */
-+ 0x00000101, /* 0x030 */
-+ 0x00000024, /* 0x214 */
-+ 0x03002900, /* 0x2E0 */
-+ 0x0E0000A0, /* 0x2E4 */
-+ 0x000E001C, /* 0x2E8 */
-+ 0x35B8C106, /* 0x2EC */
-+ 0x08080607, /* 0x2F0 */
-+ 0x9B000900, /* 0x2F4 */
-+ 0x0E400A00, /* 0x2F8 */
-+ 0x99714545, /* tRFC */
-+ 0x000071C1 /* PLL */
-+};
-+
- #endif
-diff --git a/drivers/gpu/drm/ast/ast_post.c b/drivers/gpu/drm/ast/ast_post.c
-index 3716795d27c8..f7d421359d56 100644
---- a/drivers/gpu/drm/ast/ast_post.c
-+++ b/drivers/gpu/drm/ast/ast_post.c
-@@ -32,6 +32,7 @@
- #include "ast_dram_tables.h"
-
- static void ast_post_chip_2300(struct drm_device *dev);
-+static void ast_post_chip_2500(struct drm_device *dev);
-
- void ast_enable_vga(struct drm_device *dev)
- {
-@@ -78,7 +79,8 @@ ast_set_def_ext_reg(struct drm_device *dev)
- for (i = 0x81; i <= 0x9f; i++)
- ast_set_index_reg(ast, AST_IO_CRTC_PORT, i, 0x00);
-
-- if (ast->chip == AST2300 || ast->chip == AST2400) {
-+ if (ast->chip == AST2300 || ast->chip == AST2400 ||
-+ ast->chip == AST2500) {
- if (dev->pdev->revision >= 0x20)
- ext_reg_info = extreginfo_ast2300;
- else
-@@ -102,7 +104,8 @@ ast_set_def_ext_reg(struct drm_device *dev)
-
- /* Enable RAMDAC for A1 */
- reg = 0x04;
-- if (ast->chip == AST2300 || ast->chip == AST2400)
-+ if (ast->chip == AST2300 || ast->chip == AST2400 ||
-+ ast->chip == AST2500)
- reg |= 0x20;
- ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xb6, 0xff, reg);
- }
-@@ -376,7 +379,9 @@ void ast_post_gpu(struct drm_device *dev)
- ast_set_def_ext_reg(dev);
-
- if (ast->config_mode == ast_use_p2a) {
-- if (ast->chip == AST2300 || ast->chip == AST2400)
-+ if (ast->chip == AST2500)
-+ ast_post_chip_2500(dev);
-+ else if (ast->chip == AST2300 || ast->chip == AST2400)
- ast_post_chip_2300(dev);
- else
- ast_init_dram_reg(dev);
-@@ -502,6 +507,11 @@ static u32 mmc_test_single2(struct ast_private *ast, u32 datagen)
- return mmc_test2(ast, datagen, 0x05);
- }
-
-+static bool mmc_test_single_2500(struct ast_private *ast, u32 datagen)
-+{
-+ return mmc_test(ast, datagen, 0x85);
-+}
-+
- static int cbr_test(struct ast_private *ast)
- {
- u32 data;
-@@ -1668,3 +1678,404 @@ static void ast_post_chip_2300(struct drm_device *dev)
- } while ((reg & 0x40) == 0);
- }
-
-+static bool cbr_test_2500(struct ast_private *ast)
-+{
-+ ast_moutdwm(ast, 0x1E6E0074, 0x0000FFFF);
-+ ast_moutdwm(ast, 0x1E6E007C, 0xFF00FF00);
-+ if (!mmc_test_burst(ast, 0))
-+ return false;
-+ if (!mmc_test_single_2500(ast, 0))
-+ return false;
-+ return true;
-+}
-+
-+static bool ddr_test_2500(struct ast_private *ast)
-+{
-+ ast_moutdwm(ast, 0x1E6E0074, 0x0000FFFF);
-+ ast_moutdwm(ast, 0x1E6E007C, 0xFF00FF00);
-+ if (!mmc_test_burst(ast, 0))
-+ return false;
-+ if (!mmc_test_burst(ast, 1))
-+ return false;
-+ if (!mmc_test_burst(ast, 2))
-+ return false;
-+ if (!mmc_test_burst(ast, 3))
-+ return false;
-+ if (!mmc_test_single_2500(ast, 0))
-+ return false;
-+ return true;
-+}
-+
-+static void ddr_init_common_2500(struct ast_private *ast)
-+{
-+ ast_moutdwm(ast, 0x1E6E0034, 0x00020080);
-+ ast_moutdwm(ast, 0x1E6E0008, 0x2003000F);
-+ ast_moutdwm(ast, 0x1E6E0038, 0x00000FFF);
-+ ast_moutdwm(ast, 0x1E6E0040, 0x88448844);
-+ ast_moutdwm(ast, 0x1E6E0044, 0x24422288);
-+ ast_moutdwm(ast, 0x1E6E0048, 0x22222222);
-+ ast_moutdwm(ast, 0x1E6E004C, 0x22222222);
-+ ast_moutdwm(ast, 0x1E6E0050, 0x80000000);
-+ ast_moutdwm(ast, 0x1E6E0208, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0218, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0220, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0228, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0230, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E02A8, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E02B0, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0240, 0x86000000);
-+ ast_moutdwm(ast, 0x1E6E0244, 0x00008600);
-+ ast_moutdwm(ast, 0x1E6E0248, 0x80000000);
-+ ast_moutdwm(ast, 0x1E6E024C, 0x80808080);
-+}
-+
-+static void ddr_phy_init_2500(struct ast_private *ast)
-+{
-+ u32 data, pass, timecnt;
-+
-+ pass = 0;
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000005);
-+ while (!pass) {
-+ for (timecnt = 0; timecnt < TIMEOUT; timecnt++) {
-+ data = ast_mindwm(ast, 0x1E6E0060) & 0x1;
-+ if (!data)
-+ break;
-+ }
-+ if (timecnt != TIMEOUT) {
-+ data = ast_mindwm(ast, 0x1E6E0300) & 0x000A0000;
-+ if (!data)
-+ pass = 1;
-+ }
-+ if (!pass) {
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000000);
-+ udelay(10); /* delay 10 us */
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000005);
-+ }
-+ }
-+
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000006);
-+}
-+
-+/*
-+ * Check DRAM Size
-+ * 1Gb : 0x80000000 ~ 0x87FFFFFF
-+ * 2Gb : 0x80000000 ~ 0x8FFFFFFF
-+ * 4Gb : 0x80000000 ~ 0x9FFFFFFF
-+ * 8Gb : 0x80000000 ~ 0xBFFFFFFF
-+ */
-+static void check_dram_size_2500(struct ast_private *ast, u32 tRFC)
-+{
-+ u32 reg_04, reg_14;
-+
-+ reg_04 = ast_mindwm(ast, 0x1E6E0004) & 0xfffffffc;
-+ reg_14 = ast_mindwm(ast, 0x1E6E0014) & 0xffffff00;
-+
-+ ast_moutdwm(ast, 0xA0100000, 0x41424344);
-+ ast_moutdwm(ast, 0x90100000, 0x35363738);
-+ ast_moutdwm(ast, 0x88100000, 0x292A2B2C);
-+ ast_moutdwm(ast, 0x80100000, 0x1D1E1F10);
-+
-+ /* Check 8Gbit */
-+ if (ast_mindwm(ast, 0xA0100000) == 0x41424344) {
-+ reg_04 |= 0x03;
-+ reg_14 |= (tRFC >> 24) & 0xFF;
-+ /* Check 4Gbit */
-+ } else if (ast_mindwm(ast, 0x90100000) == 0x35363738) {
-+ reg_04 |= 0x02;
-+ reg_14 |= (tRFC >> 16) & 0xFF;
-+ /* Check 2Gbit */
-+ } else if (ast_mindwm(ast, 0x88100000) == 0x292A2B2C) {
-+ reg_04 |= 0x01;
-+ reg_14 |= (tRFC >> 8) & 0xFF;
-+ } else {
-+ reg_14 |= tRFC & 0xFF;
-+ }
-+ ast_moutdwm(ast, 0x1E6E0004, reg_04);
-+ ast_moutdwm(ast, 0x1E6E0014, reg_14);
-+}
-+
-+static void enable_cache_2500(struct ast_private *ast)
-+{
-+ u32 reg_04, data;
-+
-+ reg_04 = ast_mindwm(ast, 0x1E6E0004);
-+ ast_moutdwm(ast, 0x1E6E0004, reg_04 | 0x1000);
-+
-+ do
-+ data = ast_mindwm(ast, 0x1E6E0004);
-+ while (!(data & 0x80000));
-+ ast_moutdwm(ast, 0x1E6E0004, reg_04 | 0x400);
-+}
-+
-+static void set_mpll_2500(struct ast_private *ast)
-+{
-+ u32 addr, data, param;
-+
-+ /* Reset MMC */
-+ ast_moutdwm(ast, 0x1E6E0000, 0xFC600309);
-+ ast_moutdwm(ast, 0x1E6E0034, 0x00020080);
-+ for (addr = 0x1e6e0004; addr < 0x1e6e0090;) {
-+ ast_moutdwm(ast, addr, 0x0);
-+ addr += 4;
-+ }
-+ ast_moutdwm(ast, 0x1E6E0034, 0x00020000);
-+
-+ ast_moutdwm(ast, 0x1E6E2000, 0x1688A8A8);
-+ data = ast_mindwm(ast, 0x1E6E2070) & 0x00800000;
-+ if (data) {
-+ /* CLKIN = 25MHz */
-+ param = 0x930023E0;
-+ ast_moutdwm(ast, 0x1E6E2160, 0x00011320);
-+ } else {
-+ /* CLKIN = 24MHz */
-+ param = 0x93002400;
-+ }
-+ ast_moutdwm(ast, 0x1E6E2020, param);
-+ udelay(100);
-+}
-+
-+static void reset_mmc_2500(struct ast_private *ast)
-+{
-+ ast_moutdwm(ast, 0x1E78505C, 0x00000004);
-+ ast_moutdwm(ast, 0x1E785044, 0x00000001);
-+ ast_moutdwm(ast, 0x1E785048, 0x00004755);
-+ ast_moutdwm(ast, 0x1E78504C, 0x00000013);
-+ mdelay(100);
-+ ast_moutdwm(ast, 0x1E785054, 0x00000077);
-+ ast_moutdwm(ast, 0x1E6E0000, 0xFC600309);
-+}
-+
-+static void ddr3_init_2500(struct ast_private *ast, const u32 *ddr_table)
-+{
-+
-+ ast_moutdwm(ast, 0x1E6E0004, 0x00000303);
-+ ast_moutdwm(ast, 0x1E6E0010, ddr_table[REGIDX_010]);
-+ ast_moutdwm(ast, 0x1E6E0014, ddr_table[REGIDX_014]);
-+ ast_moutdwm(ast, 0x1E6E0018, ddr_table[REGIDX_018]);
-+ ast_moutdwm(ast, 0x1E6E0020, ddr_table[REGIDX_020]); /* MODEREG4/6 */
-+ ast_moutdwm(ast, 0x1E6E0024, ddr_table[REGIDX_024]); /* MODEREG5 */
-+ ast_moutdwm(ast, 0x1E6E002C, ddr_table[REGIDX_02C] | 0x100); /* MODEREG0/2 */
-+ ast_moutdwm(ast, 0x1E6E0030, ddr_table[REGIDX_030]); /* MODEREG1/3 */
-+
-+ /* DDR PHY Setting */
-+ ast_moutdwm(ast, 0x1E6E0200, 0x02492AAE);
-+ ast_moutdwm(ast, 0x1E6E0204, 0x00001001);
-+ ast_moutdwm(ast, 0x1E6E020C, 0x55E00B0B);
-+ ast_moutdwm(ast, 0x1E6E0210, 0x20000000);
-+ ast_moutdwm(ast, 0x1E6E0214, ddr_table[REGIDX_214]);
-+ ast_moutdwm(ast, 0x1E6E02E0, ddr_table[REGIDX_2E0]);
-+ ast_moutdwm(ast, 0x1E6E02E4, ddr_table[REGIDX_2E4]);
-+ ast_moutdwm(ast, 0x1E6E02E8, ddr_table[REGIDX_2E8]);
-+ ast_moutdwm(ast, 0x1E6E02EC, ddr_table[REGIDX_2EC]);
-+ ast_moutdwm(ast, 0x1E6E02F0, ddr_table[REGIDX_2F0]);
-+ ast_moutdwm(ast, 0x1E6E02F4, ddr_table[REGIDX_2F4]);
-+ ast_moutdwm(ast, 0x1E6E02F8, ddr_table[REGIDX_2F8]);
-+ ast_moutdwm(ast, 0x1E6E0290, 0x00100008);
-+ ast_moutdwm(ast, 0x1E6E02C0, 0x00000006);
-+
-+ /* Controller Setting */
-+ ast_moutdwm(ast, 0x1E6E0034, 0x00020091);
-+
-+ /* Wait DDR PHY init done */
-+ ddr_phy_init_2500(ast);
-+
-+ ast_moutdwm(ast, 0x1E6E0120, ddr_table[REGIDX_PLL]);
-+ ast_moutdwm(ast, 0x1E6E000C, 0x42AA5C81);
-+ ast_moutdwm(ast, 0x1E6E0034, 0x0001AF93);
-+
-+ check_dram_size_2500(ast, ddr_table[REGIDX_RFC]);
-+ enable_cache_2500(ast);
-+ ast_moutdwm(ast, 0x1E6E001C, 0x00000008);
-+ ast_moutdwm(ast, 0x1E6E0038, 0xFFFFFF00);
-+}
-+
-+static void ddr4_init_2500(struct ast_private *ast, const u32 *ddr_table)
-+{
-+ u32 data, data2, pass, retrycnt;
-+ u32 ddr_vref, phy_vref;
-+ u32 min_ddr_vref = 0, min_phy_vref = 0;
-+ u32 max_ddr_vref = 0, max_phy_vref = 0;
-+
-+ ast_moutdwm(ast, 0x1E6E0004, 0x00000313);
-+ ast_moutdwm(ast, 0x1E6E0010, ddr_table[REGIDX_010]);
-+ ast_moutdwm(ast, 0x1E6E0014, ddr_table[REGIDX_014]);
-+ ast_moutdwm(ast, 0x1E6E0018, ddr_table[REGIDX_018]);
-+ ast_moutdwm(ast, 0x1E6E0020, ddr_table[REGIDX_020]); /* MODEREG4/6 */
-+ ast_moutdwm(ast, 0x1E6E0024, ddr_table[REGIDX_024]); /* MODEREG5 */
-+ ast_moutdwm(ast, 0x1E6E002C, ddr_table[REGIDX_02C] | 0x100); /* MODEREG0/2 */
-+ ast_moutdwm(ast, 0x1E6E0030, ddr_table[REGIDX_030]); /* MODEREG1/3 */
-+
-+ /* DDR PHY Setting */
-+ ast_moutdwm(ast, 0x1E6E0200, 0x42492AAE);
-+ ast_moutdwm(ast, 0x1E6E0204, 0x09002000);
-+ ast_moutdwm(ast, 0x1E6E020C, 0x55E00B0B);
-+ ast_moutdwm(ast, 0x1E6E0210, 0x20000000);
-+ ast_moutdwm(ast, 0x1E6E0214, ddr_table[REGIDX_214]);
-+ ast_moutdwm(ast, 0x1E6E02E0, ddr_table[REGIDX_2E0]);
-+ ast_moutdwm(ast, 0x1E6E02E4, ddr_table[REGIDX_2E4]);
-+ ast_moutdwm(ast, 0x1E6E02E8, ddr_table[REGIDX_2E8]);
-+ ast_moutdwm(ast, 0x1E6E02EC, ddr_table[REGIDX_2EC]);
-+ ast_moutdwm(ast, 0x1E6E02F0, ddr_table[REGIDX_2F0]);
-+ ast_moutdwm(ast, 0x1E6E02F4, ddr_table[REGIDX_2F4]);
-+ ast_moutdwm(ast, 0x1E6E02F8, ddr_table[REGIDX_2F8]);
-+ ast_moutdwm(ast, 0x1E6E0290, 0x00100008);
-+ ast_moutdwm(ast, 0x1E6E02C4, 0x3C183C3C);
-+ ast_moutdwm(ast, 0x1E6E02C8, 0x00631E0E);
-+
-+ /* Controller Setting */
-+ ast_moutdwm(ast, 0x1E6E0034, 0x0001A991);
-+
-+ /* Train PHY Vref first */
-+ pass = 0;
-+
-+ for (retrycnt = 0; retrycnt < 4 && pass == 0; retrycnt++) {
-+ max_phy_vref = 0x0;
-+ pass = 0;
-+ ast_moutdwm(ast, 0x1E6E02C0, 0x00001C06);
-+ for (phy_vref = 0x40; phy_vref < 0x80; phy_vref++) {
-+ ast_moutdwm(ast, 0x1E6E000C, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E02CC, phy_vref | (phy_vref << 8));
-+ /* Fire DFI Init */
-+ ddr_phy_init_2500(ast);
-+ ast_moutdwm(ast, 0x1E6E000C, 0x00005C01);
-+ if (cbr_test_2500(ast)) {
-+ pass++;
-+ data = ast_mindwm(ast, 0x1E6E03D0);
-+ data2 = data >> 8;
-+ data = data & 0xff;
-+ if (data > data2)
-+ data = data2;
-+ if (max_phy_vref < data) {
-+ max_phy_vref = data;
-+ min_phy_vref = phy_vref;
-+ }
-+ } else if (pass > 0)
-+ break;
-+ }
-+ }
-+ ast_moutdwm(ast, 0x1E6E02CC, min_phy_vref | (min_phy_vref << 8));
-+
-+ /* Train DDR Vref next */
-+ pass = 0;
-+
-+ for (retrycnt = 0; retrycnt < 4 && pass == 0; retrycnt++) {
-+ min_ddr_vref = 0xFF;
-+ max_ddr_vref = 0x0;
-+ pass = 0;
-+ for (ddr_vref = 0x00; ddr_vref < 0x40; ddr_vref++) {
-+ ast_moutdwm(ast, 0x1E6E000C, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E02C0, 0x00000006 | (ddr_vref << 8));
-+ /* Fire DFI Init */
-+ ddr_phy_init_2500(ast);
-+ ast_moutdwm(ast, 0x1E6E000C, 0x00005C01);
-+ if (cbr_test_2500(ast)) {
-+ pass++;
-+ if (min_ddr_vref > ddr_vref)
-+ min_ddr_vref = ddr_vref;
-+ if (max_ddr_vref < ddr_vref)
-+ max_ddr_vref = ddr_vref;
-+ } else if (pass != 0)
-+ break;
-+ }
-+ }
-+
-+ ast_moutdwm(ast, 0x1E6E000C, 0x00000000);
-+ ast_moutdwm(ast, 0x1E6E0060, 0x00000000);
-+ ddr_vref = (min_ddr_vref + max_ddr_vref + 1) >> 1;
-+ ast_moutdwm(ast, 0x1E6E02C0, 0x00000006 | (ddr_vref << 8));
-+
-+ /* Wait DDR PHY init done */
-+ ddr_phy_init_2500(ast);
-+
-+ ast_moutdwm(ast, 0x1E6E0120, ddr_table[REGIDX_PLL]);
-+ ast_moutdwm(ast, 0x1E6E000C, 0x42AA5C81);
-+ ast_moutdwm(ast, 0x1E6E0034, 0x0001AF93);
-+
-+ check_dram_size_2500(ast, ddr_table[REGIDX_RFC]);
-+ enable_cache_2500(ast);
-+ ast_moutdwm(ast, 0x1E6E001C, 0x00000008);
-+ ast_moutdwm(ast, 0x1E6E0038, 0xFFFFFF00);
-+}
-+
-+static bool ast_dram_init_2500(struct ast_private *ast)
-+{
-+ u32 data;
-+ u32 max_tries = 5;
-+
-+ do {
-+ if (max_tries-- == 0)
-+ return false;
-+ set_mpll_2500(ast);
-+ reset_mmc_2500(ast);
-+ ddr_init_common_2500(ast);
-+
-+ data = ast_mindwm(ast, 0x1E6E2070);
-+ if (data & 0x01000000)
-+ ddr4_init_2500(ast, ast2500_ddr4_1600_timing_table);
-+ else
-+ ddr3_init_2500(ast, ast2500_ddr3_1600_timing_table);
-+ } while (!ddr_test_2500(ast));
-+
-+ ast_moutdwm(ast, 0x1E6E2040, ast_mindwm(ast, 0x1E6E2040) | 0x41);
-+
-+ /* Patch code */
-+ data = ast_mindwm(ast, 0x1E6E200C) & 0xF9FFFFFF;
-+ ast_moutdwm(ast, 0x1E6E200C, data | 0x10000000);
-+
-+ return true;
-+}
-+
-+void ast_post_chip_2500(struct drm_device *dev)
-+{
-+ struct ast_private *ast = dev->dev_private;
-+ u32 temp;
-+ u8 reg;
-+
-+ reg = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd0, 0xff);
-+ if ((reg & 0x80) == 0) {/* vga only */
-+ /* Clear bus lock condition */
-+ ast_moutdwm(ast, 0x1e600000, 0xAEED1A03);
-+ ast_moutdwm(ast, 0x1e600084, 0x00010000);
-+ ast_moutdwm(ast, 0x1e600088, 0x00000000);
-+ ast_moutdwm(ast, 0x1e6e2000, 0x1688A8A8);
-+ ast_write32(ast, 0xf004, 0x1e6e0000);
-+ ast_write32(ast, 0xf000, 0x1);
-+ ast_write32(ast, 0x12000, 0x1688a8a8);
-+ while (ast_read32(ast, 0x12000) != 0x1)
-+ ;
-+
-+ ast_write32(ast, 0x10000, 0xfc600309);
-+ while (ast_read32(ast, 0x10000) != 0x1)
-+ ;
-+
-+ /* Slow down CPU/AHB CLK in VGA only mode */
-+ temp = ast_read32(ast, 0x12008);
-+ temp |= 0x73;
-+ ast_write32(ast, 0x12008, temp);
-+
-+ /* Reset USB port to patch USB unknown device issue */
-+ ast_moutdwm(ast, 0x1e6e2090, 0x20000000);
-+ temp = ast_mindwm(ast, 0x1e6e2094);
-+ temp |= 0x00004000;
-+ ast_moutdwm(ast, 0x1e6e2094, temp);
-+ temp = ast_mindwm(ast, 0x1e6e2070);
-+ if (temp & 0x00800000) {
-+ ast_moutdwm(ast, 0x1e6e207c, 0x00800000);
-+ mdelay(100);
-+ ast_moutdwm(ast, 0x1e6e2070, 0x00800000);
-+ }
-+
-+ if (!ast_dram_init_2500(ast))
-+ DRM_ERROR("DRAM init failed !\n");
-+
-+ temp = ast_mindwm(ast, 0x1e6e2040);
-+ ast_moutdwm(ast, 0x1e6e2040, temp | 0x40);
-+ }
-+
-+ /* wait ready */
-+ do {
-+ reg = ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xd0, 0xff);
-+ } while ((reg & 0x40) == 0);
-+}
---
-2.11.0
-
diff --git a/openpower/linux/0011-powerpc-powernv-cpuidle-Pass-correct-drv-cpumask-for.patch b/openpower/linux/0011-powerpc-powernv-cpuidle-Pass-correct-drv-cpumask-for.patch
deleted file mode 100644
index 25937aa..0000000
--- a/openpower/linux/0011-powerpc-powernv-cpuidle-Pass-correct-drv-cpumask-for.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
-Date: Thu, 23 Mar 2017 20:52:46 +0530
-Subject: [PATCH 11/12] powerpc/powernv/cpuidle: Pass correct drv->cpumask for
- registration
-
-drv->cpumask defaults to cpu_possible_mask in __cpuidle_driver_init().
-On PowerNV platform cpu_present could be less than cpu_possible in cases
-where firmware detects the cpu, but it is not available to the OS. When
-CONFIG_HOTPLUG_CPU=n, such cpus are not hotplugable at runtime and hence
-we skip creating cpu_device.
-
-This breaks cpuidle on powernv where register_cpu() is not called for
-cpus in cpu_possible_mask that cannot be hot-added at runtime.
-
-Trying cpuidle_register_device() on cpu without cpu_device will cause
-crash like this:
-
-cpu 0xf: Vector: 380 (Data SLB Access) at [c000000ff1503490]
- pc: c00000000022c8bc: string+0x34/0x60
- lr: c00000000022ed78: vsnprintf+0x284/0x42c
- sp: c000000ff1503710
- msr: 9000000000009033
- dar: 6000000060000000
- current = 0xc000000ff1480000
- paca = 0xc00000000fe82d00 softe: 0 irq_happened: 0x01
- pid = 1, comm = swapper/8
-Linux version 4.11.0-rc2 (sv@sagarika) (gcc version 4.9.4
-(Buildroot 2017.02-00004-gc28573e) ) #15 SMP Fri Mar 17 19:32:02 IST 2017
-enter ? for help
-[link register ] c00000000022ed78 vsnprintf+0x284/0x42c
-[c000000ff1503710] c00000000022ebb8 vsnprintf+0xc4/0x42c (unreliable)
-[c000000ff1503800] c00000000022ef40 vscnprintf+0x20/0x44
-[c000000ff1503830] c0000000000ab61c vprintk_emit+0x94/0x2cc
-[c000000ff15038a0] c0000000000acc9c vprintk_func+0x60/0x74
-[c000000ff15038c0] c000000000619694 printk+0x38/0x4c
-[c000000ff15038e0] c000000000224950 kobject_get+0x40/0x60
-[c000000ff1503950] c00000000022507c kobject_add_internal+0x60/0x2c4
-[c000000ff15039e0] c000000000225350 kobject_init_and_add+0x70/0x78
-[c000000ff1503a60] c00000000053c288 cpuidle_add_sysfs+0x9c/0xe0
-[c000000ff1503ae0] c00000000053aeac cpuidle_register_device+0xd4/0x12c
-[c000000ff1503b30] c00000000053b108 cpuidle_register+0x98/0xcc
-[c000000ff1503bc0] c00000000085eaf0 powernv_processor_idle_init+0x140/0x1e0
-[c000000ff1503c60] c00000000000cd60 do_one_initcall+0xc0/0x15c
-[c000000ff1503d20] c000000000833e84 kernel_init_freeable+0x1a0/0x25c
-[c000000ff1503dc0] c00000000000d478 kernel_init+0x24/0x12c
-[c000000ff1503e30] c00000000000b564 ret_from_kernel_thread+0x5c/0x78
-
-This patch fixes the bug by passing correct cpumask from
-powernv-cpuidle driver.
-
-Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
-Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
-[From http://patchwork.ozlabs.org/patch/742706/]
-Signed-off-by: Joel Stanley <joel@jms.id.au>
-
-Signed-off-by: Joel Stanley <joel@jms.id.au>
----
- drivers/cpuidle/cpuidle-powernv.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/cpuidle/cpuidle-powernv.c b/drivers/cpuidle/cpuidle-powernv.c
-index 0835a37a5f3a..5e06d7b6b508 100644
---- a/drivers/cpuidle/cpuidle-powernv.c
-+++ b/drivers/cpuidle/cpuidle-powernv.c
-@@ -164,6 +164,24 @@ static int powernv_cpuidle_driver_init(void)
- drv->state_count += 1;
- }
-
-+ /*
-+ * On PowerNV platform cpu_present may be less that cpu_possible in
-+ * cases where firmware detects the cpu, but it is not available to the
-+ * OS. If CONFIG_HOTPLUG_CPU=n then such CPUs are not hotplugable at
-+ * runtime and hence cpu_devices are not created for those cpus by
-+ * generic topology_init().
-+ *
-+ * drv->cpumask defaults to cpu_possible_mask in
-+ * __cpuidle_driver_init(). This breaks cpuidle on powernv where
-+ * cpu_devices are not created for cpus in cpu_possible_mask that
-+ * cannot be hot-added later at runtime.
-+ *
-+ * Trying cpuidle_register_device() on a cpu without cpu_devices is
-+ * incorrect. Hence pass correct cpu mask to generic cpuidle driver.
-+ */
-+
-+ drv->cpumask = (struct cpumask *)cpu_present_mask;
-+
- return 0;
- }
-
---
-2.11.0
-
diff --git a/openpower/package/Config.in b/openpower/package/Config.in
index a28de54..d380784 100755
--- a/openpower/package/Config.in
+++ b/openpower/package/Config.in
@@ -3,11 +3,7 @@
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot-binaries/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-mrw/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/common-p8-xml/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/palmetto-xml/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/habanero-xml/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/firestone-xml/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/garrison-xml/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/barreleye-xml/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/machine-xml/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-pnor/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/petitboot/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/p8-pore-binutils/Config.in"
@@ -16,10 +12,8 @@
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/skiboot/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/libflash/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/loadkeys/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/witherspoon-xml/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/romulus-xml/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/ppe42-binutils/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/ppe42-gcc/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/zaius-xml/Config.in"
source "$BR2_EXTERNAL_OP_BUILD_PATH/package/ima-catalog/Config.in"
-source "$BR2_EXTERNAL_OP_BUILD_PATH/package/p9dsu-xml/Config.in"
+source "$BR2_EXTERNAL_OP_BUILD_PATH/package/sbe/Config.in"
+
diff --git a/openpower/package/barreleye-xml/Config.in b/openpower/package/barreleye-xml/Config.in
deleted file mode 100755
index 5a8ba74..0000000
--- a/openpower/package/barreleye-xml/Config.in
+++ /dev/null
@@ -1,24 +0,0 @@
-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
-
-config BR2_BARRELEYE_SYSTEM_XML_FILENAME
- string "Barreleye targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_BARRELEYE_MRW_XML_FILENAME
- string "Barreleye targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_BARRELEYE_BIOS_XML_FILENAME
- string "Barreleye BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/barreleye-xml/barreleye-xml.mk b/openpower/package/barreleye-xml/barreleye-xml.mk
deleted file mode 100755
index 1621a56..0000000
--- a/openpower/package/barreleye-xml/barreleye-xml.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-################################################################################
-#
-# barreleye_xml
-#
-################################################################################
-
-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 openpower-mrw common-p8-xml
-
-BARRELEYE_XML_INSTALL_IMAGES = YES
-BARRELEYE_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-BARRELEYE_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_BARRELEYE_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define BARRELEYE_XML_BUILD_CMDS
- # copy the barreleye xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/barreleye.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_BARRELEYE_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/attribute_types_openpower.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_openpower.xml \
- $(MRW_SCRATCH)/$(BR2_BARRELEYE_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(BARRELEYE_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define BARRELEYE_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define BARRELEYE_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/capp-ucode/capp-ucode.mk b/openpower/package/capp-ucode/capp-ucode.mk
index c846638..7513fe0 100644
--- a/openpower/package/capp-ucode/capp-ucode.mk
+++ b/openpower/package/capp-ucode/capp-ucode.mk
@@ -3,7 +3,7 @@
# capp-ucode.mk
#
################################################################################
-CAPP_UCODE_VERSION ?= 1bb7503078ed39b74a7b9c46925da75e547ceea6
+CAPP_UCODE_VERSION ?= 9c73e9f51d240847fbd150815a3b9c548aae0cb8
CAPP_UCODE_SITE ?= $(call github,open-power,capp-ucode,$(CAPP_UCODE_VERSION))
CAPP_UCODE_LICENSE = Apache-2.0
CAPP_UCODE_LICENSE_FILES = NOTICES
diff --git a/openpower/package/firestone-xml/Config.in b/openpower/package/firestone-xml/Config.in
deleted file mode 100755
index 3990b29..0000000
--- a/openpower/package/firestone-xml/Config.in
+++ /dev/null
@@ -1,24 +0,0 @@
-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
-
-config BR2_FIRESTONE_SYSTEM_XML_FILENAME
- string "Firestone targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_FIRESTONE_MRW_XML_FILENAME
- string "Firestone targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_FIRESTONE_BIOS_XML_FILENAME
- string "Firestone BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
deleted file mode 100644
index 4a2a55e..0000000
--- a/openpower/package/firestone-xml/firestone.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-################################################################################
-#
-# firestone_xml
-#
-################################################################################
-
-FIRESTONE_XML_VERSION ?= 2494a430656504d014780000adbc2c2e7cfc54ab
-FIRESTONE_XML_SITE ?= $(call github,open-power,firestone-xml,$(FIRESTONE_XML_VERSION))
-
-FIRESTONE_XML_LICENSE = Apache-2.0
-FIRESTONE_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
-
-FIRESTONE_XML_INSTALL_IMAGES = YES
-FIRESTONE_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-FIRESTONE_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_FIRESTONE_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define FIRESTONE_XML_BUILD_CMDS
- # copy the firestone xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/firestone.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_FIRESTONE_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_SCRATCH)/$(BR2_FIRESTONE_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(FIRESTONE_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define FIRESTONE_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define FIRESTONE_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/garrison-xml/Config.in b/openpower/package/garrison-xml/Config.in
deleted file mode 100755
index a71a2c8..0000000
--- a/openpower/package/garrison-xml/Config.in
+++ /dev/null
@@ -1,24 +0,0 @@
-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
-
-config BR2_GARRISON_SYSTEM_XML_FILENAME
- string "Garrison targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_GARRISON_MRW_XML_FILENAME
- string "Garrison targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_GARRISON_BIOS_XML_FILENAME
- string "Garrison BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/garrison-xml/garrison.mk b/openpower/package/garrison-xml/garrison.mk
deleted file mode 100644
index 1e152ce..0000000
--- a/openpower/package/garrison-xml/garrison.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-################################################################################
-#
-# garrison_xml
-#
-################################################################################
-
-GARRISON_XML_VERSION ?= 19a516499e1090c20c5a3303db256529ef22c1c9
-GARRISON_XML_SITE ?= $(call github,open-power,garrison-xml,$(GARRISON_XML_VERSION))
-
-GARRISON_XML_LICENSE = Apache-2.0
-GARRISON_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
-
-GARRISON_XML_INSTALL_IMAGES = YES
-GARRISON_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-GARRISON_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_GARRISON_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define GARRISON_XML_BUILD_CMDS
- # copy the garrison xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/garrison.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_GARRISON_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_SCRATCH)/$(BR2_GARRISON_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(GARRISON_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define GARRISON_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define GARRISON_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/habanero-xml/Config.in b/openpower/package/habanero-xml/Config.in
deleted file mode 100755
index 02420ce..0000000
--- a/openpower/package/habanero-xml/Config.in
+++ /dev/null
@@ -1,24 +0,0 @@
-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
-
-config BR2_HABANERO_SYSTEM_XML_FILENAME
- string "Habanero targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_HABANERO_MRW_XML_FILENAME
- string "Habanero targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_HABANERO_BIOS_XML_FILENAME
- string "Habanero BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
deleted file mode 100644
index 66f2791..0000000
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-################################################################################
-#
-# habanero_xml
-#
-################################################################################
-
-HABANERO_XML_VERSION ?= 6a78496c286e284719a8201148a5088030b897de
-HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
-
-HABANERO_XML_LICENSE = Apache-2.0
-HABANERO_XML_LICENSE_FILES = LICENSE
-HABANERO_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
-
-HABANERO_XML_INSTALL_IMAGES = YES
-HABANERO_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-HABANERO_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_HABANERO_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define HABANERO_XML_BUILD_CMDS
- # copy the habanero xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/habanero.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_HABANERO_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/attribute_types_openpower.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_openpower.xml \
- $(MRW_SCRATCH)/$(BR2_HABANERO_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(HABANERO_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define HABANERO_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define HABANERO_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/hostboot-binaries/hostboot_binaries.mk b/openpower/package/hostboot-binaries/hostboot_binaries.mk
index c10f2c2..ef28e87 100644
--- a/openpower/package/hostboot-binaries/hostboot_binaries.mk
+++ b/openpower/package/hostboot-binaries/hostboot_binaries.mk
@@ -4,7 +4,7 @@
#
################################################################################
-HOSTBOOT_BINARIES_VERSION ?= 46670e3214d1ec1fbffe06d286b307b25505d149
+HOSTBOOT_BINARIES_VERSION ?= 762912103d3d74be185b1b886063515232070375
HOSTBOOT_BINARIES_SITE ?= $(call github,open-power,hostboot-binaries,$(HOSTBOOT_BINARIES_VERSION))
HOSTBOOT_BINARIES_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index a0b5c64..94fb7ef 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
#
################################################################################
HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= 695bd891343faf1f0ef85fe53148590e58239efd
-HOSTBOOT_VERSION_BRANCH_MASTER ?= 3a3d65e1bec528f3ba6b526bdeb843ad379c68fc
+HOSTBOOT_VERSION_BRANCH_MASTER ?= d96098eaf93f873dc859dacb1b91eb95f1c8877a
HOSTBOOT_VERSION ?= $(if $(BR2_OPENPOWER_POWER9),$(HOSTBOOT_VERSION_BRANCH_MASTER),$(HOSTBOOT_VERSION_BRANCH_MASTER_P8))
HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0002-Only-build-attributeOverride-if-compiler-supports-st.patch b/openpower/package/hostboot/p9Patches/hostboot-0002-Only-build-attributeOverride-if-compiler-supports-st.patch
new file mode 100644
index 0000000..d369874
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0002-Only-build-attributeOverride-if-compiler-supports-st.patch
@@ -0,0 +1,101 @@
+From 88a9eed95a72e6cbc8956585308599bf07aec70a Mon Sep 17 00:00:00 2001
+From: Stewart Smith <stewart@linux.vnet.ibm.com>
+Date: Mon, 20 Mar 2017 13:31:35 +1100
+Subject: [PATCH] Only build attributeOverride if compiler supports
+ -std=gnu++11
+
+GCC prior to 4.8 doesn't support -std=gnu++11, which the attributeOverride
+tool requires to build.
+
+Since this is only a host side utility, we can not build it if we're
+building hostboot with ancient host compilers (e.g. on RHEL6.x)
+
+Change-Id: I53ad31b56dd90c2cd77f5ca1f91b46e519cdfe48
+Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
+---
+ src/build/mkrules/cc.rules.mk | 10 +++++++++-
+ src/build/mkrules/dist.targets.mk | 7 ++++++-
+ src/usr/targeting/attroverride/makefile | 8 +++++++-
+ 3 files changed, 22 insertions(+), 3 deletions(-)
+
+diff --git a/src/build/mkrules/cc.rules.mk b/src/build/mkrules/cc.rules.mk
+index cb00ea001072..c89995f825df 100644
+--- a/src/build/mkrules/cc.rules.mk
++++ b/src/build/mkrules/cc.rules.mk
+@@ -5,7 +5,9 @@
+ #
+ # OpenPOWER HostBoot Project
+ #
+-# COPYRIGHT International Business Machines Corp. 2013,2014
++# Contributors Listed Below - COPYRIGHT 2013,2017
++# [+] International Business Machines Corp.
++#
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+ # you may not use this file except in compliance with the License.
+@@ -74,3 +76,9 @@ $(IMGDIR)/lib$(MODULE).so : $(OBJECTS) $(ROOTPATH)/src/module.ld $(MODULE_INIT)
+ $(OBJECTS) $(MODULE_INIT) \
+ -T $(ROOTPATH)/src/module.ld -o $@
+ endif
++
++try = $(shell set -e; if ($(1)) >/dev/null 2>&1; \
++ then echo "$(2)"; \
++ else echo "$(3)"; fi )
++
++try-cflag = $(call try,$(1) $(2) -x c -c /dev/null -o /dev/null,$(2))
+diff --git a/src/build/mkrules/dist.targets.mk b/src/build/mkrules/dist.targets.mk
+index 2f047bcda0b7..ba6114db9aae 100644
+--- a/src/build/mkrules/dist.targets.mk
++++ b/src/build/mkrules/dist.targets.mk
+@@ -71,7 +71,6 @@ COPY_FILES = \
+ obj/genfiles/targAttrInfo.csv:vpo \
+ obj/genfiles/target_types_merged.xml:openpower \
+ obj/genfiles/fapiattrs.xml:openpower \
+- obj/genfiles/attributeOverride:tools,openpower \
+ src/usr/targeting/attroverride/README.attr_override:tools,openpower \
+ src/build/hwpf/prcd_compile.tcl:tools \
+ src/build/buildpnor/buildSbePart.pl:openpower \
+@@ -94,6 +93,12 @@ COPY_FILES = \
+ src/usr/targeting/common/xmltohb/bios_metadata_petitboot.xslt:openpower \
+ $(foreach file, $(call ROOTPATH_WILDCARD,releaseNotes.html), $(file):fsp)\
+
++ifeq ($(call try-cflag,$(CCACHE) $(HOST_PREFIX)g++,-std=gnu++11),-std=gnu++11)
++COPY_FILES += obj/genfiles/attributeOverride:tools,openpower
++else
++COPY_FILES += obj/genfiles/attributeOverride:tools
++endif
++
+ include ${ROOTPATH}/config.mk
+ COPY_FILES += $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),src/usr/targeting/common/xmltohb/target_types_oppowervm.xml:openpower) \
+ $(if $(CONFIG_INCLUDE_XML_OPPOWERVM),src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml:openpower) \
+diff --git a/src/usr/targeting/attroverride/makefile b/src/usr/targeting/attroverride/makefile
+index 8ab26fd5009b..d9f0e85b324c 100644
+--- a/src/usr/targeting/attroverride/makefile
++++ b/src/usr/targeting/attroverride/makefile
+@@ -5,7 +5,7 @@
+ #
+ # OpenPOWER HostBoot Project
+ #
+-# Contributors Listed Below - COPYRIGHT 2014,2016
++# Contributors Listed Below - COPYRIGHT 2014,2017
+ # [+] International Business Machines Corp.
+ #
+ #
+@@ -49,8 +49,14 @@ include $(ROOTPATH)/config.mk
+ vpath %.C $(GENDIR)
+ vpath %.H $(GENDIR)
+
++ifeq ($(call try-cflag,$(CCACHE) $(HOST_PREFIX)g++,-std=gnu++11),-std=gnu++11)
+ $(OUT_FILE): $(C_FILES) $(H_FILES)
+ $(C2) " CC $(notdir $@)"
+ $(C1)$(CCACHE) $(HOST_PREFIX)g++ -std=gnu++11 -O3 -g -o $(OUT_FILE)\
+ $(foreach dir,$(INC_DIRS), -I $(dir)) -iquote.\
+ $(foreach file,$^,$(if $(findstring .H,$(file)),,$(file)))
++else
++$(OUT_FILE): $(C_FILES) $(H_FILES)
++ $(C2) " GEN-NULL $(notdir $@)"
++ @(echo '#!/bin/sh'; echo 'exit -1';) > $(OUT_FILE)
++endif
+--
+2.9.3
+
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0002-remove-attr-override-compile.patch b/openpower/package/hostboot/p9Patches/hostboot-0002-remove-attr-override-compile.patch
deleted file mode 100644
index 6ae8248..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0002-remove-attr-override-compile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 53bd51536cccbef8d080a92bf4a2b16ca549af3c Mon Sep 17 00:00:00 2001
-From: Matt Ploetz <maploetz@us.ibm.com>
-Date: Tue, 6 Sep 2016 14:08:08 -0500
-Subject: [PATCH] Remove the building and distributuion of attribute override
- tool
-
-Change-Id: Ifbe7eef4152d5c5521aa6f1e2659d30aa46fd525
-RTC:160270
----
- src/build/mkrules/dist.targets.mk | 2 +-
- src/usr/targeting/makefile | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/build/mkrules/dist.targets.mk b/src/build/mkrules/dist.targets.mk
-index d201570..df08258 100644
---- a/src/build/mkrules/dist.targets.mk
-+++ b/src/build/mkrules/dist.targets.mk
-@@ -70,7 +70,7 @@ COPY_FILES = \
- obj/genfiles/targAttrInfo.csv:vpo \
- obj/genfiles/target_types_merged.xml:openpower \
- obj/genfiles/fapiattrs.xml:openpower \
-- obj/genfiles/attributeOverride:tools,openpower \
-+ obj/genfiles/attributeOverride:tools \
- src/usr/targeting/attroverride/README.attr_override:tools,openpower \
- src/build/hwpf/prcd_compile.tcl:tools \
- src/build/buildpnor/buildSbePart.pl:openpower \
-diff --git a/src/usr/targeting/makefile b/src/usr/targeting/makefile
-index 61dfb0a..c0c31ea 100644
---- a/src/usr/targeting/makefile
-+++ b/src/usr/targeting/makefile
-@@ -65,7 +65,7 @@ OBJS += ${HOSTBOOT_SPECIFIC_OBJS}
- SUBDIRS += test.d
- SUBDIRS += xmltohb.d
- SUBDIRS += runtime.d
--SUBDIRS += attroverride.d
-+#SUBDIRS += attroverride.d
-
- include ${ROOTPATH}/config.mk
-
---
-1.8.2.2
-
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0003-Revert-ProcessMRW-changes-for-dynamic-i2c-devices.patch b/openpower/package/hostboot/p9Patches/hostboot-0003-Revert-ProcessMRW-changes-for-dynamic-i2c-devices.patch
new file mode 100644
index 0000000..7c097e7
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0003-Revert-ProcessMRW-changes-for-dynamic-i2c-devices.patch
@@ -0,0 +1,359 @@
+From 7a4142d229ddd0554684664df8d7fa9bd402abc7 Mon Sep 17 00:00:00 2001
+From: Bill Hoffa <wghoffa@us.ibm.com>
+Date: Mon, 8 May 2017 13:03:51 -0500
+Subject: [PATCH] Revert "ProcessMRW changes for dynamic i2c devices"
+
+- Do this temporarily while the attribute dependencies are sorted out
+ (HDAT_I2C_DEVICE_TYPE + HDAT_I2C_DEVICE_PURPOSE)
+
+This reverts commit 651ed35f1c045ea0c52ac659f9c27d757a351877.
+---
+ src/usr/i2c/i2c.C | 12 +-
+ src/usr/targeting/common/Targets.pm | 16 --
+ src/usr/targeting/common/processMrw.pl | 190 ---------------------
+ .../common/xmltohb/attribute_types_openpower.xml | 4 +-
+ .../common/xmltohb/target_types_openpower.xml | 6 +-
+ 5 files changed, 12 insertions(+), 216 deletions(-)
+
+diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
+index 3892497..835d9ea 100755
+--- a/src/usr/i2c/i2c.C
++++ b/src/usr/i2c/i2c.C
+@@ -3854,6 +3854,9 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
+ case EEPROM::VPD_BACKUP:
+ l_currentDI.devicePurpose =
+ TARGETING::HDAT_I2C_DEVICE_PURPOSE_MODULE_VPD;
++ //TODO RTC:165485 this isn't currently right. we'll need
++ //to add the changes in the enum and possibly the other
++ //struct/attribute.
+ break;
+ case EEPROM::SBE_PRIMARY:
+ case EEPROM::SBE_BACKUP:
+@@ -3938,8 +3941,8 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
+ TARGETING::ATTR_HDAT_I2C_MASTER_PORT_type l_i2cMasterPort;
+ (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_MASTER_PORT>(
+ l_i2cMasterPort);
+- TARGETING::ATTR_HDAT_I2C_DEVICE_TYPE_type l_i2cDevType;
+- (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEVICE_TYPE>(
++ TARGETING::ATTR_HDAT_I2C_DEVTYPE_type l_i2cDevType;
++ (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEVTYPE>(
+ l_i2cDevType);
+ TARGETING::ATTR_HDAT_I2C_ADDR_type l_i2cAddr;
+ (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_ADDR>(l_i2cAddr);
+@@ -3949,8 +3952,8 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
+ TARGETING::ATTR_HDAT_I2C_BUS_FREQ_type l_i2cBusFreq;
+ (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_BUS_FREQ>(
+ l_i2cBusFreq);
+- TARGETING::ATTR_HDAT_I2C_DEVICE_PURPOSE_type l_i2cDevPurpose;
+- (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEVICE_PURPOSE>(
++ TARGETING::ATTR_HDAT_I2C_DEV_PURPOSE_type l_i2cDevPurpose;
++ (*childItr)->tryGetAttr<TARGETING::ATTR_HDAT_I2C_DEV_PURPOSE>(
+ l_i2cDevPurpose);
+
+ uint8_t l_arrayLength =
+@@ -3966,7 +3969,6 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
+ l_idx++)
+ {
+ DeviceInfo_t l_currentDevice;
+- l_currentDevice.masterChip = (*childItr);
+ l_currentDevice.engine = l_i2cEngine[l_idx];
+ l_currentDevice.masterPort = l_i2cMasterPort[l_idx];
+ l_currentDevice.addr = l_i2cAddr[l_idx];
+diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
+index 44b24bb..9009b4d 100644
+--- a/src/usr/targeting/common/Targets.pm
++++ b/src/usr/targeting/common/Targets.pm
+@@ -1708,18 +1708,6 @@ sub getBusAttribute
+ ->{default};
+ }
+
+-## returns a boolean for if a given bus attribute is defined
+-sub isBusAttributeDefined
+-{
+- my $self = shift;
+- my $target = shift;
+- my $busnum = shift;
+- my $attr = shift;
+- my $target_ptr = $self->getTarget($target);
+-
+- return defined($target_ptr->{CONNECTION}->{BUS}->[$busnum]->{bus_attribute}
+- ->{$attr}->{default});
+-}
+
+ ## returns a pointer to an array of children target names
+ sub getTargetChildren
+@@ -2059,10 +2047,6 @@ to value C<VALUE>. This is for complex attributes.
+ Gets the attribute C<ATTRIBUTE_NAME> from bus C<TARGET_STRING> bus number
+ C<INDEX>.
+
+-=item isBusAttributeDefined(C<TARGET_STRING>,C<INDEX>.C<ATTRIBUTE_NAME>)
+-
+-Looks for a specific attribute and returns if it exists or not
+-
+ =item getTargetChildren(C<TARGET_STRING>)
+
+ Returns an array of target strings representing all the children of target
+diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
+index 97d9901..fd6fbad 100644
+--- a/src/usr/targeting/common/processMrw.pl
++++ b/src/usr/targeting/common/processMrw.pl
+@@ -477,15 +477,6 @@ sub processProcessor
+ $targetObj->setMasterProc($target);
+ }
+
+- # I2C arrays
+- my @engine = ();
+- my @port = ();
+- my @slavePort = ();
+- my @addr = ();
+- my @speed = ();
+- my @type = ();
+- my @purpose = ();
+-
+ $targetObj->log($target, "Processing PROC");
+ foreach my $child (@{ $targetObj->getTargetChildren($target) })
+ {
+@@ -537,58 +528,8 @@ sub processProcessor
+ {
+ processOcc($targetObj, $child, $target);
+ }
+- # Ideally this should be $child_type eq "I2C", but we need a change
+- # in serverwiz and the witherspoon.xml first
+- elsif (index($child,"i2c-master") != -1)
+- {
+- my ($i2cEngine, $i2cPort, $i2cSlavePort, $i2cAddr,
+- $i2cSpeed, $i2cType, $i2cPurpose) =
+- processI2C($targetObj, $child, $target);
+-
+- # Add this I2C device's information to the proc array
+- push(@engine,@$i2cEngine);
+- push(@port,@$i2cPort);
+- push(@slavePort,@$i2cSlavePort);
+- push(@addr,@$i2cAddr);
+- push(@speed,@$i2cSpeed);
+- push(@type,@$i2cType);
+- push(@purpose,@$i2cPurpose);
+-
+- }
+ }
+
+- # Add final I2C arrays to processor
+- my $size = scalar @engine;
+- my $engine_attr = $engine[0];
+- my $port_attr = $port[0];
+- my $slave_attr = $slavePort[0];
+- my $addr_attr = $addr[0];
+- my $speed_attr = $speed[0];
+- my $type_attr = "0x".$type[0];
+- my $purpose_attr = "0x".$purpose[0];
+-
+- # Parse out array to print as a string
+- foreach my $n (1..($size-1))
+- {
+- $engine_attr .= ",".$engine[$n];
+- $port_attr .= ",".$port[$n];
+- $slave_attr .= ",".$slavePort[$n];
+- $addr_attr .= ",".$addr[$n];
+- $speed_attr .= ",".$speed[$n];
+- $type_attr .= ",0x".$type[$n];
+- $purpose_attr .= ",0x".$purpose[$n];
+- }
+-
+- # Set the arrays to the corresponding attribute on the proc
+- $targetObj->setAttribute($target,"HDAT_I2C_ENGINE",$engine_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_MASTER_PORT",$port_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_SLAVE_PORT",$slave_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_ADDR",$addr_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_BUS_FREQ",$speed_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_DEVICE_TYPE",$type_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_DEVICE_PURPOSE",$purpose_attr);
+- $targetObj->setAttribute($target,"HDAT_I2C_ELEMENTS",$size);
+-
+ ## update path for mvpd's and sbe's
+ my $path = $targetObj->getAttribute($target, "PHYS_PATH");
+ my $model = $targetObj->getAttribute($target, "MODEL");
+@@ -1290,137 +1231,6 @@ sub getI2cMapField
+ return $hexfield;
+ }
+
+-#------------------------------------------------------------------------------
+-# I2C
+-#
+-sub processI2C
+-{
+- my $targetObj = shift; # Top Hierarchy of targeting structure
+- my $target = shift; # I2C targetInstance
+- my $parentTarget = shift; # Processor target
+-
+- # Initialize output arrays
+- my @i2cEngine = ();
+- my @i2cPort = ();
+- my @i2cSlave = ();
+- my @i2cAddr = ();
+- my @i2cSpeed = ();
+- my @i2cType = ();
+- my @i2cPurpose = ();
+-
+- # Step 1: get I2C_ENGINE and PORT from <targetInstance>
+-
+- my $engine = $targetObj->getAttribute($target, "I2C_ENGINE");
+- if($engine eq "") {$engine = "0xFF";}
+-
+- my $port = $targetObj->getAttribute($target, "I2C_PORT");
+- if($port eq "") {$port = "0xFF";}
+-
+- # Step 2: get I2C_ADDRESS and I2C_SPEED from <bus>
+- # This is different for each connection.
+-
+- my $i2cs = $targetObj->findConnections($parentTarget, "I2C","");
+- if ($i2cs ne "")
+- {
+- # This gives all i2c connections
+- foreach my $i2c (@{$i2cs->{CONN}})
+- {
+- # Here we are checking that the i2c source matches our target
+- my $source = $i2c->{SOURCE};
+- if ($source ne $target)
+- {
+- next;
+- }
+-
+- # Most I2C devices will default the slave port, it is only valid
+- # for gpio expanders.
+- my $slavePort = "0xFF";
+-
+- my @source_array = split(/-/,$source);
+- my $source_idx = scalar @source_array;
+-
+- # If the last part of the source only includes numbers
+- if($source_array[$source_idx-1] =~ /^[0-9,.E]+$/)
+- {
+- $slavePort = $source_array[$source_idx-1];
+- }
+-
+- my $addr;
+- my $speed;
+- my $type;
+- my $purpose;
+-
+- # For all these attributes, we need to check if they're defined,
+- # and if not we set them to a default value.
+- if ($targetObj->isBusAttributeDefined(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_ADDRESS"))
+- {
+- $addr = $targetObj->getBusAttribute(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_ADDRESS");
+- }
+-
+- if ($addr eq "") {$addr = "0xFF";}
+-
+- if ($targetObj->isBusAttributeDefined(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_SPEED"))
+- {
+- $speed = $targetObj->getBusAttribute(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_SPEED");
+- }
+-
+- if ($speed eq "") {$speed = "0";}
+-
+- if ($targetObj->isBusAttributeDefined(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_TYPE"))
+- {
+- $type = $targetObj->getBusAttribute(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_TYPE");
+- }
+-
+- if ($type eq "")
+- {
+- $type = "FF";
+- }
+- else
+- {
+- $type = $targetObj->getEnumValue("HDAT_I2C_DEVICE_TYPE",$type);
+- }
+-
+- if ($targetObj->isBusAttributeDefined(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_PURPOSE"))
+- {
+- $purpose = $targetObj->getBusAttribute(
+- $i2c->{SOURCE},$i2c->{BUS_NUM},"I2C_PURPOSE");
+- }
+-
+- if ($purpose eq "")
+- {
+- $purpose = "FF";
+- }
+- else
+- {
+- $purpose = $targetObj->getEnumValue("HDAT_I2C_DEVICE_PURPOSE",
+- $purpose);
+- }
+-
+- # Step 3: For each connection, create an instance in the array
+- # for the DeviceInfo_t struct.
+- push @i2cEngine, $engine;
+- push @i2cPort, $port;
+- push @i2cSlave, $slavePort;
+- push @i2cAddr, $addr;
+- push @i2cSpeed, $speed;
+- push @i2cType, $type;
+- push @i2cPurpose, $purpose;
+-
+- }
+- }
+-
+- # Return this i2c device's information back to the processor
+- return (\@i2cEngine, \@i2cPort, \@i2cSlave, \@i2cAddr,
+- \@i2cSpeed, \@i2cType, \@i2cPurpose);
+-}
+-
+
+ sub setEepromAttributes
+ {
+diff --git a/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml b/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
+index e40f8eb..841d3d2 100644
+--- a/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
++++ b/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
+@@ -191,7 +191,7 @@
+ </attribute>
+
+ <attribute>
+- <id>HDAT_I2C_DEVICE_TYPE</id>
++ <id>HDAT_I2C_DEVTYPE</id>
+ <description>
+ This attribute holds the values of the I2C device type from the i2c
+ device connections as defined in the MRW. It is parsed into a
+@@ -255,7 +255,7 @@
+ </attribute>
+
+ <attribute>
+- <id>HDAT_I2C_DEVICE_PURPOSE</id>
++ <id>HDAT_I2C_DEV_PURPOSE</id>
+ <description>
+ This attribute holds the values of the I2C device purpose from the i2c
+ device connections as defined in the MRW. It is parsed into a
+diff --git a/src/usr/targeting/common/xmltohb/target_types_openpower.xml b/src/usr/targeting/common/xmltohb/target_types_openpower.xml
+index 6efbbd1..548c559 100644
+--- a/src/usr/targeting/common/xmltohb/target_types_openpower.xml
++++ b/src/usr/targeting/common/xmltohb/target_types_openpower.xml
+@@ -32,14 +32,14 @@
+ =====================================================================
+ -->
+ <targetTypeExtension>
+- <id>chip-processor</id>
++ <id>base</id>
+ <attribute><id>HDAT_I2C_ENGINE</id></attribute>
+ <attribute><id>HDAT_I2C_MASTER_PORT</id></attribute>
+- <attribute><id>HDAT_I2C_DEVICE_TYPE</id></attribute>
++ <attribute><id>HDAT_I2C_DEVTYPE</id></attribute>
+ <attribute><id>HDAT_I2C_ADDR</id></attribute>
+ <attribute><id>HDAT_I2C_SLAVE_PORT</id></attribute>
+ <attribute><id>HDAT_I2C_BUS_FREQ</id></attribute>
+- <attribute><id>HDAT_I2C_DEVICE_PURPOSE</id></attribute>
++ <attribute><id>HDAT_I2C_DEV_PURPOSE</id></attribute>
+ <attribute><id>HDAT_I2C_ELEMENTS</id></attribute>
+ <attribute>
+ <id>IPMI_INSTANCE</id>
+--
+1.8.2.2
+
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0010-Updates-to-HBRT-runtime-interfaces.patch b/openpower/package/hostboot/p9Patches/hostboot-0010-Updates-to-HBRT-runtime-interfaces.patch
new file mode 100644
index 0000000..e2d052f
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0010-Updates-to-HBRT-runtime-interfaces.patch
@@ -0,0 +1,419 @@
+From 826657215c64a6fba1f8141769af5a93994b4a5d Mon Sep 17 00:00:00 2001
+From: Dan Crowell <dcrowell@us.ibm.com>
+Date: Fri, 12 May 2017 15:40:46 -0500
+Subject: [PATCH] Updates to HBRT runtime interfaces
+
+Reconciling P9 function table with P8 table to make opal-prd
+work.
+
+Added new entries for:
+- firmware_request
+- get_ipoll_events
+- firmware_notify
+
+Added in entries for P8 functions:
+- get_interface_capabilities
+
+Added deprecated placeholders for P8 functions:
+- occ_load
+- occ_start
+- occ_stop
+
+Moved entries for:
+- load_pm_complex
+- start_pm_complex
+- reset_pm_complex
+
+Change-Id: I1892b4465a6e5901aa9eaa6a49e139a4bc4c5b56
+---
+ src/include/runtime/interface.h | 230 +++++++++++++++++++++++++++-------------
+ src/runtime/rt_main.C | 26 ++++-
+ 2 files changed, 182 insertions(+), 74 deletions(-)
+
+diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
+index aafbbf9..363e50c 100644
+--- a/src/include/runtime/interface.h
++++ b/src/include/runtime/interface.h
+@@ -37,9 +37,9 @@
+ */
+
+ /** Current interface version.
+- * 0x9001: 9=P9, 001=Version 1
++ * 0x9001: 9=P9, 002=Version 2
+ */
+-#define HOSTBOOT_RUNTIME_INTERFACE_VERSION 0x9001
++#define HOSTBOOT_RUNTIME_INTERFACE_VERSION 0x9002
+
+ #ifndef __HOSTBOOT_RUNTIME_INTERFACE_VERSION_ONLY
+
+@@ -53,7 +53,7 @@ enum MemoryError_t
+ * continues to report errors on subsequent reads. A second CE on that
+ * cache line will result in memory UE. Therefore, it is advised to
+ * migrate off of the address range as soon as possible. */
+- MEMORY_ERROR_CE,
++ MEMORY_ERROR_CE = 0,
+
+ /** Hardware has reported an uncorrectable error in memory (memory UE,
+ * channel failure, etc). The hypervisor should migrate any partitions
+@@ -63,13 +63,13 @@ enum MemoryError_t
+ * partition failures to handle the hardware attentions so that the
+ * hypervisor will know all areas of memory that are impacted by the
+ * failure. */
+- MEMORY_ERROR_UE,
++ MEMORY_ERROR_UE = 1,
+
+ /** Firmware has predictively requested service on a part in the memory
+ * subsystem. The partitions may not have been affected, but it is
+ * advised to migrate off of the address range as soon as possible to
+ * avoid potential partition outages. */
+- MEMORY_ERROR_PREDICTIVE,
++ MEMORY_ERROR_PREDICTIVE = 2,
+ };
+
+ /**
+@@ -130,6 +130,21 @@ enum MemoryError_t
+ #define HBRT_RSVD_MEM__SBE_FFDC "ibm,sbe-ffdc"
+
+
++/**
++ * Specifiers for get_interface_capabilities
++ */
++
++/* Common Features */
++#define HBRT_CAPS_SET0_COMMON 0
++
++/* OPAL fixes */
++#define HBRT_CAPS_SET1_OPAL 1
++#define HBRT_CAPS_OPAL_HAS_XSCOM_RC (1ul << 0)
++
++/* PHYP fixes */
++#define HBRT_CAPS_SET2_PHYP 2
++
++
+ /** @typedef hostInterfaces_t
+ * @brief Interfaces provided by the underlying environment (ex. Sapphire).
+ *
+@@ -412,6 +427,40 @@ typedef struct hostInterfaces
+ enum MemoryError_t i_errorType );
+
+ /**
++ * @brief Query the HBRT host for a list of fixes/features
++ *
++ * There are times when workarounds need to be put into place to handle
++ * issues with the hosting layer (e.g. opal-prd) while fixes are not yet
++ * released. This is especially true because of the disconnected release
++ * streams for the firmware and the hosting environment.
++ *
++ * @param i_set Indicates which set of fixes/features we're checking
++ * see HBRT_CAPS_SET...
++ *
++ * @return a bitmask containing the relevant flags for the current
++ * implementation, see HBRT_CAPS_FLAGS_...
++ */
++ uint64_t (*get_interface_capabilities)( uint64_t i_set );
++
++ /**
++ * @brief Map a physical address space into usable memory
++ * @note Repeated calls to map the same memory should not return an error
++ * @param[in] i_physMem Physical address
++ * @param[in] i_bytes Number of bytes to map in
++ * @return NULL on error, else pointer to usable memory
++ * @platform FSP, OpenPOWER
++ */
++ void* (*map_phys_mem)(uint64_t i_physMem, size_t i_bytes);
++
++ /**
++ * @brief Unmap a physical address space from usable memory
++ * @param[in] i_ptr Previously mapped pointer
++ * @return 0 on success, else RC
++ * @platform FSP, OpenPOWER
++ */
++ int (*unmap_phys_mem)(void* i_ptr);
++
++ /**
+ * @brief Modify the SCOM restore section of the HCODE image with the
+ * given register data
+ *
+@@ -441,22 +490,27 @@ typedef struct hostInterfaces
+ uint64_t i_scomData );
+
+ /**
+- * @brief Map a physical address space into usable memory
+- * @note Repeated calls to map the same memory should not return an error
+- * @param[in] i_physMem Physical address
+- * @param[in] i_bytes Number of bytes to map in
+- * @return NULL on error, else pointer to usable memory
+- * @platform FSP, OpenPOWER
+- */
+- void* (*map_phys_mem)(uint64_t i_physMem, size_t i_bytes);
+-
+- /**
+- * @brief Unmap a physical address space from usable memory
+- * @param[in] i_ptr Previously mapped pointer
+- * @return 0 on success, else RC
+- * @platform FSP, OpenPOWER
++ * @brief Send a request to firmware, and receive a response
++ * @details
++ * req_len bytes are sent to runtime firmware, and resp_len
++ * bytes received in response.
++ *
++ * Both req and resp are allocated by the caller. If resp_len
++ * is not large enough to contain the full response, an error
++ * is returned.
++ *
++ * @param[in] i_reqLen length of request data
++ * @param[in] i_req request data
++ * @param[inout] o_respLen in: size of request data buffer
++ * out: length of request data
++ * @param[in] o_resp response data
++ * @return 0 on success, else RC
++ * @platform FSP, OpenPOWER
+ */
+- int (*unmap_phys_mem)(void* i_ptr);
++ int (*firmware_request)( uint64_t i_reqLen,
++ void *i_req,
++ uint64_t* o_respLen,
++ void *o_resp );
+
+ // Reserve some space for future growth.
+ // do NOT ever change this number, even if you add functions.
+@@ -475,7 +529,7 @@ typedef struct hostInterfaces
+ // allocated with sufficient space and populated with NULL function
+ // pointers. 32 is big enough that we should not likely add that many
+ // functions from either direction in between any two levels of support.
+- void (*reserved[32])(void);
++ void (*reserved[27])(void);
+
+ } hostInterfaces_t;
+
+@@ -502,44 +556,11 @@ typedef struct runtimeInterfaces
+ const uint32_t * (*get_lid_list)(size_t * o_num);
+
+ /**
+- * @brief Load OCC/HCODE images into mainstore
+- *
+- * @param[in] i_chip the HW chip id (XSCOM chip ID)
+- * @param[in] i_homer_addr the physical mainstore address of the
+- * start of the HOMER image,
+- * @param[in] i_occ_common_addr the physical mainstore address of the
+- * OCC common area, 8MB, used for
+- * OCC-OCC communication (1 per node)
+- * @param[in] i_mode selects initial load vs concurrent reloads
+- * HBRT_PM_LOAD:
+- * load all lids/sections from scratch,
+- * preserve nothing
+- * HBRT_PM_RELOAD:
+- * reload all lids/sections,
+- * but preserve runtime updates
+- * @return 0 on success else return code
+- * @platform FSP, OpenPOWER
+- */
+- int (*load_pm_complex)( uint64_t i_chip,
+- uint64_t i_homer_addr,
+- uint64_t i_occ_common_addr,
+- uint32_t i_mode );
+-
+- /**
+- * @brief Start OCC/HCODE on the specified chip
+- * @param[in] i_chip the HW chip id
+- * @return 0 on success else return code
+- * @platform FSP, OpenPOWER
+- */
+- int (*start_pm_complex)( uint64_t i_chip );
+-
+- /**
+- * @brief Reset OCC/HCODE on the specified chip
+- * @param[in] i_chip the HW chip id
+- * @return 0 on success else return code
+- * @platform FSP, OpenPOWER
++ * Space allocated for deprecated P8 interfaces
+ */
+- int (*reset_pm_complex)( uint64_t i_chip );
++ const uint32_t * (*occ_load__deprecated)(size_t * o_num);
++ const uint32_t * (*occ_start__deprecated)(size_t * o_num);
++ const uint32_t * (*occ_stop__deprecated)(size_t * o_num);
+
+ /**
+ * @brief Notify HTMGT that an OCC has an error to report
+@@ -629,20 +650,20 @@ typedef struct runtimeInterfaces
+ /**
+ * @brief Send a pass-through command to HTMGT
+ *
+- * @details This is a blocking call that will send a command
+- * to HTMGT.
+- * @note If o_rspLength is returned with a non-zero value,
+- * the data at the o_rspData should be dumped to
+- * stdout in a hex dump format.
+- * @note The maximum response data returned will be 4096 bytes
++ * @details This is a blocking call that will send a command
++ * to HTMGT.
++ * @note If o_rspLength is returned with a non-zero value,
++ * the data at the o_rspData should be dumped to
++ * stdout in a hex dump format.
++ * @note The maximum response data returned will be 4096 bytes
+ *
+ * @param[in] i_cmdLength number of bytes in pass-thru command data
+- * @param[in] *i_cmdData pointer to pass-thru command data
++ * @param[in] *i_cmdData pointer to pass-thru command data
+ * @param[out] *o_rspLength pointer to number of bytes returned
+ * in o_rspData
+- * @param[out] *o_rspData pointer to a 4096 byte buffer that will
++ * @param[out] *o_rspData pointer to a 4096 byte buffer that will
+ * contain the response data from the command
+- * @returns 0 on success, or return code if the command failed
++ * @returns 0 on success, or return code if the command failed
+ * @platform OpenPOWER
+ */
+ int (*mfg_htmgt_pass_thru)( uint16_t i_cmdLength,
+@@ -691,20 +712,83 @@ typedef struct runtimeInterfaces
+ size_t i_hwKeyHashSize);
+
+ /**
+- * @brief SBE message passing
++ * @brief SBE message passing notification
+ *
+- * @details This is a blocking call that will pass an SBE message
+- * with a pass-through command through HBRT to code that
+- * will process the command and provide a response.
++ * @details
++ * This is a blocking call that is used to notify HBRT there is
++ * a SBE message available. This should be called when the Host
++ * detects the appropriate PSU interrupt from the SBE.
+ *
+ * @param[in] i_procChipId Chip ID of the processor whose SBE is passing
+ * the message and sent the interrupt
+ *
+- * @returns 0 on success, or return code if the command failed
++ * @return 0 on success, or return code if the command failed
+ * @platform FSP, OpenPOWER
+ */
+ int (*sbe_message_passing)(uint32_t i_procChipId);
+
++ /**
++ * @brief Load OCC/HCODE images into mainstore
++ *
++ * @param[in] i_chip the HW chip id (XSCOM chip ID)
++ * @param[in] i_homer_addr the physical mainstore address of the
++ * start of the HOMER image,
++ * @param[in] i_occ_common_addr the physical mainstore address of the
++ * OCC common area, 8MB, used for
++ * OCC-OCC communication (1 per node)
++ * @param[in] i_mode selects initial load vs concurrent reloads
++ * HBRT_PM_LOAD:
++ * load all lids/sections from scratch,
++ * preserve nothing
++ * HBRT_PM_RELOAD:
++ * reload all lids/sections,
++ * but preserve runtime updates
++ * @return 0 on success else return code
++ * @platform FSP, OpenPOWER
++ */
++ int (*load_pm_complex)( uint64_t i_chip,
++ uint64_t i_homer_addr,
++ uint64_t i_occ_common_addr,
++ uint32_t i_mode );
++
++ /**
++ * @brief Start OCC/HCODE on the specified chip
++ * @param[in] i_chip the HW chip id
++ * @return 0 on success else return code
++ * @platform FSP, OpenPOWER
++ */
++ int (*start_pm_complex)( uint64_t i_chip );
++
++ /**
++ * @brief Reset OCC/HCODE on the specified chip
++ * @param[in] i_chip the HW chip id
++ * @return 0 on success else return code
++ * @platform FSP, OpenPOWER
++ */
++ int (*reset_pm_complex)( uint64_t i_chip );
++
++ /**
++ * @brief Query the IPOLL event mask supported by HBRT
++ *
++ * @details This call allows the wrapper application to query
++ * the ipoll event mask to set when the HBRT instance is running. Bits
++ * that are *set* in this bitmask represent events that will be
++ * forwarded to the handle_attn() callback.
++ *
++ * @return The IPOLL event bits to enable during HBRT execution
++ * @platform FSP, OpenPOWER
++ */
++ uint64_t (*get_ipoll_events)( void );
++
++ /**
++ * @brief Receive an async notification from firmware
++ * @param[in] i_len length of notification data
++ * @param[in] i_data notification data
++ * @platform FSP, OpenPOWER
++ */
++ void (*firmware_notify)( uint64_t len,
++ void *data );
++
+ // Reserve some space for future growth.
+ // do NOT ever change this number, even if you add functions.
+ //
+@@ -722,7 +806,7 @@ typedef struct runtimeInterfaces
+ // allocated with sufficient space and populated with NULL function
+ // pointers. 32 is big enough that we should not likely add that many
+ // functions from either direction in between any two levels of support.
+- void (*reserved[32])(void);
++ void (*reserved[22])(void);
+
+ } runtimeInterfaces_t;
+
+diff --git a/src/runtime/rt_main.C b/src/runtime/rt_main.C
+index d9a21c9..d539018 100644
+--- a/src/runtime/rt_main.C
++++ b/src/runtime/rt_main.C
+@@ -5,7 +5,7 @@
+ /* */
+ /* OpenPOWER HostBoot Project */
+ /* */
+-/* Contributors Listed Below - COPYRIGHT 2013,2016 */
++/* Contributors Listed Below - COPYRIGHT 2013,2017 */
+ /* [+] International Business Machines Corp. */
+ /* */
+ /* */
+@@ -70,6 +70,27 @@ extern "C"
+ */
+ runtimeInterfaces_t* rt_start(hostInterfaces_t*) NEVER_INLINE;
+
++
++/** @fn rt_version_fixup
++ *
++ * @brief Make any adjustments needed to handle old versions
++ */
++void rt_version_fixup( void )
++{
++ uint64_t hostver = g_hostInterfaces->interfaceVersion;
++ if( HOSTBOOT_RUNTIME_INTERFACE_VERSION == hostver )
++ {
++ return; //nothing to do, we match
++ }
++
++ char verstring[100];
++ sprintf( verstring,
++ "HRBT Ver=%X, HostVer=%X\n",
++ HOSTBOOT_RUNTIME_INTERFACE_VERSION,
++ hostver );
++ (g_hostInterfaces->puts)(verstring);
++}
++
+ /** Call C++ constructors present in this image. */
+ void rt_cppBootstrap();
+
+@@ -111,6 +132,9 @@ runtimeInterfaces_t* rt_start(hostInterfaces_t* intf)
+ postInitCalls_t* rtPost = getPostInitCalls();
+ rtPost->callApplyTempOverrides();
+
++ // do any version mismatch fixups
++ rt_version_fixup();
++
+ // Return our interface pointer structure.
+ return rtInterfaces;
+ }
+--
+1.8.2.2
+
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0011-Revert-Handling-of-functional-NX-chiplet.patch b/openpower/package/hostboot/p9Patches/hostboot-0011-Revert-Handling-of-functional-NX-chiplet.patch
new file mode 100644
index 0000000..8d64244
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0011-Revert-Handling-of-functional-NX-chiplet.patch
@@ -0,0 +1,240 @@
+From 569a650085d4ea7cf87c88ec5542ff31477e8c6d Mon Sep 17 00:00:00 2001
+From: Bill Hoffa <wghoffa@us.ibm.com>
+Date: Fri, 2 Jun 2017 10:32:27 -0500
+Subject: [PATCH] Revert "Handling of functional NX chiplet"
+
+This reverts commit 392272c0247878a832473157e7d2e6023496ca99.
+---
+ src/include/usr/hwas/common/hwas_reasoncodes.H | 1 -
+ src/usr/hwas/common/hwas.C | 51 ------------------------
+ src/usr/isteps/istep10/call_host_rng_bist.C | 53 ++++++-------------------
+ src/usr/isteps/istep16/call_host_secure_rng.C | 55 +++++++-------------------
+ 4 files changed, 28 insertions(+), 132 deletions(-)
+
+diff --git a/src/include/usr/hwas/common/hwas_reasoncodes.H b/src/include/usr/hwas/common/hwas_reasoncodes.H
+index 1c3a789..667ac6c 100644
+--- a/src/include/usr/hwas/common/hwas_reasoncodes.H
++++ b/src/include/usr/hwas/common/hwas_reasoncodes.H
+@@ -55,7 +55,6 @@ namespace HWAS
+ RC_SYSAVAIL_MISSING_CRITICAL_RESOURCE = HWAS_COMP_ID | 0x0B,
+ RC_SYSAVAIL_NO_MCAS_FUNC = HWAS_COMP_ID | 0x0C,
+ RC_SYSAVAIL_NO_MEMORY_FUNC_MASTER = HWAS_COMP_ID | 0x0D,
+- RC_SYSAVAIL_NO_NX_FUNC = HWAS_COMP_ID | 0x0E,
+ };
+ };
+
+diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
+index 9908ef8..79d541b 100644
+--- a/src/usr/hwas/common/hwas.C
++++ b/src/usr/hwas/common/hwas.C
+@@ -1881,57 +1881,6 @@ errlHndl_t checkMinimumHardware(const TARGETING::ConstTargetHandle_t i_nodeOrSys
+ // errl is now NULL
+ }
+ }
+-
+- // check for functional NX chiplets
+- TargetHandleList l_functionalNXChiplets;
+- getChildChiplets(l_functionalNXChiplets, pTop, TYPE_NX, true);
+- HWAS_DBG( "checkMinimumHardware: %d NX chiplets",
+- l_functionalNXChiplets.size());
+-
+- if (l_functionalNXChiplets.empty())
+- {
+- HWAS_ERR( "Insufficient hardware to continue IPL (NX chiplets)");
+-
+- if(o_bootable)
+- {
+- *o_bootable = false;
+- break;
+- }
+- TargetHandleList l_presentNXChiplets;
+- getChildChiplets(l_presentNXChiplets, pTop, TYPE_NX, false);
+- uint32_t nx_present = l_presentNXChiplets.size();
+-
+- /*@
+- * @errortype
+- * @severity ERRL_SEV_UNRECOVERABLE
+- * @moduleid MOD_CHECK_MIN_HW
+- * @reasoncode RC_SYSAVAIL_NO_NX_FUNC
+- * @devdesc checkMinimumHardware found no
+- * functional NX chiplets
+- * @custdesc Insufficient hardware to continue IPL
+- * @userdata1[00:31] HUID of node
+- * @userdata2[00:31] number of present nonfunctional NX chiplets
+- */
+- const uint64_t userdata1 =
+- (static_cast<uint64_t>(get_huid(pTop)) << 32);
+- const uint64_t userdata2 =
+- (static_cast<uint64_t>(nx_present) << 32);
+- l_errl = hwasError(ERRL_SEV_UNRECOVERABLE,
+- MOD_CHECK_MIN_HW,
+- RC_SYSAVAIL_NO_NX_FUNC,
+- userdata1, userdata2);
+-
+- // call out the procedure to find the deconfigured part.
+- hwasErrorAddProcedureCallout( l_errl,
+- EPUB_PRC_FIND_DECONFIGURED_PART,
+- SRCI_PRIORITY_HIGH );
+-
+- // if we already have an error, link this one to the earlier;
+- // if not, set the common plid
+- hwasErrorUpdatePlid( l_errl, l_commonPlid );
+- errlCommit(l_errl, HWAS_COMP_ID);
+- }
+-
+ // ------------------------------------------------------------
+ // Check for Mirrored memory -
+ // If the user requests mirrored memory and we do not have it,
+diff --git a/src/usr/isteps/istep10/call_host_rng_bist.C b/src/usr/isteps/istep10/call_host_rng_bist.C
+index 68d2435..b1ccc51 100644
+--- a/src/usr/isteps/istep10/call_host_rng_bist.C
++++ b/src/usr/isteps/istep10/call_host_rng_bist.C
+@@ -42,7 +42,6 @@
+
+ #include <isteps/hwpisteperror.H>
+ #include <errl/errludtarget.H>
+-#include <errl/errlreasoncodes.H>
+
+ #include <initservice/isteps_trace.H>
+ #include <initservice/initserviceif.H>
+@@ -87,49 +86,23 @@ void* call_host_rng_bist( void *io_pArgs )
+ // Loop through all processors including master
+ for (const auto & l_cpu_target: l_cpuTargetList)
+ {
+- const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
++ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
+ l_cpu_target);
+- // Check for functional NX
+- TARGETING::TargetHandleList l_nxTargetList;
+- getChildChiplets(l_nxTargetList, l_cpu_target, TYPE_NX, true);
+- if (l_nxTargetList.empty())
+- {
+- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+- "p9_rng_init_phase1: no functional NX found for proc %.8X",
+- TARGETING::get_huid(l_cpu_target));
+- continue;
+- }
+- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
++
++ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Running p9_rng_init_phase1 HWP on processor target %.8X",
+ TARGETING::get_huid(l_cpu_target) );
+
+- FAPI_INVOKE_HWP(l_err, p9_rng_init_phase1, l_fapi2_proc_target);
+- if(l_err)
+- {
+- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+- "ERROR: call p9_rng_init_phase1, PLID=0x%x, rc=0x%.4X",
+- l_err->plid(), l_err->reasonCode());
+-
+- for (const auto l_callout : l_err->getUDSections(
+- HWPF_COMP_ID,
+- ERRORLOG::ERRL_UDT_CALLOUT))
+- {
+- if(reinterpret_cast<HWAS::callout_ud_t*>
+- (l_callout)->type == HWAS::HW_CALLOUT)
+- {
+- for (const auto & l_nxTarget: l_nxTargetList)
+- {
+- l_err->addHwCallout( l_nxTarget,
+- HWAS::SRCI_PRIORITY_HIGH,
+- HWAS::DECONFIG,
+- HWAS::GARD_NULL );
+- }
+- }
+- }
+-
+- l_StepError.addErrorDetails(l_err);
+- errlCommit(l_err, HWPF_COMP_ID);
+- }
++ FAPI_INVOKE_HWP(l_err, p9_rng_init_phase1, l_fapi2_proc_target);
++ if(l_err)
++ {
++ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
++ "ERROR: call p9_rng_init_phase1, PLID=0x%x",
++ l_err->plid());
++ l_StepError.addErrorDetails(l_err);
++ errlCommit(l_err, HWPF_COMP_ID);
++ }
++
+ } // end of going through all processors
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+diff --git a/src/usr/isteps/istep16/call_host_secure_rng.C b/src/usr/isteps/istep16/call_host_secure_rng.C
+index 9ca7e0f..5a51504 100644
+--- a/src/usr/isteps/istep16/call_host_secure_rng.C
++++ b/src/usr/isteps/istep16/call_host_secure_rng.C
+@@ -45,7 +45,6 @@
+
+ #include <isteps/hwpisteperror.H>
+ #include <errl/errludtarget.H>
+-#include <errl/errlreasoncodes.H>
+
+ #include <initservice/isteps_trace.H>
+ #include <initservice/initserviceif.H>
+@@ -90,47 +89,23 @@ void* call_host_secure_rng( void *io_pArgs )
+ // Loop through all processors including master
+ for (const auto & l_cpu_target: l_cpuTargetList)
+ {
+- const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
++ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
+ l_cpu_target);
+
+- // Check for functional NX
+- TARGETING::TargetHandleList l_nxTargetList;
+- getChildChiplets(l_nxTargetList, l_cpu_target, TYPE_NX, true);
+- if (l_nxTargetList.empty())
+- {
+- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+- "Running host_secure_rng; no functional NX found for proc %.8X",
+- TARGETING::get_huid(l_cpu_target));
+- continue;
+- }
+-
+- FAPI_INVOKE_HWP(l_err, p9_rng_init_phase2, l_fapi2_proc_target);
+- if(l_err)
+- {
+- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+- "ERROR: call p9_rng_init_phase2, PLID=0x%x, rc=0x%.4X",
+- l_err->plid(), l_err->reasonCode());
+-
+- for (const auto l_callout : l_err->getUDSections(
+- HWPF_COMP_ID,
+- ERRORLOG::ERRL_UDT_CALLOUT))
+- {
+- if(reinterpret_cast<HWAS::callout_ud_t*>
+- (l_callout)->type == HWAS::HW_CALLOUT)
+- {
+- for (const auto & l_nxTarget: l_nxTargetList)
+- {
+- l_err->addHwCallout( l_nxTarget,
+- HWAS::SRCI_PRIORITY_HIGH,
+- HWAS::DECONFIG,
+- HWAS::GARD_NULL );
+- }
+- }
+- }
+-
+- l_StepError.addErrorDetails(l_err);
+- errlCommit(l_err, HWPF_COMP_ID);
+- }
++ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
++ "Running host_secure_rng HWP on processor target %.8X",
++ TARGETING::get_huid(l_cpu_target) );
++
++ FAPI_INVOKE_HWP(l_err, p9_rng_init_phase2, l_fapi2_proc_target);
++ if(l_err)
++ {
++ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
++ "ERROR: call p9_rng_init_phase2, PLID=0x%x",
++ l_err->plid());
++ l_StepError.addErrorDetails(l_err);
++ errlCommit(l_err, HWPF_COMP_ID);
++ }
++
+ } // end of going through all processors
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+--
+1.8.2.2
+
diff --git a/openpower/package/ima-catalog/ima-catalog.mk b/openpower/package/ima-catalog/ima-catalog.mk
index 4cdb25f..20b62f2 100644
--- a/openpower/package/ima-catalog/ima-catalog.mk
+++ b/openpower/package/ima-catalog/ima-catalog.mk
@@ -3,7 +3,7 @@
# ima-catalog.mk
#
################################################################################
-IMA_CATALOG_VERSION ?= 0894c8e392ea5b8ad63860136deff777343685c7
+IMA_CATALOG_VERSION ?= 0e3bbcb56dfc60fd99b862406ecd3e117117d9af
IMA_CATALOG_SITE ?= $(call github,open-power,ima-catalog,$(IMA_CATALOG_VERSION))
IMA_CATALOG_LICENSE = Apache-2.0
IMA_CATALOG_DEPENDENCIES = host-dtc host-xz
diff --git a/openpower/package/machine-xml/Config.in b/openpower/package/machine-xml/Config.in
new file mode 100755
index 0000000..3f2163f
--- /dev/null
+++ b/openpower/package/machine-xml/Config.in
@@ -0,0 +1,63 @@
+config BR2_PACKAGE_MACHINE_XML
+ bool "machine_xml"
+ default y if (BR2_OPENPOWER_PLATFORM)
+ select BR2_PACKAGE_COMMON_P8_XML
+ help
+
+choice
+ prompt "Machine XML location"
+
+config BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT
+ bool "OpenPOWER Github project name"
+
+config BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT
+ bool "Custom URL of machine xml repository"
+
+endchoice
+
+config BR2_OPENPOWER_MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES
+ bool "Filter Unwanted Attributes"
+ default y if (BR2_OPENPOWER_POWER9)
+ default n
+
+config BR2_OPENPOWER_MACHINE_XML_OPPOWERVM_ATTRIBUTES
+ bool "OPPOWERVM Attributes/Target"
+ default y if (BR2_OPENPOWER_POWER9)
+ default n
+
+config BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML
+ bool "Include target_types_openpower.xml"
+ default y if (BR2_OPENPOWER_POWER9)
+ default n
+
+config BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT_VALUE
+ string "URL of machine xml repository"
+ depends on BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT
+
+config BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE
+ string "The Github project name (e.g. palmetto-xml)"
+ depends on BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT
+
+config BR2_OPENPOWER_MACHINE_XML_VERSION
+ string "Version of Machine XML"
+
+config BR2_OPENPOWER_MACHINE_XML_FILENAME
+ string "Machine XML filename (e.g. habanero.xml)"
+
+config BR2_OPENPOWER_SYSTEM_XML_FILENAME
+ string "Targeting system xml filename"
+ default ""
+ help
+ Defines the name of the system XML filename to be used when creating targeting binary image
+
+config BR2_OPENPOWER_MRW_XML_FILENAME
+ string "Targeting mrw xml filename"
+ default ""
+ help
+ Defines the name of the mrw XML filename to be used when creating targeting binary image
+
+config BR2_OPENPOWER_BIOS_XML_FILENAME
+ string "BIOS metadata XML filename"
+ default ""
+ help
+ Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/machine-xml/machine-xml.mk b/openpower/package/machine-xml/machine-xml.mk
new file mode 100644
index 0000000..d8009dd
--- /dev/null
+++ b/openpower/package/machine-xml/machine-xml.mk
@@ -0,0 +1,107 @@
+################################################################################
+# machine_xml
+#
+################################################################################
+
+MACHINE_XML_VERSION ?= $(call qstrip,$(BR2_OPENPOWER_MACHINE_XML_VERSION))
+ifeq ($(BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT),y)
+MACHINE_XML_SITE = $(call github,open-power,$(BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE),$(MACHINE_XML_VERSION))
+else ifeq ($(BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT),y)
+MACHINE_XML_SITE_METHOD = git
+MACHINE_XML_SITE = $(BR2_OPENPOWER_MACHINE_XML_CUSTOM_GIT_VALUE)
+endif
+
+MACHINE_XML_LICENSE = Apache-2.0
+MACHINE_XML_LICENSE_FILES = LICENSE
+MACHINE_XML_DEPENDENCIES = hostboot openpower-mrw common-p8-xml
+
+MACHINE_XML_INSTALL_IMAGES = YES
+MACHINE_XML_INSTALL_TARGET = YES
+
+MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
+MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
+
+# Defines for BIOS metadata creation
+BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
+OPENPOWER_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_OPENPOWER_BIOS_XML_FILENAME)
+BIOS_XML_METADATA_FILE = \
+ $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
+PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
+PETITBOOT_BIOS_XML_METADATA_FILE = \
+ $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
+PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
+ $(TARGET_DIR)/usr/share/bios_metadata.xml
+
+ifeq ($(BR2_OPENPOWER_MACHINE_XML_OPPOWERVM_ATTRIBUTES),y)
+MACHINE_XML_OPPOWERVM_ATTR_XML = $(MRW_HB_TOOLS)/attribute_types_oppowervm.xml
+MACHINE_XML_OPPOWERVM_TARGET_XML = $(MRW_HB_TOOLS)/target_types_oppowervm.xml
+endif
+ifeq ($(BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML),y)
+MACHINE_XML_TARGET_TYPES_OPENPOWER_XML = $(MRW_HB_TOOLS)/target_types_openpower.xml
+endif
+
+define MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES
+ chmod +x $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
+
+ $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
+ --tgt-xml $(MRW_HB_TOOLS)/target_types_merged.xml \
+ --tgt-xml $(MRW_HB_TOOLS)/target_types_hb.xml \
+ --tgt-xml $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
+ --tgt-xml $(MRW_HB_TOOLS)/target_types_openpower.xml \
+ --mrw-xml $(MRW_SCRATCH)/$(BR2_OPENPOWER_MRW_XML_FILENAME)
+
+ cp $(MRW_SCRATCH)/$(BR2_OPENPOWER_MRW_XML_FILENAME).updated $(MRW_SCRATCH)/$(BR2_OPENPOWER_MRW_XML_FILENAME)
+endef
+
+define MACHINE_XML_BUILD_CMDS
+ # copy the machine xml where the common lives
+ bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
+
+ # generate the system mrw xml
+ perl -I $(MRW_HB_TOOLS) \
+ $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/$(BR2_OPENPOWER_MACHINE_XML_FILENAME)
+
+ $(if $(BR2_OPENPOWER_MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES), $(call MACHINE_XML_FILTER_UNWANTED_ATTRIBUTES))
+
+ # merge in any system specific attributes, hostboot attributes
+ $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_OPENPOWER_SYSTEM_XML_FILENAME) \
+ $(MRW_HB_TOOLS)/attribute_types.xml \
+ $(MRW_HB_TOOLS)/attribute_types_hb.xml \
+ $(MACHINE_XML_OPPOWERVM_ATTR_XML) \
+ $(MRW_HB_TOOLS)/attribute_types_openpower.xml \
+ $(MRW_HB_TOOLS)/target_types_merged.xml \
+ $(MRW_HB_TOOLS)/target_types_hb.xml \
+ $(MACHINE_XML_OPPOWERVM_TARGET_XML) \
+ $(MACHINE_XML_TARGET_TYPES_OPENPOWER_XML) \
+ $(MRW_SCRATCH)/$(BR2_OPENPOWER_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
+
+ # creating the targeting binary
+ $(MRW_HB_TOOLS)/xmltohb.pl \
+ --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
+ --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
+ --src-output-dir=none \
+ --img-output-dir=$(MRW_HB_TOOLS)/ \
+ --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
+ --bios-xml-file=$(OPENPOWER_BIOS_XML_CONFIG_FILE) \
+ --bios-schema-file=$(BIOS_SCHEMA_FILE) \
+ --bios-output-file=$(BIOS_XML_METADATA_FILE)
+
+ # Transform BIOS XML into Petitboot specific BIOS XML via the schema
+ xsltproc -o \
+ $(PETITBOOT_BIOS_XML_METADATA_FILE) \
+ $(PETITBOOT_XSLT_FILE) \
+ $(BIOS_XML_METADATA_FILE)
+endef
+
+define MACHINE_XML_INSTALL_IMAGES_CMDS
+ mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
+endef
+
+define MACHINE_XML_INSTALL_TARGET_CMDS
+ # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
+ $(INSTALL) -D -m 0644 \
+ $(PETITBOOT_BIOS_XML_METADATA_FILE) \
+ $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk
index 19600b9..14a4d12 100644
--- a/openpower/package/occ/occ.mk
+++ b/openpower/package/occ/occ.mk
@@ -4,8 +4,8 @@
#
################################################################################
-OCC_VERSION_BRANCH_MASTER_P8 ?= 301b535a933e0c9c41b0f014677004cc8da2c445
-OCC_VERSION_BRANCH_MASTER ?= e1889e5dfcb4707ac66ab5ee0427ce97156bf4c0
+OCC_VERSION_BRANCH_MASTER_P8 ?= 28f2cec690b7f19548ce860a8820f519e6c39a6a
+OCC_VERSION_BRANCH_MASTER ?= bc34ad5806549a7a20079745b2b1f8ef439ade0c
OCC_VERSION ?= $(if $(BR2_OPENPOWER_POWER9),$(OCC_VERSION_BRANCH_MASTER),$(OCC_VERSION_BRANCH_MASTER_P8))
OCC_SITE ?= $(call github,open-power,occ,$(OCC_VERSION))
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index f0b7f31..a94f72c 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -8,14 +8,7 @@
select BR2_PACKAGE_OCC
select BR2_PACKAGE_CAPP_UCODE
select BR2_PACKAGE_IMA_CATALOG
- select BR2_PACKAGE_ZAIUS_XML if (BR2_OPENPOWER_XML_PACKAGE = "zaius-xml")
- select BR2_PACKAGE_WITHERSPOON_XML if (BR2_OPENPOWER_XML_PACKAGE = "witherspoon-xml")
- select BR2_PACKAGE_ROMULUS_XML if (BR2_OPENPOWER_XML_PACKAGE = "romulus-xml")
- 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")
+ select BR2_PACKAGE_MACHINE_XML
help
Utilites for building a targeting binary image
@@ -29,11 +22,6 @@
help
String used to define configuration name
-config BR2_OPENPOWER_XML_PACKAGE
- string "Name of xml/targeting package"
- help
- String defines the xml/targeting package used
-
config BR2_OPENPOWER_PNOR_FILENAME
string "Name of pnor file to be created"
help
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index 72fcc64..c178223 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -4,16 +4,12 @@
#
################################################################################
-# remove the quotes from the XML/Targeting package as
-# make doesn't care for quotes in the dependencies.
-XML_PACKAGE=$(subst $\",,$(BR2_OPENPOWER_XML_PACKAGE))
-
-OPENPOWER_PNOR_VERSION ?= 52b1b91ea5ea7651688802f72d168139c29c4780
+OPENPOWER_PNOR_VERSION ?= 3ab2d5d3f0c030bd68a4b431ac128004d54f7511
OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
OPENPOWER_PNOR_LICENSE = Apache-2.0
OPENPOWER_PNOR_LICENSE_FILES = LICENSE
-OPENPOWER_PNOR_DEPENDENCIES = hostboot hostboot-binaries $(XML_PACKAGE) skiboot host-openpower-ffs occ capp-ucode
+OPENPOWER_PNOR_DEPENDENCIES = hostboot hostboot-binaries machine-xml skiboot host-openpower-ffs occ capp-ucode
ifeq ($(BR2_PACKAGE_IMA_CATALOG),y)
OPENPOWER_PNOR_DEPENDENCIES += ima-catalog
@@ -45,13 +41,19 @@
HOSTBOOT_IMAGE_DIR=$(STAGING_DIR)/hostboot_build_images/
HOSTBOOT_BINARY_DIR = $(STAGING_DIR)/hostboot_binaries/
+SBE_BINARY_DIR = $(STAGING_DIR)/sbe_binaries/
OPENPOWER_PNOR_SCRATCH_DIR = $(STAGING_DIR)/openpower_pnor_scratch/
OPENPOWER_VERSION_DIR = $(STAGING_DIR)/openpower_version
# Subpackages we want to include in the version info (do not include openpower-pnor)
-OPENPOWER_VERSIONED_SUBPACKAGES = skiboot hostboot linux petitboot $(XML_PACKAGE) occ hostboot-binaries capp-ucode
+OPENPOWER_VERSIONED_SUBPACKAGES = skiboot hostboot linux petitboot machine-xml occ hostboot-binaries capp-ucode
OPENPOWER_PNOR = openpower-pnor
+ifeq ($(BR2_OPENPOWER_POWER9),y)
+ OPENPOWER_PNOR_DEPENDENCIES += sbe
+ OPENPOWER_VERSIONED_SUBPACKAGES += sbe
+endif
+
define OPENPOWER_PNOR_INSTALL_IMAGES_CMDS
mkdir -p $(OPENPOWER_PNOR_SCRATCH_DIR)
@@ -64,6 +66,7 @@
-targeting_binary_filename $(BR2_OPENPOWER_TARGETING_ECC_FILENAME) \
-targeting_binary_source $(BR2_OPENPOWER_TARGETING_BIN_FILENAME) \
-sbe_binary_filename $(BR2_HOSTBOOT_BINARY_SBE_FILENAME) \
+ -sbe_binary_dir $(SBE_BINARY_DIR) \
-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) \
diff --git a/openpower/package/palmetto-xml/Config.in b/openpower/package/palmetto-xml/Config.in
deleted file mode 100755
index 05a094f..0000000
--- a/openpower/package/palmetto-xml/Config.in
+++ /dev/null
@@ -1,24 +0,0 @@
-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
-
-config BR2_PALMETTO_SYSTEM_XML_FILENAME
- string "Palmetto targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_PALMETTO_MRW_XML_FILENAME
- string "Palmetto targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_PALMETTO_BIOS_XML_FILENAME
- string "Palmetto BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/palmetto-xml/palmetto-xml.mk b/openpower/package/palmetto-xml/palmetto-xml.mk
deleted file mode 100644
index 7cc554d..0000000
--- a/openpower/package/palmetto-xml/palmetto-xml.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-################################################################################
-#
-# palmetto_xml
-#
-################################################################################
-
-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 openpower-mrw common-p8-xml
-
-PALMETTO_XML_INSTALL_IMAGES = YES
-PALMETTO_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-PALMETTO_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_PALMETTO_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define PALMETTO_XML_BUILD_CMDS
- # copy the palmetto xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/palmetto.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_PALMETTO_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_SCRATCH)/$(BR2_PALMETTO_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(PALMETTO_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define PALMETTO_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define PALMETTO_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/petitboot/66-add-sg-module.rules b/openpower/package/petitboot/66-add-sg-module.rules
new file mode 100644
index 0000000..ae18d28
--- /dev/null
+++ b/openpower/package/petitboot/66-add-sg-module.rules
@@ -0,0 +1,2 @@
+# load modules to scsi disks, if they aren't in kernel
+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/sbin/modprobe sg"
diff --git a/openpower/package/petitboot/petitboot.mk b/openpower/package/petitboot/petitboot.mk
index 5d28fc7..ba7276b 100644
--- a/openpower/package/petitboot/petitboot.mk
+++ b/openpower/package/petitboot/petitboot.mk
@@ -44,8 +44,6 @@
$(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/petitboot/boot.d
$(INSTALL) -D -m 0755 $(@D)/utils/hooks/01-create-default-dtb \
$(TARGET_DIR)/etc/petitboot/boot.d/
- $(INSTALL) -D -m 0755 $(@D)/utils/hooks/30-dtb-updates \
- $(TARGET_DIR)/etc/petitboot/boot.d/
$(INSTALL) -D -m 0755 $(@D)/utils/hooks/90-sort-dtb \
$(TARGET_DIR)/etc/petitboot/boot.d/
@@ -63,6 +61,8 @@
$(TARGET_DIR)/etc/udev/rules.d/
$(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/65-md-incremental.rules \
$(TARGET_DIR)/etc/udev/rules.d/
+ $(INSTALL) -D -m 0755 $(BR2_EXTERNAL)/package/petitboot/66-add-sg-module.rules \
+ $(TARGET_DIR)/etc/udev/rules.d/
ln -sf /usr/sbin/pb-udhcpc \
$(TARGET_DIR)/usr/share/udhcpc/default.script.d/
@@ -72,6 +72,15 @@
$(MAKE) -C $(@D)/po DESTDIR=$(TARGET_DIR) install
endef
+define PETITBOOT_POST_INSTALL_DTB
+ $(INSTALL) -D -m 0755 $(@D)/utils/hooks/30-dtb-updates \
+ $(TARGET_DIR)/etc/petitboot/boot.d/
+endef
+
PETITBOOT_POST_INSTALL_TARGET_HOOKS += PETITBOOT_POST_INSTALL
+ifeq ($(BR2_PACKAGE_DTC),y)
+ PETITBOOT_POST_INSTALL_TARGET_HOOKS += PETITBOOT_POST_INSTALL_DTB
+endif
+
$(eval $(autotools-package))
diff --git a/openpower/package/ppe42-gcc/ppe42-gcc.mk b/openpower/package/ppe42-gcc/ppe42-gcc.mk
index ec10e4f..bfaf608 100644
--- a/openpower/package/ppe42-gcc/ppe42-gcc.mk
+++ b/openpower/package/ppe42-gcc/ppe42-gcc.mk
@@ -8,8 +8,8 @@
PPE42_GCC_SITE ?= $(call github,open-power,ppe42-gcc,$(PPE42_GCC_VERSION))
PPE42_GCC_LICENSE = GPLv3+
-PPE42_GCC_DEPENDENCIES = ppe42-binutils
-HOST_PPE42_GCC_DEPENDENCIES = host-ppe42-binutils
+PPE42_GCC_DEPENDENCIES = ppe42-binutils gmp mpfr mpc
+HOST_PPE42_GCC_DEPENDENCIES = host-ppe42-binutils host-gmp host-mpfr host-mpc
PPE42_GCC_DIR = $(STAGING_DIR)/ppe42-binutils
PPE42_GCC_BIN = $(STAGING_DIR)/ppe42-binutils/linux
diff --git a/openpower/package/romulus-xml/Config.in b/openpower/package/romulus-xml/Config.in
deleted file mode 100755
index 6cec332..0000000
--- a/openpower/package/romulus-xml/Config.in
+++ /dev/null
@@ -1,23 +0,0 @@
-config BR2_PACKAGE_ROMULUS_XML
- bool "romulus_xml"
- default y if (BR2_OPENPOWER_CONFIG_NAME = "romulus")
- help
- Utilities for building xml and the targeting binary image
-
-config BR2_ROMULUS_SYSTEM_XML_FILENAME
- string "Romulus targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_ROMULUS_MRW_XML_FILENAME
- string "Romulus targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_ROMULUS_BIOS_XML_FILENAME
- string "Romulus BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/romulus-xml/romulus.mk b/openpower/package/romulus-xml/romulus.mk
deleted file mode 100644
index f611b02..0000000
--- a/openpower/package/romulus-xml/romulus.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-################################################################################
-#
-# romulus_xml
-#
-################################################################################
-
-ROMULUS_XML_VERSION ?= cee21733cf05784b401d04ac13d9ac43e9449147
-ROMULUS_XML_SITE ?= $(call github,open-power,romulus-xml,$(ROMULUS_XML_VERSION))
-
-ROMULUS_XML_LICENSE = Apache-2.0
-ROMULUS_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
-
-ROMULUS_XML_INSTALL_IMAGES = YES
-ROMULUS_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-ROMULUS_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_ROMULUS_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define ROMULUS_XML_BUILD_CMDS
- # copy the romulus xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/romulus.xml
-
- chmod +x $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
-
- $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_merged.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_hb.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_openpower.xml \
- --mrw-xml $(MRW_SCRATCH)/ROMULUS_hb.mrw.xml
-
- cp $(MRW_SCRATCH)/ROMULUS_hb.mrw.xml.updated $(MRW_SCRATCH)/ROMULUS_hb.mrw.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_ROMULUS_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/attribute_types_oppowervm.xml \
- $(MRW_HB_TOOLS)/attribute_types_openpower.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
- $(MRW_HB_TOOLS)/target_types_openpower.xml \
- $(MRW_SCRATCH)/$(BR2_ROMULUS_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(ROMULUS_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define ROMULUS_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define ROMULUS_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/sbe/Config.in b/openpower/package/sbe/Config.in
new file mode 100644
index 0000000..cd9e84f
--- /dev/null
+++ b/openpower/package/sbe/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_SBE
+ bool "sbe"
+ default y if (BR2_OPENPOWER_PLATFORM && BR2_OPENPOWER_POWER9)
+ select BR2_CPP
+ help
+ Project to build the sbe firmware codebase
diff --git a/openpower/package/sbe/sbe.mk b/openpower/package/sbe/sbe.mk
new file mode 100644
index 0000000..aa926f5
--- /dev/null
+++ b/openpower/package/sbe/sbe.mk
@@ -0,0 +1,29 @@
+################################################################################
+#
+# SBE
+#
+################################################################################
+
+SBE_VERSION ?= d770027426ba0c5d6c44fa985e9dfaf28fd6fcce
+SBE_SITE ?= $(call github,open-power,sbe,$(SBE_VERSION))
+
+SBE_LICENSE = Apache-2.0
+SBE_DEPENDENCIES = host-ppe42-gcc
+
+SBE_INSTALL_IMAGES = YES
+SBE_INSTALL_TARGET = NO
+
+define SBE_BUILD_CMDS
+ SBE_COMMIT_ID=$(SBE_VERSION) $(MAKE1) -C $(@D) \
+ LD_LIBRARY_PATH=$(HOST_DIR)/usr/lib \
+ CROSS_COMPILER_PATH=$(PPE42_GCC_BIN) \
+ all
+endef
+
+define SBE_INSTALL_IMAGES_CMDS
+ $(INSTALL) -D $(@D)/images/p9_ipl_build $(HOST_DIR)/usr/bin/
+ python $(@D)/src/build/sbeOpDistribute.py --sbe_binary_dir=$(STAGING_DIR)/sbe_binaries --img_dir=$(@D)/images
+ cp $(@D)/src/build/sbeOpDistribute.py $(STAGING_DIR)/sbe_binaries/
+endef
+
+$(eval $(generic-package))
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 070fa50..0506983 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -31,7 +31,7 @@
config BR2_SKIBOOT_VERSION
string
- default "skiboot-5.5.0-rc2" if BR2_SKIBOOT_LATEST_VERSION
+ default "skiboot-5.6.0" if BR2_SKIBOOT_LATEST_VERSION
default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
if BR2_SKIBOOT_CUSTOM_VERSION
diff --git a/openpower/package/witherspoon-xml/Config.in b/openpower/package/witherspoon-xml/Config.in
deleted file mode 100755
index 3e4333c..0000000
--- a/openpower/package/witherspoon-xml/Config.in
+++ /dev/null
@@ -1,23 +0,0 @@
-config BR2_PACKAGE_WITHERSPOON_XML
- bool "witherspoon_xml"
- default y if (BR2_OPENPOWER_CONFIG_NAME = "witherspoon")
- help
- Utilites for building xml and the targeting binary image
-
-config BR2_WITHERSPOON_SYSTEM_XML_FILENAME
- string "Witherspoon targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_WITHERSPOON_MRW_XML_FILENAME
- string "Witherspoon targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_WITHERSPOON_BIOS_XML_FILENAME
- string "Witherspoon BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/witherspoon-xml/witherspoon.mk b/openpower/package/witherspoon-xml/witherspoon.mk
deleted file mode 100644
index c34eee7..0000000
--- a/openpower/package/witherspoon-xml/witherspoon.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-################################################################################
-#
-# witherspoon_xml
-#
-################################################################################
-
-WITHERSPOON_XML_VERSION ?= 07ef29dcfbfe88943a0fde35bebeec79d0fee62d
-WITHERSPOON_XML_SITE ?= $(call github,open-power,witherspoon-xml,$(WITHERSPOON_XML_VERSION))
-
-WITHERSPOON_XML_LICENSE = Apache-2.0
-WITHERSPOON_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
-
-WITHERSPOON_XML_INSTALL_IMAGES = YES
-WITHERSPOON_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-WITHERSPOON_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_WITHERSPOON_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define WITHERSPOON_XML_BUILD_CMDS
- # copy the witherspoon xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/witherspoon.xml
-
- chmod +x $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
-
- $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_merged.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_hb.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_openpower.xml \
- --mrw-xml $(MRW_SCRATCH)/WITHERSPOON_hb.mrw.xml
-
- cp $(MRW_SCRATCH)/WITHERSPOON_hb.mrw.xml.updated $(MRW_SCRATCH)/WITHERSPOON_hb.mrw.xml
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_WITHERSPOON_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/attribute_types_oppowervm.xml \
- $(MRW_HB_TOOLS)/attribute_types_openpower.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
- $(MRW_HB_TOOLS)/target_types_openpower.xml \
- $(MRW_SCRATCH)/$(BR2_WITHERSPOON_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(WITHERSPOON_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define WITHERSPOON_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define WITHERSPOON_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/zaius-xml/Config.in b/openpower/package/zaius-xml/Config.in
deleted file mode 100755
index b335ff3..0000000
--- a/openpower/package/zaius-xml/Config.in
+++ /dev/null
@@ -1,23 +0,0 @@
-config BR2_PACKAGE_ZAIUS_XML
- bool "zaius_xml"
- default y if (BR2_OPENPOWER_CONFIG_NAME = "zaius")
- help
- Utilities for building xml and the targeting binary image
-
-config BR2_ZAIUS_SYSTEM_XML_FILENAME
- string "Zaius targeting system xml filename"
- default ""
- help
- Defines the name of the system XML filename to be used when creating targeting binary image
-
-config BR2_ZAIUS_MRW_XML_FILENAME
- string "Zaius targeting mrw xml filename"
- default ""
- help
- Defines the name of the mrw XML filename to be used when creating targeting binary image
-
-config BR2_ZAIUS_BIOS_XML_FILENAME
- string "Zaius BIOS metadata XML filename"
- default ""
- help
- Defines the name of the BIOS XML filename to parse when generating BIOS metadata
diff --git a/openpower/package/zaius-xml/zaius.mk b/openpower/package/zaius-xml/zaius.mk
deleted file mode 100644
index 3d3380a..0000000
--- a/openpower/package/zaius-xml/zaius.mk
+++ /dev/null
@@ -1,92 +0,0 @@
-################################################################################
-#
-# zaius_xml
-#
-################################################################################
-
-ZAIUS_XML_VERSION ?= b907705f75e5d462b9f23b894ea781ae5ab5c2bf
-ZAIUS_XML_SITE ?= $(call github,open-power,zaius-xml,$(ZAIUS_XML_VERSION))
-
-ZAIUS_XML_LICENSE = Apache-2.0
-ZAIUS_XML_DEPENDENCIES = hostboot-install-images openpower-mrw-install-images common-p8-xml-install-images
-
-ZAIUS_XML_INSTALL_IMAGES = YES
-ZAIUS_XML_INSTALL_TARGET = YES
-
-MRW_SCRATCH=$(STAGING_DIR)/openpower_mrw_scratch
-MRW_HB_TOOLS=$(STAGING_DIR)/hostboot_build_images
-
-# Defines for BIOS metadata creation
-BIOS_SCHEMA_FILE = $(MRW_HB_TOOLS)/bios.xsd
-ZAIUS_BIOS_XML_CONFIG_FILE = $(MRW_SCRATCH)/$(BR2_ZAIUS_BIOS_XML_FILENAME)
-BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata.xml
-PETITBOOT_XSLT_FILE = $(MRW_HB_TOOLS)/bios_metadata_petitboot.xslt
-PETITBOOT_BIOS_XML_METADATA_FILE = \
- $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_CONFIG_NAME)_bios_metadata_petitboot.xml
-PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE = \
- $(TARGET_DIR)/usr/share/bios_metadata.xml
-
-define ZAIUS_XML_BUILD_CMDS
- # copy the zaius xml where the common lives
- bash -c 'mkdir -p $(MRW_SCRATCH) && cp -r $(@D)/* $(MRW_SCRATCH)'
-
- # generate the system mrw xml
- perl -I $(MRW_HB_TOOLS) \
- $(MRW_HB_TOOLS)/processMrw.pl -x $(MRW_SCRATCH)/zaius.xml
-
- # filter out unwanted attributes
- chmod +x $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl
-
- $(MRW_HB_TOOLS)/filter_out_unwanted_attributes.pl \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_merged.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_hb.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
- --tgt-xml $(MRW_HB_TOOLS)/target_types_openpower.xml \
- --mrw-xml $(MRW_SCRATCH)/$(BR2_ZAIUS_MRW_XML_FILENAME)
-
- cp $(MRW_SCRATCH)/$(BR2_ZAIUS_MRW_XML_FILENAME).updated \
- $(MRW_SCRATCH)/$(BR2_ZAIUS_MRW_XML_FILENAME)
-
- # merge in any system specific attributes, hostboot attributes
- $(MRW_HB_TOOLS)/mergexml.sh $(MRW_SCRATCH)/$(BR2_ZAIUS_SYSTEM_XML_FILENAME) \
- $(MRW_HB_TOOLS)/attribute_types.xml \
- $(MRW_HB_TOOLS)/attribute_types_hb.xml \
- $(MRW_HB_TOOLS)/attribute_types_oppowervm.xml \
- $(MRW_HB_TOOLS)/attribute_types_openpower.xml \
- $(MRW_HB_TOOLS)/target_types_merged.xml \
- $(MRW_HB_TOOLS)/target_types_hb.xml \
- $(MRW_HB_TOOLS)/target_types_oppowervm.xml \
- $(MRW_HB_TOOLS)/target_types_openpower.xml \
- $(MRW_SCRATCH)/$(BR2_ZAIUS_MRW_XML_FILENAME) > $(MRW_HB_TOOLS)/temporary_hb.hb.xml;
-
- # creating the targeting binary
- $(MRW_HB_TOOLS)/xmltohb.pl \
- --hb-xml-file=$(MRW_HB_TOOLS)/temporary_hb.hb.xml \
- --fapi-attributes-xml-file=$(MRW_HB_TOOLS)/fapiattrs.xml \
- --src-output-dir=none \
- --img-output-dir=$(MRW_HB_TOOLS)/ \
- --vmm-consts-file=$(MRW_HB_TOOLS)/vmmconst.h --noshort-enums \
- --bios-xml-file=$(ZAIUS_BIOS_XML_CONFIG_FILE) \
- --bios-schema-file=$(BIOS_SCHEMA_FILE) \
- --bios-output-file=$(BIOS_XML_METADATA_FILE)
-
- # Transform BIOS XML into Petitboot specific BIOS XML via the schema
- xsltproc -o \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_XSLT_FILE) \
- $(BIOS_XML_METADATA_FILE)
-endef
-
-define ZAIUS_XML_INSTALL_IMAGES_CMDS
- mv $(MRW_HB_TOOLS)/targeting.bin $(MRW_HB_TOOLS)/$(BR2_OPENPOWER_TARGETING_BIN_FILENAME)
-endef
-
-define ZAIUS_XML_INSTALL_TARGET_CMDS
- # Install Petitboot specific BIOS XML into initramfs's usr/share/ dir
- $(INSTALL) -D -m 0644 \
- $(PETITBOOT_BIOS_XML_METADATA_FILE) \
- $(PETITBOOT_BIOS_XML_METADATA_INITRAMFS_FILE)
-endef
-
-$(eval $(generic-package))
diff --git a/openpower/package/habanero-xml/habanero-xml-0002-Add-System-Fw-Fru-Id.patch b/openpower/patches/habanero-patches/machine-xml/habanero-xml-0002-Add-System-Fw-Fru-Id.patch
similarity index 100%
rename from openpower/package/habanero-xml/habanero-xml-0002-Add-System-Fw-Fru-Id.patch
rename to openpower/patches/habanero-patches/machine-xml/habanero-xml-0002-Add-System-Fw-Fru-Id.patch
diff --git a/openpower/package/palmetto-xml/palmetto-xml-0002-Add-Sys-Fw-Fru-Id.patch b/openpower/patches/palmetto-patches/machine-xml/palmetto-xml-0002-Add-Sys-Fw-Fru-Id.patch
similarity index 100%
rename from openpower/package/palmetto-xml/palmetto-xml-0002-Add-Sys-Fw-Fru-Id.patch
rename to openpower/patches/palmetto-patches/machine-xml/palmetto-xml-0002-Add-Sys-Fw-Fru-Id.patch
diff --git a/openpower/scripts/release-notes b/openpower/scripts/release-notes
index 2bf1b90..4231aa0 100755
--- a/openpower/scripts/release-notes
+++ b/openpower/scripts/release-notes
@@ -1,49 +1,242 @@
#!/bin/env perl
+
use strict;
+use Getopt::Long;
+use DBI;
+
+# We use an in-memory SQLite database as SQL is good for doing queries
+# of differences between data sets, and doing that in perl is annoying.
+my $db = "dbi:SQLite:dbname=release-notes.sqlite";
+#my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:","","");
+my $dbh = DBI->connect($db,undef,undef, {AutoCommit => 1, RaiseError=>1});
+
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" },
+ DIR => "openpower/package/hostboot" },
+ 'sbe' => { REPO => "http://github.com/open-power/sbe" ,
+ DIR => "openpower/package/sbe"},
'skiboot' => { REPO => "http://github.com/open-power/skiboot" ,
- DIR => "openpower/package/skiboot",
- PACKAGE => "SKIBOOT" },
+ DIR => "openpower/package/skiboot"},
'occ' => { REPO => "http://github.com/open-power/occ" ,
- DIR => "openpower/package/occ",
- PACKAGE => "OCC" },
+ DIR => "openpower/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" },
- 'witherspoon-xml' => { REPO => "http://github.com/open-power/witherspoon-xml" ,
- DIR => "openpower/package/witherspoon-xml",
- PACKAGE => "WITHERSPOON_XML" },
- 'zaius-xml' => { REPO => "http://github.com/open-power/zaius-xml" ,
- DIR => "openpower/package/zaius-xml",
- PACKAGE => "ZAIUS_XML" },
+ DIR => "openpower/package/openpower-pnor"},
'petitboot' => { REPO => "http://github.com/open-power/petitboot" ,
- DIR => "openpower/package/petitboot",
- PACKAGE => "PETITBOOT" },
+ DIR => "openpower/package/petitboot"},
};
-my $begin_release = shift;
-my $end_release = shift;
+my $begin_release;
+my $end_release;
+my $begin_worktree;
+my $end_worktree;
+my $platform;
+
+GetOptions("begin-release=s" => \$begin_release,
+ "end-release=s" => \$end_release,
+ "begin-worktree=s" => \$begin_worktree,
+ "platform=s" => \$platform,
+ "end-worktree=s" => \$end_worktree)
+ or die("Error in command line arguments");
+
+die "Required argument missing" unless ($begin_release and $end_release and $begin_worktree and $end_worktree);
+
+open(OUTPUT, "> RELEASE.md") || die "Failed to open RELEASE.md";
+
+print OUTPUT "# Release Notes for OpenPower Firmware $end_release\n";
+
+if (-e $begin_worktree) {
+ system("cd $begin_worktree && git checkout $begin_release && git submodule update --reference ../buildroot && git submodule update") and die "Could not update $begin_worktree";
+} else {
+ system("git worktree add $begin_worktree $begin_release && cd $begin_worktree&& git submodule update --reference ../buildroot && git submodule update && rm -rf dl && ln -s ../dl dl") and die "Couldn't init $begin_worktree";
+}
+
+if (-e $end_worktree) {
+ system("cd $end_worktree && git checkout $end_release && git submodule update --reference ../buildroot && git submodule update") and die "Could not update $end_worktree";
+} else {
+ system("git worktree add $end_worktree $end_release && cd $end_worktree && git submodule update --reference ../buildroot && git submodule update && rm -rf dl && ln -s ../dl dl") and die "Couldn't init $end_worktree";
+}
+
+opendir (my $dh, "$begin_worktree/openpower/configs")
+ or die "can't scan $begin_worktree defconfigs";
+my @begin_platforms = grep { /.*_defconfig/ } readdir($dh);
+closedir $dh;
+
+opendir (my $dh, "$end_worktree/openpower/configs")
+ or die "can't scan $end_worktree defconfigs";
+my @end_platforms = grep { /.*_defconfig/ } readdir($dh);
+closedir $dh;
+
+s/_defconfig// foreach (@begin_platforms);
+s/_defconfig// foreach (@end_platforms);
+
+if ($platform) {
+ @begin_platforms = ($platform);
+ @end_platforms = ($platform);
+}
+
+$dbh->do("CREATE TABLE platforms (platform TEXT, version TEXT);") or die "$!";
+{
+ my $q = "INSERT INTO platforms (platform,version) VALUES (?,?)";
+ my $sth = $dbh->prepare($q) or die "$!";
+ $sth->execute($_, $begin_release) foreach (@begin_platforms);
+ $sth->execute($_, $end_release) foreach (@end_platforms);
+}
+
+{
+ my $q = "SELECT platform FROM platforms WHERE version is ? AND platform NOT IN (SELECT platform FROM platforms WHERE version is ?)";
+ my $sth = $dbh->prepare($q) or die $!;
+ $sth->execute($begin_release, $end_release);
+ my $r;
+ print OUTPUT "## Removed platforms\n\n- ".$r->{platform}."\n" if $r = $sth->fetchrow_hashref;
+ print OUTPUT "- ".$_->{platform}."\n" while ($r = $sth->fetchrow_hashref);
+
+ $sth->execute($end_release, $begin_release);
+ print OUTPUT "## New platforms\n\n- ".$r->{platform}."\n" if $r = $sth->fetchrow_hashref;
+ print OUTPUT "- ".$_->{platform}."\n" while($r = $sth->fetchrow_hashref);
+}
+
+my @common_platforms;
+{
+ my $q = "SELECT platform FROM platforms WHERE version is ? AND EXISTS (select platform from platforms where version is ?)";
+ my $sth = $dbh->prepare($q) or die $!;
+ $sth->execute($begin_release, $end_release);
+ my $r;
+ push @common_platforms, $r->{platform} while ($r = $sth->fetchrow_hashref);
+}
+
+foreach my $p (@common_platforms) {
+ next if $p =~ /firenze/;
+ next if $p =~ /^zz$/;
+ next if $p =~ /mambo/;
+ $repos->{"$p-xml"} = { REPO => "http://github.com/open-power/$p-xml" ,
+ DIR => "openpower/package/$p-xml" };
+}
+
+foreach my $p (@begin_platforms) {
+ system("bash -c '(cd $begin_worktree && . op-build-env && op-build ".$p."_defconfig && op-build legal-info)'");
+ # Forgive me for this....
+ system("sqlite3 release-notes.sqlite \".mode csv\" \".import $begin_worktree/output/legal-info/manifest.csv begin_".$p."_manifest\"");
+}
+
+foreach my $p (@end_platforms) {
+ system("bash -c '(cd $end_worktree && . op-build-env && op-build ".$p."_defconfig && op-build legal-info)'");
+ # Forgive me for this....
+ system("sqlite3 release-notes.sqlite \".mode csv\" \".import $end_worktree/output/legal-info/manifest.csv end_".$p."_manifest\"");
+}
+
+$dbh->do(<<'SQL') or die "$!";
+CREATE TABLE package_upgrades (
+ PACKAGE TEXT,
+ OLDVERSION TEXT,
+ NEWVERSION TEXT,
+ PLATFORM TEXT
+)
+SQL
+
+foreach my $p (@common_platforms) {
+ $dbh->do("INSERT INTO package_upgrades select b.package,b.version,e.version,'$p' from begin_".$p."_manifest as b LEFT JOIN end_".$p."_manifest AS e ON b.package=e.package WHERE b.version != e.version") or die $!;
+}
+
+$dbh->do(<<'SQL') or die "$!";
+CREATE TABLE new_package (
+ PACKAGE TEXT,
+ VERSION TEXT,
+ PLATFORM TEXT
+)
+SQL
+
+foreach my $p (@common_platforms) {
+ $dbh->do("INSERT INTO new_package select b.package,b.version,'$p' from end_".$p."_manifest as b WHERE NOT EXISTS(SELECT package FROM begin_".$p."_manifest AS e WHERE b.package=e.package)") or die $!;
+}
+
+$dbh->do(<<'SQL') or die "$!";
+CREATE TABLE removed_package (
+ PACKAGE TEXT,
+ VERSION TEXT,
+ PLATFORM TEXT
+)
+SQL
+
+foreach my $p (@common_platforms) {
+ $dbh->do("INSERT INTO removed_package select b.package,b.version,'$p' from begin_".$p."_manifest as b WHERE NOT EXISTS(SELECT package FROM end_".$p."_manifest AS e WHERE b.package=e.package)") or die $!;
+}
+
+my $old_level = {};
+my $new_level = {};
+
+{
+ my $q = <<'SQL';
+select package as pk ,oldversion as o ,newversion as n,
+ GROUP_CONCAT(platform) as ps
+FROM package_upgrades
+ GROUP BY package,oldversion,newversion
+ORDER BY package,platform
+SQL
+ my $sth = $dbh->prepare($q) or die $!;
+ $sth->execute();
+
+ print OUTPUT "## Updated Packages\n\n";
+ print OUTPUT "Package | Old Version | New Version | Platforms\n";
+ print OUTPUT "--- | --- | --- | ---\n";
+ while (my $r = $sth->fetchrow_hashref) {
+ print OUTPUT join(' | ',($r->{pk}, $r->{o}, $r->{n}, $r->{ps}))."\n" ;
+ if ($r->{pk} eq 'machine-xml') {
+ $old_level->{$r->{ps}."-xml"} = $r->{o};
+ $new_level->{$r->{ps}."-xml"} = $r->{n};
+ } else {
+ $old_level->{$r->{pk}} = $r->{o};
+ $new_level->{$r->{pk}} = $r->{n};
+ }
+ }
+}
+
+{
+ my $q = <<'SQL';
+select package as pk ,version as v,
+ GROUP_CONCAT(platform) as ps
+FROM new_package
+ GROUP BY package,version
+ORDER BY package,platform
+SQL
+ my $sth = $dbh->prepare($q) or die $!;
+ $sth->execute();
+
+ print OUTPUT "\n\n## New Packages\n\n";
+ print OUTPUT "Package | Version | Platforms\n";
+ print OUTPUT "--- | --- | ---\n";
+ while (my $r = $sth->fetchrow_hashref) {
+ print OUTPUT join(' | ',($r->{pk}, $r->{v}, $r->{ps}))."\n" ;
+ if ($r->{pk} eq 'machine-xml') {
+ $new_level->{$r->{ps}."-xml"} = $r->{v};
+ }
+ }
+}
+
+{
+ my $q = <<'SQL';
+select package as pk ,version as v,
+ GROUP_CONCAT(platform) as ps
+FROM removed_package
+ GROUP BY package,version
+ORDER BY package,platform
+SQL
+ my $sth = $dbh->prepare($q) or die $!;
+ $sth->execute();
+
+ print OUTPUT "\n\n## Removed Packages\n\n";
+ print OUTPUT "Package | Version | Platforms\n";
+ print OUTPUT "--- | --- | ---\n";
+ while (my $r = $sth->fetchrow_hashref) {
+ print OUTPUT join(' | ',($r->{pk}, $r->{v}, $r->{ps}))."\n" ;
+ if ($r->{pk} eq $r->{ps}."-xml") {
+ $old_level->{$r->{ps}."-xml"} = $r->{v};
+ }
+ }
+ print OUTPUT "\n\n";
+}
foreach my $repo (keys %{$repos})
{
@@ -61,67 +254,11 @@
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_BRANCH_MASTER([[: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:]]*)_VERSION_BRANCH_MASTER([[: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 $package = $repo;
my $url = $repos->{$repo}->{REPO};
my $dir = $repos->{$repo}->{DIR};
@@ -129,8 +266,6 @@
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 |"))
@@ -165,7 +300,6 @@
(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\" |");