Linux devs what part(s) of the kernel do you hate with a passion
That doesn’t work if you’re trying to run regular Linux on unsupported hardware (so, every Android phone, WoA laptops and old Windows Phones :P)
Trust me, I know
(etc)
So the “meta” is “oh just download this random dtb/build from X kernel tree and somehow shove this in your ESP and specify
devicetree blah
in grub”
Yeah, that doesn’t work. DT bindings in downstream kernels aren’t compatible with upstream.
Is there even a guarantee in the kernel for backwards compat for older DTs now? I remember there was some discussion a while ago and the answer was: No.
I thought this policy was adopted a while ago?
If you modify a driver, you need to ensure it doesn’t break bindings that have been in place before the change - and of course all changes need to be documented or maintainers will chase after you (i.e Robert Foss).
That kinda rules out the firmware option you are suggesting anyway right?
Well, assuming I’m right (and they did in fact adopt this policy)… no? Once you write working devicetree, you shouldn’t have to worry about it ever again since it’s supposed to be forwards-compatible.
ACPI isn’t a silver bullet either, especially on odd hardware such as Chrome{books,boxes}, which use special hardware like USB muxers, DSP, I2S codecs and so on. We often need to patch things up in firmware, as upstream maintainers are very, very stubborn - to the point where we decided to not deal with them and do as much as we can in coreboot.
This of course means that stock firmware Google ships on those machines technically supports AltFW (EDK2), but almost nothing works correctly. They don’t test it properly, we don’t want to deal with maintainers of drivers/platform/chrome
, so you basically need to replace firmware with our builds that fixes all bugs.
If you’re bringing up a new platform, you will need to do kernel and firmware work - it’s just a matter of which brings you less pain. So far for me, ARM64 seems a lot saner than x86
You can take a look at interrupt routing that gets fed into acpigen on x86 for instance… https://github.com/coreboot/coreboot/blob/main/src/soc/intel/tigerlake/acpi/pcie.asl
@frog @sterophonick @elly being forward compatible was a requirement from the start IIRC as it would have been impossible to maintain otherwise without an insanely big ci system!