Skip to content

USB Host 2.0 and IOMMU trial on r8a7790 Lager

Magnus Damm linux-sh 1 version In review

Get series with b4
b4 am 20140916112001.14889.62059.sendpatchset@w520

Versions newest first

  1. v1 Latest3 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3PCI: rcar: Use notifier to hook up IOMMU groupsdrivers/pci/host/pci-rcar-gen2.c+52 -00 replies
2/3iommu/ipmmu-vmsa: Create mapping via group notifierdrivers/iommu/ipmmu-vmsa.c+75 -460 replies
3/3ARM: shmobile: lager-reference: IOMMUSY1 and USB testsarch/arm/mach-shmobile/board-lager-reference.c+30 -00 replies

Reviews trailers per patch

None of the 3 patches has a Reviewed-by or Acked-by.

PatchMagnus Damm
1/3
2/3
3/3Not-Yet-Signed-off-by

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/03] USB Host 2.0 and IOMMU trial on r8a7790 Lager

USB Host 2.0 and IOMMU trial on r8a7790 Lager

[PATCH 01/03] PCI: rcar: Use notifier to hook up IOMMU groups [PATCH 02/03] iommu/ipmmu-vmsa: Create mapping via group notifier [PATCH 03/03] ARM: shmobile: lager-reference: IOMMUSY1 and USB tests

This patch series modifies the R-Car Gen2 PCI driver and the IPMMU-VMSA driver to coexist and assign one IOMMU group per PCI host controller.

The PCI host controllers and the IOMMU device are glued together via prototype code that adds the IOMMU as a platform device and ties in the 3 PCI host controllers to the IPMMUSY1 device. Patch 3/3 is not intended for upstream merge, however patch 1/3 and 2/3 may be useful with or without further fixes. Comments are very welcome.

The code in this series has been lightly tested on r8a7790 Lager using USB1 on the CN5 connector. A USB smart card reader has been hot plugged and notifications and IOMMU map/unmap operations have been verified.

IOMMU groups have been used to separate the PCI host controllers into groups of devices that need to use the same UTLB number. Perhaps it would make sense to also use per-device ASIDs somehow, but this needs further discussions.

After bootup the OHCI and EHCI devices associated with the IOMMU groups can be located like this:

# cd /sys/kernel/iommu_groups/
# ls */*  
2/devices:
0000:02:02.0  0000:02:01.0  ee0d0000.pci

1/devices:
ee0b0000.pci 0000:01:02.0 0000:01:01.0

0/devices:
ee090000.pci 0000:00:02.0 0000:00:01.0

---

Built on top of renesas-devel-20140911-v3.17-rc4

 arch/arm/mach-shmobile/board-lager-reference.c |   30 +++++
 drivers/iommu/ipmmu-vmsa.c                     |  121 ++++++++++++++----------
 drivers/pci/host/pci-rcar-gen2.c               |   52 ++++++++++
 3 files changed, 157 insertions(+), 46 deletions(-)