From: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
To: "Robert Schwebel" <r.schwebel@pengutronix.de>,
<grant.likely@secretlab.ca>
Cc: "devicetree-discuss" <devicetree-discuss@ozlabs.org>,
<linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.arm.linux.org.uk>,
"Janboe Ye" <yuan-bo.ye@motorola.com>,
"Timur Tabi" <timur@freescale.com>, <rmk@arm.linux.org.uk>
Subject: RE: [RFC] [PATCH] Device Tree on ARM platform
Date: Wed, 27 May 2009 17:55:50 -0700 [thread overview]
Message-ID: <20090528005552.839411C88046@mail94-sin.bigfish.com> (raw)
In-Reply-To: <20090527162000.GM6805@pengutronix.de>
> -----Original Message-----
> From:
devicetree-discuss-bounces+stephen.neuendorffer=xilinx.com@ozlabs.org
[mailto:devicetree-
> discuss-bounces+stephen.neuendorffer=xilinx.com@ozlabs.org] On Behalf
Of Robert Schwebel
> Sent: Wednesday, May 27, 2009 9:20 AM
> To: grant.likely@secretlab.ca
> Cc: devicetree-discuss; linux-kernel@vger.kernel.org;
linux-arm-kernel@lists.arm.linux.org.uk; Janboe
> Ye; Timur Tabi; rmk@arm.linux.org.uk
> Subject: Re: [RFC] [PATCH] Device Tree on ARM platform
>
> Hi Grant,
>
> On Wed, May 27, 2009 at 09:39:21AM -0600, Grant Likely wrote:
> > This is a MPC5200 is the posterchild for device tree wreckage;
mostly
> > because of my own inexperience at the time. A lot of mistakes were
> > made and I freely admit that.
> >
> > However, my counter example is Xilinx Virtex support. The Virtex is
an
> > FPGA with all the devices instantiated in the FPGA fabric. It would
> > be a nightmare to try and describe each different FPGA bitstream
using
> > hand coded platform devices, and the xparameters.h file exported by
> > the Xilinx toolchain wasn't much better. Encoding the machine layout
> > in a data structure (the device tree) has decoupled FPGA changes
from
> > the kernel image. Now FPGA engineers can make major changes to FPGA
> > layouts without having to lockstep with changes in the kernel. I
> > regularly boot a single kernel image on multiple bitstream images.
> >
> > That being said, the problems we have had are the reason why it is
> > *not* recommended to hard link the device tree image into firmware.
> > We do commit to not breaking old trees, but the ability to update is
> > important; particularly for enabling new features/drivers.
>
> Point taken.
>
> We often have the situation that we have
>
> - a SoC cpu from vendor A
> - a module with the cpu+ram+peripherals from vendor B
> - a baseboard from vendor C
> - sometimes an extension board from vendor D
I completely agree... Generally speaking, this is a huge problem for
Microblaze/Virtex PPC support, since very little about the board
connectivity is implied or required based on the chip itself.
Hence, describing the board-level connectivity becomes imperative. More
importantly, describing the
board-level connectivity separately from the FPGA internal connectivity
is also important from
an information management perspective.
> All that with non-introspectable busses, like chip select busses, SPI,
> i2c, FPGA-internal busses etc. We recently tried to put oftree
sniplets
> into the devices (one into the module, one in the baseboard etc), let
> u-boot collect these sniplets and build an oftree out of it. It
doesn't
> work. If you try this, you'll quickly find out that you would have to
> put the schematics into the oftree.
If this is what is required to describe the connectivity of the system,
so be it.
Unfortunately, the fact that OF/DTS has tree structure doesn't provide
syntactic help for making these associations, but neither does it
provide a hinderance either. At this level, OF/DTS
mainly provides a way of expressing hierarchy, and all the connections
must be specified orthogonally
from the tree hierarchy.
> A peripheral pin can be routed to a
> ball, goes from a connector of the module to a baseboard, to the
> extension board, come back and go to another unit on the SoC. This
> cannot be described in the oftree.
This I disagree with. There is nothing preventing you from representing
this in a
device tree, other than figuring out how.
> At one place, you need to *know*
> about the whole hardware that you have and have a single "we have X"
to
> "X's oftree" mapping.
In my opinion, the 'platform support code' often devolves into hardcoded
references that
come from digesting all of this connectivity. This works until knowing
the connectivity
becomes important. Audio SOCs and clocks are two cases that have been
brought up in
this discussion. I would
prefer to bite the bullet, and give the kernel all of the information
and let the driver
figure out what is important.
> In the end, having a single "X needs these platform data" kernel
source
> file is much, much cleaner and less error prone than what we currently
> have with the oftree.
I disagree. It may be the easy way to get most things to work in the
short term, but
based on my experience, it results in information holes, hacks, and
other things that would
be neatly solved by taking the time to describe the system more
completely in the first place.
Steve
This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
next prev parent reply other threads:[~2009-05-28 1:11 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-27 7:08 [RFC] [PATCH] Device Tree on ARM platform Janboe Ye
2009-05-27 14:27 ` Grant Likely
2009-05-27 14:39 ` Timur Tabi
2009-05-27 15:05 ` Robert Schwebel
2009-05-27 15:39 ` Grant Likely
2009-05-27 16:20 ` Robert Schwebel
2009-05-27 20:35 ` Grant Likely
2009-05-27 23:48 ` Robert Schwebel
2009-05-27 23:52 ` David Miller
2009-05-27 23:58 ` Scott Wood
2009-05-28 0:02 ` David Miller
2009-05-28 0:07 ` Robert Schwebel
2009-05-28 0:15 ` David Miller
2009-05-28 10:37 ` Mark Brown
2009-05-28 22:32 ` Grant Likely
2009-05-29 12:34 ` Mark Brown
2009-05-30 9:52 ` Benjamin Herrenschmidt
2009-05-30 10:21 ` Russell King - ARM Linux
2009-05-30 17:56 ` Mark Brown
2009-06-02 7:57 ` Holger Schurig
2009-06-02 9:48 ` Mark Brown
2009-05-28 2:57 ` David Gibson
2009-05-28 3:36 ` Grant Likely
2009-05-28 3:29 ` Grant Likely
2009-05-28 9:51 ` Wolfgang Denk
2009-05-28 9:59 ` David Miller
2009-05-28 10:13 ` Robert Schwebel
2009-05-28 13:33 ` Jon Smirl
2009-05-28 13:42 ` Robert Schwebel
2009-05-28 9:38 ` Wolfgang Denk
2009-05-28 3:21 ` Grant Likely
2009-05-28 3:16 ` Grant Likely
2009-05-28 0:55 ` Stephen Neuendorffer [this message]
2009-05-27 18:56 ` Alexander Clouter
2009-05-27 20:46 ` Grant Likely
2009-05-27 21:32 ` Alexander Clouter
2009-05-27 15:41 ` Peter Korsgaard
2009-05-27 16:23 ` Scott Wood
2009-05-27 17:56 ` Russell King
2009-05-27 19:08 ` Scott Wood
2009-05-27 19:13 ` Jon Smirl
2009-05-27 19:21 ` Russell King - ARM Linux
2009-05-27 19:39 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:22 ` Grant Likely
2009-05-27 20:19 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:54 ` Grant Likely
2009-05-28 3:04 ` David Gibson
2009-05-28 7:58 ` Benjamin Herrenschmidt
2009-05-27 23:57 ` Robert Schwebel
2009-05-28 0:00 ` David Miller
2009-05-28 3:21 ` Grant Likely
2009-05-28 6:34 ` Wolfram Sang
2009-05-28 7:55 ` Benjamin Herrenschmidt
2009-05-28 13:34 ` Grant Likely
2009-05-28 7:48 ` Benjamin Herrenschmidt
2009-05-28 14:22 ` Ben Dooks
2009-05-27 20:28 ` David Miller
2009-05-27 20:31 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-28 2:52 ` David Gibson
2009-05-28 4:27 ` David Miller
2009-05-28 4:47 ` David Gibson
2009-05-28 5:31 ` David Miller
2009-05-28 5:47 ` David Gibson
2009-05-28 7:47 ` Benjamin Herrenschmidt
2009-05-28 14:17 ` Ben Dooks
2009-05-28 14:24 ` Robert Schwebel
2009-05-28 14:47 ` Grant Likely
2009-05-27 19:29 ` Russell King
2009-05-27 19:47 ` Sergei Shtylyov
2009-05-27 19:53 ` Scott Wood
2009-05-27 19:54 ` Timur Tabi
2009-05-27 20:25 ` David Miller
2009-05-27 20:27 ` Timur Tabi
2009-05-27 20:55 ` David Miller
2009-05-27 23:26 ` Robert Schwebel
2009-05-27 20:35 ` M. Warner Losh
2009-05-27 20:14 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:23 ` David Miller
2009-05-27 20:27 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-27 20:48 ` Josh Boyer
2009-05-27 20:56 ` David Miller
2009-05-27 20:52 ` Mark Brown
2009-05-27 21:05 ` Grant Likely
2009-05-28 0:11 ` Jon Smirl
2009-05-28 12:43 ` Sascha Hauer
2009-05-28 13:18 ` Thomas Gleixner
2009-05-28 15:04 ` Sascha Hauer
2009-05-28 15:27 ` Thomas Gleixner
2009-05-29 0:51 ` Benjamin Herrenschmidt
2009-05-29 7:52 ` Sascha Hauer
2009-05-29 9:08 ` Benjamin Herrenschmidt
2009-05-31 10:52 ` Russell King - ARM Linux
2009-05-28 14:31 ` Grant Likely
2009-05-28 3:25 ` David Gibson
2009-05-28 8:10 ` Benjamin Herrenschmidt
2009-05-28 7:38 ` Benjamin Herrenschmidt
2009-05-27 20:43 ` Grant Likely
2009-05-28 7:37 ` Benjamin Herrenschmidt
2009-05-28 9:15 ` Russell King - ARM Linux
2009-05-28 9:57 ` David Miller
2009-05-28 10:11 ` Benjamin Herrenschmidt
2009-05-28 10:33 ` Robert Schwebel
2009-05-28 10:34 ` Russell King - ARM Linux
2009-05-28 22:33 ` Benjamin Herrenschmidt
2009-05-28 10:14 ` Russell King - ARM Linux
2009-05-28 21:30 ` David Miller
2009-05-28 12:17 ` Dmitry Eremin-Solenikov
2009-05-28 12:48 ` David Gibson
2009-05-28 12:55 ` David Gibson
2009-05-28 14:13 ` Grant Likely
2009-05-28 16:53 ` Russell King - ARM Linux
2009-05-28 17:05 ` Grant Likely
2009-05-28 18:46 ` Alexander Clouter
2009-05-28 22:21 ` Benjamin Herrenschmidt
2009-05-29 1:39 ` David Gibson
2009-05-29 1:59 ` Mitch Bradley
2009-05-29 3:52 ` Benjamin Herrenschmidt
2009-05-29 4:11 ` David Miller
2009-05-29 4:11 ` David Miller
2009-05-29 4:56 ` Benjamin Herrenschmidt
2009-05-29 5:11 ` David Miller
2009-05-28 10:00 ` Benjamin Herrenschmidt
2009-05-28 11:44 ` Jean-Christophe PLAGNIOL-VILLARD
2009-05-28 12:47 ` Jon Smirl
2009-05-28 14:39 ` Grant Likely
2009-05-28 14:54 ` Grant Likely
2009-05-27 18:26 ` Peter Korsgaard
2009-05-27 16:32 ` Mark Brown
2009-05-27 18:50 ` Jon Smirl
2009-05-27 22:24 ` Mark Brown
2009-05-28 0:04 ` Jon Smirl
2009-05-28 13:07 ` Mark Brown
2009-05-27 20:42 ` Grant Likely
2009-05-27 21:38 ` Mark Brown
2009-05-28 3:02 ` David Gibson
2009-05-28 7:32 ` Benjamin Herrenschmidt
2009-05-28 13:38 ` Grant Likely
2009-05-27 22:01 ` Mitch Bradley
2009-05-28 8:17 ` Benjamin Herrenschmidt
2009-05-28 12:43 ` Holger Schurig
2009-05-28 13:12 ` Mark Brown
2009-05-27 17:44 ` Russell King
2009-05-27 17:52 ` Grant Likely
2009-05-28 3:44 ` David Gibson
2009-05-30 11:22 ` Pavel Machek
2009-05-31 1:29 ` Kyle Moffett
2009-05-31 5:56 ` David Miller
2009-06-01 8:37 ` Dmitry Eremin-Solenikov
2009-05-31 10:08 ` Russell King - ARM Linux
2009-06-01 9:24 ` Stephen Rothwell
2009-06-01 10:36 ` Janboe Ye
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=20090528005552.839411C88046@mail94-sin.bigfish.com \
--to=stephen.neuendorffer@xilinx.com \
--cc=devicetree-discuss@ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=r.schwebel@pengutronix.de \
--cc=rmk@arm.linux.org.uk \
--cc=timur@freescale.com \
--cc=yuan-bo.ye@motorola.com \
/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