USB Host 2.0 and IOMMU trial on r8a7790 Lager
cover 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(-)
Hi Magnus,
Thank you for the patches.
Quoted 6 lines · On Tuesday 16 September 2014 20:20:01 Magnus Damm wrote:
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
Quoted 8 lines
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.
How the IOMMU subsystem hooks up devices with IOMMUs is being reworked by Will Deacon. I'm following that work, and plan to update the IPMMU driver accordingly. This will likely conflict with patch 2/3, and I would rather clean up the current code before extending it. Would that be fine schedule- wise with you ?
Quoted 33 lines
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.pci1/devices:
ee0b0000.pci 0000:01:02.0 0000:01:01.00/devices:
ee090000.pci 0000:00:02.0 0000:00:01.0Signed-off-by Magnus Damm <[email protected]>---
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(-)
Signature · 3 lines
Regards, Laurent Pinchart
Hi Laurent,
Thanks for your comments!
Quoted 20 lines · Laurent Pinchart
Hi Magnus,
Thank you for the patches.
Quoted 6 lines · On Tuesday 16 September 2014 20:20:01 Magnus Damm wrote:
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
Quoted 8 lines
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.
Quoted 5 lines
How the IOMMU subsystem hooks up devices with IOMMUs is being reworked by Will Deacon. I'm following that work, and plan to update the IPMMU driver accordingly. This will likely conflict with patch 2/3, and I would rather clean up the current code before extending it. Would that be fine schedule- wise with you ?
Reworking based on code from WIll Deacon sounds good. I believe it is fine schedule-wise. It would be good to know how to tie in the PCI bits with the new code. I assume the PCI host driver needs some modifications even with the new code.
We've touched this topic before face-to-face, but it would be good to discuss more about IPMMU features. For instance, how to handle things like multiple devices associated with one UTLB and perhaps also UTLB to ASID mapping. And then there is the per-channel DMA stuff with the associated headache!
Thanks,
/ magnus