devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joel A Fernandes <agnel.joel@gmail.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>,
	Rob Herring <robherring2@gmail.com>,
	Deepak Saxena <dsaxena@linaro.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Scott Wood <scottwood@freescale.com>,
	Tony Lindgren <tony@atomide.com>, Russ Dill <Russ.Dill@ti.com>,
	Felipe Balbi <balbi@ti.com>, Benoit Cousson <b-cousson@ti.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Koen Kooi <koen@dominion.thruhere.net>,
	Matt Porter <mporter@ti.com>,
	Linux OMAP List <linux-omap@vger.kernel.org>,
	Kevin Hilman <khilman@ti.com>, Paul Walmsley <paul@pwsan.com>,
	devicetree-discuss@lists.ozlabs.org
Subject: Re: [RFC] Device Tree Overlays Proposal (Was Re: capebus moving omap_devices to mach-omap2)
Date: Mon, 12 Nov 2012 21:59:13 -0600	[thread overview]
Message-ID: <CAD=GYpYHwXvcCzANOA90S0_PyAufnuF5MR-Wdk-9uygYbWDBYA@mail.gmail.com> (raw)
In-Reply-To: <CACxGe6vL9gbAKyDWcZWWAQ4WO=nTgdAioXS-h2e1jtJK9pmZUg@mail.gmail.com>

Hi Grant,

On Fri, Nov 9, 2012 at 3:22 PM, Grant Likely <grant.likely@secretlab.ca> wrote:
>> (2)
>> Also this discussed a while back but at some point is going to brought
>> up again-  loading of dt fragment directly from EEPROM and merging at
>> run time. If we were to implement this in kernel, we would have to add
>> cape specific EEPROM reading code, merge the tree before it is
>> unflattened and parse.
>
> Unless it is required for boot to userspace I'm not considering
> merging before userspace starts. That's well after the tree is
> unflattened into the live form. If it is require to boot then I agree
> that is should be done in firmware. I see zero problem with having a
> beaglebone specific cape driver that knows to read the eeprom and
> request a specific configuration file. Heck, the kernel doesn't even
> need to parse the eeprom data. It can be read from userspace and
> userspace decides which overlay to provide. There's nothing stopping
> userspace from reading the eeprom, looking up the correct dts for the
> board, downloading the file from the Internet, compiling it with dtc
> and installing it.... and yes that is getting a little extreme.

Actually, I was speaking of the case where today we read EEPROM anyway
for capes before userspace, so it would convenient do the overlay this
way. Further, userspace doesn't have to do any parsing as
kernel/u-boot could blindly load the dtb overlay directly from EEPROM
regardless of which cape. So we don't have do any revision detection
and dtb search, the dtb itself being in the EEPROM.
That way no matter what the userspace is, the cape hardware is already
configured and ready to use by userspace. This might be a corner-case
just for beaglebone though, and if requesting overlay from userspace
is a more general solution for all usecases, then probably we should
go with that approach. OTOH, I guess there's no harm in doing some
overlays from kernel for some cases, and userspace for others.

>> The code that does
>> the tree walking can then just strcmp the node name while it walks the
>> tree instead of having to find a node with a phandle number. I guess
>> the reason is phandles are small to store as data values. Another
>> approach can be to arrange the string block in alphabetical order
>> (unless it already is), and store phandle as index of the node name
>> referenced relative to the starting of the strong block. This will not
>> affect nodes in dtb being moved around since they will still have the
>> same index value. the problem being adding or removing nodes Changes
>> the index of all other nodes in the string block as well.. Hmm.
>
> And that still doesn't help find all the phandle locations in the tree
> for doing fixups. It would need to be a table of
> nodes+properties+offsets that contain phandles for fixup to work, but
> I shy away from that approach because I think it will be fragile.

I guess this approach (which wouldn't work for other reasons) was
intended to serve the same purpose as Hashing, having a phandle that
doesn't easily change hence not requiring overlay fixups.

Actually I'm a bit confused if how maintaining a list of
name/node-paths for fix up will even work, because node names are not
unique as we discussed. Also node paths can change, so what will the
overlay dtb store in its fixup table (say there is one)? A table of
node,properties etc as you mentioned might not be unique as there can
be 2 nodes with same name and properties. Also if we use node path,
instead of node name, in this table, then moving nodes around wont be
possible as the fixup table will be pointing to node path references
that have now changed- how will the kernel now what's the node's new
actual path, say, if there are 2 nodes with the same name? Only thing
possible is, to do a _mandatory_ recompile of overlay dtb if a node's
path changes.

Would be you be in agreement that- When a node's path changes in base
dtb, Overlays have to be recompiled and a new fixup table has to be
created, or a new hash has to be generated out of the new node path
regardless. So moving nodes around in base dtb can't be dynamically
accommodated without recompiling overlay.

Considering the above is ok, the only 2 approaches I can see for
phandle resolutions are:
(1) hashing of the full node path and avoiding runtime fixups.
(2) Using today's linear phandle increment approach, maintaining a
table in the overlay with the key as 'node path' and value as 'phandle
fixup offset', and then doing runtime fixups.

I believe (2) is considered fragile and it does the same thing as (1)
except that (2) can even handle collisions but at the cost of storing
the full node path in the overlay's fixup table. So (1) looks like our
only possible and meaningful approach. Do you agree with this
analysis? Or, maybe I am missing something.

Regards,
Joel

  parent reply	other threads:[~2012-11-13  3:59 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-05 20:40 [RFC] Device Tree Overlays Proposal (Was Re: capebus moving omap_devices to mach-omap2) Grant Likely
     [not found] ` <CACxGe6vu8ek7-K-yDDMXyg9x-oKiFt_cSz+Pz-yZf5U5vwe=0g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-05 21:40   ` Tabi Timur-B04825
2012-11-05 23:22     ` Tony Lindgren
     [not found]       ` <20121105232218.GA8284-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2012-11-09 12:06         ` Grant Likely
2012-11-06  0:07     ` Grant Likely
2012-11-06 10:31     ` Pantelis Antoniou
2012-11-07 22:35     ` Ryan Mallon
2012-11-08 13:28       ` Koen Kooi
2012-11-08 14:09         ` Timur Tabi
2012-11-08 17:00         ` Mitch Bradley
2012-11-06 22:37   ` Stephen Warren
     [not found]     ` <50999145.2070306-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-07  0:54       ` Mitch Bradley
2012-11-09 17:02         ` Grant Likely
2012-11-12 11:29           ` Pantelis Antoniou
2012-11-07  8:47     ` Pantelis Antoniou
2012-11-07 17:18       ` Stephen Warren
     [not found]         ` <509A97D0.5010006-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-07 22:08           ` Pantelis Antoniou
2012-11-09 16:28     ` Grant Likely
2012-11-09 23:23       ` Stephen Warren
2012-11-09 23:40         ` Grant Likely
2012-11-12 10:53           ` Koen Kooi
     [not found]         ` <509D9089.7020407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-12 12:10           ` Pantelis Antoniou
2012-11-12 16:52             ` Stephen Warren
2012-11-13  7:25               ` David Gibson
     [not found]                 ` <20121113072517.GE25915-W9XWwYn+TF0XU02nzanrWNbf9cGiqdzd@public.gmane.org>
2012-11-13  8:09                   ` Pantelis Antoniou
2012-11-13 12:24                     ` Grant Likely
     [not found]                       ` <CACxGe6vQxmAk_joUYbaXw4r8J3_RbQt22zFg84ANvcw+ycCMHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-13 13:38                         ` Pantelis Antoniou
2012-11-15  4:57                           ` David Gibson
2012-11-13 17:10                     ` Stephen Warren
     [not found]                     ` <BD20AE03-C138-4BC6-AE02-F162AF6840B2-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org>
2012-11-13 23:30                       ` David Gibson
2012-11-14  0:00                         ` Pantelis Antoniou
2012-11-13 16:57                 ` Stephen Warren
     [not found]                   ` <50A27BF1.4030502-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-13 18:10                     ` Mitch Bradley
     [not found]                       ` <50A28D03.7050002-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-11-13 18:29                         ` Stephen Warren
2012-11-13 19:09                           ` Mitch Bradley
2012-11-13 19:11                             ` Pantelis Antoniou
2012-11-17 22:27         ` Jean-Christophe PLAGNIOL-VILLARD
2012-11-20 17:09           ` Grant Likely
2012-11-11 20:47       ` Rob Landley
2012-11-12 12:50         ` Pantelis Antoniou
     [not found]           ` <ABAD0875-A618-405D-954F-CD76F09DDF04-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org>
2012-11-12 16:54             ` Stephen Warren
2012-11-12 11:23       ` Pantelis Antoniou
2012-11-12 16:49         ` Stephen Warren
2012-11-12 17:00           ` Pantelis Antoniou
2012-11-12 17:10             ` Stephen Warren
2012-11-12 17:19               ` Pantelis Antoniou
2012-11-12 17:29                 ` Stephen Warren
2012-11-12 17:38                   ` Pantelis Antoniou
2012-11-12 20:16         ` Russ Dill
2012-11-12 16:45       ` Stephen Warren
2012-11-12 11:03   ` Koen Kooi
2012-11-06 10:30 ` Pantelis Antoniou
2012-11-06 11:14   ` Grant Likely
2012-11-06 18:35     ` Tony Lindgren
2012-11-06 19:29       ` Russ Dill
     [not found]         ` <CA+Bv8XZOt7h3dtDsk1SaR71J3tYFOTsPJSjZLSP3RVuLdYdFDg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-06 19:41           ` Pantelis Antoniou
2012-11-06 22:17             ` Stephen Warren
2012-11-06 19:34     ` Pantelis Antoniou
2012-11-06 20:45       ` Grant Likely
2012-11-06 20:50         ` Grant Likely
2012-11-07  8:06         ` Pantelis Antoniou
2012-11-07 15:33           ` Alan Tull
2012-11-09 17:03           ` Grant Likely
2012-11-07  8:13         ` Pantelis Antoniou
     [not found]           ` <5ED17D42-07B8-4D4F-B54F-82B4CC60584C-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org>
2012-11-07 10:19             ` Benoit Cousson
2012-11-07 11:02               ` Pantelis Antoniou
     [not found]                 ` <A6697FB9-3614-4027-A71B-59C7556005BF-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org>
2012-11-07 11:12                   ` Benoit Cousson
2012-11-07 11:23                     ` Pantelis Antoniou
2012-11-09 20:33                 ` Grant Likely
2012-11-12 11:34                   ` Pantelis Antoniou
2012-11-12 13:01                     ` Grant Likely
2012-11-07 17:25               ` Stephen Warren
     [not found]                 ` <509A9984.3000709-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-07 22:10                   ` Pantelis Antoniou
2012-11-08 10:36                 ` Cousson, Benoit
2012-11-09  5:32   ` Joel A Fernandes
2012-11-09 14:29     ` David Gibson
2012-11-10  3:15       ` Joel A Fernandes
2012-11-09 21:22     ` Grant Likely
     [not found]       ` <CACxGe6vL9gbAKyDWcZWWAQ4WO=nTgdAioXS-h2e1jtJK9pmZUg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-12 11:47         ` Pantelis Antoniou
2012-11-13  3:59       ` Joel A Fernandes [this message]
2012-11-09 22:59     ` Stephen Warren
     [not found]   ` <-4237940489086529028@unknownmsgid>
     [not found]     ` <559B8433-67C3-4A1A-A5D6-859907655176@antoniou-consulting.com>
     [not found]       ` <559B8433-67C3-4A1A-A5D6-859907655176-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org>
2012-11-10  3:36         ` Joel A Fernandes
2012-11-12 12:48           ` Pantelis Antoniou
2012-11-13  2:28           ` David Gibson
2012-11-09  2:26 ` David Gibson
2012-11-09 15:40   ` Pantelis Antoniou
     [not found]     ` <A97699E9-6C57-4A56-BC45-86A57CF2496F-wVdstyuyKrO8r51toPun2/C9HSW9iNxf@public.gmane.org>
2012-11-13  0:03       ` David Gibson
2012-11-09 21:08   ` Grant Likely
     [not found]     ` <CACxGe6v7q2=Dxn6BE_V-w9CEKxAsZ6zQd5Uqm4TeYGYCCu76cg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-13  0:05       ` David Gibson
2012-11-09 21:42   ` Grant Likely
     [not found]     ` <CACxGe6vQ50aS0Fe7QvTHKfV=EDpsZoLC7SOxXLGc0pkMvyk5DQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-13  1:05       ` David Gibson
2012-11-13  5:22         ` Stephen Warren
     [not found]           ` <50A1D8FF.7060104-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-13  6:54             ` David Gibson
2012-11-09 22:57   ` Stephen Warren
2012-11-09 23:27     ` Grant Likely
2012-11-12 12:05     ` Pantelis Antoniou
     [not found]   ` <20121109022624.GI23553-W9XWwYn+TF0XU02nzanrWNbf9cGiqdzd@public.gmane.org>
2012-11-09 23:14     ` Stephen Warren
2012-11-09 23:06 ` Stephen Warren
2012-11-09 23:32   ` Grant Likely

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='CAD=GYpYHwXvcCzANOA90S0_PyAufnuF5MR-Wdk-9uygYbWDBYA@mail.gmail.com' \
    --to=agnel.joel@gmail.com \
    --cc=Russ.Dill@ti.com \
    --cc=b-cousson@ti.com \
    --cc=balbi@ti.com \
    --cc=benh@kernel.crashing.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dsaxena@linaro.org \
    --cc=grant.likely@secretlab.ca \
    --cc=khilman@ti.com \
    --cc=koen@dominion.thruhere.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mporter@ti.com \
    --cc=panto@antoniou-consulting.com \
    --cc=paul@pwsan.com \
    --cc=robherring2@gmail.com \
    --cc=scottwood@freescale.com \
    --cc=tony@atomide.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;
as well as URLs for NNTP newsgroup(s).