From: jgunthorpe@obsidianresearch.com (Jason Gunthorpe)
To: linux-arm-kernel@lists.infradead.org
Subject: [U-Boot] [RFC] Kbuild support for ARM FIT images
Date: Thu, 21 Feb 2013 13:15:17 -0700 [thread overview]
Message-ID: <20130221201517.GA20114@obsidianresearch.com> (raw)
In-Reply-To: <20130221190820.GF17852@n2100.arm.linux.org.uk>
On Thu, Feb 21, 2013 at 07:08:20PM +0000, Russell King - ARM Linux wrote:
> > We've been using DT on production embedded stuff sice about 2.6.20ish
> > on PPC and now ARM. We treat the dtb as a kernel version specific
> > file, much like an initrd and ensure that the kernel only ever boots
> > with its proper dtb. This is based on experience that the dtbs change
> > depending on the state of the drivers in the kernel, what gets
> > mainlined and when, etc.
>
> Just be aware that on ARM at some point, the DT files will be moved
> out of the kernel source and held in an independent git tree; there
> won't be any intention of "kernel version dependence" - if there is
> then kernel maintanence has failed - and the use of DT has failed too.
Yes, I've read that in this thread. I have to say that is a scary
thought, if the seperate DT's get all fragmented like uboot is then
it is just going to be a huge PITA.
> The stated point of DT is that it describes the hardware. If there's
> a dependence on the kernel version, then it's doing more than describing
> the hardware - it would be describing the kernel implementation as well.
Again yes, but.. My experience has been a bit different,
*pragmatically* the DTs are configuring Linux to work with that
hardware, and the Linux expectations can leak into that.
The DT changes seem to tail off as the HW and drivers mature, our PPC
stuff doesn't change much at all these days, but the our ARM DT is
churning like crazy..
I think this pattern is very likely to repeat every time a new SOC is
introduced. Until everything is mainlined and agreed on the DTs for
that SOC will churn.
Some of this seems to be caused by the complexity of the OF standard,
the flexibility it allows and the fact it is being pushed into areas
the standard doesn't cover. With more than one way to do everything
stuff gets done wrong, or people change their minds, or whatever.
> Note that the combined zImage plus DTB today on ARM is just a stop-gap
> for boot loaders which provide only an ATAG based booting solution.
> It's not there as a long term kernel facility. It will probably be
> going away when the DT files are moved out of the kernel source tree.
Thats fine for me, we don't use that mechanism.
> > Why? This is an embedded appliance product. We need to be able to
> > deliver firmware upgrades that *work*. We can't brick the board
> > because the bootloader and kernel get out of sync. The boot loader has
> > to be *simple*, it has to boot every past, present and future kernel
> > or we start taking risks that a firmware flash will end up bricking
> > it.
>
> If the DT file describes the hardware properly, then you shouldn't
> need to update it. Or if the DT file contains a bug (eg, because it
> doesn't describe how things are wired) then it's wrong whatever.
.. or Linux changes how it interprets the DT.
.. or Linux requires additional HW blocks to be described in the DT.
> If that's not the case, then we're really just playing one huge game
> with DT, causing lots of pointless churn for no benefit to people
> like you, and we might as well stop kidding ourselves that DT gives
> us any advantages what so ever. We might as well go back to putting
> this data right back into the kernel in C file form.
Well, when we switched PPC to DT it was a huge improvement in these
areas:
- Describing and binding I2C devices
- .. MDIO Phys
- Passing ethernet MAC addresses into drivers
- Routing and binding GPIOs to linux drivers (like I2C, MDIO,
resets etc)
- Passing HW specific options into buried drivers, eg options for
I2C hwmon devices, LED configuration for phys, etc
All of which had OF mechanisms, but no good C mechanism (at the time
at least)
I also noticed a decrease in churn, the PPC DT descriptions have been
more stable that the prior C versions. The C versions often tended to
need small revisions as the kernel changed.
Further, our boards are almost always very different than the eval/dev
platforms provided by the vendor. The splitting up and modularizing of
the kernel code that has come along with DT has made it much simpler
to support our specific boards.
So, I strongly disagree that DT is bringing no benefit to my kind of
application.
Jason
next prev parent reply other threads:[~2013-02-21 20:15 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 1:37 [RFC] Kbuild support for ARM FIT images Joel A Fernandes
2013-02-21 4:26 ` Stephen Warren
2013-02-21 7:15 ` Joel A Fernandes
2013-02-21 18:58 ` Stephen Warren
2013-02-21 19:18 ` Tom Rini
2013-02-21 13:29 ` Tom Rini
2013-02-21 19:03 ` Stephen Warren
2013-02-21 10:37 ` Russell King - ARM Linux
2013-02-21 13:20 ` Tom Rini
2013-02-21 13:46 ` Russell King - ARM Linux
2013-02-21 14:08 ` Tom Rini
2013-02-21 14:37 ` Russell King - ARM Linux
2013-02-21 14:46 ` Tom Rini
2013-02-21 17:25 ` [U-Boot] " Nicolas Pitre
2013-02-21 17:40 ` Tom Rini
2013-02-21 19:21 ` Nicolas Pitre
2013-02-21 19:37 ` Stephen Warren
2013-02-21 19:57 ` Wolfgang Denk
2013-02-21 20:05 ` Stephen Warren
2013-02-21 20:18 ` Wolfgang Denk
2013-02-21 21:18 ` Nicolas Pitre
2013-02-22 0:10 ` Stephen Warren
2013-02-22 0:39 ` Russell King - ARM Linux
2013-02-22 20:48 ` Stephen Warren
2013-02-21 18:27 ` Jason Gunthorpe
2013-02-21 19:08 ` Russell King - ARM Linux
2013-02-21 20:15 ` Jason Gunthorpe [this message]
2013-02-21 19:57 ` Nicolas Pitre
2013-02-21 21:14 ` Jason Gunthorpe
2013-02-21 22:05 ` Nicolas Pitre
2013-02-21 23:11 ` Jason Gunthorpe
2013-02-21 23:50 ` Stephen Warren
2013-02-22 0:19 ` Scott Wood
2013-02-22 2:39 ` Jason Gunthorpe
2013-02-22 0:27 ` Russell King - ARM Linux
2013-02-22 0:41 ` Russell King - ARM Linux
2013-02-22 2:11 ` Jason Gunthorpe
2013-02-21 23:18 ` Wolfgang Denk
2013-02-21 23:28 ` Jason Gunthorpe
2013-02-22 0:19 ` Rob Herring
2013-02-22 2:22 ` Jason Gunthorpe
2013-02-22 3:32 ` Rob Herring
[not found] ` <CA+T6QP=gHtOuZbjsbv5_GswZu7FUXW+9KVw6K06+5X_PNzqODw@mail.gmail.com>
2013-02-22 17:43 ` Jason Gunthorpe
2013-02-22 6:55 ` Wolfgang Denk
2013-02-21 23:45 ` Stephen Warren
2013-02-22 0:29 ` Russell King - ARM Linux
2013-02-21 20:56 ` Peter Korsgaard
2013-02-21 17:37 ` Wolfgang Denk
2013-02-21 18:33 ` Russell King - ARM Linux
2013-02-23 8:38 ` Joel A Fernandes
2013-02-22 16:00 ` Olof Johansson
2013-03-18 16:36 ` Pavel Machek
2013-03-18 16:44 ` Russell King - ARM Linux
2013-03-18 17:49 ` Pavel Machek
2013-03-18 17:57 ` Russell King - ARM Linux
2013-03-18 18:04 ` Pavel Machek
2013-03-18 18:14 ` [U-Boot] " Stephen Warren
2013-03-18 19:57 ` Wolfgang Denk
2013-03-18 19:51 ` Wolfgang Denk
2013-03-18 18:29 ` [U-Boot] " Tom Rini
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=20130221201517.GA20114@obsidianresearch.com \
--to=jgunthorpe@obsidianresearch.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 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).