Re: Could the DTS experts look at this?
From: David Gibson <hidden>
Date: 2008-02-12 23:17:02
On Tue, Feb 12, 2008 at 12:51:06PM -0600, Scott Wood wrote:
On Tue, Feb 12, 2008 at 11:36:33AM +1100, David Gibson wrote:quoted
On Tue, Feb 12, 2008 at 01:21:44AM +0100, Arnd Bergmann wrote:quoted
On Tuesday 12 February 2008, David Gibson wrote:quoted
Or to expand. It's relatively easy now to just include multiple nodes in the tree and either delete or nop some of them out conditionally using libfdt. But the conditional logic should be in the manipulating agent (u-boot or bootwrapper or whatever), there's no way we're going to require a conditional expression parser to interpret the device tree blob itself.How about making the logic to nop out nodes a little more generic without changes to the binary format? E.g. you could have a "linux,conditional-node" property in the device tree whose value is compared to a HW configuration specific string. In Sean's example, you can have linux,conditional-node="Rev.A" in some nodes and linux,conditional-node="Rev.B" in others, then knock out all devices that have a non-matching linux,conditional-node property, and finally remove the properties themselves before starting the kernel.Well, that's basically a u-boot issue. If they want to do their input trees that way, and have helper functions that deal with it...The actual mechanism that we originially discussed, which Timur later morphed into conditions-on-nodes, was to have a separate hwoptions node, under which would be described various hwoptions (jumpers and such) whose state could be either detected by u-boot or set by environment variable. Each hwoption setting would contain a device tree fragment to be merged into the main device tree.
I'm not sure I'm entirely happy about storing the fragments under a special node - but certainly u-boot could do that if it wants. What would certainly be ok is to store various fragments as separate blobs and fold them together as necessary. Which reminds me, I meant to implement a "graft" function in libfdt. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson