linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first
@ 2013-06-26  9:28 Hiroshi Doyu
  2013-06-26 10:45 ` Thierry Reding
  0 siblings, 1 reply; 3+ messages in thread
From: Hiroshi Doyu @ 2013-06-26  9:28 UTC (permalink / raw)
  To: linux-arm-kernel

Move up AHB/IOMMU to register them earlier than others. IOMMU needs
AHB, and IOMMU needs to register all platform devices as
IOMMU'able. So AHB/IOMMU needs to be instanciated at very beginning.

Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
---
 arch/arm/boot/dts/tegra30.dtsi | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi
index 3fcee3f..7c480f2 100644
--- a/arch/arm/boot/dts/tegra30.dtsi
+++ b/arch/arm/boot/dts/tegra30.dtsi
@@ -17,6 +17,23 @@
 		serial4 = &uarte;
 	};
 
+	/* FIXME: ahb/iommu needs to be populated first. */
+	ahb: ahb {
+		compatible = "nvidia,tegra30-ahb";
+		reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */
+	};
+
+	iommu {
+		compatible = "nvidia,tegra30-smmu";
+		reg = <0x7000f010 0x02c
+		       0x7000f1f0 0x010
+		       0x7000f228 0x05c>;
+		nvidia,#asids = <4>;		/* # of ASIDs */
+		dma-window = <0 0x40000000>;	/* IOVA start & length */
+		nvidia,swgroups = <0x00000000 0x000779ff>;
+		nvidia,ahb = <&ahb>;
+	};
+
 	host1x {
 		compatible = "nvidia,tegra30-host1x", "simple-bus";
 		reg = <0x50000000 0x00024000>;
@@ -213,11 +230,6 @@
 		clocks = <&tegra_car TEGRA30_CLK_APBDMA>;
 	};
 
-	ahb: ahb {
-		compatible = "nvidia,tegra30-ahb";
-		reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */
-	};
-
 	gpio: gpio {
 		compatible = "nvidia,tegra30-gpio";
 		reg = <0x6000d000 0x1000>;
@@ -469,17 +481,6 @@
 		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
 	};
 
-	iommu {
-		compatible = "nvidia,tegra30-smmu";
-		reg = <0x7000f010 0x02c
-		       0x7000f1f0 0x010
-		       0x7000f228 0x05c>;
-		nvidia,#asids = <4>;		/* # of ASIDs */
-		dma-window = <0 0x40000000>;	/* IOVA start & length */
-		nvidia,swgroups = <0x00000000 0x000779ff>;
-		nvidia,ahb = <&ahb>;
-	};
-
 	ahub {
 		compatible = "nvidia,tegra30-ahub";
 		reg = <0x70080000 0x200
-- 
1.8.1.5

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first
  2013-06-26  9:28 [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first Hiroshi Doyu
@ 2013-06-26 10:45 ` Thierry Reding
  2013-06-26 11:06   ` Hiroshi Doyu
  0 siblings, 1 reply; 3+ messages in thread
From: Thierry Reding @ 2013-06-26 10:45 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jun 26, 2013 at 12:28:07PM +0300, Hiroshi Doyu wrote:
> Move up AHB/IOMMU to register them earlier than others. IOMMU needs
> AHB, and IOMMU needs to register all platform devices as
> IOMMU'able. So AHB/IOMMU needs to be instanciated at very beginning.
> 
> Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
> ---
>  arch/arm/boot/dts/tegra30.dtsi | 33 +++++++++++++++++----------------
>  1 file changed, 17 insertions(+), 16 deletions(-)

This just happens to work because DTC keeps the order from the DTS in
the DTB and the Linux implementation sequentially instantiates devices
from DT nodes. Neither should be assumed though when writing DTS files.
Other implementations (DTC or OS) could do things differently.

But if I understand correctly there is another solution which should
solve this issue properly.

Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130626/93649077/attachment-0001.sig>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first
  2013-06-26 10:45 ` Thierry Reding
@ 2013-06-26 11:06   ` Hiroshi Doyu
  0 siblings, 0 replies; 3+ messages in thread
From: Hiroshi Doyu @ 2013-06-26 11:06 UTC (permalink / raw)
  To: linux-arm-kernel

Thierry Reding <thierry.reding@gmail.com> wrote @ Wed, 26 Jun 2013 12:45:14 +0200:

> * PGP Signed by an unknown key
> 
> On Wed, Jun 26, 2013 at 12:28:07PM +0300, Hiroshi Doyu wrote:
> > Move up AHB/IOMMU to register them earlier than others. IOMMU needs
> > AHB, and IOMMU needs to register all platform devices as
> > IOMMU'able. So AHB/IOMMU needs to be instanciated at very beginning.
> > 
> > Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
> > ---
> >  arch/arm/boot/dts/tegra30.dtsi | 33 +++++++++++++++++----------------
> >  1 file changed, 17 insertions(+), 16 deletions(-)
> 
> This just happens to work because DTC keeps the order from the DTS in
> the DTB and the Linux implementation sequentially instantiates devices
> from DT nodes. Neither should be assumed though when writing DTS files.
> Other implementations (DTC or OS) could do things differently.
> 
> But if I understand correctly there is another solution which should
> solve this issue properly.

As you've noticed:

https://lists.ozlabs.org/pipermail/devicetree-discuss/2013-June/036746.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-06-26 11:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-26  9:28 [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first Hiroshi Doyu
2013-06-26 10:45 ` Thierry Reding
2013-06-26 11:06   ` Hiroshi Doyu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).