From: linus.walleij@linaro.org (Linus Walleij)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: dts: add device tree for the RealView EB Rev D
Date: Fri, 9 Sep 2016 14:33:34 +0200 [thread overview]
Message-ID: <CACRpkdZDUPgsGAKMmactEpxzSC01NsKhOG8XBp14yDByn0ex9A@mail.gmail.com> (raw)
In-Reply-To: <e396557c-774a-fbc7-b1d7-04d49b0287b8@arm.com>
On Fri, Sep 9, 2016 at 12:47 PM, Robin Murphy <robin.murphy@arm.com> wrote:
> I wonder if it would be feasible to simply add a disabled LAN91C111 next
> to the LAN9118 and have a hook in realview-dt.c to swizzle the status at
> runtime based on a read of SYS_ID? (Or is that utterly disgusting?)
I feel what you feel: runtime detection would be better.
The root cause that it is not happening is that device tree is essentially
static and hates scenarios to have its contents even augmented at
runtime. Especially plug-and-play type scenarios. So something that was
so easy to hack up in boardfiles is a nightmare in device tree.
It is technically feasible and I have even done it, in another context.
That was when I employed a "Schr?dinger's cat" approach to the
ARM Versatile display detection:
First I put all possible displays into the device tree, and at runtime
selected which one to connect using the endpoint graph mechanism
in device tree. This was frowned upon.
I then put a pretty standard VGA display in as default, and then added
code to augment that node to whatever display was actually found
by mangling several atributes of the node, rewriting, augmenting,
adding, subtracting. Mostly augmenting. This too, was frowned upon.
This can be done with the ethernet as well: I can just put
both of them in into "disabled" state and switch to "ok" on the one that is
actually there with some code in e.g. mach-realview.
Or I can put in the LAN91C111 and mange that DT node into a
LAN9118 by manipulating the DT node at runtime incl. changing the
compatible string with code.
However upstream developes nixed both approaches before. (After
developing quite a bit of code for each, so I was a bit burnt,
bitter? me? nah. Creative destruction let's say. We learnt something
in the process.)
I was instead told to go work on device tree overlays, or to let
the boot loader (in the RealView case, the abandonware that was
never integrated into upstream U-boot) to do DT augmentation.
One possibility was to let the kernel augment the device tree
before booting and the boot loader just line up a bunch of
overlays it should apply when parsing the DTB(s).
I haven't had time to catch up with what should actually be done
here. I felt a bit like a big piece of design and development was
dropped in my lap to get my boards converted to device tree.
I started looking at it, I might do it one day, but I have lots of other
stuff to do too.
Now it seems that at the finishing line of any Versatile family
device tree conversion I run into this kind of "reinvent DT overlays"
stuff...
Yours,
Linus Walleij
prev parent reply other threads:[~2016-09-09 12:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-08 9:30 [PATCH 2/2] ARM: dts: add device tree for the RealView EB Rev D Linus Walleij
2016-09-08 9:44 ` Arnd Bergmann
2016-09-08 10:00 ` Linus Walleij
2016-09-09 10:47 ` Robin Murphy
2016-09-09 12:33 ` Linus Walleij [this message]
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=CACRpkdZDUPgsGAKMmactEpxzSC01NsKhOG8XBp14yDByn0ex9A@mail.gmail.com \
--to=linus.walleij@linaro.org \
--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).