Device tree is mandatory and vendors are encouraged to upstream the code. It sounds like Google has an eventual goal of building a single kernel that can boot on most devices which is a great thing for everyone.
Device tree is mandatory and vendors are encouraged to upstream the code. It sounds like Google has an eventual goal of building a single kernel that can boot on most devices which is a great thing for everyone.
To me it seems like a chicken-egg problem: silicon designers have no incentive to standardize the way SOCs work because there will be no benefit to the software ATM.
I'm curious if forcing the egg, common kernels, will have silicon designers rethink their engineering efforts in order to save time on software.
An example that comes to mind was a video chip that also had a GPIO pin that we needed to control. The chip had a driver in the kernel but it didn't have support for the GPIO (it is after all a very secondary function). That required a small patch.
It would of course have been possible to upstream it but then that meant implementing a "clean" patch (using the kernel GPIO API etc... instead of a one liner to toggle the PIN high on dereset) then submitting it upstream, maybe doing a couple of back and forth... Some will bother to do it, many won't.
[1] https://github.com/UDOOboard/linux_kernel/commit/b2fc4a3cba4...
It also means that you'd have to wait for the kernel to be released and then google to pick it up before you can use an "official" kernel for your device. In the meantime you'll have to ship your own customized version. I'm not really sure how that's going to work.
That seems to be also a goal of postmarketOS, which was discussed here recently.