From 7238de6b473fa87798a577f9b2557057cff5c0dc Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Tue, 29 Aug 2023 16:28:59 -0500 Subject: meta-xilinx-core: Move preferred versions to 2024.1 integration Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 5441fd96..51c3bd6d 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -42,12 +42,13 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ *->xserver-xorg \ " -XILINX_RELEASE_VERSION ??= "v2023.2" +XILINX_RELEASE_VERSION ??= "v2024.1" BUILDCFG_VARS:append = " SOC_VARIANT XILINX_RELEASE_VERSION" XILINX_QEMU_VERSION[v2023.1] = "v7.1.0-xilinx-v2023.1%" XILINX_QEMU_VERSION[v2023.2] = "v7.1.0-xilinx-v2023.2%" +XILINX_QEMU_VERSION[v2024.1] = "v7.1.0-xilinx-v2024.1%" PREFERRED_VERSION_qemu-xilinx ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-system-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" @@ -55,16 +56,19 @@ PREFERRED_VERSION_qemu-devicetrees ?= "xilinx-${XILINX_RELEASE_VERSION}%" XILINX_ATF_VERSION[v2023.1] = "2.8-xilinx-v2023.1%" XILINX_ATF_VERSION[v2023.2] = "2.8-xilinx-v2023.2%" +XILINX_ATF_VERSION[v2024.1] = "2.8-xilinx-v2024.1%" PREFERRED_VERSION_arm-trusted-firmware ?= "${@d.getVarFlag('XILINX_ATF_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_UBOOT_VERSION[v2023.1] = "v2023.01-xilinx-v2023.1%" XILINX_UBOOT_VERSION[v2023.2] = "v2023.01-xilinx-v2023.2%" +XILINX_UBOOT_VERSION[v2024.1] = "v2023.01-xilinx-v2024.1%" PREFERRED_VERSION_u-boot-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_LINUX_VERSION[v2023.1] = "6.1.5-xilinx-v2023.1%" XILINX_LINUX_VERSION[v2023.2] = "6.1.30-xilinx-v2023.2%" +XILINX_LINUX_VERSION[v2024.1] = "6.1.30-xilinx-v2024.1%" PREFERRED_VERSION_linux-xlnx ?= "${@d.getVarFlag('XILINX_LINUX_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" # Add support to eSDK for gen-machine-conf if it exists -- cgit v1.2.3-54-g00ecf From a81e88bf4b5e871f0c0b8ca94ca8a1c98ff01fb3 Mon Sep 17 00:00:00 2001 From: Sandeep Gundlupet Raju Date: Wed, 30 Aug 2023 16:14:29 -0600 Subject: README: Update README on using ATF_CONSOLE Update README on using ATF_CONSOLE instead of ATF_CONSOLE_DEFAULT. Signed-off-by: Sandeep Gundlupet Raju Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/machine/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/machine/README b/meta-xilinx-core/conf/machine/README index 0b018b61..de8cf58d 100644 --- a/meta-xilinx-core/conf/machine/README +++ b/meta-xilinx-core/conf/machine/README @@ -199,7 +199,7 @@ YAML_DT_BOARD_FLAGS:pn-device-tree - YAML based configuration for setting eval board specific dtsi files available in DTG repo. arm-trusted-firmware recipe from meta-xilinx-core: -ATF_CONSOLE_DEFAULT - Uart console configuration for all aarch64 device families. +ATF_CONSOLE - Uart console configuration for all aarch64 device families. Example: pl011 or cadence or cadence1 etc,. TFA_BL33_LOAD - BL33 preloadded base address to EXTRA_OEMAKE for aarch64. -- cgit v1.2.3-54-g00ecf From 996efa445c433cae757dd07f33b3e85c5794ec16 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 4 Oct 2023 09:58:44 -0600 Subject: meta-xilinx-core: layer.conf: Move to prefer ATF 3.0 arm-trusted-firmware was moved forward to the 3.0 version. Adjust the PREFERRED_VERSION to match. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 51c3bd6d..1a2b2777 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -56,7 +56,7 @@ PREFERRED_VERSION_qemu-devicetrees ?= "xilinx-${XILINX_RELEASE_VERSION}%" XILINX_ATF_VERSION[v2023.1] = "2.8-xilinx-v2023.1%" XILINX_ATF_VERSION[v2023.2] = "2.8-xilinx-v2023.2%" -XILINX_ATF_VERSION[v2024.1] = "2.8-xilinx-v2024.1%" +XILINX_ATF_VERSION[v2024.1] = "3.0-xilinx-v2024.1%" PREFERRED_VERSION_arm-trusted-firmware ?= "${@d.getVarFlag('XILINX_ATF_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_UBOOT_VERSION[v2023.1] = "v2023.01-xilinx-v2023.1%" -- cgit v1.2.3-54-g00ecf From 55f8ef835dc2356479dbefd187fd92b5a16b7b88 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 26 Oct 2023 16:17:13 -0500 Subject: meta-xilinx-core: linux-xlnx: Reset 2024.1 for development 2024.1 has been reset back to 6.1.0 version, but is otherwise functionally similar to the 6.1.30 release from 2023.2. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 1a2b2777..60b709dd 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -68,7 +68,7 @@ PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', XILINX_LINUX_VERSION[v2023.1] = "6.1.5-xilinx-v2023.1%" XILINX_LINUX_VERSION[v2023.2] = "6.1.30-xilinx-v2023.2%" -XILINX_LINUX_VERSION[v2024.1] = "6.1.30-xilinx-v2024.1%" +XILINX_LINUX_VERSION[v2024.1] = "6.1.0-xilinx-v2024.1%" PREFERRED_VERSION_linux-xlnx ?= "${@d.getVarFlag('XILINX_LINUX_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" # Add support to eSDK for gen-machine-conf if it exists diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb index 8842cb10..2a0dfe97 100644 --- a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb +++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb @@ -1,7 +1,7 @@ -LINUX_VERSION = "6.1.30" +LINUX_VERSION = "6.1.0" YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=yocto-kmeta" -KBRANCH="xlnx_rebase_v6.1_LTS" -SRCREV = "a19da02cf5b44420ec6afb1eef348c21d9e8cda2" +KBRANCH="master" +SRCREV = "c8b3583bc86352009c6ac61e2ced0e12118f8ebb" SRCREV_meta = "185bcfcbe480c742247d9117011794c69682914f" KCONF_AUDIT_LEVEL="0" -- cgit v1.2.3-54-g00ecf From 1c9a94e16e5eeca3fc2b55b745579f47b1874344 Mon Sep 17 00:00:00 2001 From: Akshay Belsare Date: Thu, 23 Nov 2023 15:54:23 +0530 Subject: arm-trusted-firmware: update branch and version for 2024.x The upstream release versioning is changed from v3.0 to v2.10. Last upstream revision was v2.9. Refer to: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/commit/?h=integration&id=2226b4533c5f1a331f1893b2b3ff09a59c0041dd Updating the TF-A (aka ATF) branch to xlnx_rebase_v2.10 and release version to v2.10 Signed-off-by: Akshay Belsare Also change the PREFERRED_VERSION to 2.10. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- .../recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2024.1.bb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 60b709dd..6b5ae6d5 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -56,7 +56,7 @@ PREFERRED_VERSION_qemu-devicetrees ?= "xilinx-${XILINX_RELEASE_VERSION}%" XILINX_ATF_VERSION[v2023.1] = "2.8-xilinx-v2023.1%" XILINX_ATF_VERSION[v2023.2] = "2.8-xilinx-v2023.2%" -XILINX_ATF_VERSION[v2024.1] = "3.0-xilinx-v2024.1%" +XILINX_ATF_VERSION[v2024.1] = "2.10-xilinx-v2024.1%" PREFERRED_VERSION_arm-trusted-firmware ?= "${@d.getVarFlag('XILINX_ATF_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_UBOOT_VERSION[v2023.1] = "v2023.01-xilinx-v2023.1%" diff --git a/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2024.1.bb b/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2024.1.bb index 5cfb9c2c..e65f7042 100644 --- a/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2024.1.bb +++ b/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2024.1.bb @@ -1,6 +1,6 @@ -ATF_VERSION = "3.0" +ATF_VERSION = "2.10" SRCREV = "b6c0948400594e3cc4dbb5a4ef04b815d2675808" -BRANCH = "xlnx_rebase_v3.0" +BRANCH = "xlnx_rebase_v2.10" LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031" -- cgit v1.2.3-54-g00ecf From fd91636f7ef30defbd9ae72d86bf61cefeb50bb2 Mon Sep 17 00:00:00 2001 From: Sandeep Gundlupet Raju Date: Thu, 11 Jan 2024 12:15:07 -0700 Subject: soc-tune-include.inc: Enable tune files for Cortex-R52 processor Enable tune files for Cortex-R52 processor. Signed-off-by: Sandeep Gundlupet Raju Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/machine/include/soc-tune-include.inc | 1 + 1 file changed, 1 insertion(+) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/machine/include/soc-tune-include.inc b/meta-xilinx-core/conf/machine/include/soc-tune-include.inc index f7484c48..8f650a10 100644 --- a/meta-xilinx-core/conf/machine/include/soc-tune-include.inc +++ b/meta-xilinx-core/conf/machine/include/soc-tune-include.inc @@ -3,6 +3,7 @@ DEFAULTTUNE ??= "armv8a" # Unfortunately various tunefiles don't include each other, so create # a list of things to require based on the DEFAULTTUNE setting. TUNEFILE[cortexr5] = "conf/machine/include/arm/armv7r/tune-cortexr5.inc" +TUNEFILE[cortexr52] = "conf/machine/include/arm/armv8r/tune-cortexr52.inc" TUNEFILE[cortexa9thf-neon] = "conf/machine/include/arm/armv7a/tune-cortexa9.inc" TUNEFILE[armv8a] = "conf/machine/include/arm/arch-armv8a.inc" TUNEFILE[cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa53.inc" -- cgit v1.2.3-54-g00ecf From d26f98b857e30992f43f182c2a07f4b6ef6b3068 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 15 Jan 2024 11:34:31 -0700 Subject: meta-xilinx-core: layer.conf: Temporarily disable kernel-modules-{hdmi,dp} These two modules do not currently compile with Linux 6.6. Disable until they do work. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 3 +++ 1 file changed, 3 insertions(+) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 6b5ae6d5..6510b3cd 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -76,3 +76,6 @@ PLNX_SCRIPTS_PATH = "${LAYERDIR}/gen-machine-conf/gen-machine-scripts" BB_HASHEXCLUDE_COMMON:append = " PLNX_SCRIPTS_PATH" IMAGE_CLASSES += "gen-machine-conf" + +SKIP_RECIPE[kernel-module-hdmi] = "Does not currently build with Linux 6.6" +SKIP_RECIPE[kernel-module-dp] = "Does not currenty build with Linux 6.6" -- cgit v1.2.3-54-g00ecf From 3122ec969c1d524ca81621392cdde5248c99640b Mon Sep 17 00:00:00 2001 From: Sandeep Gundlupet Raju Date: Thu, 11 Jan 2024 11:43:15 -0700 Subject: layer.conf: Move to prefer linux-xlnx 6.6.0 linux-xlnx was moved forward to the 6.6.0 version. Adjust the PREFERRED_VERSION to match. Signed-off-by: Sandeep Gundlupet Raju Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 6510b3cd..59dceb1e 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -68,7 +68,7 @@ PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', XILINX_LINUX_VERSION[v2023.1] = "6.1.5-xilinx-v2023.1%" XILINX_LINUX_VERSION[v2023.2] = "6.1.30-xilinx-v2023.2%" -XILINX_LINUX_VERSION[v2024.1] = "6.1.0-xilinx-v2024.1%" +XILINX_LINUX_VERSION[v2024.1] = "6.6.0-xilinx-v2024.1%" PREFERRED_VERSION_linux-xlnx ?= "${@d.getVarFlag('XILINX_LINUX_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" # Add support to eSDK for gen-machine-conf if it exists -- cgit v1.2.3-54-g00ecf From 6dd621351e317b3328690efc34690b49b6c2ec8a Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 17 Jan 2024 17:08:39 -0600 Subject: Revert "meta-xilinx-core: layer.conf: Temporarily disable kernel-modules-{hdmi,dp}" This reverts commit d26f98b857e30992f43f182c2a07f4b6ef6b3068. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 3 --- 1 file changed, 3 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 59dceb1e..9c8e6b94 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -76,6 +76,3 @@ PLNX_SCRIPTS_PATH = "${LAYERDIR}/gen-machine-conf/gen-machine-scripts" BB_HASHEXCLUDE_COMMON:append = " PLNX_SCRIPTS_PATH" IMAGE_CLASSES += "gen-machine-conf" - -SKIP_RECIPE[kernel-module-hdmi] = "Does not currently build with Linux 6.6" -SKIP_RECIPE[kernel-module-dp] = "Does not currenty build with Linux 6.6" -- cgit v1.2.3-54-g00ecf From 6fd65d4b54258e3fe10c8d960fe33af51504f9d4 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 15 Jan 2024 11:34:31 -0700 Subject: meta-xilinx-core: layer.conf: Temporarily disable kernel-modules-dp This module does not currently compile with Linux 6.6. Disable until it works. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 ++ 1 file changed, 2 insertions(+) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 9c8e6b94..fbfe0a6d 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -76,3 +76,5 @@ PLNX_SCRIPTS_PATH = "${LAYERDIR}/gen-machine-conf/gen-machine-scripts" BB_HASHEXCLUDE_COMMON:append = " PLNX_SCRIPTS_PATH" IMAGE_CLASSES += "gen-machine-conf" + +SKIP_RECIPE[kernel-module-dp] = "Does not currenty build with Linux 6.6" -- cgit v1.2.3-54-g00ecf From e7caaf9739e4075721e44f602b7dd44ccb585666 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 22 Jan 2024 14:28:35 -0600 Subject: Revert "meta-xilinx-core: layer.conf: Temporarily disable kernel-modules-dp" This reverts commit 6fd65d4b54258e3fe10c8d960fe33af51504f9d4. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 -- 1 file changed, 2 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index fbfe0a6d..9c8e6b94 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -76,5 +76,3 @@ PLNX_SCRIPTS_PATH = "${LAYERDIR}/gen-machine-conf/gen-machine-scripts" BB_HASHEXCLUDE_COMMON:append = " PLNX_SCRIPTS_PATH" IMAGE_CLASSES += "gen-machine-conf" - -SKIP_RECIPE[kernel-module-dp] = "Does not currenty build with Linux 6.6" -- cgit v1.2.3-54-g00ecf From 6f7edbe3de0e879e5690d5ec13e21e54d5334b7f Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Tue, 9 Jan 2024 16:25:47 -0700 Subject: qemu: Update to qemu 8.1.0 Backport the QEMU 8.1.x integration from current poky (commit 4bb222e0d71a4cb159b8a4f1a90b65b1af32ac10). Add Xilinx specific integration. Add required libslirp recipe from current poky. Also update the qemu-devicetree to the latest version. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- .../recipes-connectivity/slirp/libslirp_git.bb | 18 ++ .../recipes-devtools/qemu/qemu-8.1.inc | 280 ++++++++++++++++ ...dition-environment-space-to-boot-loader-q.patch | 33 ++ ...Replace-use-of-lfs64-related-functions-an.patch | 355 +++++++++++++++++++++ .../0003-apic-fixup-fallthrough-to-PIC.patch | 44 +++ ...ure-Add-pkg-config-handling-for-libgcrypt.patch | 29 ++ ...05-qemu-Do-not-include-file-if-not-exists.patch | 32 ++ ...me-user-space-mmap-tweaks-to-address-musl.patch | 49 +++ .../qemu-8.1/0007-qemu-Determinism-fixes.patch | 31 ++ ....build-use-relative-path-to-refer-to-file.patch | 41 +++ ...SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch | 46 +++ ...rotect-against-buggy-or-malicious-guest-d.patch | 40 +++ .../recipes-devtools/qemu/qemu-8.1/cross.patch | 38 +++ .../qemu/qemu-8.1/fixedmeson.patch | 20 ++ .../recipes-devtools/qemu/qemu-8.1/fixmips.patch | 18 ++ .../recipes-devtools/qemu/qemu-8.1/powerpc_rom.bin | Bin 0 -> 4096 bytes .../qemu/qemu-8.1/qemu-guest-agent.init | 75 +++++ .../qemu/qemu-8.1/qemu-guest-agent.udev | 2 + .../recipes-devtools/qemu/qemu-8.1/run-ptest | 13 + .../qemu/qemu-devicetrees_2024.1.bb | 2 +- .../recipes-devtools/qemu/qemu-native-8.1.inc | 7 + .../recipes-devtools/qemu/qemu-targets-8.1.inc | 28 ++ .../recipes-devtools/qemu/qemu-xilinx-2024.1.inc | 4 +- .../recipes-devtools/qemu/qemu-xilinx-8.1.inc | 78 +++++ .../qemu/qemu-xilinx-native-8.1.inc | 2 + .../recipes-devtools/qemu/qemu-xilinx-native.inc | 11 - .../qemu/qemu-xilinx-native_2024.1.bb | 10 +- .../qemu/qemu-xilinx-system-native_2024.1.bb | 29 +- .../recipes-devtools/qemu/qemu-xilinx_2024.1.bb | 32 +- 30 files changed, 1331 insertions(+), 38 deletions(-) create mode 100644 meta-xilinx-core/recipes-connectivity/slirp/libslirp_git.bb create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1.inc create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0003-apic-fixup-fallthrough-to-PIC.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0005-qemu-Do-not-include-file-if-not-exists.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0007-qemu-Determinism-fixes.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/cross.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixedmeson.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixmips.patch create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/powerpc_rom.bin create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.init create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.udev create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/run-ptest create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-native-8.1.inc create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-targets-8.1.inc create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-8.1.inc create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native-8.1.inc delete mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native.inc (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 9c8e6b94..752eeb37 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -48,7 +48,7 @@ BUILDCFG_VARS:append = " SOC_VARIANT XILINX_RELEASE_VERSION" XILINX_QEMU_VERSION[v2023.1] = "v7.1.0-xilinx-v2023.1%" XILINX_QEMU_VERSION[v2023.2] = "v7.1.0-xilinx-v2023.2%" -XILINX_QEMU_VERSION[v2024.1] = "v7.1.0-xilinx-v2024.1%" +XILINX_QEMU_VERSION[v2024.1] = "v8.1.0-xilinx-v2024.1%" PREFERRED_VERSION_qemu-xilinx ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-system-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" diff --git a/meta-xilinx-core/recipes-connectivity/slirp/libslirp_git.bb b/meta-xilinx-core/recipes-connectivity/slirp/libslirp_git.bb new file mode 100644 index 00000000..334b786b --- /dev/null +++ b/meta-xilinx-core/recipes-connectivity/slirp/libslirp_git.bb @@ -0,0 +1,18 @@ +SUMMARY = "A general purpose TCP-IP emulator" +DESCRIPTION = "A general purpose TCP-IP emulator used by virtual machine hypervisors to provide virtual networking services." +HOMEPAGE = "https://gitlab.freedesktop.org/slirp/libslirp" +LICENSE = "BSD-3-Clause & MIT" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bca0186b14e6b05e338e729f106db727" + +SRC_URI = "git://gitlab.freedesktop.org/slirp/libslirp.git;protocol=https;branch=master" +SRCREV = "3ad1710a96678fe79066b1469cead4058713a1d9" +PV = "4.7.0" +S = "${WORKDIR}/git" + +DEPENDS = " \ + glib-2.0 \ +" + +inherit meson pkgconfig + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1.inc new file mode 100644 index 00000000..a6920fec --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1.inc @@ -0,0 +1,280 @@ +SUMMARY = "Fast open source processor emulator" +DESCRIPTION = "QEMU is a hosted virtual machine monitor: it emulates the \ +machine's processor through dynamic binary translation and provides a set \ +of different hardware and device models for the machine, enabling it to run \ +a variety of guest operating systems" +HOMEPAGE = "http://qemu.org" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" + +RDEPENDS:${PN}-ptest = "bash" + +require qemu-targets-8.1.inc +# https://gitlab.com/qemu-project/qemu/-/commit/81e2b198a8cb4ee5fdf108bd438f44b193ee3a36 means +# we need a full python3-native setup +inherit pkgconfig ptest update-rc.d systemd python3native + +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ + file://COPYING.LIB;endline=24;md5=8c5efda6cf1e1b03dcfd0e6c0d271c7f" + +SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ + file://powerpc_rom.bin \ + file://run-ptest \ + file://0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch \ + file://0003-apic-fixup-fallthrough-to-PIC.patch \ + file://0004-configure-Add-pkg-config-handling-for-libgcrypt.patch \ + file://0005-qemu-Do-not-include-file-if-not-exists.patch \ + file://0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch \ + file://0007-qemu-Determinism-fixes.patch \ + file://0008-tests-meson.build-use-relative-path-to-refer-to-file.patch \ + file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ + file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \ + file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \ + file://fixedmeson.patch \ + file://fixmips.patch \ + file://qemu-guest-agent.init \ + file://qemu-guest-agent.udev \ + " +UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" + + +SRC_URI[sha256sum] = "541526a764576eb494d2ff5ec46aeb253e62ea29035d1c23c0a8af4e6cd4f087" + +SRC_URI:append:class-target = " file://cross.patch" +SRC_URI:append:class-nativesdk = " file://cross.patch" + +CVE_STATUS[CVE-2017-5957] = "cpe-incorrect: Applies against virglrender < 0.6.0 and not qemu itself" + +CVE_STATUS[CVE-2007-0998] = "not-applicable-config: The VNC server can expose host files uder some circumstances. We don't enable it by default." + +# https://bugzilla.redhat.com/show_bug.cgi?id=1609015#c11 +CVE_STATUS[CVE-2018-18438] = "disputed: The issues identified by this CVE were determined to not constitute a vulnerability." + +# As per https://nvd.nist.gov/vuln/detail/CVE-2023-0664 +# https://bugzilla.redhat.com/show_bug.cgi?id=2167423 +CVE_STATUS[CVE-2023-0664] = "not-applicable-platform: Issue only applies on Windows" + +# As per https://bugzilla.redhat.com/show_bug.cgi?id=2203387 +CVE_STATUS[CVE-2023-2680] = "not-applicable-platform: RHEL specific issue." + +COMPATIBLE_HOST:mipsarchn32 = "null" +COMPATIBLE_HOST:mipsarchn64 = "null" +COMPATIBLE_HOST:riscv32 = "null" + +# Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html +# upstream states qemu doesn't work without optimization +DEBUG_BUILD = "0" + +do_install:append() { + # Prevent QA warnings about installed ${localstatedir}/run + if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi +} + +do_install_ptest() { + cp -rL ${B}/tests ${D}${PTEST_PATH} + find ${D}${PTEST_PATH}/tests -type f -name "*.[Sshcodp]" | xargs -i rm -rf {} + + # Don't check the file genreated by configure + sed -i -e "1s,#!/usr/bin/bash,#!${base_bindir}/bash," ${D}${PTEST_PATH}/tests/data/acpi/disassemle-aml.sh + + # Strip the paths from the QEMU variable, we can use PATH + makfiles=$(find ${D}${PTEST_PATH} -name "*.mak") + sed -i -e "s#^QEMU=.*/qemu-#QEMU=qemu-#g" $makfiles + + # Strip compiler flags as they break reproducibility + sed -i -e "s,^CC=.*,CC=gcc," \ + -e "s,^CCAS=.*,CCAS=gcc," \ + -e "s,^LD=.*,LD=ld," $makfiles + + # Update SRC_PATH variable to the right place on target + sed -i -e "s#^SRC_PATH=.*#SRC_PATH=${PTEST_PATH}#g" $makfiles + + # https://gitlab.com/qemu-project/qemu/-/issues/1403 + rm ${D}${PTEST_PATH}/tests/unit/test-io-channel-command +} + +# QEMU_TARGETS is overridable variable +QEMU_TARGETS ?= "arm aarch64 i386 loongarch64 mips mipsel mips64 mips64el ppc ppc64 ppc64le riscv32 riscv64 sh4 x86_64" + +EXTRA_OECONF = " \ + --prefix=${prefix} \ + --bindir=${bindir} \ + --includedir=${includedir} \ + --libdir=${libdir} \ + --mandir=${mandir} \ + --datadir=${datadir} \ + --docdir=${docdir}/${BPN} \ + --sysconfdir=${sysconfdir} \ + --libexecdir=${libexecdir} \ + --localstatedir=${localstatedir} \ + --with-suffix=${BPN} \ + --disable-strip \ + --disable-werror \ + --extra-cflags='${CFLAGS}' \ + --extra-ldflags='${LDFLAGS}' \ + --disable-download \ + --disable-docs \ + ${PACKAGECONFIG_CONFARGS} \ + " + +B = "${WORKDIR}/build" + +#EXTRA_OECONF:append = " --python=${HOSTTOOLS_DIR}/python3" + +do_configure:prepend:class-native() { + # Append build host pkg-config paths for native target since the host may provide sdl + BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "") + if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then + export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$BHOST_PKGCONFIG_PATH + fi +} + +do_configure() { + ${S}/configure ${EXTRA_OECONF} +} +do_configure[cleandirs] += "${B}" + +do_install () { + export STRIP="" + oe_runmake 'DESTDIR=${D}' install + + # If we built the guest agent, also install startup/udev rules + if [ -e "${D}${bindir}/qemu-ga" ]; then + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/qemu-guest-agent.init ${D}${sysconfdir}/init.d/qemu-guest-agent + sed -i 's:@bindir@:${bindir}:' ${D}${sysconfdir}/init.d/qemu-guest-agent + + install -d ${D}${sysconfdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/qemu-guest-agent.udev ${D}${sysconfdir}/udev/rules.d/60-qemu-guest-agent.rules + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${S}/contrib/systemd/qemu-guest-agent.service ${D}${systemd_unitdir}/system + sed -i -e 's,-/usr/bin/,-${bindir}/,g' ${D}${systemd_unitdir}/system/qemu-guest-agent.service + fi + # ELF binary /usr/share/qemu/s390-netboot.img has relocations in .text + rm ${D}${datadir}/qemu/s390-netboot.img -f + # ELF binary /usr/share/qemu/s390-ccw.img has relocations in .text [textrel] + rm ${D}${datadir}/qemu/s390-ccw.img -f +} + +# The following fragment will create a wrapper for qemu-mips user emulation +# binary in order to work around a segmentation fault issue. Basically, by +# default, the reserved virtual address space for 32-on-64 bit is set to 4GB. +# This will trigger a MMU access fault in the virtual CPU. With this change, +# the qemu-mips works fine. +# IMPORTANT: This piece needs to be removed once the root cause is fixed! +do_install:append() { + if [ -e "${D}/${bindir}/qemu-mips" ]; then + create_wrapper ${D}/${bindir}/qemu-mips \ + QEMU_RESERVED_VA=0x0 + fi +} +# END of qemu-mips workaround + +# Disable kvm/virgl/mesa on targets that do not support it +PACKAGECONFIG:remove:darwin = "kvm virglrenderer epoxy gtk+" +PACKAGECONFIG:remove:mingw32 = "kvm virglrenderer epoxy gtk+" + +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2" +PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" +PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr," +PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio," +PACKAGECONFIG[uring] = "--enable-linux-io-uring,--disable-linux-io-uring,liburing" +PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest" +PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl," +PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpeg," +PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,curl," +PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss," +PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses," +PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native" +PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native" +PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng," +PACKAGECONFIG[ssh] = "--enable-libssh,--disable-libssh,libssh," +PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt," +PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle" +PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1" +PACKAGECONFIG[fdt] = "--enable-fdt,--disable-fdt,dtc" +PACKAGECONFIG[alsa] = "--audio-drv-list=default,,alsa-lib" +PACKAGECONFIG[epoxy] = "--enable-opengl,--disable-opengl,libepoxy" +PACKAGECONFIG[lzo] = "--enable-lzo,--disable-lzo,lzo" +PACKAGECONFIG[dax] = "--enable-libdaxctl,--disable-libdaxctl,ndctl" +PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl" +PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls" +PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2" +PACKAGECONFIG[libiscsi] = "--enable-libiscsi,--disable-libiscsi" +PACKAGECONFIG[kvm] = "--enable-kvm,--disable-kvm" +PACKAGECONFIG[virglrenderer] = "--enable-virglrenderer,--disable-virglrenderer,virglrenderer" +# spice will be in meta-networking layer +PACKAGECONFIG[spice] = "--enable-spice,--disable-spice,spice" +# usbredir will be in meta-networking layer +PACKAGECONFIG[dbus-display] = "--enable-dbus-display,--disable-dbus-display,glib-2.0-native,dbus" +PACKAGECONFIG[usb-redir] = "--enable-usb-redir,--disable-usb-redir,usbredir" +PACKAGECONFIG[snappy] = "--enable-snappy,--disable-snappy,snappy" +PACKAGECONFIG[glusterfs] = "--enable-glusterfs,--disable-glusterfs,glusterfs" +PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon" +PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,udev" +PACKAGECONFIG[attr] = "--enable-attr,--disable-attr,attr," +PACKAGECONFIG[rbd] = "--enable-rbd,--disable-rbd,ceph,ceph" +PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,," +PACKAGECONFIG[ust] = "--enable-trace-backends=ust,,lttng-ust," +PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,," +PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp" +# libnfs is currently provided by meta-kodi +PACKAGECONFIG[libnfs] = "--enable-libnfs,--disable-libnfs,libnfs" +PACKAGECONFIG[pmem] = "--enable-libpmem,--disable-libpmem,pmdk" +PACKAGECONFIG[pulseaudio] = "--enable-pa,--disable-pa,pulseaudio" +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux" +PACKAGECONFIG[bpf] = "--enable-bpf,--disable-bpf,libbpf" +PACKAGECONFIG[capstone] = "--enable-capstone,--disable-capstone" +PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma" +PACKAGECONFIG[vde] = "--enable-vde,--disable-vde" +PACKAGECONFIG[fuse] = "--enable-fuse --enable-fuse-lseek,--disable-fuse --disable-fuse-lseek,fuse3" +PACKAGECONFIG[slirp] = "--enable-slirp,--disable-slirp,libslirp" +PACKAGECONFIG[brlapi] = "--enable-brlapi,--disable-brlapi" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack," +PACKAGECONFIG[debuginfo] = "--enable-libdw,--disable-libdw,elfutils" + +INSANE_SKIP:${PN}-common = "arch" + +FILES:${PN} += "${datadir}/icons" + +# For user who want to install all arch packages +PACKAGES =+ "${PN}-common" +RDEPENDS:${PN} += "${PN}-common" + +ALLOW_EMPTY:${PN} = "1" +FILES:${PN} = "" + +FILES:${PN}-common = "${bindir}/* ${includedir}/* ${libexecdir}/* ${datadir}/* ${localstatedir}" + +PACKAGES_DYNAMIC += "^${PN}-user-.* ^${PN}-system-.*" + +PACKAGESPLITFUNCS =+ "split_qemu_packages" + +python split_qemu_packages () { + archdir = d.expand('${bindir}/') + subpackages = do_split_packages(d, archdir, r'^qemu-system-(.*)$', '${PN}-system-%s', 'QEMU full system emulation binaries(%s)' , prepend=True, extra_depends='${PN}-common') + + subpackages += do_split_packages(d, archdir, r'^qemu-((?!system|edid|ga|img|io|nbd|pr-helper|storage-daemon).*)$', '${PN}-user-%s', 'QEMU full user emulation binaries(%s)' , prepend=True, extra_depends='${PN}-common') + if subpackages: + d.appendVar('RDEPENDS:' + d.getVar('PN'), ' ' + ' '.join(subpackages)) + mipspackage = d.getVar('PN') + "-user-mips" + if mipspackage in ' '.join(subpackages): + d.appendVar('RDEPENDS:' + mipspackage, ' ' + d.getVar("MLPREFIX") + 'bash') +} + +# Put the guest agent in a separate package +PACKAGES =+ "${PN}-guest-agent" +SUMMARY:${PN}-guest-agent = "QEMU guest agent" +FILES:${PN}-guest-agent += " \ + ${bindir}/qemu-ga \ + ${sysconfdir}/udev/rules.d/60-qemu-guest-agent.rules \ + ${sysconfdir}/init.d/qemu-guest-agent \ + ${systemd_unitdir}/system/qemu-guest-agent.service \ +" + +INITSCRIPT_PACKAGES = "${PN}-guest-agent" +INITSCRIPT_NAME:${PN}-guest-agent = "qemu-guest-agent" +INITSCRIPT_PARAMS:${PN}-guest-agent = "defaults" + +SYSTEMD_PACKAGES = "${PN}-guest-agent" +SYSTEMD_SERVICE:${PN}-guest-agent = "qemu-guest-agent.service" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch new file mode 100644 index 00000000..c6550801 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch @@ -0,0 +1,33 @@ +From de64af82950a6908f9407dfc92b83c17e2af3eab Mon Sep 17 00:00:00 2001 +From: Jason Wessel +Date: Fri, 28 Mar 2014 17:42:43 +0800 +Subject: [PATCH 01/12] qemu: Add addition environment space to boot loader + qemu-system-mips + +Upstream-Status: Inappropriate - OE uses deep paths + +If you create a project with very long directory names like 128 characters +deep and use NFS, the kernel arguments will be truncated. The kernel will +accept longer strings such as 1024 bytes, but the qemu boot loader defaulted +to only 256 bytes. This patch expands the limit. + +Signed-off-by: Jason Wessel +Signed-off-by: Roy Li + +--- + hw/mips/malta.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: qemu-8.0.0/hw/mips/malta.c +=================================================================== +--- qemu-8.0.0.orig/hw/mips/malta.c ++++ qemu-8.0.0/hw/mips/malta.c +@@ -64,7 +64,7 @@ + #define ENVP_PADDR 0x2000 + #define ENVP_VADDR cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR) + #define ENVP_NB_ENTRIES 16 +-#define ENVP_ENTRY_SIZE 256 ++#define ENVP_ENTRY_SIZE 1024 + + /* Hardware addresses */ + #define FLASH_ADDRESS 0x1e000000ULL diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch new file mode 100644 index 00000000..ceae67be --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch @@ -0,0 +1,355 @@ +From 71f14902256e3c3529710b713e1ea43100bf4c40 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 17 Dec 2022 08:37:46 -0800 +Subject: [PATCH 2/2] linux-user: Replace use of lfs64 related functions and + macros + +Builds defines -D_FILE_OFFSET_BITS=64 which makes the original functions +anf macros behave same as their 64 suffixed counterparts. This also +helps in compiling with latest musl C library, where these macros and +functions are no more available under _GNU_SOURCE feature macro + +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2022-12/msg02841.html] +Signed-off-by: Khem Raj +Cc: Laurent Vivier +--- + linux-user/syscall.c | 153 +++++++++++-------------------------------- + 1 file changed, 39 insertions(+), 114 deletions(-) + +Index: qemu-8.0.0/linux-user/syscall.c +=================================================================== +--- qemu-8.0.0.orig/linux-user/syscall.c ++++ qemu-8.0.0/linux-user/syscall.c +@@ -761,8 +761,8 @@ safe_syscall6(ssize_t, copy_file_range, + */ + #define safe_ioctl(...) safe_syscall(__NR_ioctl, __VA_ARGS__) + /* Similarly for fcntl. Note that callers must always: +- * pass the F_GETLK64 etc constants rather than the unsuffixed F_GETLK +- * use the flock64 struct rather than unsuffixed flock ++ * pass the F_GETLK etc constants rather than the unsuffixed F_GETLK ++ * use the flock struct rather than unsuffixed flock + * This will then work and use a 64-bit offset for both 32-bit and 64-bit hosts. + */ + #ifdef __NR_fcntl64 +@@ -6813,13 +6813,13 @@ static int target_to_host_fcntl_cmd(int + ret = cmd; + break; + case TARGET_F_GETLK: +- ret = F_GETLK64; ++ ret = F_GETLK; + break; + case TARGET_F_SETLK: +- ret = F_SETLK64; ++ ret = F_SETLK; + break; + case TARGET_F_SETLKW: +- ret = F_SETLKW64; ++ ret = F_SETLKW; + break; + case TARGET_F_GETOWN: + ret = F_GETOWN; +@@ -6833,17 +6833,6 @@ static int target_to_host_fcntl_cmd(int + case TARGET_F_SETSIG: + ret = F_SETSIG; + break; +-#if TARGET_ABI_BITS == 32 +- case TARGET_F_GETLK64: +- ret = F_GETLK64; +- break; +- case TARGET_F_SETLK64: +- ret = F_SETLK64; +- break; +- case TARGET_F_SETLKW64: +- ret = F_SETLKW64; +- break; +-#endif + case TARGET_F_SETLEASE: + ret = F_SETLEASE; + break; +@@ -6895,8 +6884,8 @@ static int target_to_host_fcntl_cmd(int + * them to 5, 6 and 7 before making the syscall(). Since we make the + * syscall directly, adjust to what is supported by the kernel. + */ +- if (ret >= F_GETLK64 && ret <= F_SETLKW64) { +- ret -= F_GETLK64 - 5; ++ if (ret >= F_GETLK && ret <= F_SETLKW) { ++ ret -= F_GETLK - 5; + } + #endif + +@@ -6929,55 +6918,11 @@ static int host_to_target_flock(int type + return type; + } + +-static inline abi_long copy_from_user_flock(struct flock64 *fl, +- abi_ulong target_flock_addr) +-{ +- struct target_flock *target_fl; +- int l_type; +- +- if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) { +- return -TARGET_EFAULT; +- } +- +- __get_user(l_type, &target_fl->l_type); +- l_type = target_to_host_flock(l_type); +- if (l_type < 0) { +- return l_type; +- } +- fl->l_type = l_type; +- __get_user(fl->l_whence, &target_fl->l_whence); +- __get_user(fl->l_start, &target_fl->l_start); +- __get_user(fl->l_len, &target_fl->l_len); +- __get_user(fl->l_pid, &target_fl->l_pid); +- unlock_user_struct(target_fl, target_flock_addr, 0); +- return 0; +-} +- +-static inline abi_long copy_to_user_flock(abi_ulong target_flock_addr, +- const struct flock64 *fl) +-{ +- struct target_flock *target_fl; +- short l_type; +- +- if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) { +- return -TARGET_EFAULT; +- } +- +- l_type = host_to_target_flock(fl->l_type); +- __put_user(l_type, &target_fl->l_type); +- __put_user(fl->l_whence, &target_fl->l_whence); +- __put_user(fl->l_start, &target_fl->l_start); +- __put_user(fl->l_len, &target_fl->l_len); +- __put_user(fl->l_pid, &target_fl->l_pid); +- unlock_user_struct(target_fl, target_flock_addr, 1); +- return 0; +-} +- +-typedef abi_long from_flock64_fn(struct flock64 *fl, abi_ulong target_addr); +-typedef abi_long to_flock64_fn(abi_ulong target_addr, const struct flock64 *fl); ++typedef abi_long from_flock_fn(struct flock *fl, abi_ulong target_addr); ++typedef abi_long to_flock_fn(abi_ulong target_addr, const struct flock *fl); + + #if defined(TARGET_ARM) && TARGET_ABI_BITS == 32 +-struct target_oabi_flock64 { ++struct target_oabi_flock { + abi_short l_type; + abi_short l_whence; + abi_llong l_start; +@@ -6985,10 +6930,10 @@ struct target_oabi_flock64 { + abi_int l_pid; + } QEMU_PACKED; + +-static inline abi_long copy_from_user_oabi_flock64(struct flock64 *fl, ++static inline abi_long copy_from_user_oabi_flock(struct flock *fl, + abi_ulong target_flock_addr) + { +- struct target_oabi_flock64 *target_fl; ++ struct target_oabi_flock *target_fl; + int l_type; + + if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) { +@@ -7009,10 +6954,10 @@ static inline abi_long copy_from_user_oa + return 0; + } + +-static inline abi_long copy_to_user_oabi_flock64(abi_ulong target_flock_addr, +- const struct flock64 *fl) ++static inline abi_long copy_to_user_oabi_flock(abi_ulong target_flock_addr, ++ const struct flock *fl) + { +- struct target_oabi_flock64 *target_fl; ++ struct target_oabi_flock *target_fl; + short l_type; + + if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) { +@@ -7030,10 +6975,10 @@ static inline abi_long copy_to_user_oabi + } + #endif + +-static inline abi_long copy_from_user_flock64(struct flock64 *fl, ++static inline abi_long copy_from_user_flock(struct flock *fl, + abi_ulong target_flock_addr) + { +- struct target_flock64 *target_fl; ++ struct target_flock *target_fl; + int l_type; + + if (!lock_user_struct(VERIFY_READ, target_fl, target_flock_addr, 1)) { +@@ -7054,10 +6999,10 @@ static inline abi_long copy_from_user_fl + return 0; + } + +-static inline abi_long copy_to_user_flock64(abi_ulong target_flock_addr, +- const struct flock64 *fl) ++static inline abi_long copy_to_user_flock(abi_ulong target_flock_addr, ++ const struct flock *fl) + { +- struct target_flock64 *target_fl; ++ struct target_flock *target_fl; + short l_type; + + if (!lock_user_struct(VERIFY_WRITE, target_fl, target_flock_addr, 0)) { +@@ -7076,7 +7021,7 @@ static inline abi_long copy_to_user_floc + + static abi_long do_fcntl(int fd, int cmd, abi_ulong arg) + { +- struct flock64 fl64; ++ struct flock fl64; + #ifdef F_GETOWN_EX + struct f_owner_ex fox; + struct target_f_owner_ex *target_fox; +@@ -7089,6 +7034,7 @@ static abi_long do_fcntl(int fd, int cmd + + switch(cmd) { + case TARGET_F_GETLK: ++ case TARGET_F_OFD_GETLK: + ret = copy_from_user_flock(&fl64, arg); + if (ret) { + return ret; +@@ -7098,32 +7044,11 @@ static abi_long do_fcntl(int fd, int cmd + ret = copy_to_user_flock(arg, &fl64); + } + break; +- + case TARGET_F_SETLK: + case TARGET_F_SETLKW: +- ret = copy_from_user_flock(&fl64, arg); +- if (ret) { +- return ret; +- } +- ret = get_errno(safe_fcntl(fd, host_cmd, &fl64)); +- break; +- +- case TARGET_F_GETLK64: +- case TARGET_F_OFD_GETLK: +- ret = copy_from_user_flock64(&fl64, arg); +- if (ret) { +- return ret; +- } +- ret = get_errno(safe_fcntl(fd, host_cmd, &fl64)); +- if (ret == 0) { +- ret = copy_to_user_flock64(arg, &fl64); +- } +- break; +- case TARGET_F_SETLK64: +- case TARGET_F_SETLKW64: + case TARGET_F_OFD_SETLK: + case TARGET_F_OFD_SETLKW: +- ret = copy_from_user_flock64(&fl64, arg); ++ ret = copy_from_user_flock(&fl64, arg); + if (ret) { + return ret; + } +@@ -7348,7 +7273,7 @@ static inline abi_long target_truncate64 + arg2 = arg3; + arg3 = arg4; + } +- return get_errno(truncate64(arg1, target_offset64(arg2, arg3))); ++ return get_errno(truncate(arg1, target_offset64(arg2, arg3))); + } + #endif + +@@ -7362,7 +7287,7 @@ static inline abi_long target_ftruncate6 + arg2 = arg3; + arg3 = arg4; + } +- return get_errno(ftruncate64(arg1, target_offset64(arg2, arg3))); ++ return get_errno(ftruncate(arg1, target_offset64(arg2, arg3))); + } + #endif + +@@ -8598,7 +8523,7 @@ static int do_getdents(abi_long dirfd, a + void *tdirp; + int hlen, hoff, toff; + int hreclen, treclen; +- off64_t prev_diroff = 0; ++ off_t prev_diroff = 0; + + hdirp = g_try_malloc(count); + if (!hdirp) { +@@ -8651,7 +8576,7 @@ static int do_getdents(abi_long dirfd, a + * Return what we have, resetting the file pointer to the + * location of the first record not returned. + */ +- lseek64(dirfd, prev_diroff, SEEK_SET); ++ lseek(dirfd, prev_diroff, SEEK_SET); + break; + } + +@@ -8685,7 +8610,7 @@ static int do_getdents64(abi_long dirfd, + void *tdirp; + int hlen, hoff, toff; + int hreclen, treclen; +- off64_t prev_diroff = 0; ++ off_t prev_diroff = 0; + + hdirp = g_try_malloc(count); + if (!hdirp) { +@@ -8727,7 +8652,7 @@ static int do_getdents64(abi_long dirfd, + * Return what we have, resetting the file pointer to the + * location of the first record not returned. + */ +- lseek64(dirfd, prev_diroff, SEEK_SET); ++ lseek(dirfd, prev_diroff, SEEK_SET); + break; + } + +@@ -11158,7 +11083,7 @@ static abi_long do_syscall1(CPUArchState + return -TARGET_EFAULT; + } + } +- ret = get_errno(pread64(arg1, p, arg3, target_offset64(arg4, arg5))); ++ ret = get_errno(pread(arg1, p, arg3, target_offset64(arg4, arg5))); + unlock_user(p, arg2, ret); + return ret; + case TARGET_NR_pwrite64: +@@ -11175,7 +11100,7 @@ static abi_long do_syscall1(CPUArchState + return -TARGET_EFAULT; + } + } +- ret = get_errno(pwrite64(arg1, p, arg3, target_offset64(arg4, arg5))); ++ ret = get_errno(pwrite(arg1, p, arg3, target_offset64(arg4, arg5))); + unlock_user(p, arg2, 0); + return ret; + #endif +@@ -11998,14 +11923,14 @@ static abi_long do_syscall1(CPUArchState + case TARGET_NR_fcntl64: + { + int cmd; +- struct flock64 fl; +- from_flock64_fn *copyfrom = copy_from_user_flock64; +- to_flock64_fn *copyto = copy_to_user_flock64; ++ struct flock fl; ++ from_flock_fn *copyfrom = copy_from_user_flock; ++ to_flock_fn *copyto = copy_to_user_flock; + + #ifdef TARGET_ARM + if (!cpu_env->eabi) { +- copyfrom = copy_from_user_oabi_flock64; +- copyto = copy_to_user_oabi_flock64; ++ copyfrom = copy_from_user_oabi_flock; ++ copyto = copy_to_user_oabi_flock; + } + #endif + +@@ -12015,7 +11940,7 @@ static abi_long do_syscall1(CPUArchState + } + + switch(arg2) { +- case TARGET_F_GETLK64: ++ case TARGET_F_GETLK: + ret = copyfrom(&fl, arg3); + if (ret) { + break; +@@ -12026,8 +11951,8 @@ static abi_long do_syscall1(CPUArchState + } + break; + +- case TARGET_F_SETLK64: +- case TARGET_F_SETLKW64: ++ case TARGET_F_SETLK: ++ case TARGET_F_SETLKW: + ret = copyfrom(&fl, arg3); + if (ret) { + break; diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0003-apic-fixup-fallthrough-to-PIC.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0003-apic-fixup-fallthrough-to-PIC.patch new file mode 100644 index 00000000..e85f8202 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0003-apic-fixup-fallthrough-to-PIC.patch @@ -0,0 +1,44 @@ +From dc2a8ccd440ee3741b61606eafed3f7e092f4312 Mon Sep 17 00:00:00 2001 +From: Mark Asselstine +Date: Tue, 26 Feb 2013 11:43:28 -0500 +Subject: [PATCH 03/12] apic: fixup fallthrough to PIC + +Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC +interrupts through the local APIC if the local APIC config says so.] +missed a check to ensure the local APIC is enabled. Since if the local +APIC is disabled it doesn't matter what the local APIC config says. + +If this check isn't done and the guest has disabled the local APIC the +guest will receive a general protection fault, similar to what is seen +here: + +https://lists.gnu.org/archive/html/qemu-devel/2012-12/msg02304.html + +The GPF is caused by an attempt to service interrupt 0xffffffff. This +comes about since cpu_get_pic_interrupt() calls apic_accept_pic_intr() +(with the local APIC disabled apic_get_interrupt() returns -1). +apic_accept_pic_intr() returns 0 and thus the interrupt number which +is returned from cpu_get_pic_interrupt(), and which is attempted to be +serviced, is -1. + +Signed-off-by: Mark Asselstine +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg00878.html] +Signed-off-by: He Zhe + +--- + hw/intc/apic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: qemu-8.0.0/hw/intc/apic.c +=================================================================== +--- qemu-8.0.0.orig/hw/intc/apic.c ++++ qemu-8.0.0/hw/intc/apic.c +@@ -607,7 +607,7 @@ int apic_accept_pic_intr(DeviceState *de + APICCommonState *s = APIC(dev); + uint32_t lvt0; + +- if (!s) ++ if (!s || !(s->spurious_vec & APIC_SV_ENABLE)) + return -1; + + lvt0 = s->lvt[APIC_LVT_LINT0]; diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch new file mode 100644 index 00000000..f981a64a --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0004-configure-Add-pkg-config-handling-for-libgcrypt.patch @@ -0,0 +1,29 @@ +From d8265abdce5dc2bf74b3fccdf2b7257b4f3894f0 Mon Sep 17 00:00:00 2001 +From: He Zhe +Date: Wed, 28 Aug 2019 19:56:28 +0800 +Subject: [PATCH 04/12] configure: Add pkg-config handling for libgcrypt + +libgcrypt may also be controlled by pkg-config, this patch adds pkg-config +handling for libgcrypt. + +Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html] + +Signed-off-by: He Zhe + +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: qemu-8.1.0/meson.build +=================================================================== +--- qemu-8.1.0.orig/meson.build ++++ qemu-8.1.0/meson.build +@@ -1481,7 +1481,7 @@ endif + if not gnutls_crypto.found() + if (not get_option('gcrypt').auto() or have_system) and not get_option('nettle').enabled() + gcrypt = dependency('libgcrypt', version: '>=1.8', +- method: 'config-tool', ++ method: 'pkg-config', + required: get_option('gcrypt')) + # Debian has removed -lgpg-error from libgcrypt-config + # as it "spreads unnecessary dependencies" which in diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0005-qemu-Do-not-include-file-if-not-exists.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0005-qemu-Do-not-include-file-if-not-exists.patch new file mode 100644 index 00000000..38aa4c3b --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0005-qemu-Do-not-include-file-if-not-exists.patch @@ -0,0 +1,32 @@ +From f39e7bfc5ed07b5ecaeb705c4eae4855ca120d47 Mon Sep 17 00:00:00 2001 +From: Oleksiy Obitotskyy +Date: Wed, 25 Mar 2020 21:21:35 +0200 +Subject: [PATCH 05/12] qemu: Do not include file if not exists + +Script configure checks for if_alg.h and check failed but +if_alg.h still included. + +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg07188.html] +Signed-off-by: Oleksiy Obitotskyy + +[update patch context] +Signed-off-by: Sakib Sajal + +--- + linux-user/syscall.c | 2 ++ + 1 file changed, 2 insertions(+) + +Index: qemu-8.0.0/linux-user/syscall.c +=================================================================== +--- qemu-8.0.0.orig/linux-user/syscall.c ++++ qemu-8.0.0/linux-user/syscall.c +@@ -115,7 +115,9 @@ + #include + #include + #include ++#if defined(CONFIG_AF_ALG) + #include ++#endif + #include + #include + #ifdef HAVE_BTRFS_H diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch new file mode 100644 index 00000000..5d1d7c68 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch @@ -0,0 +1,49 @@ +From 375cae3dd6151ef33cae8f243f6a2c2da6c0c356 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Fri, 8 Jan 2021 17:27:06 +0000 +Subject: [PATCH 06/12] qemu: Add some user space mmap tweaks to address musl + 32 bit + +When using qemu-i386 to build qemux86 webkitgtk on musl, it sits in an +infinite loop of mremap calls of ever decreasing/increasing addresses. + +I suspect something in the musl memory allocation code loops indefinitely +if it only sees ENOMEM and only exits when it hits EFAULT. + +According to the docs, trying to mremap outside the address space +can/should return EFAULT and changing this allows the build to succeed. + +A better return value for the other cases of invalid addresses is EINVAL +rather than ENOMEM so adjust the other part of the test to this. + +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01355.html] +Signed-off-by: Richard Purdie +Date: Mon, 1 Mar 2021 13:00:47 +0000 +Subject: [PATCH 07/12] qemu: Determinism fixes + +When sources are included within debug information, a couple of areas of the +qemu build are not reproducible due to either full buildpaths or timestamps. + +Replace the full paths with relative ones. I couldn't figure out how to get +meson to pass relative paths but we can fix that in the script. + +Upstream-Status: Pending [some version of all/part of this may be accepted] +RP 2021/3/1 + +--- + scripts/decodetree.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: qemu-8.0.0/scripts/decodetree.py +=================================================================== +--- qemu-8.0.0.orig/scripts/decodetree.py ++++ qemu-8.0.0/scripts/decodetree.py +@@ -1328,7 +1328,7 @@ def main(): + toppat = ExcMultiPattern(0) + + for filename in args: +- input_file = filename ++ input_file = os.path.relpath(filename) + f = open(filename, 'rt', encoding='utf-8') + parse_file(f, toppat) + f.close() diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch new file mode 100644 index 00000000..a84364cc --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0008-tests-meson.build-use-relative-path-to-refer-to-file.patch @@ -0,0 +1,41 @@ +From 2bf9388b801d4389e2d57e95a7897bfc1c42786e Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 14 Jan 2021 06:33:04 +0000 +Subject: [PATCH 08/12] tests/meson.build: use relative path to refer to files + +Fix error like: +Fatal error: can't create tests/ptimer-test.p/..._qemu-5.2.0_hw_core_ptimer.c.o: File name too long + +when build path is too long, use meson.source_root() will make this +filename too long. Fixed by using relative path to refer to files + +Upstream-Status: Submitted [send to qemu-devel] + +Signed-off-by: Changqing Li + +--- + tests/unit/meson.build | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: qemu-8.0.0/tests/unit/meson.build +=================================================================== +--- qemu-8.0.0.orig/tests/unit/meson.build ++++ qemu-8.0.0/tests/unit/meson.build +@@ -46,7 +46,7 @@ tests = { + 'test-keyval': [testqapi], + 'test-logging': [], + 'test-uuid': [], +- 'ptimer-test': ['ptimer-test-stubs.c', meson.project_source_root() / 'hw/core/ptimer.c'], ++ 'ptimer-test': ['ptimer-test-stubs.c', '../../hw/core/ptimer.c'], + 'test-qapi-util': [], + 'test-interval-tree': [], + 'test-xs-node': [qom], +@@ -136,7 +136,7 @@ if have_system + 'test-util-sockets': ['socket-helpers.c'], + 'test-base64': [], + 'test-bufferiszero': [], +- 'test-smp-parse': [qom, meson.project_source_root() / 'hw/core/machine-smp.c'], ++ 'test-smp-parse': [qom, '../../hw/core/machine-smp.c'], + 'test-vmstate': [migration, io], + 'test-yank': ['socket-helpers.c', qom, io, chardev] + } diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch new file mode 100644 index 00000000..4de6cc24 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch @@ -0,0 +1,46 @@ +From ebf4bb2f51da83af0c61480414cfa156f7308b34 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 21 Mar 2022 10:09:38 -0700 +Subject: [PATCH 09/12] Define MAP_SYNC and MAP_SHARED_VALIDATE on needed linux + systems + +linux only wires MAP_SYNC and MAP_SHARED_VALIDATE for architectures +which include asm-generic/mman.h and mips/powerpc are not including this +file in linux/mman.h, therefore these should be defined for such +architectures on Linux as well. This fixes build on mips/musl/linux + +Upstream-Status: Submitted [https://lists.nongnu.org/archive/html/qemu-devel/2022-03/msg05298.html] +Signed-off-by: Khem Raj +Cc: Zhang Yi +Cc: Michael S. Tsirkin + +--- + util/mmap-alloc.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +Index: qemu-8.0.0/util/mmap-alloc.c +=================================================================== +--- qemu-8.0.0.orig/util/mmap-alloc.c ++++ qemu-8.0.0/util/mmap-alloc.c +@@ -10,14 +10,18 @@ + * later. See the COPYING file in the top-level directory. + */ + ++#include "qemu/osdep.h" + #ifdef CONFIG_LINUX + #include +-#else /* !CONFIG_LINUX */ ++#endif /* CONFIG_LINUX */ ++ ++#ifndef MAP_SYNC + #define MAP_SYNC 0x0 ++#endif /* MAP_SYNC */ ++#ifndef MAP_SHARED_VALIDATE + #define MAP_SHARED_VALIDATE 0x0 +-#endif /* CONFIG_LINUX */ ++#endif /* MAP_SHARED_VALIDATE */ + +-#include "qemu/osdep.h" + #include "qemu/mmap-alloc.h" + #include "qemu/host-utils.h" + #include "qemu/cutils.h" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch new file mode 100644 index 00000000..6caf35b6 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch @@ -0,0 +1,40 @@ +CVE: CVE-2022-1050 +Upstream-Status: Submitted [https://lore.kernel.org/qemu-devel/20220403095234.2210-1-yuval.shaia.ml@gmail.com/] +Signed-off-by: Ross Burton + +From dbdef95c272e8f3ec037c3db4197c66002e30995 Mon Sep 17 00:00:00 2001 +From: Yuval Shaia +Date: Sun, 3 Apr 2022 12:52:34 +0300 +Subject: [PATCH] hw/pvrdma: Protect against buggy or malicious guest driver + +Guest driver might execute HW commands when shared buffers are not yet +allocated. +This could happen on purpose (malicious guest) or because of some other +guest/host address mapping error. +We need to protect againts such case. + +Fixes: CVE-2022-1050 + +Reported-by: Raven +Signed-off-by: Yuval Shaia +--- + hw/rdma/vmw/pvrdma_cmd.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +Index: qemu-8.0.0/hw/rdma/vmw/pvrdma_cmd.c +=================================================================== +--- qemu-8.0.0.orig/hw/rdma/vmw/pvrdma_cmd.c ++++ qemu-8.0.0/hw/rdma/vmw/pvrdma_cmd.c +@@ -782,6 +782,12 @@ int pvrdma_exec_cmd(PVRDMADev *dev) + goto out; + } + ++ if (!dsr_info->dsr) { ++ /* Buggy or malicious guest driver */ ++ rdma_error_report("Exec command without dsr, req or rsp buffers"); ++ goto out; ++ } ++ + if (dsr_info->req->hdr.cmd >= sizeof(cmd_handlers) / + sizeof(struct cmd_handler)) { + rdma_error_report("Unsupported command"); diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/cross.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/cross.patch new file mode 100644 index 00000000..112eb925 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/cross.patch @@ -0,0 +1,38 @@ +From 76c3fc4c87231bed32974ebbbdb5079cff45a6b7 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Tue, 5 Jan 2021 23:00:14 +0000 +Subject: [PATCH 12/12] qemu: Upgrade 5.1.0->5.2.0 + +We need to be able to trigger configure's cross code but we don't want +to set cross_prefix as it does other things we don't want. Patch things +so we can do what we need in the target config case. + +Upstream-Status: Inappropriate [may be rewritten in a way upstream may accept?] +Signed-off-by: Richard Purdie + +--- + configure | 4 ---- + 1 file changed, 4 deletions(-) + +Index: qemu-8.0.0/configure +=================================================================== +--- qemu-8.0.0.orig/configure ++++ qemu-8.0.0/configure +@@ -2590,7 +2590,6 @@ if test "$skip_meson" = no; then + echo "widl = [$(meson_quote $widl)]" >> $cross + echo "windres = [$(meson_quote $windres)]" >> $cross + echo "windmc = [$(meson_quote $windmc)]" >> $cross +- if test "$cross_compile" = "yes"; then + cross_arg="--cross-file config-meson.cross" + echo "[host_machine]" >> $cross + echo "system = '$targetos'" >> $cross +@@ -2608,9 +2607,6 @@ if test "$skip_meson" = no; then + else + echo "endian = 'little'" >> $cross + fi +- else +- cross_arg="--native-file config-meson.cross" +- fi + mv $cross config-meson.cross + + rm -rf meson-private meson-info meson-logs diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixedmeson.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixedmeson.patch new file mode 100644 index 00000000..0cbaea07 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixedmeson.patch @@ -0,0 +1,20 @@ +Upstream-Status: Inappropriate [workaround, would need a real fix for upstream] + +Index: qemu-8.1.0/configure +=================================================================== +--- qemu-8.1.0.orig/configure ++++ qemu-8.1.0/configure +@@ -1032,12 +1032,7 @@ then + exit 1 + fi + +-# At this point, we expect Meson to be installed and available. +-# We expect mkvenv or pip to have created pyvenv/bin/meson for us. +-# We ignore PATH completely here: we want to use the venv's Meson +-# *exclusively*. +- +-meson="$(cd pyvenv/bin; pwd)/meson" ++meson=`which meson` + + # Conditionally ensure Sphinx is installed. + diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixmips.patch b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixmips.patch new file mode 100644 index 00000000..01546d10 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/fixmips.patch @@ -0,0 +1,18 @@ +Patch to fix mips boot hangs where virtio appears broken. Patch under discussion upstream. +Regression is introduced by other fixes to 8.1.0 to get x86 boots working. + +Upstream-Status: Pending [https://lore.kernel.org/qemu-devel/6c956b90-5a13-db96-9c02-9834a512fe6f@linaro.org/] + +Index: qemu-8.1.0/softmmu/physmem.c +=================================================================== +--- qemu-8.1.0.orig/softmmu/physmem.c ++++ qemu-8.1.0/softmmu/physmem.c +@@ -2517,7 +2517,7 @@ static void tcg_commit(MemoryListener *l + * That said, the listener is also called during realize, before + * all of the tcg machinery for run-on is initialized: thus halt_cond. + */ +- if (cpu->halt_cond) { ++ if (cpu->halt_cond && !qemu_cpu_is_self(cpu)) { + async_run_on_cpu(cpu, tcg_commit_cpu, RUN_ON_CPU_HOST_PTR(cpuas)); + } else { + tcg_commit_cpu(cpu, RUN_ON_CPU_HOST_PTR(cpuas)); diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/powerpc_rom.bin b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/powerpc_rom.bin new file mode 100644 index 00000000..c4044296 Binary files /dev/null and b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/powerpc_rom.bin differ diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.init b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.init new file mode 100644 index 00000000..5ebaadde --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.init @@ -0,0 +1,75 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Initially written by: Michael Tokarev +# For QEMU Debian downstream package + +set -e + +. /etc/init.d/functions + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="QEMU Guest Agent" +NAME=qemu-ga +DAEMON=@bindir@/$NAME +PIDFILE=/var/run/$NAME.pid + +# config +DAEMON_ARGS="" +# default transport +TRANSPORT=virtio-serial:/dev/virtio-ports/org.qemu.guest_agent.0 +NO_START=0 + +test ! -r /etc/default/qemu-guest-agent || . /etc/default/qemu-guest-agent +test "$NO_START" = "0" || exit 0 +test -x "$DAEMON" || exit 0 + +# +# Function that checks whenever system has necessary environment +# It also splits $TRANSPORT into $method and $path +# +do_check_transport() { + method=${TRANSPORT%%:*}; + path=${TRANSPORT#*:} + case "$method" in + virtio-serial | isa-serial) + if [ ! -e "$path" ]; then + echo "$NAME: transport endpoint not found, not starting" + return 1 + fi + ;; + esac +} + +case "$1" in + start) + do_check_transport || exit 0 + echo -n "Starting $DESC: " + start-stop-daemon -S -p $PIDFILE -x "$DAEMON" -- \ + $DAEMON_ARGS -d -m "$method" -p "$path" + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon -K -x "$DAEMON" -p $PIDFILE + echo "$NAME." + ;; + status) + status "$DAEMON" + exit $? + ;; + restart|force-reload) + do_check_transport || exit 0 + echo -n "Restarting $DESC: " + start-stop-daemon -K -x "$DAEMON" -p $PIDFILE + sleep 1 + start-stop-daemon -S -p $PIDFILE -x "$DAEMON" -- \ + $DAEMON_ARGS -d -m "$method" -p "$path" + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|status|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.udev b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.udev new file mode 100644 index 00000000..47097057 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/qemu-guest-agent.udev @@ -0,0 +1,2 @@ +SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", \ + TAG+="systemd", ENV{SYSTEMD_WANTS}="qemu-guest-agent.service" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/run-ptest b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/run-ptest new file mode 100644 index 00000000..f9a4e8fb --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-8.1/run-ptest @@ -0,0 +1,13 @@ +#!/bin/sh +# +#This script is used to run qemu test suites +# + +ptestdir=$(dirname "$(readlink -f "$0")") +export SRC_PATH=$ptestdir + +cd $ptestdir/tests +tests=$(find . -name "test-*" ! -name "*.p") +for f in $tests; do + $f | sed '/^ok/ s/ok/PASS:/g' +done diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2024.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2024.1.bb index d837b9a5..2db8c778 100644 --- a/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2024.1.bb +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2024.1.bb @@ -2,5 +2,5 @@ require qemu-devicetrees.inc BRANCH ?= "master" -SRCREV ?= "a1810b130c115b003d80c825eebdf0cb9ea3a2a6" +SRCREV ?= "41ac2b04e8c52ed3935b0ba2f132ed49cf7c05fe" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-native-8.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-native-8.1.inc new file mode 100644 index 00000000..22fa9685 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-native-8.1.inc @@ -0,0 +1,7 @@ +require qemu-8.1.inc + +inherit native + +EXTRA_OEMAKE:append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'" + +LDFLAGS:append = " -fuse-ld=bfd" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-targets-8.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-targets-8.1.inc new file mode 100644 index 00000000..24f9a039 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-targets-8.1.inc @@ -0,0 +1,28 @@ +# possible arch values are: +# aarch64 arm armeb alpha cris i386 x86_64 m68k microblaze +# mips mipsel mips64 mips64el ppc ppc64 ppc64abi32 ppcemb +# riscv32 riscv64 sparc sparc32 sparc32plus + +def get_qemu_target_list(d): + import bb + archs = d.getVar('QEMU_TARGETS').split() + tos = d.getVar('HOST_OS') + softmmuonly = "" + for arch in ['ppcemb', 'lm32']: + if arch in archs: + softmmuonly += arch + "-softmmu," + archs.remove(arch) + linuxuseronly = "" + for arch in ['armeb', 'alpha', 'ppc64abi32', 'ppc64le', 'sparc32plus', 'aarch64_be']: + if arch in archs: + linuxuseronly += arch + "-linux-user," + archs.remove(arch) + if 'linux' not in tos: + return softmmuonly + ''.join([arch + "-softmmu" + "," for arch in archs]).rstrip(',') + return softmmuonly + linuxuseronly + ''.join([arch + "-linux-user" + "," + arch + "-softmmu" + "," for arch in archs]).rstrip(',') + +def get_qemu_usermode_target_list(d): + return ",".join(filter(lambda i: "-linux-user" in i, get_qemu_target_list(d).split(','))) + +def get_qemu_system_target_list(d): + return ",".join(filter(lambda i: "-linux-user" not in i, get_qemu_target_list(d).split(','))) diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2024.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2024.1.inc index 009450fd..45a61dbd 100644 --- a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2024.1.inc +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2024.1.inc @@ -1,3 +1,3 @@ -XILINX_QEMU_VERSION = "v7.1.0" +XILINX_QEMU_VERSION = "v8.1.0" BRANCH = "master" -SRCREV = "928f27d17acdc23c158ba223ba85b9df9eea7dc5" +SRCREV = "df72119ac8c34a8a0a72d0ca68d987613e2b8fcd" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-8.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-8.1.inc new file mode 100644 index 00000000..8a94a350 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-8.1.inc @@ -0,0 +1,78 @@ +SUMMARY = "Xilinx's fork of a fast open source processor emulator" +HOMEPAGE = "https://github.com/xilinx/qemu/" + +# This qemu fork is NOT compatible with running on a 32-bit system +# See: https://github.com/Xilinx/qemu/issues/35 +COMPATIBLE_HOST:arm = "null" + +# x86_64 is needed to build nativesdks +QEMU_TARGETS = "aarch64 arm microblaze microblazeel x86_64" + +LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \ + file://COPYING.LIB;endline=24;md5=8c5efda6cf1e1b03dcfd0e6c0d271c7f" + +FILESEXTRAPATHS:prepend := "${THISDIR}/qemu-xilinx-8.1.0:" + +PV = "${XILINX_QEMU_VERSION}-xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" +REPO ?= "gitsm://github.com/Xilinx/qemu.git;protocol=https" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG};name=qemu" +SRCREV_qemu = "${SRCREV}" +SRCREV_FORMAT = "qemu" + +FILESEXTRAPATHS:append := ":${THISDIR}/qemu-8.1" + +# Deal with the broken --disable-download +SRCREV_berkeley-softfloat-3 = "b64af41c3276f97f0e181920400ee056b9c88037" +SRCREV_berkeley-testfloat-3 = "40619cbb3bf32872df8c53cc457039229428a263" +SRCREV_dtc = "b6910bec11614980a21e46fbccc35934b671bd81" +SRCREV_keycodemapdb = "f5772a62ec52591ff6870b7e8ef32482371f22c6" +SRCREV_libvfio-user = "0b28d205572c80b568a1003db2c8f37ca333e4d7" +SRCREV_slirp = "26be815b86e8d49add8c9a8b320239b9594ff03d" +SRC_URI += "\ + git://gitlab.com/qemu-project/berkeley-softfloat-3;protocol=https;nobranch=1;destsuffix=git/subprojects/berkeley-softfloat-3;name=berkeley-softfloat-3 \ + git://gitlab.com/qemu-project/berkeley-testfloat-3;protocol=https;nobranch=1;destsuffix=git/subprojects/berkeley-testfloat-3;name=berkeley-testfloat-3 \ + git://gitlab.com/qemu-project/dtc.git;protocol=https;nobranch=1;destsuffix=git/subprojects/dtc;name=dtc \ + git://gitlab.com/qemu-project/keycodemapdb.git;protocol=https;nobranch=1;destsuffix=git/subprojects/keycodemapdb;name=keycodemapdb \ + git://gitlab.com/qemu-project/libvfio-user.git;protocol=https;nobranch=1;destsuffix=git/subprojects/libvfio-user;name=libvfio-user \ + git://gitlab.freedesktop.org/slirp/libslirp;protocol=https;nobranch=1;destsuffix=git/subprojects/slirp;name=slirp \ +" + +# Configure meson for disable-download +do_configure:prepend() { + cp ${S}/subprojects/packagefiles/berkeley-softfloat-3/* ${S}/subprojects/berkeley-softfloat-3/. + cp ${S}/subprojects/packagefiles/berkeley-testfloat-3/* ${S}/subprojects/berkeley-testfloat-3/. +} + + +# Keep this in sync with the main YP QEMU integration +SRC_URI += "\ + file://powerpc_rom.bin \ + file://run-ptest \ + file://0001-qemu-Add-addition-environment-space-to-boot-loader-q.patch \ + file://0003-apic-fixup-fallthrough-to-PIC.patch \ + file://0004-configure-Add-pkg-config-handling-for-libgcrypt.patch \ + file://0005-qemu-Do-not-include-file-if-not-exists.patch \ + file://0006-qemu-Add-some-user-space-mmap-tweaks-to-address-musl.patch \ + file://0007-qemu-Determinism-fixes.patch \ + file://0008-tests-meson.build-use-relative-path-to-refer-to-file.patch \ + file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ + file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \ + file://0002-linux-user-Replace-use-of-lfs64-related-functions-an.patch \ + file://fixedmeson.patch \ + file://qemu-guest-agent.init \ + file://qemu-guest-agent.udev \ + " + +# Patch doesn't apply to 8.1.0 +# file://fixmips.patch + +S = "${WORKDIR}/git" + +# Based on qemu settings in poky/meta/conf/distro/include/no-static-libs.inc +DISABLE_STATIC:pn-qemu-xilinx = "" +DISABLE_STATIC:pn-qemu-xilinx-native = "" +DISABLE_STATIC:pn-nativesdk-qemu-xilinx = "" +DISABLE_STATIC:pn-qemu-xilinx-system-native = "" + diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native-8.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native-8.1.inc new file mode 100644 index 00000000..ad00453f --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native-8.1.inc @@ -0,0 +1,2 @@ +require qemu-native-8.1.inc +require qemu-xilinx-8.1.inc diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native.inc deleted file mode 100644 index b22ab432..00000000 --- a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native.inc +++ /dev/null @@ -1,11 +0,0 @@ -require recipes-devtools/qemu/qemu-native.inc -require qemu-xilinx.inc - -DEPENDS = "glib-2.0-native zlib-native ninja-native meson-native" - -SRC_URI:remove = "file://0012-fix-libcap-header-issue-on-some-distro.patch" -SRC_URI:remove = "file://0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch" - -do_install:append(){ - rm -rf ${D}${datadir}/icons -} diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2024.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2024.1.bb index 77a32ff6..ffcf064b 100644 --- a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2024.1.bb +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2024.1.bb @@ -1,9 +1,11 @@ +BPN = "qemu-xilinx" + +DEPENDS = "glib-2.0-native zlib-native ninja-native meson-native" + require qemu-xilinx-2024.1.inc -require qemu-xilinx-native-7.1.inc +require qemu-xilinx-native-8.1.inc require qemu-native-alt.inc -BPN = "qemu-xilinx" - -EXTRA_OECONF:append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-blobs --disable-guest-agent" +EXTRA_OECONF:append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-install-blobs --disable-guest-agent" PACKAGECONFIG ??= "pie" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2024.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2024.1.bb index 354c8dc3..eafa2c36 100644 --- a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2024.1.bb +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2024.1.bb @@ -1,23 +1,34 @@ +BPN = "qemu-xilinx" + +inherit python3-dir + require qemu-system-native-alt.inc require qemu-xilinx-2024.1.inc -require qemu-xilinx-native-7.1.inc +require qemu-xilinx-native-8.1.inc -PROVIDES = "qemu-system-native" +# As some of the files installed by qemu-native and qemu-system-native +# are the same, we depend on qemu-native to get the full installation set +# and avoid file clashes +DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native meson-native ninja-native" + +DEPENDS += "qemu-xilinx-multiarch-helper-native" EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}" -PACKAGECONFIG ??= "fdt alsa kvm gcrypt pie slirp" +PACKAGECONFIG ??= "fdt alsa kvm pie slirp png gcrypt \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ +" +# Handle distros such as CentOS 5 32-bit that do not have kvm support PACKAGECONFIG:remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}" -DEPENDS += "pixman-native qemu-xilinx-native bison-native ninja-native meson-native" -DEPENDS += "qemu-xilinx-multiarch-helper-native" - do_install:append() { + install -Dm 0755 ${WORKDIR}/powerpc_rom.bin ${D}${datadir}/qemu-xilinx + # The following is also installed by qemu-native - rm -f ${D}${datadir}/qemu/trace-events-all - rm -rf ${D}${datadir}/qemu/keymaps - rm -rf ${D}${datadir}/icons + rm -f ${D}${datadir}/qemu-xilinx/trace-events-all + rm -rf ${D}${datadir}/qemu-xilinx/keymaps + rm -rf ${D}${datadir}/icons/ rm -rf ${D}${includedir}/qemu-plugin.h # Install qmp.py to be used with testimage diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2024.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2024.1.bb index 7d7bea80..cff60bd6 100644 --- a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2024.1.bb +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2024.1.bb @@ -1,6 +1,8 @@ +BBCLASSEXTEND = "nativesdk" + require qemu-xilinx-2024.1.inc -require recipes-devtools/qemu/qemu.inc -require qemu-xilinx-7.1.inc +require qemu-8.1.inc +require qemu-xilinx-8.1.inc require qemu-alt.inc # Links to libmali-xlnx, so it becomes MACHINE_ARCH specific @@ -10,17 +12,27 @@ MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtua PACKAGE_ARCH[vardepsexclude] = "MALI_PACKAGE_ARCH" PACKAGE_ARCH:class-target = "${@bb.utils.contains_any('DEPENDS', 'libepoxy virglrenderer', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}" -BBCLASSEXTEND = "nativesdk" -RDEPENDS:${PN}:class-target += "bash" +DEPENDS = "glib-2.0 zlib pixman bison-native ninja-native meson-native" + +DEPENDS:append:libc-musl = " libucontext" -PROVIDES:class-nativesdk = "nativesdk-qemu" -RPROVIDES:${PN}:class-nativesdk = "nativesdk-qemu" +CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" + +RDEPENDS:${PN}-common:class-target += "bash" EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}" -EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" +EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" -do_install:append:class-nativesdk() { - ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} -} +PACKAGECONFIG ??= " \ + fdt sdl kvm pie slirp gcrypt \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio xen', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \ +" +PACKAGECONFIG:class-nativesdk ??= "fdt sdl kvm pie slirp gcrypt \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ +" +# ppc32 hosts are no longer supported in qemu +COMPATIBLE_HOST:powerpc = "null" -- cgit v1.2.3-54-g00ecf From 3d6752472f5abf6060b5c9db37559b2c5be8977d Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 18 Jan 2024 12:36:25 -0700 Subject: qemu: Add target qemu 8.1.2 Backport the QEMU 8.1.x integration from current poky (commit 4bb222e0d71a4cb159b8a4f1a90b65b1af32ac10). Split the additional xen/tpm patches by version, disable Xen patches on the 8.1.2 version, not yet supported. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 1 + .../recipes-devtools/qemu/qemu_8.1.2.bb | 29 ++++++++++++++++++++++ .../recipes-devtools/qemu/qemu_%.bbappend | 5 ---- .../recipes-devtools/qemu/qemu_7.1%.bbappend | 5 ++++ .../recipes-devtools/qemu/qemu_8.1%.bbappend | 5 ++++ 5 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 meta-xilinx-core/recipes-devtools/qemu/qemu_8.1.2.bb delete mode 100644 meta-xilinx-virtualization/recipes-devtools/qemu/qemu_%.bbappend create mode 100644 meta-xilinx-virtualization/recipes-devtools/qemu/qemu_7.1%.bbappend create mode 100644 meta-xilinx-virtualization/recipes-devtools/qemu/qemu_8.1%.bbappend (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 752eeb37..5f2693cb 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -49,6 +49,7 @@ BUILDCFG_VARS:append = " SOC_VARIANT XILINX_RELEASE_VERSION" XILINX_QEMU_VERSION[v2023.1] = "v7.1.0-xilinx-v2023.1%" XILINX_QEMU_VERSION[v2023.2] = "v7.1.0-xilinx-v2023.2%" XILINX_QEMU_VERSION[v2024.1] = "v8.1.0-xilinx-v2024.1%" +PREFERRED_VERSION_qemu ?= "${@ '7.1%' if not (d.getVar('XILINX_RELEASE_VERSION') or 'undefined').startswith('v2024') else '8.1%'}" PREFERRED_VERSION_qemu-xilinx ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-system-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu_8.1.2.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu_8.1.2.bb new file mode 100644 index 00000000..2f9305e1 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu_8.1.2.bb @@ -0,0 +1,29 @@ +BBCLASSEXTEND = "nativesdk" + +FILESEXTRAPATHS:append := ":${THISDIR}/qemu-8.1" + +require qemu-8.1.inc + +DEPENDS = "glib-2.0 zlib pixman bison-native ninja-native meson-native" + +DEPENDS:append:libc-musl = " libucontext" + +CFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_NO_X11=1', d)}" + +RDEPENDS:${PN}-common:class-target += "bash" + +EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" +EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" + +PACKAGECONFIG ??= " \ + fdt sdl kvm pie slirp \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio xen', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \ +" +PACKAGECONFIG:class-nativesdk ??= "fdt sdl kvm pie slirp \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer epoxy', '', d)} \ +" +# ppc32 hosts are no longer supported in qemu +COMPATIBLE_HOST:powerpc = "null" diff --git a/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_%.bbappend b/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_%.bbappend deleted file mode 100644 index 3e93710c..00000000 --- a/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_%.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -require qemu-tpm.inc -require qemu-xen.inc - -# We do not want QEMU, on the target to be configured with OpenGL -PACKAGECONFIG:remove:class-target:petalinux = "virglrenderer epoxy gtk+" diff --git a/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_7.1%.bbappend b/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_7.1%.bbappend new file mode 100644 index 00000000..3e93710c --- /dev/null +++ b/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_7.1%.bbappend @@ -0,0 +1,5 @@ +require qemu-tpm.inc +require qemu-xen.inc + +# We do not want QEMU, on the target to be configured with OpenGL +PACKAGECONFIG:remove:class-target:petalinux = "virglrenderer epoxy gtk+" diff --git a/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_8.1%.bbappend b/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_8.1%.bbappend new file mode 100644 index 00000000..b1e94b5a --- /dev/null +++ b/meta-xilinx-virtualization/recipes-devtools/qemu/qemu_8.1%.bbappend @@ -0,0 +1,5 @@ +require qemu-tpm.inc +#require qemu-xen.inc + +# We do not want QEMU, on the target to be configured with OpenGL +PACKAGECONFIG:remove:class-target:petalinux = "virglrenderer epoxy gtk+" -- cgit v1.2.3-54-g00ecf From d925a82f3631bd20648a91bc23d5746e457c9b8b Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 22 Jan 2024 16:16:51 -0700 Subject: meta-xilinx-core: virtualization_layer: qemu Rework the meta-virtualization qemu extensions implemented in the meta-xilinx-core layer. It was found that is a bug in the langdale meta-virtualization. Due to this, we need to use BBMASK to exclude the changes from that layer, and then repeat them, but only for qemu 7.1. qemu 8.1 work is taken from the current master version of meta-virtualization. Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 3 + .../qemu/qemu-xilinx-package-split-7.1.inc | 46 ++++++++++++++ .../qemu/qemu-xilinx-package-split-8.1.inc | 71 ++++++++++++++++++++++ .../qemu/qemu-xilinx-package-split.inc | 46 -------------- .../recipes-devtools/qemu/qemu-xilinx_%.bbappend | 1 - .../qemu/qemu-xilinx_2023%.bbappend | 1 + .../qemu/qemu-xilinx_2024%.bbappend | 1 + .../recipes-devtools/qemu/qemu_7.1%.bbappend | 1 + .../recipes-devtools/qemu/qemu_8.1%.bbappend | 1 + 9 files changed, 124 insertions(+), 47 deletions(-) create mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-7.1.inc create mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-8.1.inc delete mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split.inc delete mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_%.bbappend create mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2023%.bbappend create mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2024%.bbappend create mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_7.1%.bbappend create mode 100644 meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_8.1%.bbappend (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 5f2693cb..bbad1f76 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -46,6 +46,9 @@ XILINX_RELEASE_VERSION ??= "v2024.1" BUILDCFG_VARS:append = " SOC_VARIANT XILINX_RELEASE_VERSION" +# Workaround for a bbappend bug in meta-virtualization (fixed in scarthgap) +BBMASK += "/meta-virtualization/recipes-devtools/qemu/" + XILINX_QEMU_VERSION[v2023.1] = "v7.1.0-xilinx-v2023.1%" XILINX_QEMU_VERSION[v2023.2] = "v7.1.0-xilinx-v2023.2%" XILINX_QEMU_VERSION[v2024.1] = "v8.1.0-xilinx-v2024.1%" diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-7.1.inc b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-7.1.inc new file mode 100644 index 00000000..d07090bd --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-7.1.inc @@ -0,0 +1,46 @@ +PACKAGES:prepend:class-target = "${PN}-x86_64 \ + ${PN}-aarch64 \ + ${PN}-arm \ + ${PN}-i386 \ + ${PN}-system-i386 \ + ${PN}-microblaze \ + ${PN}-support \ + ${PN}-keymaps \ + ${PN}-firmware \ + " + +FILES:${PN}-x86_64:class-target = "${bindir}/qemu-system-x86_64 ${bindir}/qemu-x86_64" +RDEPENDS:${PN}-x86_64:append:class-target = " ${PN}" +INSANE_SKIP:${PN}-x86_64:class-target = "file-rdeps" + +FILES:${PN}-i386:class-target = "${bindir}/qemu-i386" +RDEPENDS:${PN}-i386:append:class-target = " ${PN}" +INSANE_SKIP:${PN}-i386:class-target = "file-rdeps" + +FILES:${PN}-system-i386:class-target = "${bindir}/qemu-system-i386" +RDEPENDS:${PN}-system-i386:append:class-target = " ${PN}" +INSANE_SKIP:${PN}-system-i386:class-target = "file-rdeps" + +FILES:${PN}-aarch64:class-target = "${bindir}/qemu-system-aarch64 ${bindir}/qemu-aarch64" +RDEPENDS:${PN}-aarch64:append:class-target = " ${PN}" +INSANE_SKIP:${PN}-aarch64:class-target = "file-rdeps" + +FILES:${PN}-arm:class-target = "${bindir}/qemu-system-arm ${bindir}/qemu-arm" +RDEPENDS:${PN}-arm:append:class-target = " ${PN}" +INSANE_SKIP:${PN}-arm:class-target = "file-rdeps" + +FILES:${PN}-microblaze:class-target = "${bindir}/qemu-system-microblaze* ${bindir}/qemu-microblaze*" +RDEPENDS:${PN}-microblaze:append:class-target = " ${PN}" +INSANE_SKIP:${PN}-arm:class-target = "file-rdeps" + +FILES:${PN}-support:class-target = "${bindir}/* ${libexecdir}/*" +RDEPENDS:${PN}-support:class-target = "${PN} bash" + +FILES:${PN}-firmware:class-target = "${datadir}/${PN}/*.bin ${datadir}/${PN}/*.rom ${datadir}/${PN}/*.img ${datadir}/${PN}/openbios* ${datadir}/${PN}/*.dtb ${datadir}/${PN}/u-boot*" +RDEPENDS:${PN}-firmware:class-target = "${PN}" +INSANE_SKIP:${PN}-firmware:class-target = "arch" + +FILES:${PN}-keymaps:class-target = "${datadir}/${PN}/keymaps/*" +RDEPENDS:${PN}-keymaps:class-target = "${PN}" + +PACKAGECONFIG:append:class-target = " virtfs" diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-8.1.inc b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-8.1.inc new file mode 100644 index 00000000..7671d84e --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split-8.1.inc @@ -0,0 +1,71 @@ +# we have our own package splitting for qemu, inhbit the oe-core +# split by overriding the split function +python split_qemu_packages () { + print( "meta-virtualization: vmsplit: inhibiting core qemu package split" ) +} + +PACKAGES:prepend:class-target = "${PN}-x86_64 \ + ${PN}-aarch64 \ + ${PN}-arm \ + ${PN}-i386 \ + ${PN}-system-i386 \ + ${PN}-microblaze \ + ${PN}-support \ + ${PN}-keymaps \ + ${PN}-firmware \ + " + +FILES:${PN}-x86_64:class-target = "${bindir}/qemu-system-x86_64 ${bindir}/qemu-x86_64" +RDEPENDS:${PN}-x86_64:append:class-target = " ${PN}" +RPROVIDES:${PN}-x86_64:append:class-target = " ${PN}-system-x86_64" +RPROVIDES:${PN}-x86_64:append:class-target = " ${PN}-user-x86_64" +RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-x86_64" +RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-x86_64" +INSANE_SKIP:${PN}-x86_64:class-target = "file-rdeps" + +FILES:${PN}-i386:class-target = "${bindir}/qemu-i386" +RDEPENDS:${PN}-i386:append:class-target = " ${PN}" +RPROVIDES:${PN}-i386:append:class-target = " ${PN}-user-i386" +RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-i386" +INSANE_SKIP:${PN}-i386:class-target = "file-rdeps" + +FILES:${PN}-system-i386:class-target = "${bindir}/qemu-system-i386" +RDEPENDS:${PN}-system-i386:append:class-target = " ${PN}" +RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-system-i386" +INSANE_SKIP:${PN}-system-i386:class-target = "file-rdeps" + +FILES:${PN}-aarch64:class-target = "${bindir}/qemu-system-aarch64 ${bindir}/qemu-aarch64" +RDEPENDS:${PN}-aarch64:append:class-target = " ${PN}" +RPROVIDES:${PN}-aarch64:append:class-target = " ${PN}-system-aarch64" +RPROVIDES:${PN}-aarch64:append:class-target = " ${PN}-user-aarch64" +RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-aarch64" +RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-aarch64" +INSANE_SKIP:${PN}-aarch64:class-target = "file-rdeps" + +FILES:${PN}-arm:class-target = "${bindir}/qemu-system-arm ${bindir}/qemu-arm" +RDEPENDS:${PN}-arm:append:class-target = " ${PN}" +RPROVIDES:${PN}-arm:append:class-target = " ${PN}-system-arm" +RPROVIDES:${PN}-arm:append:class-target = " ${PN}-user-arm" +RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-arm" +RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-arm" +INSANE_SKIP:${PN}-arm:class-target = "file-rdeps" + +FILES:${PN}-microblaze:class-target = "${bindir}/qemu-system-microblaze* ${bindir}/qemu-microblaze*" +RDEPENDS:${PN}-microblaze:append:class-target = " ${PN}" +RPROVIDES:${PN}-microblaze:append:class-target = " ${PN}-system-microblaze" +RPROVIDES:${PN}-microblaze:append:class-target = " ${PN}-user-microblaze" +RDEPENDS:${PN}-system-all:append:class-target = " ${PN}-microblaze" +RDEPENDS:${PN}-user-all:append:class-target = " ${PN}-microblaze" +INSANE_SKIP:${PN}-arm:class-target = "file-rdeps" + +FILES:${PN}-support:class-target = "${bindir}/* ${libexecdir}/*" +RDEPENDS:${PN}-support:class-target = "${PN} bash" + +FILES:${PN}-firmware:class-target = "${datadir}/${PN}/*.bin ${datadir}/${PN}/*.rom ${datadir}/${PN}/*.img ${datadir}/${PN}/openbios* ${datadir}/${PN}/*.dtb ${datadir}/${PN}/u-boot*" +RDEPENDS:${PN}-firmware:class-target = "${PN}" +INSANE_SKIP:${PN}-firmware:class-target = "arch" + +FILES:${PN}-keymaps:class-target = "${datadir}/${PN}/keymaps/*" +RDEPENDS:${PN}-keymaps:class-target = "${PN}" + +PACKAGECONFIG:append = " virtfs" diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split.inc b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split.inc deleted file mode 100644 index 2c73d931..00000000 --- a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx-package-split.inc +++ /dev/null @@ -1,46 +0,0 @@ -PACKAGES:prepend:class-target = "${PN}-x86_64 \ - ${PN}-aarch64 \ - ${PN}-arm \ - ${PN}-i386 \ - ${PN}-system-i386 \ - ${PN}-microblaze \ - ${PN}-support \ - ${PN}-keymaps \ - ${PN}-firmware \ - " - -FILES:${PN}-x86_64:class-target = "${bindir}/qemu-system-x86_64 ${bindir}/qemu-x86_64" -RDEPENDS:${PN}-x86_64:append:class-target = "${PN}" -INSANE_SKIP:${PN}-x86_64:class-target = "file-rdeps" - -FILES:${PN}-i386:class-target = "${bindir}/qemu-i386" -RDEPENDS:${PN}-i386:append:class-target = "${PN}" -INSANE_SKIP:${PN}-i386:class-target = "file-rdeps" - -FILES:${PN}-system-i386:class-target = "${bindir}/qemu-system-i386" -RDEPENDS:${PN}-system-i386:append:class-target = "${PN}" -INSANE_SKIP:${PN}-system-i386:class-target = "file-rdeps" - -FILES:${PN}-aarch64:class-target = "${bindir}/qemu-system-aarch64 ${bindir}/qemu-aarch64" -RDEPENDS:${PN}-aarch64:append:class-target = "${PN}" -INSANE_SKIP:${PN}-aarch64:class-target = "file-rdeps" - -FILES:${PN}-arm:class-target = "${bindir}/qemu-system-arm ${bindir}/qemu-arm" -RDEPENDS:${PN}-arm:append:class-target = "${PN}" -INSANE_SKIP:${PN}-arm:class-target = "file-rdeps" - -FILES:${PN}-microblaze:class-target = "${bindir}/qemu-system-microblaze* ${bindir}/qemu-microblaze*" -RDEPENDS:${PN}-microblaze:append:class-target = "${PN}" -INSANE_SKIP:${PN}-arm:class-target = "file-rdeps" - -FILES:${PN}-support:class-target = "${bindir}/* ${libexecdir}/*" -RDEPENDS:${PN}-support:class-target = "${PN} bash" - -FILES:${PN}-firmware:class-target = "${datadir}/${PN}/*.bin ${datadir}/${PN}/*.rom ${datadir}/${PN}/*.img ${datadir}/${PN}/openbios* ${datadir}/${PN}/*.dtb ${datadir}/${PN}/u-boot*" -RDEPENDS:${PN}-firmware:class-target = "${PN}" -INSANE_SKIP:${PN}-firmware:class-target = "arch" - -FILES:${PN}-keymaps:class-target = "${datadir}/${PN}/keymaps/*" -RDEPENDS:${PN}-keymaps:class-target = "${PN}" - -PACKAGECONFIG:append:class-target = " virtfs" diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_%.bbappend b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_%.bbappend deleted file mode 100644 index 5cca9e1f..00000000 --- a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', '${BPN}-package-split.inc', '', d)} diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2023%.bbappend b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2023%.bbappend new file mode 100644 index 00000000..c9f04327 --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2023%.bbappend @@ -0,0 +1 @@ +require ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', 'qemu-xilinx-package-split-7.1.inc', '', d)} diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2024%.bbappend b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2024%.bbappend new file mode 100644 index 00000000..74aa15fb --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu-xilinx_2024%.bbappend @@ -0,0 +1 @@ +require ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', 'qemu-xilinx-package-split-8.1.inc', '', d)} diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_7.1%.bbappend b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_7.1%.bbappend new file mode 100644 index 00000000..c9f04327 --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_7.1%.bbappend @@ -0,0 +1 @@ +require ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', 'qemu-xilinx-package-split-7.1.inc', '', d)} diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_8.1%.bbappend b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_8.1%.bbappend new file mode 100644 index 00000000..74aa15fb --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-devtools/qemu/qemu_8.1%.bbappend @@ -0,0 +1 @@ +require ${@bb.utils.contains('DISTRO_FEATURES', 'vmsep', 'qemu-xilinx-package-split-8.1.inc', '', d)} -- cgit v1.2.3-54-g00ecf From 0507c497d0bfad094456e8d965133ff665090e5f Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Thu, 25 Jan 2024 12:21:15 -0700 Subject: linux-xlnx_2023.2: Update to more recent LTS version Signed-off-by: Mark Hatle (cherry picked from commit 79335c2a8a9a6cfef521a3bddb24865def036050) Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index bbad1f76..4c636a25 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -71,7 +71,7 @@ PREFERRED_VERSION_u-boot-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getV PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_LINUX_VERSION[v2023.1] = "6.1.5-xilinx-v2023.1%" -XILINX_LINUX_VERSION[v2023.2] = "6.1.30-xilinx-v2023.2%" +XILINX_LINUX_VERSION[v2023.2] = "6.1.60-xilinx-v2023.2%" XILINX_LINUX_VERSION[v2024.1] = "6.6.0-xilinx-v2024.1%" PREFERRED_VERSION_linux-xlnx ?= "${@d.getVarFlag('XILINX_LINUX_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb index 8842cb10..ec5827e6 100644 --- a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb +++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.2.bb @@ -1,7 +1,7 @@ -LINUX_VERSION = "6.1.30" +LINUX_VERSION = "6.1.60" YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=yocto-kmeta" KBRANCH="xlnx_rebase_v6.1_LTS" -SRCREV = "a19da02cf5b44420ec6afb1eef348c21d9e8cda2" +SRCREV = "9c55be2d8a90a240912c9b85814ac962c86b382b" SRCREV_meta = "185bcfcbe480c742247d9117011794c69682914f" KCONF_AUDIT_LEVEL="0" -- cgit v1.2.3-54-g00ecf From 9dd34bac632fdc6b438a6bed7d05d3361c18a50b Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 5 Feb 2024 13:29:26 -0600 Subject: machine/include/arm: Backport tune files from master Backport the tune files from poky master as of commit: dd4c941e9fe9e0f1b73a934d9ecd0d165ee85474 This adds support for cortex-r5 and cortexr-r52 hard float ABI, as well as cortex-a78. Signed-off-by: Mark Hatle --- .../conf/machine/include/arm/armv7r/tune-cortexr5hf.inc | 6 ++++++ .../conf/machine/include/arm/armv8-2a/tune-cortexa78.inc | 16 ++++++++++++++++ .../conf/machine/include/arm/armv8r/tune-cortexr52hf.inc | 9 +++++++++ 3 files changed, 31 insertions(+) create mode 100644 meta-xilinx-core/conf/machine/include/arm/armv7r/tune-cortexr5hf.inc create mode 100644 meta-xilinx-core/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc create mode 100644 meta-xilinx-core/conf/machine/include/arm/armv8r/tune-cortexr52hf.inc (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/machine/include/arm/armv7r/tune-cortexr5hf.inc b/meta-xilinx-core/conf/machine/include/arm/armv7r/tune-cortexr5hf.inc new file mode 100644 index 00000000..5679b989 --- /dev/null +++ b/meta-xilinx-core/conf/machine/include/arm/armv7r/tune-cortexr5hf.inc @@ -0,0 +1,6 @@ +include conf/machine/include/arm/armv7r/tune-cortexr5.inc + +AVAILTUNES += "cortexr5hf" +ARMPKGARCH:tune-cortexr5hf = "cortexr5" +TUNE_FEATURES:tune-cortexr5hf = "${TUNE_FEATURES:tune-cortexr5} callconvention-hard" +PACKAGE_EXTRA_ARCHS:tune-cortexr5hf = "cortexr5hf-vfpv3d16" diff --git a/meta-xilinx-core/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc b/meta-xilinx-core/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc new file mode 100644 index 00000000..8c85d98e --- /dev/null +++ b/meta-xilinx-core/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc @@ -0,0 +1,16 @@ +# +# Tune Settings for Cortex-A78 +# +DEFAULTTUNE ?= "cortexa78" + +TUNEVALID[cortexa78] = "Enable Cortex-A78 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78', ' -mcpu=cortex-a78', '', d)}" + +require conf/machine/include/arm/arch-armv8-2a.inc + +# Little Endian base configs +AVAILTUNES += "cortexa78" +ARMPKGARCH:tune-cortexa78 = "cortexa78" +TUNE_FEATURES:tune-cortexa78 = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa78" +PACKAGE_EXTRA_ARCHS:tune-cortexa78 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa78" +BASE_LIB:tune-cortexa78 = "lib64" diff --git a/meta-xilinx-core/conf/machine/include/arm/armv8r/tune-cortexr52hf.inc b/meta-xilinx-core/conf/machine/include/arm/armv8r/tune-cortexr52hf.inc new file mode 100644 index 00000000..42c6fb37 --- /dev/null +++ b/meta-xilinx-core/conf/machine/include/arm/armv8r/tune-cortexr52hf.inc @@ -0,0 +1,9 @@ +require conf/machine/include/arm/armv8r/tune-cortexr52.inc + +# simd is special, we don't pass this to the -mfpu, it's implied +TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '' or bb.utils.contains('TUNE_FEATURES', 'simd', True, False, d)) else '' }" + +AVAILTUNES += "cortexr52hf" +ARMPKGARCH:tune-cortexr52hf = "cortexr52" +TUNE_FEATURES:tune-cortexr52hf = "${TUNE_FEATURES:tune-cortexr52} callconvention-hard" +PACKAGE_EXTRA_ARCHS:tune-cortexr52hf = "cortexr52hf" -- cgit v1.2.3-54-g00ecf From 09b03cd17d3be7516387ef229692b00656e430fc Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Mon, 5 Feb 2024 13:32:18 -0600 Subject: soc-tune-include: Add cortex-r5{,2}hf and cortex-a78 support Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/machine/include/soc-tune-include.inc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/machine/include/soc-tune-include.inc b/meta-xilinx-core/conf/machine/include/soc-tune-include.inc index 8f650a10..25c68f53 100644 --- a/meta-xilinx-core/conf/machine/include/soc-tune-include.inc +++ b/meta-xilinx-core/conf/machine/include/soc-tune-include.inc @@ -2,12 +2,15 @@ DEFAULTTUNE ??= "armv8a" # Unfortunately various tunefiles don't include each other, so create # a list of things to require based on the DEFAULTTUNE setting. -TUNEFILE[cortexr5] = "conf/machine/include/arm/armv7r/tune-cortexr5.inc" -TUNEFILE[cortexr52] = "conf/machine/include/arm/armv8r/tune-cortexr52.inc" +TUNEFILE[cortexr5] = "conf/machine/include/arm/armv7r/tune-cortexr5hf.inc" +TUNEFILE[cortexr5hf] = "conf/machine/include/arm/armv7r/tune-cortexr5hf.inc" +TUNEFILE[cortexr52] = "conf/machine/include/arm/armv8r/tune-cortexr52hf.inc" +TUNEFILE[cortexr52hf] = "conf/machine/include/arm/armv8r/tune-cortexr52hf.inc" TUNEFILE[cortexa9thf-neon] = "conf/machine/include/arm/armv7a/tune-cortexa9.inc" TUNEFILE[armv8a] = "conf/machine/include/arm/arch-armv8a.inc" TUNEFILE[cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa53.inc" TUNEFILE[cortexa72] = "conf/machine/include/arm/armv8a/tune-cortexa72.inc" +TUNEFILE[cortexa78] = "conf/machine/include/arm/armv8-2a/tune-cortexa78.inc" TUNEFILE[cortexa72-cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc" TUNEFILE[cortexa72-cortexa53-crypto] = "conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc" TUNEFILE[microblaze] = "conf/machine/include/xilinx-microblaze.inc" -- cgit v1.2.3-54-g00ecf From 07624aa6021138b9d71e2fa310c23abbf08fa235 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 7 Feb 2024 14:35:22 -0600 Subject: linux-xlnx: Move 2024.1 to release branch and commit Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 4c636a25..80a52452 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -72,7 +72,7 @@ PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', XILINX_LINUX_VERSION[v2023.1] = "6.1.5-xilinx-v2023.1%" XILINX_LINUX_VERSION[v2023.2] = "6.1.60-xilinx-v2023.2%" -XILINX_LINUX_VERSION[v2024.1] = "6.6.0-xilinx-v2024.1%" +XILINX_LINUX_VERSION[v2024.1] = "6.6.10-xilinx-v2024.1%" PREFERRED_VERSION_linux-xlnx ?= "${@d.getVarFlag('XILINX_LINUX_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" # Add support to eSDK for gen-machine-conf if it exists diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb index e44a03ac..c7deaa28 100644 --- a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb +++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2024.1.bb @@ -1,7 +1,7 @@ -LINUX_VERSION = "6.6.0" +LINUX_VERSION = "6.6.10" YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.6;destsuffix=yocto-kmeta" -KBRANCH="master" -SRCREV = "6379f64fc25832d93ad171056c554ec34bfc4e25" +KBRANCH="xlnx_rebase_v6.6_LTS" +SRCREV = "102d9208feb0d1f07915f782c3cbc687390bb5a8" SRCREV_meta = "5d0809d0d939c7738cb6e5391126c73fd0e4e865" KCONF_AUDIT_LEVEL="0" -- cgit v1.2.3-54-g00ecf From 6b12ae9db654d79c710a7e1da2a0188c6b6a0bee Mon Sep 17 00:00:00 2001 From: John Toomey Date: Mon, 12 Feb 2024 16:44:00 +0000 Subject: u-boot: Update version to 2024.01 Switch to latest commit on release branch. Also remove unused microblaze header file for 2024.1 release. Signed-off-by: John Toomey Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/layer.conf | 2 +- .../u-boot/u-boot-v2024.01/microblaze-generic.cfg | 83 ++++++++++++++++++++++ .../recipes-bsp/u-boot/u-boot-xlnx-2023.2.inc | 6 ++ .../recipes-bsp/u-boot/u-boot-xlnx-2024.1.inc | 6 +- .../recipes-bsp/u-boot/u-boot-xlnx-microblaze.inc | 5 -- 5 files changed, 93 insertions(+), 9 deletions(-) create mode 100644 meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2024.01/microblaze-generic.cfg (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 80a52452..9bc6c4a1 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -65,7 +65,7 @@ PREFERRED_VERSION_arm-trusted-firmware ?= "${@d.getVarFlag('XILINX_ATF_VERSION', XILINX_UBOOT_VERSION[v2023.1] = "v2023.01-xilinx-v2023.1%" XILINX_UBOOT_VERSION[v2023.2] = "v2023.01-xilinx-v2023.2%" -XILINX_UBOOT_VERSION[v2024.1] = "v2023.01-xilinx-v2024.1%" +XILINX_UBOOT_VERSION[v2024.1] = "v2024.01-xilinx-v2024.1%" PREFERRED_VERSION_u-boot-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2024.01/microblaze-generic.cfg b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2024.01/microblaze-generic.cfg new file mode 100644 index 00000000..033fb197 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2024.01/microblaze-generic.cfg @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: MIT + +#........................................................................ +# WARNING +# +# This file is a u-boot configuration fragment, and not a full u-boot +# configuration file. The final u-boot configuration is made up of +# an assembly of processed fragments, each of which is designed to +# capture a specific part of the final configuration (e.g. platform +# configuration, feature configuration, and board specific hardware +# configuration). For more information on u-boot configuration, please +# refer the product documentation. +# +#....................................................................... + +# +# Definitions for Generic Microbalze machine. +# +CONFIG_BOOTDELAY=4 +CONFIG_TEXT_BASE=0x80100000 +CONFIG_SYS_PROMPT="U-Boot>" +CONFIG_SYS_CONFIG_NAME="microblaze-generic" +CONFIG_BOOT_SCRIPT_OFFSET=0x1F00000 +# CONFIG_SYS_NS16550 is not set +# CONFIG_SYS_FLASH_USE_BUFFER_WRITE is not set +# CONFIG_SYS_FLASH_CFI is not set +# CONFIG_FLASH_CFI_DRIVER is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_IMLS is not set +# CONFIG_MTD_NOR_FLASH is not set +# CONFIG_MTD_DEVICE is not set +# CONFIG_SYS_FLASH_PROTECTION is not set +# CONFIG_SPI_FLASH_SST is not set +# CONFIG_XILINX_EMACLITE is not set +# CONFIG_PHY_VITESSE is not set +# CONFIG_CMD_EXT2 is not set +# CONFIG_CMD_EXT4 is not set +# CONFIG_CMD_EXT4_WRITE is not set +# CONFIG_CMD_FAT is not set +# CONFIG_DOS_PARTITION is not set +# CONFIG_FAT_WRITE is not set +CONFIG_DM=y +CONFIG_SYS_MALLOC_F=y +CONFIG_XILINX_UARTLITE=y +CONFIG_XILINX_AXIEMAC=y +CONFIG_PHY_XILINX=y +CONFIG_PHY_TI=y +CONFIG_NET=y +CONFIG_PHY_GIGE=y +CONFIG_NETDEVICES=y +CONFIG_CMD_NET=y +CONFIG_DM_ETH=y +CONFIG_CMD_PING=y +CONFIG_CMD_DHCP=y +CONFIG_PHYLIB=y +CONFIG_CMD_TFTPPUT=y +CONFIG_CMD_NFS=y +CONFIG_CMD_MII=y +CONFIG_PHY_MARVELL=y +CONFIG_PHY_REALTEK=y +CONFIG_PHY_NATSEMI=y +CONFIG_XILINX_SPI=y +CONFIG_CMD_SPI=y +CONFIG_CMD_SF=y +CONFIG_SPI_FLASH=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_DM_SPI_FLASH=y +CONFIG_DM_SPI=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI=y +CONFIG_SPI_FLASH_ISSI=y +# CONFIG_BOOTARGS is not set +# CONFIG_USE_BOOTARGS is not set +# CONFIG_SPL is not set +# CONFIG_I2C_EEPROM is not set +# CONFIG_CMD_EEPROM is not set +# CONFIG_SYS_I2C_EEPROM_ADDR is not set +# CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW is not set +CONFIG_DCACHE=y +CONFIG_ICACHE=y diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.2.inc b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.2.inc index 0cfbd846..cab39159 100644 --- a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.2.inc +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.2.inc @@ -15,3 +15,9 @@ HAS_PLATFORM_INIT ?= " \ " DEPENDS += "bc-native dtc-native python3-setuptools-native gnutls-native" + +SRC_URI:append:microblaze = "file://microblaze-generic-top.h" + +do_configure:prepend:microblaze () { + install ${WORKDIR}/microblaze-generic-top.h ${S}/include/configs/ +} diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2024.1.inc b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2024.1.inc index ba814bd4..649b2424 100644 --- a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2024.1.inc +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2024.1.inc @@ -1,8 +1,8 @@ -UBOOT_VERSION = "v2023.01" +UBOOT_VERSION = "v2024.01" -UBRANCH = "master" +UBRANCH = "xlnx_rebase_v2024.01" -SRCREV = "695bea48fc8367567058782fe3b936d8aa6bebd8" +SRCREV = "88e4ca57b376e1a3a4c2881d8e6dcb41c047aa22" LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://README;beginline=1;endline=4;md5=744e7e3bb0c94b4b9f6b3db3bf893897" diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-microblaze.inc b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-microblaze.inc index 2ef7b9cf..1f6781b6 100644 --- a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-microblaze.inc +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-microblaze.inc @@ -1,11 +1,6 @@ SRC_URI += " \ file://microblaze-generic.cfg \ - file://microblaze-generic-top.h \ " -do_configure:prepend () { - install ${WORKDIR}/microblaze-generic-top.h ${S}/include/configs/ -} - # Disable buildpaths QA check warnings for u-boot-xlnx.elf. INSANE_SKIP:${PN}-elf += "buildpaths" -- cgit v1.2.3-54-g00ecf From a5efdc57797ead8bc9d9ae58b6d30d67b834a810 Mon Sep 17 00:00:00 2001 From: Varalaxmi Bingi Date: Thu, 14 Mar 2024 23:26:41 +0530 Subject: machine-xilinx-default.inc: use u-boot.elf for MB and Zynq For microblaze u-boot not booting on qemu or hw after moving to u-boot 2024.1 rebase branch. Reason explained below: u-boot will provide output files as u-boot.elf, u-boot, u-boot.bin, u-boot-nodtb.bin etc.. For Microblaze and Zynq we are using u-boot output file For aarch64 family we are using u-boot.elf u-boot: which has no relocation inside, then we apply relocation (rela section) over binary. and then copying as u-boot.elf and using it. u-boot.elf: It will relocation inside it and without debug symbols. After recent relocation changes in u-boot we should use u-boot.elf only for all platforms. Signed-off-by: Varalaxmi Bingi Signed-off-by: Mark Hatle --- meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'meta-xilinx-core/conf') diff --git a/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc b/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc index e99b1f0e..c732523c 100644 --- a/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc +++ b/meta-xilinx-core/conf/machine/include/machine-xilinx-default.inc @@ -28,8 +28,7 @@ do_image_wic[depends] += "${@' '.join('%s:do_deploy' % r for r in (d.getVar('WIC UBOOT_SUFFIX ?= "bin" UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" -UBOOT_ELF ?= "u-boot" -UBOOT_ELF:aarch64 ?= "u-boot.elf" +UBOOT_ELF ?= "u-boot.elf" # libmali is selected by DISTRO_FEATURE of libmali & MACHINE_FEATURES of mali400 # lima is selected by DISTRO_FEATURE != libmali & MACHINE_FEATURES of mali400 -- cgit v1.2.3-54-g00ecf