aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml2
-rw-r--r--.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml28
-rw-r--r--docs/system/gdb.rst22
-rw-r--r--hw/arm/Kconfig1
-rw-r--r--hw/usb/Kconfig1
-rw-r--r--scripts/ci/setup/build-environment.yml111
-rw-r--r--scripts/ci/setup/gitlab-runner.yml1
-rw-r--r--tests/avocado/replay_kernel.py6
-rw-r--r--tests/docker/dockerfiles/debian-xtensa-cross.docker2
9 files changed, 131 insertions, 43 deletions
diff --git a/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml b/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml
index 50e5646a..b8a0d751 100644
--- a/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml
+++ b/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml
@@ -1,6 +1,6 @@
# All ubuntu-22.04 jobs should run successfully in an environment
# setup by the scripts/ci/setup/qemu/build-environment.yml task
-# "Install basic packages to build QEMU on Ubuntu 20.04"
+# "Install basic packages to build QEMU on Ubuntu 22.04"
ubuntu-22.04-aarch32-all:
extends: .custom_runner_template
diff --git a/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml b/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml
index 13e14a0..374b095 100644
--- a/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml
+++ b/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml
@@ -1,6 +1,6 @@
-# All ubuntu-20.04 jobs should run successfully in an environment
+# All ubuntu-22.04 jobs should run successfully in an environment
# setup by the scripts/ci/setup/qemu/build-environment.yml task
-# "Install basic packages to build QEMU on Ubuntu 20.04"
+# "Install basic packages to build QEMU on Ubuntu 22.04"
ubuntu-22.04-aarch64-all-linux-static:
extends: .custom_runner_template
@@ -45,6 +45,28 @@ ubuntu-22.04-aarch64-all:
- make --output-sync -j`nproc --ignore=40`
- make --output-sync -j`nproc --ignore=40` check
+ubuntu-22.04-aarch64-without-defaults:
+ extends: .custom_runner_template
+ needs: []
+ stage: build
+ tags:
+ - ubuntu_22.04
+ - aarch64
+ rules:
+ - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH =~ /^staging/'
+ when: manual
+ allow_failure: true
+ - if: "$AARCH64_RUNNER_AVAILABLE"
+ when: manual
+ allow_failure: true
+ script:
+ - mkdir build
+ - cd build
+ - ../configure --disable-user --without-default-devices --without-default-features
+ || { cat config.log meson-logs/meson-log.txt; exit 1; }
+ - make --output-sync -j`nproc --ignore=40`
+ - make --output-sync -j`nproc --ignore=40` check
+
ubuntu-22.04-aarch64-alldbg:
extends: .custom_runner_template
needs: []
@@ -123,7 +145,7 @@ ubuntu-22.04-aarch64-notcg:
script:
- mkdir build
- cd build
- - ../configure --disable-tcg
+ - ../configure --disable-tcg --with-devices-aarch64=minimal
|| { cat config.log meson-logs/meson-log.txt; exit 1; }
- make --output-sync -j`nproc --ignore=40`
- make --output-sync -j`nproc --ignore=40` check
diff --git a/docs/system/gdb.rst b/docs/system/gdb.rst
index 453eb73..7d3718d 100644
--- a/docs/system/gdb.rst
+++ b/docs/system/gdb.rst
@@ -46,6 +46,28 @@ Here are some useful tips in order to use gdb on system code:
3. Use ``set architecture i8086`` to dump 16 bit code. Then use
``x/10i $cs*16+$eip`` to dump the code at the PC position.
+Breakpoint and Watchpoint support
+=================================
+
+While GDB can always fall back to inserting breakpoints into memory
+(if writable) other features are very much dependent on support of the
+accelerator. For TCG system emulation we advertise an infinite number
+of hardware assisted breakpoints and watchpoints. For other
+accelerators it will depend on if support has been added (see
+supports_guest_debug and related hooks in AccelOpsClass).
+
+As TCG cannot track all memory accesses in user-mode there is no
+support for watchpoints.
+
+Relocating code
+---------------
+
+On modern kernels confusion can be caused by code being relocated by
+features such as address space layout randomisation. To avoid
+confusion when debugging such things you either need to update gdb's
+view of where things are in memory or perhaps more trivially disable
+ASLR when booting the system.
+
Debugging multicore machines
============================
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
index 2d7c457..0f42c55 100644
--- a/hw/arm/Kconfig
+++ b/hw/arm/Kconfig
@@ -436,6 +436,7 @@ config XLNX_VERSAL
select OR_IRQ
select XLNX_BBRAM
select XLNX_EFUSE_VERSAL
+ select XLNX_USB_SUBSYS
config NPCM7XX
bool
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index ce4f433..0ec6def 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -136,5 +136,4 @@ config USB_DWC3
config XLNX_USB_SUBSYS
bool
- default y if XLNX_VERSAL
select USB_DWC3
diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml
index 78b1021..f344d1a 100644
--- a/scripts/ci/setup/build-environment.yml
+++ b/scripts/ci/setup/build-environment.yml
@@ -24,7 +24,6 @@
when:
- ansible_facts['distribution'] == 'Ubuntu'
- ansible_facts['architecture'] == 'aarch64'
- - ansible_facts['distribution_version'] == '20.04'
- name: Update apt cache / upgrade packages via apt
apt:
@@ -33,87 +32,131 @@
when:
- ansible_facts['distribution'] == 'Ubuntu'
- - name: Install basic packages to build QEMU on Ubuntu 20.04
+ # lcitool variables -f json ubuntu-2204 qemu | jq -r '.pkgs[]' | xargs -n 1 echo "-"
+ - name: Install basic packages to build QEMU on Ubuntu 22.04
package:
name:
+ - bash
+ - bc
+ - bison
+ - bsdextrautils
+ - bzip2
+ - ca-certificates
- ccache
+ - clang
+ - dbus
+ - debianutils
+ - diffutils
+ - exuberant-ctags
+ - findutils
+ - flex
+ - g++
- gcc
+ - gcovr
+ - genisoimage
- gettext
- git
- - glusterfs-common
+ - hostname
- libaio-dev
+ - libasan5
+ - libasound2-dev
- libattr1-dev
+ - libbpf-dev
- libbrlapi-dev
- libbz2-dev
+ - libc6-dev
- libcacard-dev
- - libcapstone-dev
- libcap-ng-dev
+ - libcapstone-dev
+ - libcmocka-dev
- libcurl4-gnutls-dev
+ - libdaxctl-dev
- libdrm-dev
- libepoxy-dev
- libfdt-dev
+ - libffi-dev
- libgbm-dev
+ - libgcrypt20-dev
+ - libglib2.0-dev
+ - libglusterfs-dev
+ - libgnutls28-dev
- libgtk-3-dev
+ - libibumad-dev
- libibverbs-dev
- libiscsi-dev
- libjemalloc-dev
- libjpeg-turbo8-dev
+ - libjson-c-dev
+ - liblttng-ust-dev
- liblzo2-dev
- - libncurses5-dev
- libncursesw5-dev
- libnfs-dev
- - libnss3-dev
- libnuma-dev
+ - libpam0g-dev
+ - libpcre2-dev
- libpixman-1-dev
- - librados-dev
+ - libpmem-dev
+ - libpng-dev
+ - libpulse-dev
- librbd-dev
- librdmacm-dev
- libsasl2-dev
- libsdl2-dev
+ - libsdl2-image-dev
- libseccomp-dev
+ - libslirp-dev
- libsnappy-dev
- libspice-protocol-dev
+ - libspice-server-dev
- libssh-dev
+ - libsystemd-dev
+ - libtasn1-6-dev
+ - libubsan1
+ - libudev-dev
+ - liburing-dev
- libusb-1.0-0-dev
- libusbredirhost-dev
- libvdeplug-dev
+ - libvirglrenderer-dev
- libvte-2.91-dev
+ - libxen-dev
+ - libxml2-dev
- libzstd-dev
+ - llvm
+ - locales
- make
- - python3-yaml
+ - meson
+ - multipath-tools
+ - ncat
+ - nettle-dev
+ - ninja-build
+ - openssh-client
+ - pkgconf
+ - python3
+ - python3-numpy
+ - python3-opencv
+ - python3-pillow
+ - python3-pip
- python3-sphinx
- python3-sphinx-rtd-theme
- - ninja-build
+ - python3-venv
+ - python3-yaml
+ - rpm2cpio
+ - sed
- sparse
+ - systemtap-sdt-dev
+ - tar
+ - tesseract-ocr
+ - tesseract-ocr-eng
+ - texinfo
- xfslibs-dev
+ - zlib1g-dev
state: present
when:
- ansible_facts['distribution'] == 'Ubuntu'
+ - ansible_facts['distribution_version'] == '22.04'
- - name: Install packages to build QEMU on Ubuntu 20.04 on non-s390x
- package:
- name:
- - libspice-server-dev
- - libxen-dev
- state: present
- when:
- - ansible_facts['distribution'] == 'Ubuntu'
- - ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64'
-
- - name: Install basic packages to build QEMU on Ubuntu 20.04
- package:
- name:
- # Originally from tests/docker/dockerfiles/ubuntu2004.docker
- - clang-10
- - genisoimage
- - liblttng-ust-dev
- - libslirp-dev
- - netcat-openbsd
- when:
- - ansible_facts['distribution'] == 'Ubuntu'
- - ansible_facts['distribution_version'] == '20.04'
-
- - name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 20.04
+ - name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 22.04
package:
name:
- binutils-arm-linux-gnueabihf
@@ -128,7 +171,7 @@
- zlib1g-dev:armhf
when:
- ansible_facts['distribution'] == 'Ubuntu'
- - ansible_facts['distribution_version'] == '20.04'
+ - ansible_facts['distribution_version'] == '22.04'
- ansible_facts['architecture'] == 'aarch64'
- name: Enable EPEL repo on EL8
diff --git a/scripts/ci/setup/gitlab-runner.yml b/scripts/ci/setup/gitlab-runner.yml
index 1a1b270..7bdafab 100644
--- a/scripts/ci/setup/gitlab-runner.yml
+++ b/scripts/ci/setup/gitlab-runner.yml
@@ -26,6 +26,7 @@
user:
user: gitlab-runner
group: gitlab-runner
+ groups: kvm
comment: GitLab Runner
home: /home/gitlab-runner
shell: /bin/bash
diff --git a/tests/avocado/replay_kernel.py b/tests/avocado/replay_kernel.py
index f13456e..fe1e901 100644
--- a/tests/avocado/replay_kernel.py
+++ b/tests/avocado/replay_kernel.py
@@ -493,7 +493,7 @@ class ReplayKernelSlow(ReplayKernelBase):
:avocado: tags=endian:little
:avocado: tags=cpu:I7200
"""
- kernel_url = ('https://mipsdistros.mips.com/LinuxDistro/nanomips/'
+ kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
'generic_nano32r6el_page4k.xz')
kernel_hash = '477456aafd2a0f1ddc9482727f20fe9575565dd6'
@@ -507,7 +507,7 @@ class ReplayKernelSlow(ReplayKernelBase):
:avocado: tags=endian:little
:avocado: tags=cpu:I7200
"""
- kernel_url = ('https://mipsdistros.mips.com/LinuxDistro/nanomips/'
+ kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
'generic_nano32r6el_page16k_up.xz')
kernel_hash = 'e882868f944c71c816e832e2303b7874d044a7bc'
@@ -521,7 +521,7 @@ class ReplayKernelSlow(ReplayKernelBase):
:avocado: tags=endian:little
:avocado: tags=cpu:I7200
"""
- kernel_url = ('https://mipsdistros.mips.com/LinuxDistro/nanomips/'
+ kernel_url = ('http://mipsdistros.mips.com/LinuxDistro/nanomips/'
'kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/'
'generic_nano32r6el_page64k_dbg.xz')
kernel_hash = '18d1c68f2e23429e266ca39ba5349ccd0aeb7180'
diff --git a/tests/docker/dockerfiles/debian-xtensa-cross.docker b/tests/docker/dockerfiles/debian-xtensa-cross.docker
index 082b50d..72c25d6 100644
--- a/tests/docker/dockerfiles/debian-xtensa-cross.docker
+++ b/tests/docker/dockerfiles/debian-xtensa-cross.docker
@@ -5,7 +5,7 @@
# using a prebuilt toolchains for Xtensa cores from:
# https://github.com/foss-xtensa/toolchain/releases
#
-FROM docker.io/library/debian:stretch-slim
+FROM docker.io/library/debian:11-slim
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \