It always astounds me that we’re using hard-coded device trees descriptions _in the kernel_ for ARM based computers. One for each board!
Every other desktop platform has had self-describing hardware with loadable drivers for 30 years now.
Why is it like this?