[PATCH 1/2] of: Add for_each_compatible_node_from iterator

Trent Piepho tpiepho at kymetacorp.com
Tue Jan 5 10:58:01 PST 2016


On Tue, 2016-01-05 at 08:58 +0100, Sascha Hauer wrote:
> On Mon, Jan 04, 2016 at 07:07:27PM +0000, Trent Piepho wrote: 
> > Couldn't one also use the of fixup system to modify the barebox DT?  In
> > order to support multiple board variants, I added DT nodes that specify
> > what nodes should be enabled and/or disabled for different board
> > versions.  An OF fixup applies this to the Linux DT.  I haven't had to
> > modify the barebox DT for different boards but anticipate that happening
> > for the next board and I was planning to use the same system.
> 
> I think you don't need the fixup system to accomplish that. Just hook up
> to an initcall early enough and modify the barebox device tree. It
> shouldn't be necessary to register a callback first and then wait for
> its execution.

My thought was that the fixup already registered for the Linux device
tree would also cover the barebox tree, including things like oftree -l
to load a new one.  Calling the fixup function from an initcall wouldn't
get that.  I guess I'll see what happens when I need that feature.

> Are you aware of device tree overlays? We planned to merge support for
> them into barebox once the official device tree compiler supports them.
> Unfortunately this hasn't happened yet.

I thought of that, and also using include files and generating a bunch
of device trees, but decided against it.  It would be a lot of work to
add support for generating multiple device trees into the kernel build
system and buildroot which is driving everything.  And then you have a
pile of device tree/overlay files to keep track of.  And barebox has to
figure out which one to load for the kernel.

So I made a system where everything is supported by one device tree.

I also added support for specifying a tree to boot barebox with, hence
my patches for arm boot calling convention, but decided having the
xloader find a device tree fragment and pass it to the main barebox was
going to be too much of a pain.  Thus the one tree to rule them all
solution.


More information about the barebox mailing list