On Wed, 5 Jun 2019 at 13:14, Mark Brown broonie@kernel.org wrote:
On Wed, Jun 05, 2019 at 11:18:44AM +0100, Steve McIntyre wrote:
Nod. We're *way* past the time where this should have stopped. How on earth do we get to common DT useful for all bootloaders, OSes (etc.) if people still consider the bundled, changing sources in the Linux tree to be canonical?
It's a chicken and egg situation - for the platforms where nobody is actually shipping systems with a separate device tree it's easy for people to miss accidental incompatibilities without noticing, or decide that deliberate incompatibilites won't be noticed. If there's users making noise that's a lot harder to do. Pushing on EBBR is going to help there, and it'd really help if there were more hardware built with separate boot storage :/
Some of the platforms *are* doing a good job of not needlessly churning their device trees (they're just not very noticable since things just work and they make no noise), and even without people worrying about separately distributed DTs widely adopted in tree bindings are doing a lot for stability due to the number of places that would need updates for incompatibilites (and also avoiding the DMI quirk tables ACPI relies on which is nice).
I am not disagreeing with any of this. But it is helpful to keep in mind that, in the context what we are trying to achieve, the requirement/expectation that a DT lives on git.kernel.org and gets packaged and shipped by the distro makes no sense at all.
The idea of EBBR is to move away from a vertically integrated model, and permit systems or appliances to use packaged OSes in the field, similar to how this is being done on servers today. The idea that it is required for, say, company X shipping product Yrev0, to upstream a new rev of the DT in order to tweak their board and ship product Yrev1 is simply ridiculous. It doesn't scale, and we shouldn't care - the DT bindings is what we care about, and if it adheres to those, the platform can provide any DT it wants, and there is no reason the kernel devs should ever need to look at it.
For development, things are obviously different, I understand that. Shipping DTs for devboards makes sense, especially while the DT bindings are not set in stone yet. But imposing this model for production is unsustainable.