From 7a219b3f0399426a36c441fefe2d168ec48f0618 Mon Sep 17 00:00:00 2001 From: Zvonko Kaiser Date: Tue, 11 Feb 2025 16:16:16 +0000 Subject: [PATCH 1/4] gpu: Add GPU+SNP QEMU build Since the CPU SNP is upstreamed and available via our default QEMU target we're repurposing the SNP-experimental for the GPU+SNP enablement. First step is to update the version we're basing it off. Signed-off-by: Zvonko Kaiser --- versions.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/versions.yaml b/versions.yaml index 20c647fcad..9a58b8bbe0 100644 --- a/versions.yaml +++ b/versions.yaml @@ -100,9 +100,9 @@ assets: .*/v?(\d\S+)\.tar\.gz qemu-snp-experimental: - description: "QEMU with SNP support" + description: "QEMU with GPU+SNP support" url: "https://github.com/confidential-containers/qemu.git" - tag: "amd-snp-202402240000" + tag: "gpu-snp-20250211" stratovirt: description: "StratoVirt is an lightweight opensource VMM" From e4679055c6fd5acfbd7d9f77e4c23e68464955e8 Mon Sep 17 00:00:00 2001 From: Zvonko Kaiser Date: Tue, 11 Feb 2025 16:36:21 +0000 Subject: [PATCH 2/4] gpu: qemu-snp-experimental no patches The branch has all the needed cherry-picks Signed-off-by: Zvonko Kaiser --- .../qemu/patches/tag_patches/gpu-snp-20250211/no_patches.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tools/packaging/qemu/patches/tag_patches/gpu-snp-20250211/no_patches.txt diff --git a/tools/packaging/qemu/patches/tag_patches/gpu-snp-20250211/no_patches.txt b/tools/packaging/qemu/patches/tag_patches/gpu-snp-20250211/no_patches.txt new file mode 100644 index 0000000000..e69de29bb2 From 7ded74c068d14df92ea7fd8dd2d0b60dbc6c0173 Mon Sep 17 00:00:00 2001 From: Zvonko Kaiser Date: Tue, 11 Feb 2025 17:18:27 +0000 Subject: [PATCH 3/4] gpu: Add version for QEMU+TDX+SNP SNP and TDX patches for GPU are not compatible hence we need an own build for TDX. Signed-off-by: Zvonko Kaiser --- versions.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/versions.yaml b/versions.yaml index 9a58b8bbe0..e0c755ad71 100644 --- a/versions.yaml +++ b/versions.yaml @@ -104,6 +104,11 @@ assets: url: "https://github.com/confidential-containers/qemu.git" tag: "gpu-snp-20250211" + qemu-tdx-experimental: + description: "QEMU with GPU+TDX support" + url: "https://github.com/confidential-containers/qemu.git" + tag: "gpu-tdx-20250211" + stratovirt: description: "StratoVirt is an lightweight opensource VMM" url: "https://github.com/openeuler-mirror/stratovirt" From 2d8531cd20152605cc461ed8a09e435f6448b814 Mon Sep 17 00:00:00 2001 From: Zvonko Kaiser Date: Tue, 11 Feb 2025 17:28:59 +0000 Subject: [PATCH 4/4] gpu: Add TDX experimental target for GPUs We have custom branches on coco/qemu to support GPUs in TDX and SNP add experimental target. Signed-off-by: Zvonko Kaiser --- tools/packaging/kata-deploy/local-build/Makefile | 4 ++++ .../local-build/kata-deploy-binaries.sh | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/tools/packaging/kata-deploy/local-build/Makefile b/tools/packaging/kata-deploy/local-build/Makefile index 45597488c2..d6aa51bd07 100644 --- a/tools/packaging/kata-deploy/local-build/Makefile +++ b/tools/packaging/kata-deploy/local-build/Makefile @@ -29,6 +29,7 @@ BASE_TARBALLS = serial-targets \ ovmf-sev-tarball \ ovmf-tarball \ qemu-snp-experimental-tarball \ + qemu-tdx-experimental-tarball \ qemu-tarball \ stratovirt-tarball \ shim-v2-tarball \ @@ -146,6 +147,9 @@ ovmf-tarball: qemu-snp-experimental-tarball: ${MAKE} $@-build +qemu-tdx-experimental-tarball: + ${MAKE} $@-build + qemu-tarball: ${MAKE} $@-build diff --git a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh index 0cafce3f70..232b422182 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -116,6 +116,7 @@ options: ovmf-sev qemu qemu-snp-experimental + qemu-tdx-experimental stratovirt rootfs-image rootfs-image-confidential @@ -706,6 +707,17 @@ install_qemu_snp_experimental() { "${qemu_experimental_builder}" } +install_qemu_tdx_experimental() { + export qemu_suffix="tdx-experimental" + export qemu_tarball_name="kata-static-qemu-${qemu_suffix}.tar.gz" + + install_qemu_helper \ + "assets.hypervisor.qemu-${qemu_suffix}.url" \ + "assets.hypervisor.qemu-${qemu_suffix}.tag" \ + "qemu-${qemu_suffix}" \ + "${qemu_experimental_builder}" +} + # Install static firecracker asset install_firecracker() { local firecracker_version=$(get_from_kata_deps ".assets.hypervisor.firecracker.version") @@ -1132,6 +1144,7 @@ handle_build() { install_ovmf_sev install_qemu install_qemu_snp_experimental + install_qemu_tdx_experimental install_stratovirt install_runk install_shimv2 @@ -1187,6 +1200,8 @@ handle_build() { qemu-snp-experimental) install_qemu_snp_experimental ;; + qemu-tdx-experimental) install_qemu_tdx_experimental ;; + stratovirt) install_stratovirt ;; rootfs-image) install_image ;;