[PATCH for-10.0 0/7] hw/riscv: riscv-iommu-sys device

Daniel Henrique Barboza posted 7 patches 2 weeks, 3 days ago
docs/specs/riscv-iommu.rst  |  30 ++++-
docs/system/riscv/virt.rst  |  10 ++
hw/riscv/meson.build        |   2 +-
hw/riscv/riscv-iommu-bits.h |   6 +
hw/riscv/riscv-iommu-pci.c  |  21 +++
hw/riscv/riscv-iommu-sys.c  | 256 ++++++++++++++++++++++++++++++++++++
hw/riscv/riscv-iommu.c      | 114 +++++++++++-----
hw/riscv/riscv-iommu.h      |   5 +
hw/riscv/trace-events       |   4 +
hw/riscv/virt.c             | 108 ++++++++++++++-
include/hw/riscv/iommu.h    |  10 +-
include/hw/riscv/virt.h     |   6 +-
12 files changed, 530 insertions(+), 42 deletions(-)
create mode 100644 hw/riscv/riscv-iommu-sys.c
[PATCH for-10.0 0/7] hw/riscv: riscv-iommu-sys device
Posted by Daniel Henrique Barboza 2 weeks, 3 days ago
Hi,

Now that we have merged the base IOMMU support we can re-introduce
the riscv-iommu-sys platform device that was taken away from the initial
posting.

Aside from adding support for the device in the 'virt' machine we're
also adding MSI support for it, something that we weren't doing before.
The Linux driver is then free to choose either MSI or WSI to use the
device.

Patches based on master.

Daniel Henrique Barboza (5):
  hw/riscv/riscv-iommu.c: add riscv_iommu_instance_init()
  hw/riscv/riscv-iommu: parametrize CAP.IGS
  hw/riscv/virt.c, riscv-iommu-sys.c: add MSIx support
  hw/riscv/riscv-iommu: implement reset protocol
  docs/specs: add riscv-iommu-sys information

Sunil V L (1):
  hw/riscv/virt: Add IOMMU as platform device if the option is set

Tomasz Jeznach (1):
  hw/riscv: add riscv-iommu-sys platform device

 docs/specs/riscv-iommu.rst  |  30 ++++-
 docs/system/riscv/virt.rst  |  10 ++
 hw/riscv/meson.build        |   2 +-
 hw/riscv/riscv-iommu-bits.h |   6 +
 hw/riscv/riscv-iommu-pci.c  |  21 +++
 hw/riscv/riscv-iommu-sys.c  | 256 ++++++++++++++++++++++++++++++++++++
 hw/riscv/riscv-iommu.c      | 114 +++++++++++-----
 hw/riscv/riscv-iommu.h      |   5 +
 hw/riscv/trace-events       |   4 +
 hw/riscv/virt.c             | 108 ++++++++++++++-
 include/hw/riscv/iommu.h    |  10 +-
 include/hw/riscv/virt.h     |   6 +-
 12 files changed, 530 insertions(+), 42 deletions(-)
 create mode 100644 hw/riscv/riscv-iommu-sys.c

-- 
2.45.2
Re: [PATCH for-10.0 0/7] hw/riscv: riscv-iommu-sys device
Posted by Andrew Jones 2 weeks, 3 days ago
On Wed, Nov 06, 2024 at 10:34:00AM -0300, Daniel Henrique Barboza wrote:
> Hi,
> 
> Now that we have merged the base IOMMU support we can re-introduce
> the riscv-iommu-sys platform device that was taken away from the initial
> posting.
> 
> Aside from adding support for the device in the 'virt' machine we're
> also adding MSI support for it, something that we weren't doing before.
> The Linux driver is then free to choose either MSI or WSI to use the
> device.

The driver (still only in linux-next) only knows how to use WSI, but with
a series I just posted[1] MSI is also possible.

[1] https://lore.kernel.org/all/20241106175102.219923-4-ajones@ventanamicro.com/

Thanks,
drew

> 
> Patches based on master.
> 
> Daniel Henrique Barboza (5):
>   hw/riscv/riscv-iommu.c: add riscv_iommu_instance_init()
>   hw/riscv/riscv-iommu: parametrize CAP.IGS
>   hw/riscv/virt.c, riscv-iommu-sys.c: add MSIx support
>   hw/riscv/riscv-iommu: implement reset protocol
>   docs/specs: add riscv-iommu-sys information
> 
> Sunil V L (1):
>   hw/riscv/virt: Add IOMMU as platform device if the option is set
> 
> Tomasz Jeznach (1):
>   hw/riscv: add riscv-iommu-sys platform device
> 
>  docs/specs/riscv-iommu.rst  |  30 ++++-
>  docs/system/riscv/virt.rst  |  10 ++
>  hw/riscv/meson.build        |   2 +-
>  hw/riscv/riscv-iommu-bits.h |   6 +
>  hw/riscv/riscv-iommu-pci.c  |  21 +++
>  hw/riscv/riscv-iommu-sys.c  | 256 ++++++++++++++++++++++++++++++++++++
>  hw/riscv/riscv-iommu.c      | 114 +++++++++++-----
>  hw/riscv/riscv-iommu.h      |   5 +
>  hw/riscv/trace-events       |   4 +
>  hw/riscv/virt.c             | 108 ++++++++++++++-
>  include/hw/riscv/iommu.h    |  10 +-
>  include/hw/riscv/virt.h     |   6 +-
>  12 files changed, 530 insertions(+), 42 deletions(-)
>  create mode 100644 hw/riscv/riscv-iommu-sys.c
> 
> -- 
> 2.45.2
> 
>
Re: [PATCH for-10.0 0/7] hw/riscv: riscv-iommu-sys device
Posted by Alistair Francis 4 days, 15 hours ago
On Wed, Nov 6, 2024 at 11:38 PM Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
> Hi,
>
> Now that we have merged the base IOMMU support we can re-introduce
> the riscv-iommu-sys platform device that was taken away from the initial
> posting.
>
> Aside from adding support for the device in the 'virt' machine we're
> also adding MSI support for it, something that we weren't doing before.
> The Linux driver is then free to choose either MSI or WSI to use the
> device.
>
> Patches based on master.
>
> Daniel Henrique Barboza (5):
>   hw/riscv/riscv-iommu.c: add riscv_iommu_instance_init()
>   hw/riscv/riscv-iommu: parametrize CAP.IGS
>   hw/riscv/virt.c, riscv-iommu-sys.c: add MSIx support
>   hw/riscv/riscv-iommu: implement reset protocol
>   docs/specs: add riscv-iommu-sys information
>
> Sunil V L (1):
>   hw/riscv/virt: Add IOMMU as platform device if the option is set
>
> Tomasz Jeznach (1):
>   hw/riscv: add riscv-iommu-sys platform device

Thanks!

Applied to riscv-to-apply.next

Alistair

>
>  docs/specs/riscv-iommu.rst  |  30 ++++-
>  docs/system/riscv/virt.rst  |  10 ++
>  hw/riscv/meson.build        |   2 +-
>  hw/riscv/riscv-iommu-bits.h |   6 +
>  hw/riscv/riscv-iommu-pci.c  |  21 +++
>  hw/riscv/riscv-iommu-sys.c  | 256 ++++++++++++++++++++++++++++++++++++
>  hw/riscv/riscv-iommu.c      | 114 +++++++++++-----
>  hw/riscv/riscv-iommu.h      |   5 +
>  hw/riscv/trace-events       |   4 +
>  hw/riscv/virt.c             | 108 ++++++++++++++-
>  include/hw/riscv/iommu.h    |  10 +-
>  include/hw/riscv/virt.h     |   6 +-
>  12 files changed, 530 insertions(+), 42 deletions(-)
>  create mode 100644 hw/riscv/riscv-iommu-sys.c
>
> --
> 2.45.2
>
>