
On Tue, Oct 16, 2007 at 09:03:32AM +0200, Wolfgang Grandegger wrote:
David Gibson wrote:
On Mon, Oct 15, 2007 at 09:21:54PM +0200, Wolfgang Grandegger wrote:
Kumar Gala wrote:
Guys,
Can you tell me where we stand on changes/additions to libfdt vs u- boot. I'd really like to see an updated libfdt imported into u-boot for the next window and am happy to work on the u-boot modifications as long as I understand what exactly they are.
Having fdt_get_name() and fdt_get_path() will be really useful for some fixup of device node code I've got and will allow us to drop the hard coded/explicit PATHs to nodes from <config.h>.
I'd rather see us take a clean libfdt drop rather than pulling in bits and pieces.
Yes, that would be nice but the libfdt for U-Boot may still need to be extended, especially for dynamic configuration. Therefore I would appreciate a discussion on what else we need for that purpose and how we handle (separate) common and extended libfdt functions for U-Boot. For
Again, I'm happy to add functionality to core libfdt if u-boot needs it (as long as it isn't fundamentally u-boot specific, of course).
The functions below are not really U-Boot specific.
Sure, and we have nearly all of them.
the dynamic configuration, I'm clearly in favor of function names similar to the one commonly used in Linux (with the prefix fdt:):
of_find_node_by_path of_find_node_by_type of_find_node_by_phandle of_find_compatible_node of_device_is_compatible of_get_property
Tough. The names I have are staying for the reasons I've already mentioned. And because I want to keep the libfdt API reasonably stable.
OK, just my personal opinion on gratuitous name changes. What functions are missing in the libfdt? How can I help to get them ported to the generic libfdt?
There are functions for all of these, either already in libfdt, or included in a patch I sent to jdl today.
* of_find_node_by_path => fdt_path_offset()
* of_find_node_by_type => fdt_node_offset_by_prop_value() * of_find_node_by_phandle => fdt_node_offset_by_prop_value()
Although I suspect the only reason u-boot needs the first of these is because of the broken early Freescale bindings which use device_type in ways they shouldn't.
* of_find_compatible_node => fdt_node_offset_by_compatible() * of_device_is_compatible => fdt_node_check_compatible()
Both in today's patch to jdl. Beware that fdt_node_check_compatible() has reversed sense from of_device_is_compatible() (returns 0 if the node *is* compatible). That's so it can return error codes in the normal way if passed a junk tree or offset.