Tady je pekne napsano, jak je to s ARM deskami ve skutecnosti...
https://blog.ipfire.org/post/why-ipfire-does-not-run-on-all-arm-hardware
"And it’s even worse, because if the hardware changes even a little bit (like an extra 256MB memory), we have to ship an extra kernel for that."
... nebo budu posílat jen devicetree popisek toho hardware. Což je vlastně to samý jako PC BIOS, akorát v čitelné struktuře a bez toho BIOSu.
Mozna to nekomu pripada normalni, ale porad je konfigurace ARM desek slozita. Treba ESPRESSObin, existuji 3 verze desky (512MB, 1GB a 2GB, a vlastne jeste varianty s DDR3 a DDR4), a pro konfiguraci je treba vybrat jeden z 24 u-boot souboru... Zrejme to souvisi s tim, ze kazda deska potrebuje jiny DT.
https://www.armbian.com/espressobin/
https://dl.armbian.com/espressobin/u-boot/
Já měl za to, že bez devicetree žádná embedded deska ani nemůže nabootovat (jenom pár interfaců jako PCI nebo USB má enumeraci, věci jako generickej řadič SPI můžou být na libovolné MMIO adrese), takže každá embedded deska by devicetree měla mít. Jiná otázka je ohledně distribuce. Co vidím z openwrt, tak ve vanilla kernelu je minimum SoC, u kterých není v openwrt nějaký patch, co přidává třeba celý driver.
Jo u ubootu bych se nedivil. Je moc lowlevel a co jsem se koukal do kódu, tak je dost poslepovaný, to často ani nejde nějak moc zobecnit (inicializace DDR bez paměti se složitým parsováním). Ale s devicetree to nemá nic společnýho, to je nezávislý datový prvek určený pro kernel. Může mít IMO vyhrazenou paměť ve flash a uboot pak jen předá adresu kernelu. Updatovat se pak dá i nezávisle.
jinak 2013 už devicetree dávno bylo.