qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/6] virtio-iommu: Add ACPI support


From: Eric Auger
Subject: Re: [PATCH 0/6] virtio-iommu: Add ACPI support
Date: Tue, 17 Aug 2021 16:58:01 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1

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
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]