mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 18:05:37 +00:00
* Add s390x documentation for the "loadparm" machine parameter
* Spelling fixes in the s390x code * Update the macOS Cirrus-CI job to use aarch64 hosts * Increase timeout and fix comments in the acpi avacodo test -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmN1+DYRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbVg+A//Zt85xV8CEIVHRcvP3CPC35/goJ5O73Yj WwU2mck/1F0g06nsxrlAKpQuh82BJ+qRNpTnCY4n+owNO1oMgNZ7Em2vNlVjazvQ 7xsMpTvasoudYaQHES4Dz3l8j8E7Y1Xc3uks/Y5jBqXR5R+G2Pu2iSYDv8VGBjqt v4Cmjk48j9taVeYosYfHVOH17TRbAYDVqtppLtEWil8Zqjn7FKPDhexszaCIfql/ M7CmTEjB6myt4Gjrby7HHEII1rorhYI0A+0Y6qyYA8EuF69f1tuqpLtImTycXFVF 7Wkx+9QAvPQsO+LmpK5ZYvsLPkouPqgvvxERCzI1mZkDqRs5TF0rIyQPaJfL8G8x RF0CVkIHER8umCNBfCThIsNYMesfWgFhoNOTmJyoJRb3OagPlIhkhx8zRXZ4MwIM 6tfhYWQa3SGVNWs6dzYwfHGw67/YuU8RT/6q9pPsUgHMoPSFc0aYsyD5hTyY6hOX 49SrDnv4rwLGutFiI1VR8/W8DPVXpn714hOJbSk1RRfXj8ZboHtQPBRrrBchMK4+ kb/PgGLO2eOljR9mrCwpXNmJdeZ2KiOlhak2vV1rqjdOUsYc1u8k6tnwrJJjVu45 JoT4/tWgDrfFcY9srngYlk2NzaUrloTIWSltAc31nq+1RfZsiyuDAnKZFH2v1Y0j fTFq2CFm7rE= =eS4s -----END PGP SIGNATURE----- Merge tag 'pull-request-2022-11-17' of https://gitlab.com/thuth/qemu into staging * Add s390x documentation for the "loadparm" machine parameter * Spelling fixes in the s390x code * Update the macOS Cirrus-CI job to use aarch64 hosts * Increase timeout and fix comments in the acpi avacodo test # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmN1+DYRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbVg+A//Zt85xV8CEIVHRcvP3CPC35/goJ5O73Yj # WwU2mck/1F0g06nsxrlAKpQuh82BJ+qRNpTnCY4n+owNO1oMgNZ7Em2vNlVjazvQ # 7xsMpTvasoudYaQHES4Dz3l8j8E7Y1Xc3uks/Y5jBqXR5R+G2Pu2iSYDv8VGBjqt # v4Cmjk48j9taVeYosYfHVOH17TRbAYDVqtppLtEWil8Zqjn7FKPDhexszaCIfql/ # M7CmTEjB6myt4Gjrby7HHEII1rorhYI0A+0Y6qyYA8EuF69f1tuqpLtImTycXFVF # 7Wkx+9QAvPQsO+LmpK5ZYvsLPkouPqgvvxERCzI1mZkDqRs5TF0rIyQPaJfL8G8x # RF0CVkIHER8umCNBfCThIsNYMesfWgFhoNOTmJyoJRb3OagPlIhkhx8zRXZ4MwIM # 6tfhYWQa3SGVNWs6dzYwfHGw67/YuU8RT/6q9pPsUgHMoPSFc0aYsyD5hTyY6hOX # 49SrDnv4rwLGutFiI1VR8/W8DPVXpn714hOJbSk1RRfXj8ZboHtQPBRrrBchMK4+ # kb/PgGLO2eOljR9mrCwpXNmJdeZ2KiOlhak2vV1rqjdOUsYc1u8k6tnwrJJjVu45 # JoT4/tWgDrfFcY9srngYlk2NzaUrloTIWSltAc31nq+1RfZsiyuDAnKZFH2v1Y0j # fTFq2CFm7rE= # =eS4s # -----END PGP SIGNATURE----- # gpg: Signature made Thu 17 Nov 2022 04:00:38 EST # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2022-11-17' of https://gitlab.com/thuth/qemu: acpi/tests/avocado/bits: some misc fixes ci: replace x86_64 macos-11 with aarch64 macos-12 docs/system/s390x: Document the "loadparm" machine property s390x: Fix spelling errors Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
2be954aa59
|
@ -70,19 +70,19 @@ x64-freebsd-13-build:
|
|||
INSTALL_COMMAND: pkg install -y
|
||||
TEST_TARGETS: check
|
||||
|
||||
x64-macos-11-base-build:
|
||||
aarch64-macos-12-base-build:
|
||||
extends: .cirrus_build_job
|
||||
variables:
|
||||
NAME: macos-11
|
||||
CIRRUS_VM_INSTANCE_TYPE: osx_instance
|
||||
NAME: macos-12
|
||||
CIRRUS_VM_INSTANCE_TYPE: macos_instance
|
||||
CIRRUS_VM_IMAGE_SELECTOR: image
|
||||
CIRRUS_VM_IMAGE_NAME: big-sur-base
|
||||
CIRRUS_VM_IMAGE_NAME: ghcr.io/cirruslabs/macos-monterey-base:latest
|
||||
CIRRUS_VM_CPUS: 12
|
||||
CIRRUS_VM_RAM: 24G
|
||||
UPDATE_COMMAND: brew update
|
||||
INSTALL_COMMAND: brew install
|
||||
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin
|
||||
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
|
||||
PATH_EXTRA: /opt/homebrew/ccache/libexec:/opt/homebrew/gettext/bin
|
||||
PKG_CONFIG_PATH: /opt/homebrew/curl/lib/pkgconfig:/opt/homebrew/ncurses/lib/pkgconfig:/opt/homebrew/readline/lib/pkgconfig
|
||||
TEST_TARGETS: check-unit check-block check-qapi-schema check-softfloat check-qtest-x86_64
|
||||
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
# THIS FILE WAS AUTO-GENERATED
|
||||
#
|
||||
# $ lcitool variables macos-11 qemu
|
||||
# $ lcitool variables macos-12 qemu
|
||||
#
|
||||
# https://gitlab.com/libvirt/libvirt-ci
|
||||
|
||||
CCACHE='/usr/local/bin/ccache'
|
||||
CCACHE='/opt/homebrew/bin/ccache'
|
||||
CPAN_PKGS=''
|
||||
CROSS_PKGS=''
|
||||
MAKE='/usr/local/bin/gmake'
|
||||
NINJA='/usr/local/bin/ninja'
|
||||
MAKE='/opt/homebrew/bin/gmake'
|
||||
NINJA='/opt/homebrew/bin/ninja'
|
||||
PACKAGING_COMMAND='brew'
|
||||
PIP3='/usr/local/bin/pip3'
|
||||
PIP3='/opt/homebrew/bin/pip3'
|
||||
PKGS='bash bc bison bzip2 capstone ccache cmocka ctags curl dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo json-c libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd'
|
||||
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme'
|
||||
PYTHON='/usr/local/bin/python3'
|
||||
PYTHON='/opt/homebrew/bin/python3'
|
|
@ -16,11 +16,8 @@ end user. The other is that we have more control of what we wanted to test
|
|||
and how by directly using acpica interpreter on top of the bios on a running
|
||||
system. More details on the inspiration for developing biosbits and its real
|
||||
life uses can be found in [#a]_ and [#b]_.
|
||||
This directory contains tests written in python using avocado framework that
|
||||
exercises the QEMU bios components using biosbits and reports test failures.
|
||||
For QEMU, we maintain a fork of bios bits in gitlab along with all the
|
||||
dependent submodules:
|
||||
https://gitlab.com/qemu-project/biosbits-bits
|
||||
dependent submodules here: https://gitlab.com/qemu-project/biosbits-bits
|
||||
This fork contains numerous fixes, a newer acpica and changes specific to
|
||||
running this avocado QEMU tests using bits. The author of this document
|
||||
is the sole maintainer of the QEMU fork of bios bits repo.
|
||||
|
@ -38,10 +35,9 @@ Under ``tests/avocado/`` as the root we have:
|
|||
│ ├── bits-config
|
||||
│ │ └── bits-cfg.txt
|
||||
│ ├── bits-tests
|
||||
│ │ ├── smbios.py2
|
||||
│ │ ├── testacpi.py2
|
||||
│ │ └── testcpuid.py2
|
||||
│ └── README
|
||||
│ ├── smbios.py2
|
||||
│ ├── testacpi.py2
|
||||
│ └── testcpuid.py2
|
||||
├── acpi-bits.py
|
||||
|
||||
* ``tests/avocado``:
|
||||
|
|
|
@ -53,6 +53,32 @@ recommended to specify a CD-ROM device via ``-device scsi-cd`` (as mentioned
|
|||
above) instead.
|
||||
|
||||
|
||||
Selecting kernels with the ``loadparm`` property
|
||||
------------------------------------------------
|
||||
|
||||
The ``s390-ccw-virtio`` machine supports the so-called ``loadparm`` parameter
|
||||
which can be used to select the kernel on the disk of the guest that the
|
||||
s390-ccw bios should boot. When starting QEMU, it can be specified like this::
|
||||
|
||||
qemu-system-s390x -machine s390-ccw-virtio,loadparm=<string>
|
||||
|
||||
The first way to use this parameter is to use the word ``PROMPT`` as the
|
||||
``<string>`` here. In that case the s390-ccw bios will show a list of
|
||||
installed kernels on the disk of the guest and ask the user to enter a number
|
||||
to chose which kernel should be booted -- similar to what can be achieved by
|
||||
specifying the ``-boot menu=on`` option when starting QEMU. Note that the menu
|
||||
list will only show the names of the installed kernels when using a DASD-like
|
||||
disk image with 4k byte sectors. On normal SCSI-style disks with 512-byte
|
||||
sectors, there is not enough space for the zipl loader on the disk to store
|
||||
the kernel names, so you only get a list without names here.
|
||||
|
||||
The second way to use this parameter is to use a number in the range from 0
|
||||
to 31. The numbers that can be used here correspond to the numbers that are
|
||||
shown when using the ``PROMPT`` option, and the s390-ccw bios will then try
|
||||
to automatically boot the kernel that is associated with the given number.
|
||||
Note that ``0`` can be used to boot the default entry.
|
||||
|
||||
|
||||
Booting from a network device
|
||||
-----------------------------
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ void s390_ipl_clear_reset_request(void);
|
|||
* have an offset of 4 + n * 8 bytes within the struct in order
|
||||
* to keep it double-word aligned.
|
||||
* The total size of the struct must never exceed 28 bytes.
|
||||
* This definition must be kept in sync with the defininition
|
||||
* This definition must be kept in sync with the definition
|
||||
* in pc-bios/s390-ccw/iplb.h.
|
||||
*/
|
||||
struct QemuIplParameters {
|
||||
|
|
|
@ -313,7 +313,7 @@ retry:
|
|||
/*
|
||||
* Get the host function handle from the vfio CLP capabilities chain. Returns
|
||||
* true if a fh value was placed into the provided buffer. Returns false
|
||||
* if a fh could not be obtained (ioctl failed or capabilitiy version does
|
||||
* if a fh could not be obtained (ioctl failed or capability version does
|
||||
* not include the fh)
|
||||
*/
|
||||
bool s390_pci_get_host_fh(S390PCIBusDevice *pbdev, uint32_t *fh)
|
||||
|
|
|
@ -354,7 +354,7 @@ static int s390_machine_protect(S390CcwMachineState *ms)
|
|||
}
|
||||
|
||||
error_setg(&pv_mig_blocker,
|
||||
"protected VMs are currently not migrateable.");
|
||||
"protected VMs are currently not migratable.");
|
||||
rc = migrate_add_blocker(pv_mig_blocker, &local_err);
|
||||
if (rc) {
|
||||
ram_block_discard_disable(false);
|
||||
|
@ -449,7 +449,7 @@ static void s390_machine_reset(MachineState *machine, ShutdownCause reason)
|
|||
break;
|
||||
case S390_RESET_MODIFIED_CLEAR:
|
||||
/*
|
||||
* Susbsystem reset needs to be done before we unshare memory
|
||||
* Subsystem reset needs to be done before we unshare memory
|
||||
* and lose access to VIRTIO structures in guest memory.
|
||||
*/
|
||||
subsystem_reset();
|
||||
|
@ -462,7 +462,7 @@ static void s390_machine_reset(MachineState *machine, ShutdownCause reason)
|
|||
break;
|
||||
case S390_RESET_LOAD_NORMAL:
|
||||
/*
|
||||
* Susbsystem reset needs to be done before we unshare memory
|
||||
* Subsystem reset needs to be done before we unshare memory
|
||||
* and lose access to VIRTIO structures in guest memory.
|
||||
*/
|
||||
subsystem_reset();
|
||||
|
|
|
@ -20,7 +20,7 @@ struct pmcw {
|
|||
__u32 intparm; /* interruption parameter */
|
||||
__u32 qf:1; /* qdio facility */
|
||||
__u32 w:1;
|
||||
__u32 isc:3; /* interruption sublass */
|
||||
__u32 isc:3; /* interruption subclass */
|
||||
__u32 res5:3; /* reserved zeros */
|
||||
__u32 ena:1; /* enabled */
|
||||
__u32 lm:2; /* limit mode */
|
||||
|
|
|
@ -81,7 +81,7 @@ extern IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE)));
|
|||
#define QIPL_FLAG_BM_OPTS_ZIPL 0x40
|
||||
|
||||
/*
|
||||
* This definition must be kept in sync with the defininition
|
||||
* This definition must be kept in sync with the definition
|
||||
* in hw/s390x/ipl.h
|
||||
*/
|
||||
struct QemuIplParameters {
|
||||
|
|
|
@ -19,7 +19,7 @@ _start:
|
|||
larl %r2, __bss_start
|
||||
larl %r3, _end
|
||||
slgr %r3, %r2 /* get sizeof bss */
|
||||
ltgr %r3,%r3 /* bss emtpy? */
|
||||
ltgr %r3,%r3 /* bss empty? */
|
||||
jz done
|
||||
aghi %r3,-1
|
||||
srlg %r4,%r3,8 /* how many 256 byte chunks? */
|
||||
|
|
|
@ -24,13 +24,13 @@ struct S390CPUDef {
|
|||
uint8_t gen; /* hw generation identification */
|
||||
uint16_t type; /* cpu type identification */
|
||||
uint8_t ec_ga; /* EC GA version (on which also the BC is based) */
|
||||
uint8_t mha_pow; /* Maximum Host Adress Power, mha = 2^pow-1 */
|
||||
uint8_t mha_pow; /* maximum host address power, mha = 2^pow-1 */
|
||||
uint32_t hmfai; /* hypervisor-managed facilities */
|
||||
/* base/min features, must never be changed between QEMU versions */
|
||||
S390FeatBitmap base_feat;
|
||||
/* used to init base_feat from generated data */
|
||||
S390FeatInit base_init;
|
||||
/* deafault features, QEMU version specific */
|
||||
/* default features, QEMU version specific */
|
||||
S390FeatBitmap default_feat;
|
||||
/* used to init default_feat from generated data */
|
||||
S390FeatInit default_init;
|
||||
|
|
|
@ -285,7 +285,7 @@ void ioinst_handle_stsch(S390CPU *cpu, uint64_t reg1, uint32_t ipb,
|
|||
/*
|
||||
* As operand exceptions have a lower priority than access exceptions,
|
||||
* we check whether the memory area is writable (injecting the
|
||||
* access execption if it is not) first.
|
||||
* access exception if it is not) first.
|
||||
*/
|
||||
if (!s390_cpu_virt_mem_check_write(cpu, addr, ar, sizeof(schib))) {
|
||||
s390_program_interrupt(env, PGM_OPERAND, ra);
|
||||
|
|
|
@ -553,7 +553,7 @@ try_deliver:
|
|||
/* don't trigger a cpu_loop_exit(), use an interrupt instead */
|
||||
cpu_interrupt(CPU(cpu), CPU_INTERRUPT_HALT);
|
||||
} else if (cs->halted) {
|
||||
/* unhalt if we had a WAIT PSW somehwere in our injection chain */
|
||||
/* unhalt if we had a WAIT PSW somewhere in our injection chain */
|
||||
s390_cpu_unhalt(cpu);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ static void handle_exceptions(CPUS390XState *env, bool XxC, uintptr_t retaddr)
|
|||
/*
|
||||
* invalid/divbyzero cannot coexist with other conditions.
|
||||
* overflow/underflow however can coexist with inexact, we have to
|
||||
* handle it separatly.
|
||||
* handle it separately.
|
||||
*/
|
||||
if (s390_exc & ~S390_IEEE_MASK_INEXACT) {
|
||||
if (s390_exc & ~S390_IEEE_MASK_INEXACT & env->fpc >> 24) {
|
||||
|
|
|
@ -333,7 +333,7 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1)
|
|||
/* same as machine type number in STORE CPU ID, but in EBCDIC */
|
||||
snprintf(type, ARRAY_SIZE(type), "%X", cpu->model->def->type);
|
||||
ebcdic_put(sysib.sysib_111.type, type, 4);
|
||||
/* model number (not stored in STORE CPU ID for z/Architecure) */
|
||||
/* model number (not stored in STORE CPU ID for z/Architecture) */
|
||||
ebcdic_put(sysib.sysib_111.model, "QEMU ", 16);
|
||||
ebcdic_put(sysib.sysib_111.sequence, "QEMU ", 16);
|
||||
ebcdic_put(sysib.sysib_111.plant, "QEMU", 4);
|
||||
|
|
|
@ -435,7 +435,7 @@ static void gen_program_exception(DisasContext *s, int code)
|
|||
{
|
||||
TCGv_i32 tmp;
|
||||
|
||||
/* Remember what pgm exeption this was. */
|
||||
/* Remember what pgm exception this was. */
|
||||
tmp = tcg_const_i32(code);
|
||||
tcg_gen_st_i32(tmp, cpu_env, offsetof(CPUS390XState, int_pgm_code));
|
||||
tcg_temp_free_i32(tmp);
|
||||
|
@ -491,7 +491,7 @@ static TCGv_i64 get_address(DisasContext *s, int x2, int b2, int d2)
|
|||
|
||||
/*
|
||||
* Note that d2 is limited to 20 bits, signed. If we crop negative
|
||||
* displacements early we create larger immedate addends.
|
||||
* displacements early we create larger immediate addends.
|
||||
*/
|
||||
if (b2 && x2) {
|
||||
tcg_gen_add_i64(tmp, regs[b2], regs[x2]);
|
||||
|
|
|
@ -960,7 +960,7 @@ static DisasJumpType op_vpk(DisasContext *s, DisasOps *o)
|
|||
}
|
||||
break;
|
||||
case 0x94:
|
||||
/* If sources and destination dont't overlap -> fast path */
|
||||
/* If sources and destination don't overlap -> fast path */
|
||||
if (v1 != v2 && v1 != v3) {
|
||||
const uint8_t src_es = get_field(s, m4);
|
||||
const uint8_t dst_es = src_es - 1;
|
||||
|
@ -2075,7 +2075,7 @@ static DisasJumpType op_vmsl(DisasContext *s, DisasOps *o)
|
|||
l2 = tcg_temp_new_i64();
|
||||
h2 = tcg_temp_new_i64();
|
||||
|
||||
/* Multipy both even elements from v2 and v3 */
|
||||
/* Multiply both even elements from v2 and v3 */
|
||||
read_vec_element_i64(l1, get_field(s, v2), 0, ES_64);
|
||||
read_vec_element_i64(h1, get_field(s, v3), 0, ES_64);
|
||||
tcg_gen_mulu2_i64(l1, h1, l1, h1);
|
||||
|
@ -2084,7 +2084,7 @@ static DisasJumpType op_vmsl(DisasContext *s, DisasOps *o)
|
|||
tcg_gen_add2_i64(l1, h1, l1, h1, l1, h1);
|
||||
}
|
||||
|
||||
/* Multipy both odd elements from v2 and v3 */
|
||||
/* Multiply both odd elements from v2 and v3 */
|
||||
read_vec_element_i64(l2, get_field(s, v2), 1, ES_64);
|
||||
read_vec_element_i64(h2, get_field(s, v3), 1, ES_64);
|
||||
tcg_gen_mulu2_i64(l2, h2, l2, h2);
|
||||
|
|
|
@ -134,6 +134,9 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
:avocado: tags=acpi
|
||||
|
||||
"""
|
||||
# in slower systems the test can take as long as 3 minutes to complete.
|
||||
timeout = 200
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self._vm = None
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit d40e203631eb3eacee17e8cf8fd20aa5152db62a
|
||||
Subproject commit e3eb28cf2e17fbcf7fe7e19505ee432b8ec5bbb5
|
|
@ -176,7 +176,7 @@ try:
|
|||
#
|
||||
generate_cirrus("freebsd-12")
|
||||
generate_cirrus("freebsd-13")
|
||||
generate_cirrus("macos-11")
|
||||
generate_cirrus("macos-12")
|
||||
|
||||
sys.exit(0)
|
||||
except Exception as ex:
|
||||
|
|
Loading…
Reference in a new issue