Remix.run Logo
kelnos 2 days ago

> You only get standardization in servers because relatively speaking the number of peripheral types on the server SoC is smaller, and their usage modes more predictable.

You get standardization on servers because of UEFI and ACPI. There are some ARM boards out there with UEFI, but for whatever reason it hasn't generally caught on in the ARM world like it has for x86.

M95D 19 hours ago | parent [-]

UEFI and ACPI had nothing to do with it.

X86 and servers existed well before ACPI, or even PCI, or even ISA PnP(!) were invented. X86 always had standards, they all had the same two 8259 interrupt controllers, same CMOS RTC, same timer, same 16550-compatible UART, same floppy controller, same VGA framebuffer addresses, even the IDE controllers were all using the same driver. Even now, x86 needs only 3 USB drivers to support basic input: UHCI, OHCI and EHCI, and all of them can be discoveded by PCI PnP - ACPI/UEFI isn't needed for this.

ARM has dozens of UART implementations, dozens of USB controllers, dozens of RTCs, probably hundreds of timers, dozens of specialized internal buses with no auto-init or discovery (PnP), each and every one turned off by default to save power and requiring specialized init by a specific driver to be functional.

That's what's wrong with ARM. Not UEFI. That and the fact that chip manufacturers don't bother to PR to mainline any of thir driver code.

UEFI will not change anything. It's a closed-source devicetree equivalent that can compromize any system at ring -2. Of course it will never be updated.