[ Snipping again ]
On Thu, Jun 06, 2019 at 11:10:07AM -0400, Tom Rini wrote:
On Thu, Jun 06, 2019 at 09:08:25AM +0200, Ard Biesheuvel wrote:
On Wed, 5 Jun 2019 at 21:28, Tom Rini trini@konsulko.com wrote:
Where does this description that's coming with the board come from? That _matters_ if you want to have any idea what will be able to use it.
From the platform, not from the OS. How the firmware achieves that is left unspecified by EBBR, it only mandates that it is passed to the OS via a config table.
But it's part of the OS.
And this is is the crux of the argument. The DT is *not* part of the OS, it's a description of the *hardware* that *any* OS (or bootloader, or whatever) should be able to use. That's the whole point.
...
Because we've been talking about where the device tree comes from, and I keep trying to point out that we are no where near a proven record of "DTB is always valid and functional with the Linux Kernel from here on out". There's not the tooling nor review to enforce that and there's a few examples every year (of just in-tree device trees, not custom end products) where it gets broken.
So now, you are saying companies should only ship products with devices trees that have been reviewed by the kernel community?
No, but I am saying that intentions and reality disagree on "DTB + any kernel that supports those bindings" always resulting in "Everything continues to function as expected".
This makes no sense to me whatsoever: the DT *bindings* are the contract that we have with the platforms. If someone ships a DT that adheres to the bindings, we are on the hook to fix it. If someone ships a broken DT, it is their problem and they are fix it in their OS fork, or they issue a firmware update that fixes it.
I'm saying the DT binding contracts get broken, have a track record of getting broken and will continue to be broken. The DTB is part of the OS.
Contracts will continue to be broken as long as people think there is the flexibility to break them. It's never going to improve like this! Including the DT with the kernel was only ever intended to be a short-term bootstrap solution until vendors caught up and started shipping working DTBs in their firmware.
Cheers,
boot-architecture@lists.linaro.org