
On 06/01/2012 12:38 AM, Igor Grinberg wrote:
On 05/31/12 19:50, Stephen Warren wrote:
On 05/31/2012 04:13 AM, Marek Vasut wrote:
Dear Igor Grinberg,
On 05/30/12 19:45, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
Fix the .dts file USB unit addresses not to duplicate each-other.
Fix the board name string to indicate the vendor is Compulab not NVIDIA.
Signed-off-by: Stephen Warren swarren@nvidia.com
Acked-by: Igor Grinberg grinberg@compulab.co.il
Do we have one copy of the dts files here and one in Linux kernel tree? Are they the same?
Both U-Boot and the kernel have their own copies of the .dts files.
In general, the U-Boot copy would be identical to what's in the kernel, or a pure subset since mostly the kernel's driver support is more advanced, so we've added more nodes to the DT.
That said, there are unfortunately some bizarre quirks in the way the U-Boot parses the device tree, such as requiring the /aliases node in order to enumerate at least some devices, the use of the Tegra clock binding that hasn't been incorporated into the kernel yet and is used for both clock and module reset functionality even though it's really only intended for clock functionality, and various other small properties that are U-Boot specific (although I forget if we managed to eliminate these all or not). These all end up causing differences between the two device tree files:-(
Thanks for the information.
I don't see any problem with having differences between the .dts files in kernel and U-Boot, because the way I see it:
The issue isn't so much the duplicate files, but differing content.
The whole point about DT is that it's a pure representation of the hardware; there should be no software-dependent design or data in it. Put another way, both U-Boot and the Linux kernel (and indeed anything else) should expect the DT to be written according to the same "bindings" design. This doesn't preclude the U-Boot DT file being a strict subset of the kernel file it it needs less information, but what is in both should match.
Also, IIRC, the intension was to remove the kernel .dts files after "all bootloaders" know to boot the DT kernel...
I don't believe it's anything to do with bootloaders. Bootloaders are already (in the main) expected to provide the DTB to the kernel as a separate entity, irrespective of whether the DTB is built by the kernel boot process or from some other repository. (Although there is CONFIG_APPENDED_DTB to support cases where this isn't possible, it's much preferred not to use this). Moving the .dts files out of the kernel is more purely about finding a place to put them I think.