2017-07-24 02:33:06

by xxm

[permalink] [raw]
Subject: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Add H265e/VEPU/VPU/VDEC/VOP iommu nodes

Signed-off-by: Simon Xue <[email protected]>
---
changes since V2:
- none

arch/arm64/boot/dts/rockchip/rk3328.dtsi | 45 ++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index 0be96ce..bdd7711 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -320,6 +320,51 @@
status = "disabled";
};

+ h265e_mmu: iommu@ff330200 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff330200 0 0x100>;
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "h265e_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vepu_mmu: iommu@ff340800 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff340800 0x0 0x40>;
+ interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vepu_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vpu_mmu: iommu@ff350800 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff350800 0x0 0x40>;
+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vpu_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ rkvdec_mmu: iommu@ff360480 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>;
+ interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "rkvdec_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vop_mmu: iommu@ff373f00 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff373f00 0x0 0x100>;
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "vop_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
cru: clock-controller@ff440000 {
compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon";
reg = <0x0 0xff440000 0x0 0x1000>;
--
1.9.1



2017-07-24 02:33:15

by xxm

[permalink] [raw]
Subject: [PATCH V3 2/4] ARM: dts: rockchip: rk322x add iommu nodes

Add VPU/VDEC/VOP/IEP iommu nodes

Signed-off-by: Simon Xue <[email protected]>
---
changes since V2:
- none

arch/arm/boot/dts/rk322x.dtsi | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
index f3e4ffd..36f7c4b 100644
--- a/arch/arm/boot/dts/rk322x.dtsi
+++ b/arch/arm/boot/dts/rk322x.dtsi
@@ -500,6 +500,42 @@
status = "disabled";
};

+ vpu_mmu: iommu@20020800 {
+ compatible = "rockchip,iommu";
+ reg = <0x20020800 0x100>;
+ interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vpu_mmu";
+ iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vdec_mmu: iommu@20030480 {
+ compatible = "rockchip,iommu";
+ reg = <0x20030480 0x40>, <0x200304c0 0x40>;
+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vdec_mmu";
+ iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vop_mmu: iommu@20053f00 {
+ compatible = "rockchip,iommu";
+ reg = <0x20053f00 0x100>;
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vop_mmu";
+ iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ iep_mmu: iommu@20070800 {
+ compatible = "rockchip,iommu";
+ reg = <0x20070800 0x100>;
+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "iep_mmu";
+ iommu-cells = <0>;
+ status = "disabled";
+ };
+
emmc: dwmmc@30020000 {
compatible = "rockchip,rk3288-dw-mshc";
reg = <0x30020000 0x4000>;
--
1.9.1


2017-07-24 02:33:30

by xxm

[permalink] [raw]
Subject: [PATCH V3 3/4] ARM64: dts: rockchip: rk3368 add iommu nodes

Add IEP/ISP/VOP/HEVC/VPU iommu nodes

Signed-off-by: Simon Xue <[email protected]>
---
changes since V2:
use rockchip,disable-mmu-reset instead of rk-iommu,disable-reset-quirk

arch/arm64/boot/dts/rockchip/rk3368.dtsi | 49 ++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
index 6d5dc05..7b7f9c7 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
@@ -724,6 +724,55 @@
status = "disabled";
};

+ iep_mmu: iommu@ff900800 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff900800 0x0 0x100>;
+ interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "iep_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ isp_mmu: iommu@ff914000 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff914000 0x0 0x100>,
+ <0x0 0xff915000 0x0 0x100>;
+ interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "isp_mmu";
+ #iommu-cells = <0>;
+ rockchip,disable-mmu-reset;
+ status = "disabled";
+ };
+
+ vop_mmu: iommu@ff930300 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff930300 0x0 0x100>;
+ interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vop_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ hevc_mmu: iommu@ff9a0440 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff9a0440 0x0 0x40>,
+ <0x0 0xff9a0480 0x0 0x40>;
+ interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "hevc_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vpu_mmu: iommu@ff9a0800 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff9a0800 0x0 0x100>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "vepu_mmu", "vdpu_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
gic: interrupt-controller@ffb71000 {
compatible = "arm,gic-400";
interrupt-controller;
--
1.9.1


2017-07-24 02:33:46

by xxm

[permalink] [raw]
Subject: [PATCH V3 4/4] ARM64: dts: rockchip: rk3399 add iommu nodes

Add VPU/VDEC/IEP/VOPL/VOPB/ISP0/ISP1 iommu nodes

Signed-off-by: Simon Xue <[email protected]>
---
changes since V2:
use rockchip,disable-mmu-reset instead of rk-iommu,disable-reset-quirk

arch/arm64/boot/dts/rockchip/rk3399.dtsi | 65 ++++++++++++++++++++++++++++++++
1 file changed, 65 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index 69c56f7..99948d9 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -1151,6 +1151,33 @@
status = "disabled";
};

+ vpu_mmu: iommu@ff650800 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff650800 0x0 0x40>;
+ interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "vpu_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ vdec_mmu: iommu@ff660480 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
+ interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "vdec_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ iep_mmu: iommu@ff670800 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff670800 0x0 0x40>;
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "iep_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
efuse0: efuse@ff690000 {
compatible = "rockchip,rk3399-efuse";
reg = <0x0 0xff690000 0x0 0x80>;
@@ -1360,6 +1387,15 @@
};
};

+ vopl_mmu: iommu@ff8f3f00 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff8f3f00 0x0 0x100>;
+ interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "vopl_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
watchdog@ff848000 {
compatible = "snps,dw-wdt";
reg = <0x0 0xff848000 0x0 0x100>;
@@ -1426,6 +1462,35 @@
status = "disabled";
};

+ vopb_mmu: iommu@ff903f00 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff903f00 0x0 0x100>;
+ interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "vopb_mmu";
+ #iommu-cells = <0>;
+ status = "disabled";
+ };
+
+ isp0_mmu: iommu@ff914000 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
+ interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "isp0_mmu";
+ #iommu-cells = <0>;
+ rockchip,disable-mmu-reset;
+ status = "disabled";
+ };
+
+ isp1_mmu: iommu@ff924000 {
+ compatible = "rockchip,iommu";
+ reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
+ interrupt-names = "isp1_mmu";
+ #iommu-cells = <0>;
+ rockchip,disable-mmu-reset;
+ status = "disabled";
+ };
+
pinctrl: pinctrl {
compatible = "rockchip,rk3399-pinctrl";
rockchip,grf = <&grf>;
--
1.9.1


2017-07-26 10:58:23

by Joerg Roedel

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

On Mon, Jul 24, 2017 at 10:32:07AM +0800, Simon Xue wrote:
> Add H265e/VEPU/VPU/VDEC/VOP iommu nodes
>
> Signed-off-by: Simon Xue <[email protected]>
> ---
> changes since V2:
> - none
>
> arch/arm64/boot/dts/rockchip/rk3328.dtsi | 45 ++++++++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)

Applied all, thanks.

2017-07-26 11:44:15

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Hi Joerg,

Am Mittwoch, 26. Juli 2017, 12:58:19 CEST schrieb Joerg Roedel:
> On Mon, Jul 24, 2017 at 10:32:07AM +0800, Simon Xue wrote:
> > Add H265e/VEPU/VPU/VDEC/VOP iommu nodes
> >
> > Signed-off-by: Simon Xue <[email protected]>
> > ---
> >
> > changes since V2:
> > - none
> >
> > arch/arm64/boot/dts/rockchip/rk3328.dtsi | 45
> > ++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)
>
> Applied all, thanks.

I really would prefer iommu dt-nodes going through my tree :-)

Especially as parts of these conflict with already pending patches for
graphics support and with the iommu nodes sitting in your tree these
would need to wait another kernel release.


Heiko

2017-07-26 12:27:57

by Joerg Roedel

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Hey Heiko,

On Wed, Jul 26, 2017 at 01:44:02PM +0200, Heiko St?bner wrote:
> I really would prefer iommu dt-nodes going through my tree :-)
>
> Especially as parts of these conflict with already pending patches for
> graphics support and with the iommu nodes sitting in your tree these
> would need to wait another kernel release.

Sure, no problem. I have nothing pushed yet, so it's easy to remove
again. Do you want to take all three patch-sets from Simon through your
tree or just this one?


Regards,

Joerg

2017-07-26 13:53:21

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Hi Joerg,

Am Mittwoch, 26. Juli 2017, 14:27:53 CEST schrieb Joerg Roedel:
> On Wed, Jul 26, 2017 at 01:44:02PM +0200, Heiko St?bner wrote:
> > I really would prefer iommu dt-nodes going through my tree :-)
> >
> > Especially as parts of these conflict with already pending patches for
> > graphics support and with the iommu nodes sitting in your tree these
> > would need to wait another kernel release.
>
> Sure, no problem. I have nothing pushed yet, so it's easy to remove
> again. Do you want to take all three patch-sets from Simon through your
> tree or just this one?

no, I'm of course fine with (and even very much in favor of) iommu-code
going through your tree :-) . I just want to keep the devicetree changes
together to prevent conflicts (and unnecessary wait times).

Having code and dts changes go through different trees is no problem, as they
don't have a compile-time dependencies on each other and come together nicely
in linux-next again.


Heiko

2017-07-27 12:15:47

by Joerg Roedel

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Hey Heiko,

On Wed, Jul 26, 2017 at 03:53:06PM +0200, Heiko St?bner wrote:
> Having code and dts changes go through different trees is no problem, as they
> don't have a compile-time dependencies on each other and come together nicely
> in linux-next again.

Okay, I removed

ARM64: dts: rockchip: rk3328 add iommu nodes
ARM: dts: rockchip: rk322x add iommu nodes
ARM64: dts: rockchip: rk3368 add iommu nodes
ARM64: dts: rockchip: rk3399 add iommu nodes
ARM64: dts: rockchip: rk3328 add iommu nodes
ARM: dts: rockchip: rk322x add iommu nodes
ARM64: dts: rockchip: rk3368 add iommu nodes
ARM64: dts: rockchip: rk3399 add iommu nodes

from my tree again and kept

Docs: dt: rockchip: add rockchip,disable-mmu-reset property
iommu/rockchip: add multi irqs support
iommu/rockchip: ignore isp mmu reset operation


Regards,

Joerg

2017-07-27 12:26:39

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Hi Joerg,

Am Donnerstag, 27. Juli 2017, 14:15:18 CEST schrieb Joerg Roedel:
> Hey Heiko,
>
> On Wed, Jul 26, 2017 at 03:53:06PM +0200, Heiko St?bner wrote:
> > Having code and dts changes go through different trees is no problem, as
> > they don't have a compile-time dependencies on each other and come
> > together nicely in linux-next again.
>
> Okay, I removed
>
> ARM64: dts: rockchip: rk3328 add iommu nodes
> ARM: dts: rockchip: rk322x add iommu nodes
> ARM64: dts: rockchip: rk3368 add iommu nodes
> ARM64: dts: rockchip: rk3399 add iommu nodes
> ARM64: dts: rockchip: rk3328 add iommu nodes
> ARM: dts: rockchip: rk322x add iommu nodes
> ARM64: dts: rockchip: rk3368 add iommu nodes
> ARM64: dts: rockchip: rk3399 add iommu nodes
>
> from my tree again and kept
>
> Docs: dt: rockchip: add rockchip,disable-mmu-reset property
> iommu/rockchip: add multi irqs support
> iommu/rockchip: ignore isp mmu reset operation

great, thanks.

Interestingly it seems you had the dts patches 2 times each
likely from v1 and v2. But they're gone now, so all good :-)


Heiko

2017-07-27 12:45:33

by Joerg Roedel

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

On Thu, Jul 27, 2017 at 02:26:26PM +0200, Heiko St?bner wrote:
> Am Donnerstag, 27. Juli 2017, 14:15:18 CEST schrieb Joerg Roedel:
> > ARM64: dts: rockchip: rk3328 add iommu nodes
> > ARM: dts: rockchip: rk322x add iommu nodes
> > ARM64: dts: rockchip: rk3368 add iommu nodes
> > ARM64: dts: rockchip: rk3399 add iommu nodes
> > ARM64: dts: rockchip: rk3328 add iommu nodes
> > ARM: dts: rockchip: rk322x add iommu nodes
> > ARM64: dts: rockchip: rk3368 add iommu nodes
> > ARM64: dts: rockchip: rk3399 add iommu nodes

> Interestingly it seems you had the dts patches 2 times each
> likely from v1 and v2. But they're gone now, so all good :-)

Heh, you are right, I got confused by all these rkXXXX numbers and
thought it were patch-sets for different hardware :-)

Even more interesting that they applied almost cleanly.


Joerg

2017-08-21 21:08:45

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 1/4] ARM64: dts: rockchip: rk3328 add iommu nodes

Am Montag, 24. Juli 2017, 10:32:07 CEST schrieb Simon Xue:
> Add H265e/VEPU/VPU/VDEC/VOP iommu nodes
>
> Signed-off-by: Simon Xue <[email protected]>

applied for 4.14 (after adapting the subject a bit)


Thanks
Heiko

2017-08-21 21:08:58

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 3/4] ARM64: dts: rockchip: rk3368 add iommu nodes

Am Montag, 24. Juli 2017, 10:32:09 CEST schrieb Simon Xue:
> Add IEP/ISP/VOP/HEVC/VPU iommu nodes
>
> Signed-off-by: Simon Xue <[email protected]>

applied for 4.14 (after adapting the subject a bit)


Thanks
Heiko

2017-08-21 21:14:13

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 4/4] ARM64: dts: rockchip: rk3399 add iommu nodes

Am Montag, 24. Juli 2017, 10:32:10 CEST schrieb Simon Xue:
> Add VPU/VDEC/IEP/VOPL/VOPB/ISP0/ISP1 iommu nodes
>
> Signed-off-by: Simon Xue <[email protected]>

applied for 4.14 (after adapting the subject a bit, dropping the
vop-mmus added via another patch)


Thanks
Heiko

2017-08-21 21:17:38

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH V3 2/4] ARM: dts: rockchip: rk322x add iommu nodes

Am Montag, 24. Juli 2017, 10:32:08 CEST schrieb Simon Xue:
> Add VPU/VDEC/VOP/IEP iommu nodes
>
> Signed-off-by: Simon Xue <[email protected]>

applied for 4.14


Thanks
Heiko