All of lore.kernel.org
 help / color / mirror / Atom feed
From: greg@kroah.com (Greg KH)
To: linux-arm-kernel@lists.infradead.org
Subject: [Ksummit-2013-discuss] [ARM ATTEND] Describing complex, non-probable system topologies
Date: Fri, 2 Aug 2013 22:20:10 +0800	[thread overview]
Message-ID: <20130802142010.GC7533@kroah.com> (raw)
In-Reply-To: <20130802115334.GN2465@mudshark.cambridge.arm.com>

On Fri, Aug 02, 2013 at 12:53:34PM +0100, Will Deacon wrote:
> Hi Greg,
> 
> On Thu, Aug 01, 2013 at 08:27:30PM +0100, Greg KH wrote:
> > On Thu, Aug 01, 2013 at 07:35:31PM +0100, Will Deacon wrote:
> > > Naturally, this would need to be described as a device-tree binding and
> > > communicate:
> > > 
> > >   - Buses which can be configured as coherent, including which devices
> > >     on those buses can be made coherent.
> > > 
> > >   - How IOMMUs sit on the bus and interact with masters on that bus (the
> > >     current one-IOMMU-driver-per-bus may not work well for the
> > >     platform_bus).
> > 
> > I've been waiting for people to finally run into this one, and realize
> > that they shouldn't be using "platform_bus" :)
> 
> But, as pointed out later in this thread, people have been doing the exact
> opposite!

I guess they were wrong :(

I know I mentioned it a few times over the years, but I've been ignoring
ARM for a long time for a variety of reasons.

> We can change the mindset by yelling, but if you're writing a new
> driver for a peripheral on an ARM SoC, platform_bus is mighty tempting
> because you get a bunch of device-tree parsing code for free (see
> drivers/of/platform.c).

I know :(

So, who do I "yell at", and what do I do to make things easier for you
from the driver-core perspective?

> What's worse is that this nice-and-easy auto-probing doesn't work for nested
> device-nodes (i.e. a bunch of device-nodes under a common parent, something
> which you might think is pretty common in a `tree') so people shy away from
> nesting as a means to group devices too.

That's sad.

> > >   - QoS and PM constraints. This isn't really in my area, but we do have
> > >     buses that have these features and expect software to control them.
> > > 
> > >   - The system topology and linkages between buses and devices.
> > 
> > The driver core handles this really well, you just have to create new
> > busses, and don't rely on the "catch-all" platform_bus.
> 
> Agreed, it's time that we started to describe these non-probable buses as
> separate bus_types, with controller logic for configuring the bus itself
> (there are weird-and-wonderful ring-based designs on the horizon which can
> require a fair amount of setup).

I've heard rumors of those for a while now, I'll believe it when I see
them :)

> > > The last point is increasingly important as various blocks of ARM system
> > > IP start to require knowledge of masters and how things like memory
> > > traffic, DVM messages, interrupts (think MSI) etc are routed between
> > > them in order to configure the system correctly. For example, interfacing
> > > a PCIe device with an SMMU requires knowledge of both the requester id
> > > associated with the device and how that maps to incoming stream ids
> > > (based off the AXI bus id) on the SMMU. Even worse, this mapping is
> > > likely generated dynamically by the host controller, which would need to
> > > know about downstream buses and their SMMUs.
> > 
> > Hm, sounds like an ACPI tree is what you need to be using :)
> > 
> > Seriously, why not use ACPI for stuff like this?  You already are
> > starting to do that for ARM-based systems, why not just make it the
> > standard?
> 
> So, like a good proportion of the ARM community, ACPI isn't something I'm
> well-versed in. Yes, it's coming, but at the same time it's not going to be
> everywhere and we need to continue to support new SoCs using device-tree.
> Whilst it might even become a de-factor standard for servers, mobile devices
> will likely continue with the bootloaders they currently have. Furthermore,
> the mobile space is really the wild-west when it comes to system topology --
> exynos SoCs tend to have one IOMMU per device, for example:
> 
> http://lists.infradead.org/pipermail/linux-arm-kernel/2013-July/181922.html
> 
> On the back of that, how does ACPI describe these relationships? It would
> certainly be a good idea to see what's already being done so we don't
> reinvent everything again for device-tree.

I don't recall the specifics of how it does this, but the spec is open
(and bad to read, sorry), and the linux-acpi mailing list is very
welcoming, so I suggest you start there if you have questions.

thanks,

greg k-h

  parent reply	other threads:[~2013-08-02 14:20 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-01 18:35 [ARM ATTEND] Describing complex, non-probable system topologies Will Deacon
2013-08-01 18:42 ` Dave Martin
2013-08-01 22:41   ` [Ksummit-2013-discuss] " David Brown
2013-08-01 19:27 ` Greg KH
2013-08-01 19:39   ` Russell King - ARM Linux
2013-08-01 20:15     ` Greg KH
2013-08-01 20:18       ` Russell King - ARM Linux
2013-08-01 20:36         ` Greg KH
2013-08-01 20:45           ` Russell King - ARM Linux
2013-08-01 21:04             ` Greg KH
2013-08-01 21:48           ` James Bottomley
2013-08-01 23:16             ` Mark Brown
2013-08-02  9:03   ` Tony Lindgren
2013-08-02  9:32     ` Greg KH
2013-08-02 12:34       ` Tony Lindgren
2013-08-02 14:14         ` Greg KH
2013-08-02 15:26           ` Dave Martin
2013-08-02 16:45             ` Will Deacon
2013-08-05  6:55           ` Tony Lindgren
2013-08-05  7:11             ` Greg KH
2013-08-05  7:37               ` Tony Lindgren
2013-08-05  8:02                 ` Greg KH
2013-08-05  8:21                   ` Tony Lindgren
2013-08-05  8:51                     ` Greg KH
2013-08-05  9:14                       ` Tony Lindgren
2013-08-08 16:50                       ` Kevin Hilman
2013-08-02 11:53   ` Will Deacon
2013-08-02 12:37     ` Tony Lindgren
2013-08-02 14:16       ` Greg KH
2013-08-02 14:20     ` Greg KH [this message]
2013-08-02 16:09       ` Will Deacon
2013-08-02 22:32         ` Greg KH
2013-08-03  5:16           ` Olof Johansson
2013-08-05  6:47             ` Tony Lindgren
2013-08-07  1:52             ` Will Deacon
2013-08-20  6:59             ` Hiroshi Doyu
2013-08-07  1:49           ` Will Deacon
2013-08-01 21:41 ` James Bottomley
2013-08-02 17:08   ` Will Deacon
2013-08-01 22:26 ` Bjorn Helgaas
2013-08-02 12:01   ` Will Deacon

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=20130802142010.GC7533@kroah.com \
    --to=greg@kroah.com \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.