[U-Boot-Users] fdt chosen node handling

Jerry Van Baren gerald.vanbaren at ge.com
Wed Dec 19 13:24:04 CET 2007

Stefan Roese wrote:
> Hi,
> I am wondering how the device tree "chosen" node should be handled, if it 
> already exists in the device tree blob given to U-Boot. When this node 
> doesn't exist it gets created and everything is fine. But if it already 
> exists, it doesn't get overwritten and the defaults from the device tree blob 
> most of the time are not what I really want.
> So I would like U-Boot to overwrite the existing chosen node. I discovered 
> that the fdt_chosen() function already has this "force" parameter, but it is 
> not set in the current U-Boot implementation. I would like to set it for my 
> board ports and I am wondering how I should handle this. Should this be done 
> via a compile switch (#define), or via an env variable, or...?
> Any ideas/comments on this?
> Thanks.
> Best regards,
> Stefan

Hi Stefan,

Disclaimer: I am not a OF expert, I have not read the OF documentation 
cover to cover and do not understand many implications of what I've 
read, much less what I have _not_ read.

1) I believe the /chosen node should be auto-created.

2) As you point out, if the /chosen node already exists the current code 
bails out and doesn't change anything.  This was done as a very badly 
misguided attempt to make libfdt things work like bd_t things.  The 
granularity should be on the individual properties, not on /chosen.  I 
consider this a bug and have it on my "todo" list to fix (actually, I 
had created a patch, but I need to rebase and publish it).


"Unpublished patch of JerryVanBaren, implementing a suggestion by Scott 
Wood to make the /chosen handling finer grained: if the /chosen node 
exists, currently u-boot-fdt bails out. A better methodology is to not 
overwrite pre-existing properties on a per-property basis, so if /chosen 
exists but a necessary /chosen/property doesn't, it gets created. Good 
idea, but not published and poorly tested at the moment."

Best regards,

More information about the U-Boot mailing list