lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 31 Aug 2017 08:14:00 -0500
From:   Suman Anna <s-anna@...com>
To:     Joerg Roedel <joro@...tes.org>
CC:     <iommu@...ts.linux-foundation.org>,
        Tony Lindgren <tony@...mide.com>,
        Tero Kristo <t-kristo@...com>,
        Laurent Pinchart <laurent.pinchart@...asonboard.com>,
        <linux-omap@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
        Suman Anna <s-anna@...com>
Subject: [PATCH 0/2] Dual MMU support for TI DRA7xx DSPs

Hi Joerg,

The following two patches enhance the OMAP IOMMU driver to support
mirror-programming of two MMUs present within the DSP subsystems 
specifically on TI DRA7xx/AM57xx family of SOCs. The TI OMAP DSP
subsystems traditionally always has a DSP core and an internal EDMA
block behind a single MMU within the subsystem, but DRA7xx DSP SoCs
now separate these out and the blocks are behind an individual MMU
and a dedicated port to connect to the interconnect. The DT usage
for these will be of the form,
	
	dsp1: dsp@...00000 {
		...
		iommus = <&mmu0_dsp1>, <&mmu1_dsp1>;
		...
	};

The series is based on your current 4.13 based arm/omap branch. The
patches add the support in the driver, but the MMU devices themselves
are still not created. There are two separate series (Add hwmod data
for IPU & DSP processors/MMUs [1] and Enable DRA7 processor MMU DT
nodes [2]) that add these patches, and will go through Tony and the
linux-omap tree. The consumer nodes/client drivers are still in-progress
and will depend on this series being merged first. Series is tested
along-side these two additional series and adding the other consumer
patches, no change in behavior with just these patches.

regards
Suman

[1] https://marc.info/?l=linux-omap&m=150335933714097&w=2
[2] https://marc.info/?l=linux-omap&m=150335958414166&w=2

Following is an output of sysfs with these MMUs exercised
with additional patches:

root@...7xx-evm:~# ls -l /sys/kernel/iommu_groups/
drwxr-xr-x    3 root     root             0 Aug  8 03:59 0
drwxr-xr-x    3 root     root             0 Aug  8 03:59 1
drwxr-xr-x    3 root     root             0 Aug  8 03:59 2
drwxr-xr-x    3 root     root             0 Aug  8 03:59 3
drwxr-xr-x    3 root     root             0 Aug  8 03:59 4
drwxr-xr-x    3 root     root             0 Aug  8 03:59 5
root@...7xx-evm:~# ls -l /sys/kernel/iommu_groups/*/devices
/sys/kernel/iommu_groups/0/devices:
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 40800000.dsp -> ../../../../devices/platform/44000000.ocp/40800000.dsp

/sys/kernel/iommu_groups/1/devices:

/sys/kernel/iommu_groups/2/devices:
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 58820000.ipu -> ../../../../devices/platform/44000000.ocp/58820000.ipu

/sys/kernel/iommu_groups/3/devices:
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 55020000.ipu -> ../../../../devices/platform/44000000.ocp/55020000.ipu

/sys/kernel/iommu_groups/4/devices:
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 41000000.dsp -> ../../../../devices/platform/44000000.ocp/41000000.dsp

/sys/kernel/iommu_groups/5/devices:
root@...7xx-evm:~# ls -l /sys/kernel/iommu_groups/*/devices/*/
/sys/kernel/iommu_groups/0/devices/40800000.dsp/:
lrwxrwxrwx    1 root     root             0 Aug  8 15:59 driver -> ../../../../bus/platform/drivers/omap-rproc
-rw-r--r--    1 root     root          4096 Aug  8 03:59 driver_override
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu -> ../40d01000.mmu/iommu/40d01000.mmu
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu_group -> ../../../../kernel/iommu_groups/0
-r--r--r--    1 root     root          4096 Aug  8 03:59 modalias
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 of_node -> ../../../../firmware/devicetree/base/ocp/dsp@...00000
drwxr-xr-x    2 root     root             0 Aug  8 03:59 power
drwxr-xr-x    3 root     root             0 Aug  8 04:03 remoteproc
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 subsystem -> ../../../../bus/platform
-rw-r--r--    1 root     root          4096 Aug  8 03:59 uevent

/sys/kernel/iommu_groups/2/devices/58820000.ipu/:
lrwxrwxrwx    1 root     root             0 Aug  8 15:59 driver -> ../../../../bus/platform/drivers/omap-rproc
-rw-r--r--    1 root     root          4096 Aug  8 03:59 driver_override
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu -> ../58882000.mmu/iommu/58882000.mmu
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu_group -> ../../../../kernel/iommu_groups/2
-r--r--r--    1 root     root          4096 Aug  8 03:59 modalias
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 of_node -> ../../../../firmware/devicetree/base/ocp/ipu@...20000
drwxr-xr-x    2 root     root             0 Aug  8 03:59 power
drwxr-xr-x    3 root     root             0 Aug  8 04:03 remoteproc
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 subsystem -> ../../../../bus/platform
-rw-r--r--    1 root     root          4096 Aug  8 03:59 uevent

/sys/kernel/iommu_groups/3/devices/55020000.ipu/:
lrwxrwxrwx    1 root     root             0 Aug  8 15:59 driver -> ../../../../bus/platform/drivers/omap-rproc
-rw-r--r--    1 root     root          4096 Aug  8 03:59 driver_override
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu -> ../55082000.mmu/iommu/55082000.mmu
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu_group -> ../../../../kernel/iommu_groups/3
-r--r--r--    1 root     root          4096 Aug  8 03:59 modalias
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 of_node -> ../../../../firmware/devicetree/base/ocp/ipu@...20000
drwxr-xr-x    2 root     root             0 Aug  8 03:59 power
drwxr-xr-x    3 root     root             0 Aug  8 04:03 remoteproc
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 subsystem -> ../../../../bus/platform
-rw-r--r--    1 root     root          4096 Aug  8 03:59 uevent

/sys/kernel/iommu_groups/4/devices/41000000.dsp/:
lrwxrwxrwx    1 root     root             0 Aug  8 15:59 driver -> ../../../../bus/platform/drivers/omap-rproc
-rw-r--r--    1 root     root          4096 Aug  8 03:59 driver_override
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu -> ../41501000.mmu/iommu/41501000.mmu
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 iommu_group -> ../../../../kernel/iommu_groups/4
-r--r--r--    1 root     root          4096 Aug  8 03:59 modalias
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 of_node -> ../../../../firmware/devicetree/base/ocp/dsp@...00000
drwxr-xr-x    2 root     root             0 Aug  8 03:59 power
drwxr-xr-x    3 root     root             0 Aug  8 04:03 remoteproc
lrwxrwxrwx    1 root     root             0 Aug  8 03:59 subsystem -> ../../../../bus/platform
-rw-r--r--    1 root     root          4096 Aug  8 03:59 uevent

Suman Anna (2):
  iommu/omap: Change the attach detection logic
  iommu/omap: Add support to program multiple iommus

 drivers/iommu/omap-iommu.c | 324 ++++++++++++++++++++++++++++++++++-----------
 drivers/iommu/omap-iommu.h |  30 ++---
 2 files changed, 259 insertions(+), 95 deletions(-)

-- 
2.13.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ