From 7619562a643a472fab8ad6a173a37e046a2fc671 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Tue, 13 Oct 2015 15:10:46 +0200 Subject: [PATCH 1/4] pc-bios/s390-ccw: build for z900 Newer distributions have an architecture level set to z9, z196 or similar - also as default option for the compiler. We should build the bios for z900 to allow it to run with all 64bit CPUs. This will become more important as soon as QEMU/KVM does support CPU models. Signed-off-by: Christian Borntraeger Acked-by: Cornelia Huck Reviewed-by: David Hildenbrand Reviewed-By: Sascha Silbe Signed-off-by: Cornelia Huck --- pc-bios/s390-ccw/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile index 15e423274f..11c5dd4799 100644 --- a/pc-bios/s390-ccw/Makefile +++ b/pc-bios/s390-ccw/Makefile @@ -10,7 +10,7 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw) .PHONY : all clean build-all OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o -CFLAGS += -fPIE -fno-stack-protector -ffreestanding +CFLAGS += -fPIE -fno-stack-protector -ffreestanding -march=z900 CFLAGS += -fno-delete-null-pointer-checks -msoft-float LDFLAGS += -Wl,-pie -nostdlib From 07af4c53a5cafba31853d2c9188b0668ae9f53b7 Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Thu, 26 Nov 2015 15:48:30 +0100 Subject: [PATCH 2/4] pc-bios/s390-ccw: rebuild image Contains: - pc-bios/s390-ccw: build for z900 Signed-off-by: Cornelia Huck --- pc-bios/s390-ccw.img | Bin 17760 -> 17760 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img index e0d9452945668fa74402c2caf942fc6eec1a9701..bd8f21050fd7c396eb0e37213d284fe557caa01e 100644 GIT binary patch literal 17760 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 literal 17760 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 aKAs>BpXvB##qS6-Pnij5A2DFbqyGtKI58~% From 567c88c354904d669dfac6170b8ac5f60b41d9bd Mon Sep 17 00:00:00 2001 From: Cornelia Huck Date: Thu, 12 Nov 2015 16:46:09 +0100 Subject: [PATCH 3/4] s390x: no deprecation warning while testing 'make check' tries to start all available machines; the deprecation message for the s390-virtio machine is both useless and annoying there. Silence it while testing. Reported-by: Michael S. Tsirkin Signed-off-by: Cornelia Huck Acked-by: Christian Borntraeger Acked-by: Michael S. Tsirkin --- hw/s390x/s390-virtio.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c index 51dc0a8aaf..ae55760d64 100644 --- a/hw/s390x/s390-virtio.c +++ b/hw/s390x/s390-virtio.c @@ -33,6 +33,7 @@ #include "hw/virtio/virtio.h" #include "sysemu/kvm.h" #include "exec/address-spaces.h" +#include "sysemu/qtest.h" #include "hw/s390x/s390-virtio-bus.h" #include "hw/s390x/sclp.h" @@ -268,9 +269,11 @@ static void s390_init(MachineState *machine) hwaddr virtio_region_len; hwaddr virtio_region_start; - error_printf("WARNING\n" - "The s390-virtio machine (non-ccw) is deprecated.\n" - "It will be removed in 2.6. Please use s390-ccw-virtio\n"); + if (!qtest_enabled()) { + error_printf("WARNING\n" + "The s390-virtio machine (non-ccw) is deprecated.\n" + "It will be removed in 2.6. Please use s390-ccw-virtio\n"); + } if (machine->ram_slots) { error_report("Memory hotplug not supported by the selected machine."); From f0a399dbae6a2d0e2e15eb7ce0783286bbd9fe04 Mon Sep 17 00:00:00 2001 From: Yi Min Zhao Date: Wed, 4 Nov 2015 15:50:45 +0800 Subject: [PATCH 4/4] s390x/pci: fix up IOMMU size Present code uses @size==UINT64_MAX to initialize IOMMU. It infers that it can map any 64-bit IOVA whatsoever. But in fact, the largest DMA range for each PCI Device on s390x is from ZPCI_SDMA_ADDR to ZPCI_EDMA_ADDR. The largest value is returned from hardware, which is to indicate the largest range hardware can support. But the real IOMMU size for specific PCI Device is obtained once qemu intercepts mpcifc instruction that guest is requesting a DMA range for that PCI Device. Therefore, before intercepting mpcifc instruction, qemu cannot be aware of the size of IOMMU region that guest will use. Moreover, iommu replay during device initialization for the whole region in 4k steps takes a very long time. In conclusion, this patch intializes IOMMU region for each PCI Device when intercept mpcifc instruction which is to register DMA range for the PCI Device. And then, destroy IOMMU region when guest wants to deregister IOAT. Signed-off-by: Yi Min Zhao Reviewed-by: Cornelia Huck Signed-off-by: Cornelia Huck --- hw/s390x/s390-pci-bus.c | 26 ++++++++++++++++++++++---- hw/s390x/s390-pci-bus.h | 2 ++ hw/s390x/s390-pci-inst.c | 7 ++++++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c index d5712ae754..98c726cfcd 100644 --- a/hw/s390x/s390-pci-bus.c +++ b/hw/s390x/s390-pci-bus.c @@ -308,7 +308,7 @@ static IOMMUTLBEntry s390_translate_iommu(MemoryRegion *iommu, hwaddr addr, { uint64_t pte; uint32_t flags; - S390PCIBusDevice *pbdev = container_of(iommu, S390PCIBusDevice, mr); + S390PCIBusDevice *pbdev = container_of(iommu, S390PCIBusDevice, iommu_mr); S390pciState *s; IOMMUTLBEntry ret = { .target_as = &address_space_memory, @@ -454,14 +454,32 @@ static const MemoryRegionOps s390_msi_ctrl_ops = { .endianness = DEVICE_LITTLE_ENDIAN, }; +void s390_pcihost_iommu_configure(S390PCIBusDevice *pbdev, bool enable) +{ + pbdev->configured = false; + + if (enable) { + uint64_t size = pbdev->pal - pbdev->pba + 1; + memory_region_init_iommu(&pbdev->iommu_mr, OBJECT(&pbdev->mr), + &s390_iommu_ops, "iommu-s390", size); + memory_region_add_subregion(&pbdev->mr, pbdev->pba, &pbdev->iommu_mr); + } else { + memory_region_del_subregion(&pbdev->mr, &pbdev->iommu_mr); + } + + pbdev->configured = true; +} + static void s390_pcihost_init_as(S390pciState *s) { int i; + S390PCIBusDevice *pbdev; for (i = 0; i < PCI_SLOT_MAX; i++) { - memory_region_init_iommu(&s->pbdev[i].mr, OBJECT(s), - &s390_iommu_ops, "iommu-s390", UINT64_MAX); - address_space_init(&s->pbdev[i].as, &s->pbdev[i].mr, "iommu-pci"); + pbdev = &s->pbdev[i]; + memory_region_init(&pbdev->mr, OBJECT(s), + "iommu-root-s390", UINT64_MAX); + address_space_init(&pbdev->as, &pbdev->mr, "iommu-pci"); } memory_region_init_io(&s->msix_notify_mr, OBJECT(s), diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h index 464a92eedf..80345dacb1 100644 --- a/hw/s390x/s390-pci-bus.h +++ b/hw/s390x/s390-pci-bus.h @@ -231,6 +231,7 @@ typedef struct S390PCIBusDevice { AdapterRoutes routes; AddressSpace as; MemoryRegion mr; + MemoryRegion iommu_mr; } S390PCIBusDevice; typedef struct S390pciState { @@ -244,6 +245,7 @@ typedef struct S390pciState { int chsc_sei_nt2_get_event(void *res); int chsc_sei_nt2_have_event(void); void s390_pci_sclp_configure(int configure, SCCB *sccb); +void s390_pcihost_iommu_configure(S390PCIBusDevice *pbdev, bool enable); S390PCIBusDevice *s390_pci_find_dev_by_idx(uint32_t idx); S390PCIBusDevice *s390_pci_find_dev_by_fh(uint32_t fh); S390PCIBusDevice *s390_pci_find_dev_by_fid(uint32_t fid); diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c index f9151a9afb..8c1dc82b1f 100644 --- a/hw/s390x/s390-pci-inst.c +++ b/hw/s390x/s390-pci-inst.c @@ -528,7 +528,7 @@ int rpcit_service_call(S390CPU *cpu, uint8_t r1, uint8_t r2) goto out; } - mr = pci_device_iommu_address_space(pbdev->pdev)->root; + mr = &pbdev->iommu_mr; while (start < end) { entry = mr->iommu_ops->translate(mr, start, 0); @@ -689,6 +689,9 @@ static int reg_ioat(CPUS390XState *env, S390PCIBusDevice *pbdev, ZpciFib fib) pbdev->pba = pba; pbdev->pal = pal; pbdev->g_iota = g_iota; + + s390_pcihost_iommu_configure(pbdev, true); + return 0; } @@ -697,6 +700,8 @@ static void dereg_ioat(S390PCIBusDevice *pbdev) pbdev->pba = 0; pbdev->pal = 0; pbdev->g_iota = 0; + + s390_pcihost_iommu_configure(pbdev, false); } int mpcifc_service_call(S390CPU *cpu, uint8_t r1, uint64_t fiba, uint8_t ar)