Add DRA7 IOMMU DT nodes
cover Add DRA7 IOMMU DT nodes
Hi Tony,
The following series is a repost of the previous seried that added the basic DT nodes for the DSP and IPU IOMMU devices for the DRA7xx SoC family [1]. There are no code changes, but the patches have to be rebased to resolve slight merge conflicts as the dra7_ctrl_core and dra7_ctrl_general nodes have been removed since the last submission.
This patch series is pending based on the equivalent bindings update series [2] which has also been reposted without any changes.
Patches are based on 4.3-rc3.
regards
Suman
[1] http://marc.info/?l=linux-omap&m=143752332808524&w=2
[2] http://marc.info/?l=linux-omap&m=144382697928741&w=2
Suman Anna (4):
ARM: dts: DRA7: Add dsp1_system syscon node
ARM: dts: DRA74x: Add dsp2_system syscon node
ARM: dts: DRA7: Add common IOMMU nodes
ARM: dts: DRA74x: Add IOMMU nodes for DSP2
arch/arm/boot/dts/dra7.dtsi | 45 +++++++++++++++++++++++++++++++++++++++++++ arch/arm/boot/dts/dra74x.dtsi | 25 ++++++++++++++++++++++++ 2 files changed, 70 insertions(+)
Signature · 1 line
2.6.0
PATCH 1/4 ARM: dts: DRA7: Add dsp1_system syscon node
The DSP_SYSTEM sub-module is a dedicated system control logic module present within a DRA7 DSP processor sub-system. This module is responsible for power management, clock generation and connection to the device PRCM module.
Add a syscon node for this module for the DSP1 processor sub-system. This is added as a syscon node as it is a common configuration module that can be used by the different IOMMU instances and the corresponding remoteproc device.
The node is added to the common dra7.dtsi file, as the DSP1 processor sub-system is mostly common across all the variants of the DRA7 SoC family.
--- arch/arm/boot/dts/dra7.dtsi | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm/boot/dts/dra7.dtsi +5 -0
@@ -292,6 +292,11 @@ #thermal-sensor-cells = <1>; }; + dsp1_system: dsp_system at 40d00000 { + compatible = "syscon"; + reg = <0x40d00000 0x100>; + }; + sdma: dma-controller at 4a056000 { compatible = "ti,omap4430-sdma"; reg = <0x4a056000 0x1000>;
Signature · 1 line
2.6.0
PATCH 1/4 ARM: dts: DRA7: Add dsp1_system syscon node
Quoted 25 lines · Suman Anna
The
DSP_SYSTEMsub-module is a dedicated system control logic module present within a DRA7 DSP processor sub-system. This module is responsible for power management, clock generation and connection to the device PRCM module.Add a syscon node for this module for the DSP1 processor sub-system. This is added as a syscon node as it is a common configuration module that can be used by the different IOMMU instances and the corresponding remoteproc device.
The node is added to the common
dra7.dtsifile, as the DSP1 processor sub-system is mostly common across all the variants of the DRA7 SoC family.Signed-off-by Suman Anna <[email protected]>--- arch/arm/boot/dts/dra7.dtsi | 5 +++++ 1 file changed, 5 insertions(+)arch/arm/boot/dts/dra7.dtsi +0
-0@@ -292,6 +292,11 @@ #thermal-sensor-cells = <1>;
arch/arm/boot/dts/dra7.dtsi line 302
Quoted 10 lines
arch/arm/boot/dts/dra7.dtsi +5
-0}; + dsp1_system: dsp_system at 40d00000 { + compatible = "syscon"; + reg = <0x40d00000 0x100>; + }; + sdma: dma-controller at 4a056000 { compatible = "ti,omap4430-sdma"; reg = <0x4a056000 0x1000>;
Hmm so why would you want to set up a complete device as a syscon mapping rather than just doing ioremap on it?
What drivers will be sharing access to these registers?
Regards,
Tony
PATCH 1/4 ARM: dts: DRA7: Add dsp1_system syscon node
Hi Tony,
Quoted 40 lines · Tony Lindgren
Quoted 25 lines · Suman Anna
The
DSP_SYSTEMsub-module is a dedicated system control logic module present within a DRA7 DSP processor sub-system. This module is responsible for power management, clock generation and connection to the device PRCM module.Add a syscon node for this module for the DSP1 processor sub-system. This is added as a syscon node as it is a common configuration module that can be used by the different IOMMU instances and the corresponding remoteproc device.
The node is added to the common
dra7.dtsifile, as the DSP1 processor sub-system is mostly common across all the variants of the DRA7 SoC family.Signed-off-by Suman Anna <[email protected]>--- arch/arm/boot/dts/dra7.dtsi | 5 +++++ 1 file changed, 5 insertions(+)arch/arm/boot/dts/dra7.dtsi +0
-0@@ -292,6 +292,11 @@ #thermal-sensor-cells = <1>;arch/arm/boot/dts/dra7.dtsi line 302
Quoted 10 lines
arch/arm/boot/dts/dra7.dtsi +5
-0}; + dsp1_system: dsp_system at 40d00000 { + compatible = "syscon"; + reg = <0x40d00000 0x100>; + }; + sdma: dma-controller at 4a056000 { compatible = "ti,omap4430-sdma"; reg = <0x4a056000 0x1000>;Hmm so why would you want to set up a complete device as a syscon mapping rather than just doing ioremap on it?
Quoted 1 line
What drivers will be sharing access to these registers?
Two different instances of the MMU for now, both get probed independently. But there are other registers which a remoteproc driver will mostly be interested in (like DSP_SYS_STAT for knowing the C66x idle/active status).
regards
Suman
PATCH 1/4 ARM: dts: DRA7: Add dsp1_system syscon node
Quoted 43 lines · Suman Anna
Hi Tony,
Quoted 40 lines · Tony Lindgren
Quoted 25 lines · Suman Anna
The
DSP_SYSTEMsub-module is a dedicated system control logic module present within a DRA7 DSP processor sub-system. This module is responsible for power management, clock generation and connection to the device PRCM module.Add a syscon node for this module for the DSP1 processor sub-system. This is added as a syscon node as it is a common configuration module that can be used by the different IOMMU instances and the corresponding remoteproc device.
The node is added to the common
dra7.dtsifile, as the DSP1 processor sub-system is mostly common across all the variants of the DRA7 SoC family.Signed-off-by Suman Anna <[email protected]>--- arch/arm/boot/dts/dra7.dtsi | 5 +++++ 1 file changed, 5 insertions(+)arch/arm/boot/dts/dra7.dtsi +0
-0@@ -292,6 +292,11 @@ #thermal-sensor-cells = <1>;arch/arm/boot/dts/dra7.dtsi line 302
Quoted 10 lines
arch/arm/boot/dts/dra7.dtsi +5
-0}; + dsp1_system: dsp_system at 40d00000 { + compatible = "syscon"; + reg = <0x40d00000 0x100>; + }; + sdma: dma-controller at 4a056000 { compatible = "ti,omap4430-sdma"; reg = <0x4a056000 0x1000>;Hmm so why would you want to set up a complete device as a syscon mapping rather than just doing ioremap on it?
Quoted 6 lines
Quoted 1 line
What drivers will be sharing access to these registers?
Two different instances of the MMU for now, both get probed independently. But there are other registers which a remoteproc driver will mostly be interested in (like
DSP_SYS_STATfor knowing the C66x idle/active status).
OK makes sense to me then.
Thanks,
Tony
PATCH 1/4 ARM: dts: DRA7: Add dsp1_system syscon node
Quoted 44 lines · Tony Lindgren
Quoted 43 lines · Suman Anna
Hi Tony,
Quoted 40 lines · Tony Lindgren
Quoted 25 lines · Suman Anna
The
DSP_SYSTEMsub-module is a dedicated system control logic module present within a DRA7 DSP processor sub-system. This module is responsible for power management, clock generation and connection to the device PRCM module.Add a syscon node for this module for the DSP1 processor sub-system. This is added as a syscon node as it is a common configuration module that can be used by the different IOMMU instances and the corresponding remoteproc device.
The node is added to the common
dra7.dtsifile, as the DSP1 processor sub-system is mostly common across all the variants of the DRA7 SoC family.Signed-off-by Suman Anna <[email protected]>--- arch/arm/boot/dts/dra7.dtsi | 5 +++++ 1 file changed, 5 insertions(+)arch/arm/boot/dts/dra7.dtsi +0
-0@@ -292,6 +292,11 @@ #thermal-sensor-cells = <1>;arch/arm/boot/dts/dra7.dtsi line 302
Quoted 10 lines
arch/arm/boot/dts/dra7.dtsi +5
-0}; + dsp1_system: dsp_system at 40d00000 { + compatible = "syscon"; + reg = <0x40d00000 0x100>; + }; + sdma: dma-controller at 4a056000 { compatible = "ti,omap4430-sdma"; reg = <0x4a056000 0x1000>;Hmm so why would you want to set up a complete device as a syscon mapping rather than just doing ioremap on it?
Quoted 8 lines
Quoted 6 lines
Quoted 1 line
What drivers will be sharing access to these registers?
Two different instances of the MMU for now, both get probed independently. But there are other registers which a remoteproc driver will mostly be interested in (like
DSP_SYS_STATfor knowing the C66x idle/active status).OK makes sense to me then.
And applying these into omap-for-v4.4/dt.
Tony
PATCH 2/4 ARM: dts: DRA74x: Add dsp2_system syscon node
In reply to Suman AnnaThe DSP_SYSTEM sub-module is a dedicated system control logic module present within a DRA7 DSP processor sub-system. This module is responsible for power management, clock generation and connection to the device PRCM module.
Add a syscon node for this module for the DSP2 processor sub-system. This is added as a syscon node as it is a common configuration module that can be used by the different IOMMU instances and the corresponding remoteproc device.
The node is added to the dra74x.dtsi file, as the DSP2 processor subsystem is usually present only on the DRA74x variants of the DRA7 SoC family.
--- arch/arm/boot/dts/dra74x.dtsi | 5 +++++ 1 file changed, 5 insertions(+)
arch/arm/boot/dts/dra74x.dtsi +5 -0
@@ -52,6 +52,11 @@ }; ocp { + dsp2_system: dsp_system at 41500000 { + compatible = "syscon"; + reg = <0x41500000 0x100>; + }; + omap_dwc3_4: omap_dwc3_4 at 48940000 { compatible = "ti,dwc3"; ti,hwmods = "usb_otg_ss4";
Signature · 1 line
2.6.0
PATCH 3/4 ARM: dts: DRA7: Add common IOMMU nodes
In reply to Suman AnnaThe DRA7xx family of SOCs have two IPUs and one DSP processor subsystems in common. The IOMMU DT nodes have been added for these processor subsystems, and have been disabled by default.
These MMUs are very similar to those on OMAP4 and OMAP5, with the only difference being the presence of a second MMU within the DSP subsystem for the EDMA port. The DSP IOMMUs also need an additional 'ti,syscon-mmuconfig' property compared to the IPU IOMMUs.
NOTE: The enabling of these nodes is left to the respective board dts files.
--- arch/arm/boot/dts/dra7.dtsi | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+)
arch/arm/boot/dts/dra7.dtsi +40 -0
@@ -916,6 +916,46 @@ status = "disabled"; }; + mmu0_dsp1: mmu at 40d01000 { + compatible = "ti,dra7-dsp-iommu"; + reg = <0x40d01000 0x100>; + interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "mmu0_dsp1"; + #iommu-cells = <0>; + ti,syscon-mmuconfig = <&dsp1_system 0x0>; + status = "disabled"; + }; + + mmu1_dsp1: mmu at 40d02000 { + compatible = "ti,dra7-dsp-iommu"; + reg = <0x40d02000 0x100>; + interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "mmu1_dsp1"; + #iommu-cells = <0>; + ti,syscon-mmuconfig = <&dsp1_system 0x1>; + status = "disabled"; + }; + + mmu_ipu1: mmu at 58882000 { + compatible = "ti,dra7-iommu"; + reg = <0x58882000 0x100>; + interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "mmu_ipu1"; + #iommu-cells = <0>; + ti,iommu-bus-err-back; + status = "disabled"; + }; + + mmu_ipu2: mmu at 55082000 { + compatible = "ti,dra7-iommu"; + reg = <0x55082000 0x100>; + interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "mmu_ipu2"; + #iommu-cells = <0>; + ti,iommu-bus-err-back; + status = "disabled"; + }; + abb_mpu: regulator-abb-mpu { compatible = "ti,abb-v3"; regulator-name = "abb_mpu";
Signature · 1 line
2.6.0
PATCH 4/4 ARM: dts: DRA74x: Add IOMMU nodes for DSP2
In reply to Suman AnnaThe DRA74x family of SoCs have a second DSP, that also has two MMUs just like the DSP1 subsystem. Add the IOMMU nodes for this DSP2 subsystem in disabled state to the DRA74x specific DTS file, the nodes would need to be enabled appropriately in the respective board DTS files.
--- arch/arm/boot/dts/dra74x.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
arch/arm/boot/dts/dra74x.dtsi +20 -0
@@ -81,6 +81,26 @@ dr_mode = "otg"; }; }; + + mmu0_dsp2: mmu at 41501000 { + compatible = "ti,dra7-dsp-iommu"; + reg = <0x41501000 0x100>; + interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "mmu0_dsp2"; + #iommu-cells = <0>; + ti,syscon-mmuconfig = <&dsp2_system 0x0>; + status = "disabled"; + }; + + mmu1_dsp2: mmu at 41502000 { + compatible = "ti,dra7-dsp-iommu"; + reg = <0x41502000 0x100>; + interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; + ti,hwmods = "mmu1_dsp2"; + #iommu-cells = <0>; + ti,syscon-mmuconfig = <&dsp2_system 0x1>; + status = "disabled"; + }; }; };
Signature · 1 line
2.6.0