From: Daniel Mack <zonque@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] Merging device trees at runtime for module-based systems
Date: Thu, 25 Oct 2012 14:53:07 +0200 [thread overview]
Message-ID: <50893633.6070408@gmail.com> (raw)
In-Reply-To: <20121025124441.6D75A2005C0@gemini.denx.de>
Hi Wolfgang,
On 25.10.2012 14:44, Wolfgang Denk wrote:
> In message <5087B919.2010006@gmail.com> you wrote:
>>
>> So let's say we have n versions of the baseboard and m versions of the
>> module, we would much like to only prepare n + m files, instead of n * m
>> by pre-compiling every possible combination (some of which may actually
>> never occur 'in the wild').
>
> What you are facing is a situation that
> 1) appears to be pretty common, and
> 2) has (AFAICT) not been truely satisfactory solved yet.
>
>> So my question is: is it possible to do that kind of assembly of a
>> number of files at runtime in U-Boot? I guess all it takes is merging a
>> number of trees together, right? I browsed through the APIs but couldn't
>> yet find an clear approach to that kind of problem. If not, what would
>> it take to add that functionality? I can probably help with the
>> implementation if someone tells me what would be the right way.
>
> I think it should be possible to overlay several DT images; ideally
> these would be strictly orthogonal, i. e. the newly loaded one would
> only add new properties, but I think it should be also no problem to
> define some latest-wins policy, i. e. in case of already existing
> properties the newly loaded ones would just overwrite the previous
> settings.
Overwrites must be addressed in the first place. The most common example
is that a more generic part (the module tree) registers all details
about a peripheral up-front but then sets its status to 'disabled'. That
way, the more specific part (the base board tree) can overwrite this
property to 'okay' at wish to enable it and not care for the pre-defined
details. This is also how we do things in our device-trees.
> I definitely can see the benefit of such a feature and would be happy
> if you could go forward and implement it.
Ok then. I guess this should be something that can eventually be merged
back into libfdt?
Thanks,
Daniel
next prev parent reply other threads:[~2012-10-25 12:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-24 9:47 [U-Boot] Merging device trees at runtime for module-based systems Daniel Mack
2012-10-25 12:44 ` Wolfgang Denk
2012-10-25 12:53 ` Daniel Mack [this message]
2012-10-25 20:46 ` Wolfgang Denk
2012-10-26 0:53 ` David Gibson
2012-10-26 7:24 ` Daniel Mack
2012-10-26 18:21 ` Simon Glass
2012-11-01 3:26 ` David Gibson
2012-11-01 9:24 ` Daniel Mack
2012-11-03 15:25 ` David Gibson
2012-11-03 15:35 ` Daniel Mack
2012-10-26 18:39 ` Stephen Warren
2012-10-26 20:06 ` Wolfgang Denk
2012-10-31 23:00 ` Daniel Mack
2012-10-31 23:13 ` Stephen Warren
2012-10-31 23:21 ` Daniel Mack
2012-10-31 23:56 ` Mitch Bradley
2012-11-01 4:36 ` Stephen Warren
2012-11-01 5:02 ` Mitch Bradley
2012-11-02 4:53 ` David Gibson
2012-11-06 23:05 ` 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=50893633.6070408@gmail.com \
--to=zonque@gmail.com \
--cc=u-boot@lists.denx.de \
/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