Single XML package rather than one per platform

This saves us a *lot* of copy&pasted build foo and replaces it with a couple
of config options that can be set in menuconfig.

This makes adding a new platform a much smaller operation, requiring fewer
changes that are scattered throughout the buildroot tree.

Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
diff --git a/openpower/configs/barreleye_defconfig b/openpower/configs/barreleye_defconfig
index e080a22..4eb6212 100644
--- a/openpower/configs/barreleye_defconfig
+++ b/openpower/configs/barreleye_defconfig
@@ -40,12 +40,16 @@
 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_GITHUB_PROJECT=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_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML=y
+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 4c3c4ad..2b8ecc1 100644
--- a/openpower/configs/firenze_defconfig
+++ b/openpower/configs/firenze_defconfig
@@ -50,3 +50,4 @@
 # BR2_PACKAGE_CAPP_UCODE is not set
 BR2_PACKAGE_LOADKEYS=y
 # BR2_PACKAGE_IMA_CATALOG is not set
+# BR2_PACKAGE_MACHINE_XML is not set
\ No newline at end of file
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index f86751b..2e5cc72 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -40,12 +40,15 @@
 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=y
+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 5cc44dd..8c47c5f 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -40,12 +40,15 @@
 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=y
+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 09bbeef..4450300 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"
@@ -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_GITHUB_PROJECT_VALUE="habanero-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="6a78496c286e284719a8201148a5088030b897de"
+BR2_OPENPOWER_MACHINE_XML_FILENAME="habanero.xml"
+BR2_OPENPOWER_MACHINE_XML_TARGET_TYPES_OPENPOWER_XML=y
+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/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index ddd82fb..d87c8c3 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -44,3 +44,4 @@
 BR2_PACKAGE_PETITBOOT=y
 # BR2_PACKAGE_OCC is not set
 # BR2_PACKAGE_IMA_CATALOG is not set
+# BR2_PACKAGE_MACHINE_XML is not set
\ No newline at end of file
diff --git a/openpower/configs/openpower_p9_mambo_defconfig b/openpower/configs/openpower_p9_mambo_defconfig
index f781f2b..b0277cb 100644
--- a/openpower/configs/openpower_p9_mambo_defconfig
+++ b/openpower/configs/openpower_p9_mambo_defconfig
@@ -39,8 +39,11 @@
 BR2_OPENPOWER_POWER9=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-mambo-p9"
 BR2_PACKAGE_PETITBOOT=y
 # BR2_PACKAGE_OCC is not set
 # BR2_PACKAGE_IMA_CATALOG is not set
+# BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT is not set
+
diff --git a/openpower/configs/p9dsu_defconfig b/openpower/configs/p9dsu_defconfig
index 0a2765b..5708403 100644
--- a/openpower/configs/p9dsu_defconfig
+++ b/openpower/configs/p9dsu_defconfig
@@ -43,7 +43,6 @@
 BR2_HOSTBOOT_CONFIG_FILE="p9dsu.config"
 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"
@@ -59,7 +58,11 @@
 BR2_SKIBOOT_CUSTOM_VERSION=y
 BR2_SKIBOOT_CUSTOM_VERSION_VALUE="f0ebbc8318e64870a68d337e77b0257678c2b055"
 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_OPENPOWER_MACHINE_XML_GITHUB_PROJECT=y
+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_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index d5d7ec4..4f25f7a 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -39,12 +39,17 @@
 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_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/package/machine-xml/palmetto-patches"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT=y
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="palmetto-xml"
+BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/palmetto-patches"
+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 84733b1..7e6b791 100644
--- a/openpower/configs/romulus_defconfig
+++ b/openpower/configs/romulus_defconfig
@@ -43,7 +43,6 @@
 BR2_HOSTBOOT_CONFIG_FILE="romulus.config"
 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"
@@ -61,6 +60,10 @@
 BR2_SKIBOOT_CUSTOM_VERSION=y
 BR2_SKIBOOT_CUSTOM_VERSION_VALUE="f0ebbc8318e64870a68d337e77b0257678c2b055"
 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_OPENPOWER_MACHINE_XML_GITHUB_PROJECT=y
+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"
diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig
index 91868e9..aa393a2 100644
--- a/openpower/configs/witherspoon_defconfig
+++ b/openpower/configs/witherspoon_defconfig
@@ -43,7 +43,6 @@
 BR2_HOSTBOOT_CONFIG_FILE="witherspoon.config"
 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"
@@ -59,7 +58,13 @@
 BR2_SKIBOOT_CUSTOM_VERSION=y
 BR2_SKIBOOT_CUSTOM_VERSION_VALUE="f0ebbc8318e64870a68d337e77b0257678c2b055"
 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_OPENPOWER_MACHINE_XML_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/package/machine-xml/witherspoon-patches"
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT=y
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="witherspoon-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="cee25d28dfe368a1838a0ef9295d6652da851635"
+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_IMA_CATALOG_DTS="POWER9"
+BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/witherspoon-patches"
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index 695fa28..0d49a87 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -43,7 +43,6 @@
 BR2_HOSTBOOT_CONFIG_FILE="zaius.config"
 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"
@@ -58,7 +57,11 @@
 BR2_SKIBOOT_CUSTOM_VERSION=y
 BR2_SKIBOOT_CUSTOM_VERSION_VALUE="f0ebbc8318e64870a68d337e77b0257678c2b055"
 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_OPENPOWER_MACHINE_XML_GITHUB_PROJECT=y
+BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="zaius-xml"
+BR2_OPENPOWER_MACHINE_XML_VERSION="6bcffcf4b3af8a2de7245c9d6d373b1144bd3037"
+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_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig
index 7442f1b..a92a5c9 100644
--- a/openpower/configs/zz_defconfig
+++ b/openpower/configs/zz_defconfig
@@ -39,6 +39,7 @@
 BR2_TARGET_ROOTFS_CPIO_XZ=y
 BR2_OPENPOWER_PLATFORM=y
 BR2_OPENPOWER_POWER9=y
+# BR2_PACKAGE_MACHINE_XML is not set
 # BR2_PACKAGE_HOST_OPENPOWER_FFS is not set
 # BR2_PACKAGE_HOSTBOOT is not set
 # BR2_PACKAGE_HOSTBOOT_BINARIES is not set