From: Eric Auger <eric.auger@redhat.com>
To: Jean-Philippe Brucker <jean-philippe@linaro.org>
Cc: peter.maydell@linaro.org, ehabkost@redhat.com, mst@redhat.com,
richard.henderson@linaro.org, qemu-devel@nongnu.org,
shannon.zhaosl@gmail.com, qemu-arm@nongnu.org,
pbonzini@redhat.com, imammedo@redhat.com
Subject: Re: [PATCH 0/6] virtio-iommu: Add ACPI support
Date: Tue, 17 Aug 2021 16:58:01 +0200 [thread overview]
Message-ID: <808699d8-d2cf-bd66-c53d-8ae8c2fdbb9b@redhat.com> (raw)
In-Reply-To: <20210810084505.2257983-1-jean-philippe@linaro.org>
Hi Jean,
On 8/10/21 10:45 AM, Jean-Philippe Brucker wrote:
> Allow instantiating a virtio-iommu device on ACPI systems by adding a
> Virtual I/O Translation table (VIOT). Enable x86 support for VIOT.
Don't you need your other patch
"virtio-iommu: Default to bypass during boot"?
Without this latter, for me the guest fails to boot.
Thanks
Eric
>
> With a simple configuration the table contains a virtio-iommu-pci node
> and a pci-range node:
>
> qemu-system-aarch64 -M virt -bios QEMU_EFI.fd
> -device virtio-iommu ...
>
> $ iasl -d ...
> [000h 0000 4] Signature : "VIOT"
>
> [024h 0036 2] Node count : 0002
> [026h 0038 2] Node offset : 0030
>
> [030h 0048 1] Type : 03 [VirtIO-PCI IOMMU]
> [032h 0050 2] Length : 0010
> [034h 0052 2] PCI Segment : 0000
> [036h 0054 2] PCI BDF number : 0030
>
> [040h 0064 1] Type : 01 [PCI Range]
> [042h 0066 2] Length : 0018
> [044h 0068 4] Endpoint start : 00000000
> [048h 0072 2] PCI Segment start : 0000
> [04Ah 0074 2] PCI Segment end : 0000
> [04Ch 0076 2] PCI BDF start : 0000
> [04Eh 0078 2] PCI BDF end : 00FF
> [050h 0080 2] Output node : 0030
>
> With a more complex topology multiple PCI Range nodes describe the system:
>
> qemu-system-aarch64 -bios QEMU_EFI.fd -device virtio-iommu
> -M virt,default_bus_bypass_iommu=true
> -device pxb-pcie,bus_nr=0x10,id=pcie.1000,bus=pcie.0
> -device pxb-pcie,bus_nr=0x20,id=pcie.2000,bus=pcie.0,bypass_iommu=true
> -device pxb-pcie,bus_nr=0x30,id=pcie.3000,bus=pcie.0
>
> [024h 0036 2] Node count : 0003
> [026h 0038 2] Node offset : 0030
>
> [030h 0048 1] Type : 03 [VirtIO-PCI IOMMU]
> [032h 0050 2] Length : 0010
> [034h 0052 2] PCI Segment : 0000
> [036h 0054 2] PCI BDF number : 0020
>
> [040h 0064 1] Type : 01 [PCI Range]
> [042h 0066 2] Length : 0018
> [044h 0068 4] Endpoint start : 00003000
> [048h 0072 2] PCI Segment start : 0000
> [04Ah 0074 2] PCI Segment end : 0000
> [04Ch 0076 2] PCI BDF start : 3000
> [04Eh 0078 2] PCI BDF end : 32FF
> [050h 0080 2] Output node : 0030
>
> [058h 0088 1] Type : 01 [PCI Range]
> [05Ah 0090 2] Length : 0018
> [05Ch 0092 4] Endpoint start : 00001000
> [060h 0096 2] PCI Segment start : 0000
> [062h 0098 2] PCI Segment end : 0000
> [064h 0100 2] PCI BDF start : 1000
> [066h 0102 2] PCI BDF end : 11FF
> [068h 0104 2] Output node : 0030
>
>
> The VIOT table description will be in the next release of ACPI.
> In the meantime you can find a description at
> https://jpbrucker.net/virtio-iommu/viot/viot-v9.pdf
> Linux support for VIOT was added in version 5.14
>
> Eric Auger (1):
> pc: Allow instantiating a virtio-iommu device
>
> Jean-Philippe Brucker (5):
> acpi: Add VIOT structure definitions
> hw/acpi: Add VIOT table
> hw/arm/virt-acpi-build: Add VIOT table for virtio-iommu
> hw/arm/virt: Remove device tree restriction for virtio-iommu
> pc: Add VIOT table for virtio-iommu
>
> hw/acpi/viot.h | 13 ++++++
> include/hw/acpi/acpi-defs.h | 60 ++++++++++++++++++++++++++
> include/hw/i386/pc.h | 2 +
> hw/acpi/viot.c | 82 ++++++++++++++++++++++++++++++++++++
> hw/arm/virt-acpi-build.c | 7 +++
> hw/arm/virt.c | 10 +----
> hw/i386/acpi-build.c | 5 +++
> hw/i386/pc.c | 18 +++++++-
> hw/virtio/virtio-iommu-pci.c | 7 ---
> hw/acpi/Kconfig | 4 ++
> hw/acpi/meson.build | 1 +
> hw/arm/Kconfig | 1 +
> hw/i386/Kconfig | 1 +
> 13 files changed, 195 insertions(+), 16 deletions(-)
> create mode 100644 hw/acpi/viot.h
> create mode 100644 hw/acpi/viot.c
>
next prev parent reply other threads:[~2021-08-17 14:58 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-10 8:45 [PATCH 0/6] virtio-iommu: Add ACPI support Jean-Philippe Brucker
2021-08-10 8:45 ` [PATCH 1/6] acpi: Add VIOT structure definitions Jean-Philippe Brucker
2021-08-10 8:45 ` [PATCH 2/6] hw/acpi: Add VIOT table Jean-Philippe Brucker
2021-08-10 9:22 ` Igor Mammedov
2021-08-27 13:29 ` Jean-Philippe Brucker
2021-08-10 8:45 ` [PATCH 3/6] hw/arm/virt-acpi-build: Add VIOT table for virtio-iommu Jean-Philippe Brucker
2021-08-10 8:45 ` [PATCH 4/6] hw/arm/virt: Remove device tree restriction " Jean-Philippe Brucker
2021-08-17 13:42 ` Eric Auger
2021-08-27 13:29 ` Jean-Philippe Brucker
2021-08-10 8:45 ` [PATCH 5/6] pc: Add VIOT table " Jean-Philippe Brucker
2021-08-10 8:45 ` [PATCH 6/6] pc: Allow instantiating a virtio-iommu device Jean-Philippe Brucker
2021-08-17 14:11 ` Eric Auger
2021-08-27 13:26 ` Jean-Philippe Brucker
2021-09-02 9:36 ` Eric Auger
2021-08-17 14:58 ` Eric Auger [this message]
2021-08-27 13:30 ` [PATCH 0/6] virtio-iommu: Add ACPI support Jean-Philippe Brucker
2021-09-29 9:18 ` Eric Auger
2021-09-29 17:08 ` Jean-Philippe Brucker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=808699d8-d2cf-bd66-c53d-8ae8c2fdbb9b@redhat.com \
--to=eric.auger@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=jean-philippe@linaro.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=shannon.zhaosl@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).