patches-arm: add patches based on stx.9.0 for virt 30/13830/1
authorJackie Huang <jackie.huang@windriver.com>
Mon, 9 Dec 2024 04:43:52 +0000 (12:43 +0800)
committerJackie Huang <jackie.huang@windriver.com>
Mon, 9 Dec 2024 04:45:36 +0000 (12:45 +0800)
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 <jackie.huang@windriver.com>
Change-Id: I238d1348898d49babaffd9b44ecd7a8454efc2dd

scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0001-qemu-add-support-for-arm64.patch [new file with mode: 0644]
scripts/build_inf_debian/meta-patches-arm/stx90/cgcs-root/stx/virt/0002-Add-packages-list-for-arm64.patch [new file with mode: 0644]

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 (file)
index 0000000..4d30a6c
--- /dev/null
@@ -0,0 +1,282 @@
+From 00b23156c45c519bc12841dc8773229295af1832 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+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 <jackie.huang@windriver.com>
+---
+ .../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 <jackie.huang@windriver.com>
++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 <jackie.huang@windriver.com>
++---
++ 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 <jackie.huang@windriver.com>
++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 <jackie.huang@windriver.com>
++---
++ 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 <jackie.huang@windriver.com>
++Date: Mon, 22 Jan 2024 00:13:08 -0500
++Subject: [PATCH] ARM: add package qemu-system-arm
++
++Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
++---
++ 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 (file)
index 0000000..97b96f2
--- /dev/null
@@ -0,0 +1,45 @@
+From c108e907edb5f773ff139689f57203d0fe764eaa Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+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 <jackie.huang@windriver.com>
+---
+ 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
+