* [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first
@ 2013-06-26 9:28 Hiroshi Doyu
[not found] ` <1372238906-9346-5-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Hiroshi Doyu @ 2013-06-26 9:28 UTC (permalink / raw)
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
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-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
---
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[parent not found: <1372238906-9346-5-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 04/23] ARM: dt: tegra30: Register AHB/IOMMU device first [not found] ` <1372238906-9346-5-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> @ 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: Hiroshi Doyu Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, linux-tegra-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r [-- Attachment #1: Type: text/plain, Size: 877 bytes --] 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-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > --- > 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 [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [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: thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > > --- > > 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
[not found] ` <1372238906-9346-5-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
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