
I have some confusion about FDT and what the intentions are for its support and usage in u-boot.
From what I understand so far, u-boot only supports modifying a FDT
already loaded into memory. Isn't this kind of an odd usage of a device tree? I thought a unique tree should be created for each hardware implementation (a.k.a. system board) and therefore you shouldn't be modifying it. If changes are made a new device tree should be created.
What is the intent for future support? Creation of a device tree from scratch? That seems to be what the original (open firmware) intention of FDTs were. (Allowing a bootloader to pass a implementation specific hardware list up to an operating system.) And the current Linux implementation is a little backwards from that (let kernel compiler give you a device tree which you then have to give to the bootloader to pass back up to the kernel during boot). It would seem to make more sense (in my limited understanding of FDT) to allow the bootloader to be able to generate this itself without dependence on a prior kernel compilation for that particular hardware...
If the plans aren't for u-boot to have the ability to generate a device tree would it be reasonable to create one and embed it in the u-boot binary somehow? (so that another unique binary wouldn't have to be loaded into another separate flash partition)
Thanks, Zach