From f58f084e71c6aeee066a30fc87422820e94a6cfc Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Wed, 18 Mar 2020 11:39:40 +0100 Subject: [PATCH 1/2] Documentation: create/move s390x documentation Create a subdirectory for s390x under docs/system/ and move the existing vfio-ap documentation there. Create an initial document describing s390x system emulation. Suggested-by: Peter Maydell Signed-off-by: Cornelia Huck Acked-by: Christian Borntraeger Message-Id: <20200318103940.1169-1-cohuck@redhat.com> --- MAINTAINERS | 5 +++-- docs/system/index.rst | 1 - docs/system/{ => s390x}/vfio-ap.rst | 0 docs/system/target-s390x.rst | 26 ++++++++++++++++++++++++++ docs/system/targets.rst | 1 + 5 files changed, 30 insertions(+), 3 deletions(-) rename docs/system/{ => s390x}/vfio-ap.rst (100%) create mode 100644 docs/system/target-s390x.rst diff --git a/MAINTAINERS b/MAINTAINERS index 2b46f3c6a8..b5c86ec494 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -101,7 +101,8 @@ F: include/hw/watchdog/wdt_diag288.h F: pc-bios/s390-ccw/ F: pc-bios/s390-ccw.img F: target/s390x/ -F: docs/vfio-ap.txt +F: docs/system/target-s390x.rst +F: docs/system/s390x/ F: tests/migration/s390x/ K: ^Subject:.*(?i)s390x? T: git https://github.com/cohuck/qemu.git s390-next @@ -1611,7 +1612,7 @@ F: hw/s390x/ap-bridge.c F: include/hw/s390x/ap-device.h F: include/hw/s390x/ap-bridge.h F: hw/vfio/ap.c -F: docs/system/vfio-ap.rst +F: docs/system/s390x/vfio-ap.rst L: qemu-s390x@nongnu.org vhost diff --git a/docs/system/index.rst b/docs/system/index.rst index 6e5f20fa13..c0f685b818 100644 --- a/docs/system/index.rst +++ b/docs/system/index.rst @@ -30,7 +30,6 @@ Contents: managed-startup targets security - vfio-ap deprecated build-platforms license diff --git a/docs/system/vfio-ap.rst b/docs/system/s390x/vfio-ap.rst similarity index 100% rename from docs/system/vfio-ap.rst rename to docs/system/s390x/vfio-ap.rst diff --git a/docs/system/target-s390x.rst b/docs/system/target-s390x.rst new file mode 100644 index 0000000000..4c8b7cdd66 --- /dev/null +++ b/docs/system/target-s390x.rst @@ -0,0 +1,26 @@ +.. _s390x-System-emulator: + +s390x System emulator +--------------------- + +QEMU can emulate z/Architecture (in particular, 64 bit) s390x systems +via the ``qemu-system-s390x`` binary. Only one machine type, +``s390-ccw-virtio``, is supported (with versioning for compatibility +handling). + +When using KVM as accelerator, QEMU can emulate CPUs up to the generation +of the host. When using the default cpu model with TCG as accelerator, +QEMU will emulate a subset of z13 cpu features that should be enough to run +distributions built for the z13. + +Device support +============== + +QEMU will not emulate most of the traditional devices found under LPAR or +z/VM; virtio devices (especially using virtio-ccw) make up the bulk of +the available devices. Passthrough of host devices via vfio-pci, vfio-ccw, +or vfio-ap is also available. + +.. toctree:: + s390x/vfio-ap + diff --git a/docs/system/targets.rst b/docs/system/targets.rst index eba3111247..0d8f91580a 100644 --- a/docs/system/targets.rst +++ b/docs/system/targets.rst @@ -17,3 +17,4 @@ Contents: target-arm target-m68k target-xtensa + target-s390x From 7722837369eb1c7e808021d79da68afa0c01c26f Mon Sep 17 00:00:00 2001 From: Halil Pasic Date: Fri, 20 Mar 2020 15:31:01 +0100 Subject: [PATCH 2/2] s390/ipl: fix off-by-one in update_machine_ipl_properties() In update_machine_ipl_properties() the array ascii_loadparm needs to hold the 8 char loadparm and a string terminating zero char. Let's increase the size of ascii_loadparm accordingly. Signed-off-by: Halil Pasic Fixes: 0a01e082a428 ("s390/ipl: sync back loadparm") Fixes: Coverity CID 1421966 Reported-by: Peter Maydell Message-Id: <20200320143101.41764-1-pasic@linux.ibm.com> Signed-off-by: Cornelia Huck --- hw/s390x/ipl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index b81942e1e6..8c3e019571 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -546,7 +546,7 @@ static void update_machine_ipl_properties(IplParameterBlock *iplb) /* Sync loadparm */ if (iplb->flags & DIAG308_FLAGS_LP_VALID) { uint8_t *ebcdic_loadparm = iplb->loadparm; - char ascii_loadparm[8]; + char ascii_loadparm[9]; int i; for (i = 0; i < 8 && ebcdic_loadparm[i]; i++) {