From c9ca5606215e23efbd81a35418278c9fd78bfe27 Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Mon, 9 Dec 2024 12:43:52 +0800 Subject: [PATCH] patches-arm: add patches based on stx.9.0 for virt Add patches based on stx.9.0 for virt repo: https://opendev.org/starlingx/virt.git Issue-ID: INF-481 Signed-off-by: Jackie Huang Change-Id: I238d1348898d49babaffd9b44ecd7a8454efc2dd --- .../stx/virt/0001-qemu-add-support-for-arm64.patch | 282 +++++++++++++++++++++ .../virt/0002-Add-packages-list-for-arm64.patch | 45 ++++ 2 files changed, 327 insertions(+) create mode 100644 scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0001-qemu-add-support-for-arm64.patch create mode 100644 scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0002-Add-packages-list-for-arm64.patch diff --git a/scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0001-qemu-add-support-for-arm64.patch b/scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0001-qemu-add-support-for-arm64.patch new file mode 100644 index 00000000..4d30a6c9 --- /dev/null +++ b/scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0001-qemu-add-support-for-arm64.patch @@ -0,0 +1,282 @@ +From 00b23156c45c519bc12841dc8773229295af1832 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Tue, 23 Jan 2024 09:49:13 +0800 +Subject: [PATCH 1/2] qemu: add support for arm64 + +Add the following patches to support for building +for arm64: +- Remove dependency on gcc-alpha-linux-gnu, which + is not availabel for arm64. +- Remove unsupported BIOS targets. +- Add package qemu-system-arm + +Test Plan: +PASS: downloader -s -b on x86-64 host +PASS: downloader -s -b on arm64 host +PASS: build-pkgs on x86-64 host +PASS: build-image on x86-64 host +PASS: build-pkgs on arm64 host +PASS: build-image on arm64 host +PASS: Deploy AIO-SX on x86-64 target +PASS: Deploy AIO-SX on arm64 target + +Story: 2010739 +Task: 48533 + +Depends-On: https://review.opendev.org/c/starlingx/root/+/889686 + +Change-Id: I3b2a81923ee0f5c5bad1ddcde4a760fea257ff15 +Signed-off-by: Jackie Huang +--- + .../0008-ARM-remove-gcc-alpha-linux-gnu.patch | 31 +++++ + .../0009-ARM-remove-BIOS-targets.patch | 124 ++++++++++++++++++ + .../0010-ARM-add-pkg-qemu-system-arm.patch | 50 +++++++ + qemu/debian/deb_patches/series_arm64 | 10 ++ + 4 files changed, 215 insertions(+) + create mode 100644 qemu/debian/deb_patches/0008-ARM-remove-gcc-alpha-linux-gnu.patch + create mode 100644 qemu/debian/deb_patches/0009-ARM-remove-BIOS-targets.patch + create mode 100644 qemu/debian/deb_patches/0010-ARM-add-pkg-qemu-system-arm.patch + create mode 100644 qemu/debian/deb_patches/series_arm64 + +diff --git a/qemu/debian/deb_patches/0008-ARM-remove-gcc-alpha-linux-gnu.patch b/qemu/debian/deb_patches/0008-ARM-remove-gcc-alpha-linux-gnu.patch +new file mode 100644 +index 0000000..3edaa12 +--- /dev/null ++++ b/qemu/debian/deb_patches/0008-ARM-remove-gcc-alpha-linux-gnu.patch +@@ -0,0 +1,31 @@ ++From 10362ba97dbd9c861554c5ce7258b9dc26e7b95e Mon Sep 17 00:00:00 2001 ++From: Jackie Huang ++Date: Sun, 21 Jan 2024 21:30:44 -0500 ++Subject: [PATCH] ARM: remove dependency on gcc-alpha-linux-gnu ++ ++gcc-alpha-linux-gnu doesn't exist for arm64 according to: ++https://packages.debian.org/bullseye/gcc-alpha-linux-gnu ++ ++So remove it from the dependency for arm64 ++ ++Signed-off-by: Jackie Huang ++--- ++ debian/control | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++diff --git a/debian/control b/debian/control ++index 57154e2..ebc5b59 100644 ++--- a/debian/control +++++ b/debian/control ++@@ -125,7 +125,7 @@ Build-Depends-Indep: ++ device-tree-compiler, ++ # gcc-s390x-linux-gnu, ++ # qemu-palcode/palcode-clipper ++- gcc-alpha-linux-gnu, +++# gcc-alpha-linux-gnu, ++ # skiboot firmware, openbios ++ # gcc-powerpc64-linux-gnu, ++ # openbios ++-- ++2.30.2 ++ +diff --git a/qemu/debian/deb_patches/0009-ARM-remove-BIOS-targets.patch b/qemu/debian/deb_patches/0009-ARM-remove-BIOS-targets.patch +new file mode 100644 +index 0000000..c3651f0 +--- /dev/null ++++ b/qemu/debian/deb_patches/0009-ARM-remove-BIOS-targets.patch +@@ -0,0 +1,124 @@ ++From f1be5a19e4b8f46f1475f0dbaabba29cc4dd2424 Mon Sep 17 00:00:00 2001 ++From: Jackie Huang ++Date: Sun, 21 Jan 2024 23:27:14 -0500 ++Subject: [PATCH] ARM: remove unsupported BIOS target ++ ++The following BIOS related targets are for x86 only, ++- build-x86-optionrom ++- build-sgabios ++- build-qboot ++ ++Remove these targets for ARM. ++ ++Signed-off-by: Jackie Huang ++--- ++ debian/rules | 88 ++++++++++++++++++++++++++-------------------------- ++ 1 file changed, 44 insertions(+), 44 deletions(-) ++ ++diff --git a/debian/rules b/debian/rules ++index efa092c..01764cc 100755 ++--- a/debian/rules +++++ b/debian/rules ++@@ -405,55 +405,55 @@ endif ++ ++ ++ ### x86 optionrom ++-build-x86-optionrom: b/optionrom/built ++-b/optionrom/built: ++- mkdir -p b/optionrom ++- ${MAKE} -f ${CURDIR}/debian/optionrom.mak -C b/optionrom SRC_PATH="${CURDIR}" all ++- touch $@ ++-install-x86-optionrom: build-x86-optionrom | ${sysdataidir} ++- ${MAKE} -f ${CURDIR}/debian/optionrom.mak -C b/optionrom SRC_PATH="${CURDIR}" install DESTDIR="${CURDIR}/${sysdataidir}" ++-sysdata-components += x86-optionrom +++#build-x86-optionrom: b/optionrom/built +++#b/optionrom/built: +++# mkdir -p b/optionrom +++# ${MAKE} -f ${CURDIR}/debian/optionrom.mak -C b/optionrom SRC_PATH="${CURDIR}" all +++# touch $@ +++#install-x86-optionrom: build-x86-optionrom | ${sysdataidir} +++# ${MAKE} -f ${CURDIR}/debian/optionrom.mak -C b/optionrom SRC_PATH="${CURDIR}" install DESTDIR="${CURDIR}/${sysdataidir}" +++#sysdata-components += x86-optionrom ++ ++ ### sgabios. ++ # The Makefile is too complex and forces current date to be embedded to binary ++-build-sgabios: b/sgabios/sgabios.bin ++-b/sgabios/sgabios.bin: ++- mkdir -p b/sgabios ++- cc -c -o b/sgabios/sgabios.o roms/sgabios/sgabios.S -Wall -Os -m32 -nostdlib \ ++- -DBUILD_DATE="\"$$(LC_ALL=C date -u -r roms/sgabios/sgabios.S)\"" \ ++- -DBUILD_SHORT_DATE="\"$$(date -u +%D -r roms/sgabios/sgabios.S)\"" \ ++- -DBUILD_HOST=\"debian\" -DBUILD_USER=\"build\" ++- ld -T roms/sgabios/rom16.ld -nostdlib b/sgabios/sgabios.o -o b/sgabios/sgabios.elf ++- objcopy -O binary b/sgabios/sgabios.elf b/sgabios/sgabios.bin ++- cc -Wall -O2 -o b/sgabios/csum8 roms/sgabios/csum8.c ++- b/sgabios/csum8 b/sgabios/sgabios.bin ++-install-sgabios: b/sgabios/sgabios.bin ++- install -m 0644 $< ${sysdataidir}/sgabios.bin ++-sysdata-components += sgabios +++#build-sgabios: b/sgabios/sgabios.bin +++#b/sgabios/sgabios.bin: +++# mkdir -p b/sgabios +++# cc -c -o b/sgabios/sgabios.o roms/sgabios/sgabios.S -Wall -Os -m32 -nostdlib \ +++# -DBUILD_DATE="\"$$(LC_ALL=C date -u -r roms/sgabios/sgabios.S)\"" \ +++# -DBUILD_SHORT_DATE="\"$$(date -u +%D -r roms/sgabios/sgabios.S)\"" \ +++# -DBUILD_HOST=\"debian\" -DBUILD_USER=\"build\" +++# ld -T roms/sgabios/rom16.ld -nostdlib b/sgabios/sgabios.o -o b/sgabios/sgabios.elf +++# objcopy -O binary b/sgabios/sgabios.elf b/sgabios/sgabios.bin +++# cc -Wall -O2 -o b/sgabios/csum8 roms/sgabios/csum8.c +++# b/sgabios/csum8 b/sgabios/sgabios.bin +++#install-sgabios: b/sgabios/sgabios.bin +++# install -m 0644 $< ${sysdataidir}/sgabios.bin +++#sysdata-components += sgabios ++ ++ ### qboot, aka bios-microvm ++-build-qboot: b/qboot/bios.bin ++-b/qboot/bios.bin: | b ++- rm -rf b/qboot ++- meson setup roms/qboot b/qboot ++- ninja -C b/qboot ++-install-qboot: b/qboot/bios.bin ++- install -m 0644 $< ${sysdataidir}/qboot.rom ++- # 5.0 & 5.1 compat symlink, can go for bullseye final ++- ln -s qboot.rom ${sysdataidir}/bios-microvm.bin ++-sysdata-components += qboot ++- ++-### alpha firmware in roms/palcode-clipper ++-build-palcode-clipper: b/qemu-palcode/palcode-clipper ++-b/qemu-palcode/palcode-clipper: | b ++- cp -al roms/qemu-palcode b/ ++-#XXX #1019011 (remove OPT= alternative when fixed) ++- ${MAKE} -C b/qemu-palcode CROSS=${ALPHAEV67_CROSSPFX} -k || \ ++- ${MAKE} -C b/qemu-palcode CROSS=${ALPHAEV67_CROSSPFX} OPT=-O1 ++- ${ALPHAEV67_CROSSPFX}strip b/qemu-palcode/palcode-clipper ++-install-palcode-clipper: b/qemu-palcode/palcode-clipper ++- install -m 0644 $< ${sysdataidir}/palcode-clipper ++-sysdata-components += palcode-clipper +++#build-qboot: b/qboot/bios.bin +++#b/qboot/bios.bin: | b +++# rm -rf b/qboot +++# meson setup roms/qboot b/qboot +++# ninja -C b/qboot +++#install-qboot: b/qboot/bios.bin +++# install -m 0644 $< ${sysdataidir}/qboot.rom +++# # 5.0 & 5.1 compat symlink, can go for bullseye final +++# ln -s qboot.rom ${sysdataidir}/bios-microvm.bin +++#sysdata-components += qboot +++# +++#### alpha firmware in roms/palcode-clipper +++#build-palcode-clipper: b/qemu-palcode/palcode-clipper +++#b/qemu-palcode/palcode-clipper: | b +++# cp -al roms/qemu-palcode b/ +++##XXX #1019011 (remove OPT= alternative when fixed) +++# ${MAKE} -C b/qemu-palcode CROSS=${ALPHAEV67_CROSSPFX} -k || \ +++# ${MAKE} -C b/qemu-palcode CROSS=${ALPHAEV67_CROSSPFX} OPT=-O1 +++# ${ALPHAEV67_CROSSPFX}strip b/qemu-palcode/palcode-clipper +++#install-palcode-clipper: b/qemu-palcode/palcode-clipper +++# install -m 0644 $< ${sysdataidir}/palcode-clipper +++#sysdata-components += palcode-clipper ++ ++ ### vbootrom (npcm7xx) ++ build-vbootrom: b/vbootrom/.built ++-- ++2.30.2 ++ +diff --git a/qemu/debian/deb_patches/0010-ARM-add-pkg-qemu-system-arm.patch b/qemu/debian/deb_patches/0010-ARM-add-pkg-qemu-system-arm.patch +new file mode 100644 +index 0000000..faea655 +--- /dev/null ++++ b/qemu/debian/deb_patches/0010-ARM-add-pkg-qemu-system-arm.patch +@@ -0,0 +1,50 @@ ++From d1d25e6dcad633b5f785c4b4192d9d10fa232f21 Mon Sep 17 00:00:00 2001 ++From: Jackie Huang ++Date: Mon, 22 Jan 2024 00:13:08 -0500 ++Subject: [PATCH] ARM: add package qemu-system-arm ++ ++Signed-off-by: Jackie Huang ++--- ++ debian/control | 26 ++++++++++++++++++++++++++ ++ 1 file changed, 26 insertions(+) ++ ++diff --git a/debian/control b/debian/control ++index ebc5b59..ed0e714 100644 ++--- a/debian/control +++++ b/debian/control ++@@ -243,6 +243,32 @@ Description: QEMU full system emulation binaries (x86) ++ On x86 host hardware this package also enables KVM kernel virtual machine ++ usage on systems which supports it. ++ +++Package: qemu-system-arm +++Architecture: amd64 arm arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 +++Multi-Arch: foreign +++Depends: ${shlibs:Depends}, ${misc:Depends}, qemu-system-common (= ${binary:Version}), qemu-system-data (>> ${source:Upstream-Version}~), +++Recommends: qemu-system-gui (= ${binary:Version}), qemu-utils, +++# aarch64 arm uses bootroms +++ ipxe-qemu, +++ qemu-efi-aarch64, qemu-efi-arm, +++ qemu-block-extra (= ${binary:Version}), +++Suggests: samba, vde2, +++Provides: qemu-kvm [linux-arm64 linux-armhf linux-armel], ${sysprovides:arm} +++Breaks: qemu-kvm [linux-arm64 linux-armhf linux-armel] +++Replaces: qemu-kvm [linux-arm64 linux-armhf linux-armel] +++Description: QEMU full system emulation binaries (arm) +++ QEMU is a fast processor emulator: currently the package supports +++ ARM emulation. By using dynamic translation it achieves +++ reasonable speed while being easy to port on new host CPUs. +++ . +++ This package provides the full system emulation binaries to emulate +++ the following arm hardware: ${sysarch:arm}. +++ . +++ In system emulation mode QEMU emulates a full system, including a processor +++ and various peripherals. It enables easier testing and debugging of system +++ code. It can also be used to provide virtual hosting of several virtual +++ machines on a single server. +++ ++ Package: qemu-utils ++ Architecture: amd64 arm arm64 armel armhf hppa i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el riscv64 s390x sparc sparc64 x32 ++ Multi-Arch: foreign ++-- ++2.30.2 ++ +diff --git a/qemu/debian/deb_patches/series_arm64 b/qemu/debian/deb_patches/series_arm64 +new file mode 100644 +index 0000000..64200a0 +--- /dev/null ++++ b/qemu/debian/deb_patches/series_arm64 +@@ -0,0 +1,10 @@ ++0001-Customize-Debian-build-files-for-STX.patch ++0002-remove-xen-build-for-STX.patch ++0003-rules-remove-vof.patch ++0004-add-condition-for-dh_installdocs.patch ++0005-fix-for-dh_missing.patch ++0006-remove-dependency-on-qemu-system-ARCH.patch ++0007-workaround-for-libvirt-breaks.patch ++0008-ARM-remove-gcc-alpha-linux-gnu.patch ++0009-ARM-remove-BIOS-targets.patch ++0010-ARM-add-pkg-qemu-system-arm.patch +-- +2.30.2 + diff --git a/scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0002-Add-packages-list-for-arm64.patch b/scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0002-Add-packages-list-for-arm64.patch new file mode 100644 index 00000000..97b96f20 --- /dev/null +++ b/scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0002-Add-packages-list-for-arm64.patch @@ -0,0 +1,45 @@ +From c108e907edb5f773ff139689f57203d0fe764eaa Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 3 Aug 2023 08:53:10 +0800 +Subject: [PATCH 2/2] Add packages list for arm64 + +Add debian_iso_image_arm64.inc from debian_iso_image.inc +and replace qemu-system-x86 with qemu-system-arm. + +Story: 2010739 +Task: 48533 + +Depends-On: https://review.opendev.org/c/starlingx/root/+/889682 + +Change-Id: I59dd20f789de3147297cbffcba1cba287deeb411 +Signed-off-by: Jackie Huang +--- + debian_iso_image_arm64.inc | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + create mode 100644 debian_iso_image_arm64.inc + +diff --git a/debian_iso_image_arm64.inc b/debian_iso_image_arm64.inc +new file mode 100644 +index 0000000..85cc4e3 +--- /dev/null ++++ b/debian_iso_image_arm64.inc +@@ -0,0 +1,16 @@ ++#libvirt ++libvirt-clients ++libvirt-daemon ++libvirt-daemon-driver-lxc ++libvirt-daemon-driver-qemu ++libvirt-daemon-driver-storage-gluster ++libvirt-login-shell ++libvirt0 ++ ++#qemu ++qemu-block-extra ++qemu-guest-agent ++qemu-system-common ++qemu-system-data ++qemu-system-arm ++qemu-utils +-- +2.30.2 + -- 2.16.6