From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Dave Martin <Dave.Martin-5wv7dgnIgG8@public.gmane.org>,
Mark Rutland <Mark.Rutland-5wv7dgnIgG8@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
Greg KH
<gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>,
Will Deacon <Will.Deacon-5wv7dgnIgG8@public.gmane.org>,
Grant Likely
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Hiroshi Doyu <hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Subject: Re: [RFC PATCH] Documentation: devicetree: add description for generic bus properties
Date: Thu, 28 Nov 2013 14:10:09 -0700 [thread overview]
Message-ID: <20131128211009.GA26447@obsidianresearch.com> (raw)
In-Reply-To: <20131128203322.GB14689@mithrandir>
On Thu, Nov 28, 2013 at 09:33:23PM +0100, Thierry Reding wrote:
> > - Describing masters that master through multiple different buses
> >
> > - How on Earth this fits in with the Linux device model (it doesn't)
> >
> > - Interaction with IOMMU bindings (currently under discussion)
>
> This is all very vague. Perhaps everyone else knows what this is all
> about, in which case it'd be great if somebody could clue me in.
It looks like an approach to describe an AXI physical bus topology in
DT..
AFAIK the issue is that the AXI toolkit arm provides encourages a
single IP block to have several AXI ports - control, DMA, high speed
MMIO, for instance. Each of those ports is hooked up into an AXI bus
DAG that has little to do with the CPU address map.
Contrasted with something like PCI, where each IP has exactly one bus
port into the system, so the MMIO register access address range
directly implies the bus master DMA path.
To my mind, a sensble modeling would be to have the DT tree represent
the AXI DAG flattened into a tree rooted at the CPU vertex. Separately
in the DT would be the full AXI DAG represented with phandle
connections.
Nodes in the DT would use phandles to indicate their connections into
the AXI DAG.
Hugely roughly:
soc
{
ranges = <Some quasi-real ranges indicating IP to CPU mapping>;
ip_block
{
reg = <...>
axi-ports = <mmio = &axi_low_speed_port0, dma = &axi_dma_port1, .. >;
}
}
axi
{
/* Describe a DAG of AXI connections here. */
cpu { downstream = &ax_switch,}
axi_switch {downstream = &memory,&low_speed}
memory {}
dma {downstream = &memory}
low_speed {}
}
I was just reading the Zynq manual which gives a pretty good
description of what one vendor did using the ARM AXI toolkits..
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
Figure 5-1 pg 122
You can see it is a complex DAG of AXI busses. For instance if you
want to master from a 'High Performance Port M0' to 'On Chip RAM' you
follow the path AXI_HP[MO] -> Switch1[M2] -> OCM.
But you can't master from 'High Performance Port M0' to internal
slaves, as there is no routing path.
Each switch block is an opportunity for the designer to provide
address remapping/IO MMU hardware that needs configuring :)
Which is why I think encoding the AXI DAG directly in DT is probably
the most future proof way to model this stuff - it sticks close to the
tools ARM provides to the SOC designers, so it is very likely to be
able to model arbitary SOC designs.
Regards,
Jason
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-11-28 21:10 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-27 17:28 [RFC PATCH] Documentation: devicetree: add description for generic bus properties Dave Martin
[not found] ` <20131127172806.GC2291-M5GwZQ6tE7x5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2013-11-27 23:06 ` Greg KH
2013-11-28 10:28 ` Will Deacon
2013-11-28 17:33 ` Dave Martin
[not found] ` <20131128173339.GB4634-M5GwZQ6tE7x5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2013-11-28 19:13 ` Greg KH
2013-11-28 19:39 ` Dave Martin
[not found] ` <20131128193917.GC4634-M5GwZQ6tE7x5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2013-11-28 21:25 ` Greg KH
2013-11-29 11:44 ` Will Deacon
[not found] ` <20131129114453.GC21336-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-11-29 17:37 ` Greg KH
2013-11-29 18:01 ` Will Deacon
[not found] ` <20131129180110.GJ31000-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-11-29 18:11 ` Greg KH
2013-11-29 18:15 ` Will Deacon
[not found] ` <20131128102845.GB21354-MRww78TxoiP5vMa5CHWGZ34zcgK1vI+I0E9HWUfgJXw@public.gmane.org>
2013-11-28 19:10 ` Greg KH
2013-11-28 20:33 ` Thierry Reding
2013-11-28 21:10 ` Jason Gunthorpe [this message]
[not found] ` <20131128211009.GA26447-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-11-28 22:22 ` Thierry Reding
2013-11-28 23:31 ` Jason Gunthorpe
[not found] ` <20131128233147.GA19387-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-11-29 2:35 ` Greg KH
[not found] ` <20131129023554.GA14239-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-11-29 9:37 ` Thierry Reding
[not found] ` <20131129093713.GC22771-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2013-11-29 9:57 ` Russell King - ARM Linux
[not found] ` <20131129095703.GV16735-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2013-11-29 10:43 ` Thierry Reding
2013-11-29 13:13 ` Dave Martin
[not found] ` <20131129131359.GH4634-M5GwZQ6tE7x5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2013-11-29 13:29 ` Russell King - ARM Linux
2013-11-29 17:43 ` Greg KH
2013-11-29 17:42 ` Greg KH
[not found] ` <20131129174223.GB5635-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-11-29 19:45 ` Thierry Reding
2013-12-04 18:43 ` Mark Brown
[not found] ` <20131204184345.GA29268-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-12-04 19:03 ` Greg KH
[not found] ` <20131204190312.GA5070-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-12-04 20:27 ` Mark Brown
2013-11-29 9:57 ` Thierry Reding
2013-11-29 14:13 ` Dave Martin
2013-11-29 11:58 ` Dave Martin
[not found] ` <20131129115815.GC3136-M5GwZQ6tE7x5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2013-11-29 18:43 ` Jason Gunthorpe
2013-12-02 20:25 ` Dave Martin
[not found] ` <20131202202543.GC2312-M5GwZQ6tE7x5pKCnmE3YQBJ8xKzm50AiAL8bYrjMMd8@public.gmane.org>
2013-12-03 0:07 ` Jason Gunthorpe
2013-12-03 11:45 ` Dave Martin
-- strict thread matches above, loose matches on Subject: below --
2013-11-28 16:50 Dave Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131128211009.GA26447@obsidianresearch.com \
--to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
--cc=Dave.Martin-5wv7dgnIgG8@public.gmane.org \
--cc=Mark.Rutland-5wv7dgnIgG8@public.gmane.org \
--cc=Will.Deacon-5wv7dgnIgG8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).