5 ms·
Is it a mess? The UEFI spec is big, but most of it is not necessary to boot. The UEFI implementation in U-Boot is tiny, and yet is enough to boot (both from lo
by floatboth 8y ago
Is it a mess? The UEFI spec is big, but most of it is not necessary to boot.
The UEFI implementation in U-Boot is tiny, and yet is enough to boot (both from local storage and network) and have a text console.
Most non-embedded board vendors do not reimplement UEFI. There's not much to get right or wrong. They just take AMI or whoever's private fork of TianoCore, tweak some settings and customize the GUI. (It is possible to screw up the GUI though: https://youtu.be/F-ndTMeRT3s https://youtu.be/F-ndTMeRT3s)
As mentioned in other comments, it's ACPI that's really bad.
Though at least it's a standard! On ARM, you typically have to have a driver for every. damn. power. controller. Thankfully, ACPI is now appearing on higher end ARM stuff (servers like ThunderX, workstations like Overdrive, hopefully the new Microsoft always-connected laptops?)
- rayiner 8y ago> Thankfully, ACPI is now appearing on higher end ARM stuff (servers like ThunderX, workstations like Overdrive, hopefully the new Microsoft always-connected laptops?) I can't believe anyone would be thankful about ACPI. Is there a machine with ACPI that isn't broken in some way? My brand new Lenovo, which multiple sites have crowned the "best" PC laptop, ships with a LTE card that can't properly power down, and causes PCI-E ASPM to be disabled. Even Microsoft has f--ked up power management repeatedly in the Surface line. Power management on PCs is such a disaster that it calls into question the very idea of doing power management for computers built out of mix-and-match components through standards like ACPI.
- rektide 8y agoI dunno. I've worked with a bunch of different ARM chips and each one's workflow is "build a kernel, build an initrd, then use this magic tool to get our boot ROM to load it" and that's always been gross & dumb. I'm not necessarily cheery about ACPI in practice, but ACPI & UEFI in theory provide some kind of substrate to manage the platform, that's not just whatever the engineers are some shop cooked up this time.
- floatboth 8y agoThanks to Flattened Device Trees, you don't have to build special per device kernels, you can just have a generic kernel that includes drivers for all the SoCs. But having individual drivers per SoC in the kernel for things like power management still sucks.