Garrett: Why ACPI?
Garrett: Why ACPI?
Posted Nov 2, 2023 22:51 UTC (Thu) by Hunterprocrasinates (guest, #167806)Parent article: Garrett: Why ACPI?
The more we grant UEFI control over the OS, the worse the OS becomes. UEFI has proven itself multiple times that it isn't capable of handling things. Taking more control away from the OS and giving it to UEFI results in a worse OS. Back during the BIOS era, things weren't great either as there was no standard. However, at least the OS had almost complete control over things, meaning that if something went wrong, it was the operating system's fault. Now, with UEFI, the OS has less control over the system, and hardware is managed more by UEFI than the OS. Since UEFI firmware never fully hands control to the OS or disappears like BIOS does, if the UEFI firmware encounters a problem or error, the entire OS comes to a halt, even if the OS is well past the boot-up or login page. We need to return to a time when if the OS crashed, it was purely due to the OS's inability to handle the hardware or some bug that could be fixed with a simple kernel patch.
Posted Nov 3, 2023 0:06 UTC (Fri)
by mjg59 (subscriber, #23239)
[Link] (28 responses)
Posted Nov 3, 2023 0:41 UTC (Fri)
by Hunterprocrasinates (guest, #167806)
[Link] (27 responses)
Posted Nov 3, 2023 4:22 UTC (Fri)
by mjg59 (subscriber, #23239)
[Link] (26 responses)
Posted Nov 3, 2023 13:04 UTC (Fri)
by Hunterprocrasinates (guest, #167806)
[Link] (25 responses)
Posted Nov 3, 2023 14:14 UTC (Fri)
by farnz (subscriber, #17727)
[Link] (24 responses)
The deep fundamental is that there are details of the hardware that are unique to this system, and not part of the wider platform. If you don't have something like PC BIOS, OpenFirmware or UEFI you end up in a world where you literally have to compile your OS for the specific hardware in front of you, and you have to know exactly how the specifics of this instance of the platform are expected to behave.
This is, after all, not impossible - it's what the Commodore Amiga did, and the Acorn Archimedes range, and Old World Macs. But it means that things that we now take for granted (like the ability to replace the CPU with a newer one without replacing the OS) are no longer guaranteed to work, since the OS has to know all the details of the new hardware that didn't exist when it was written in order to be able to bring it up.
Posted Nov 4, 2023 16:29 UTC (Sat)
by raven667 (subscriber, #5198)
[Link]
The reason why this happened this way is that ARM and Android architecture did not specify any kind of standard facility to do this low-level hardware setup, they just stuffed it into Linux for expediency, where it's easy to modify, with really no consideration to the long-term maintainability of the hardware, which they'd rather sell you new hardware to get updates anyway, regardless of how wasteful of resources that actually is.
Posted Nov 5, 2023 23:33 UTC (Sun)
by Hunterprocrasinates (guest, #167806)
[Link] (22 responses)
Posted Nov 5, 2023 23:48 UTC (Sun)
by mjg59 (subscriber, #23239)
[Link] (13 responses)
Posted Nov 5, 2023 23:57 UTC (Sun)
by Hunterprocrasinates (guest, #167806)
[Link] (3 responses)
Posted Nov 6, 2023 0:30 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link]
Posted Nov 6, 2023 0:35 UTC (Mon)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
At least with UEFI there's a (somewhat) reference implementation that most (all?) vendors use: https://www.tianocore.org/ In particular, AMI uses it.
Posted Nov 6, 2023 0:48 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link]
Posted Nov 6, 2023 0:13 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link] (8 responses)
https://imgur.com/a/s7klWHu (ignore the nsfw warning. theres no nsfw on this page)
Posted Nov 6, 2023 0:28 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link] (7 responses)
Posted Nov 6, 2023 0:47 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link] (6 responses)
Posted Nov 6, 2023 0:50 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link] (5 responses)
Posted Nov 6, 2023 0:53 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link] (4 responses)
Posted Nov 6, 2023 4:31 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link] (3 responses)
Posted Nov 6, 2023 9:49 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link] (2 responses)
Posted Nov 6, 2023 10:04 UTC (Mon)
by zdzichu (subscriber, #17118)
[Link] (1 responses)
Posted Nov 6, 2023 10:29 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link]
Posted Nov 6, 2023 11:08 UTC (Mon)
by farnz (subscriber, #17727)
[Link] (7 responses)
No, I'm not - I'm saying that you need something that knows details like "you must delay 0.1 ms between enabling the DRAM voltage regulator and trying to access DRAM" that are completely specific to the hardware, and on x86-64 and SBSA ARM systems, that something is UEFI + ACPI.
The alternative is OS-specific drivers; would you prefer it if, instead of your ASUS, Dell, or Lenovo motherboard coming with a UEFI and ACPI, it came with a minimal Windows install embedded in the motherboard flash that was just functional enough to start "real" Windows and hand over hardware knowledge? That is the alternative that's been used in the past, and the result was that alternative OSes for that hardware had to somehow pick up all the details of how the hardware worked - which was different for each and every device. BIOS manufacturers are imperfect, but they're better than saying that you don't have a BIOS, you have a subset of Windows embedded in your system, and the only thing it can boot is Windows.
Posted Nov 6, 2023 12:28 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link] (6 responses)
Posted Nov 6, 2023 12:31 UTC (Mon)
by Hunterprocrasinates (guest, #167806)
[Link]
Posted Nov 6, 2023 14:11 UTC (Mon)
by farnz (subscriber, #17727)
[Link] (4 responses)
What, exactly, does UEFI handle that would be better handled by the OS? Without a concrete example, it's hard to judge what you're saying; but I'd note that my system has nothing in use right now that's handled by UEFI after it loads the kernel.
Posted Nov 10, 2023 13:55 UTC (Fri)
by Hunterprocrasinates (guest, #167806)
[Link] (3 responses)
Posted Nov 10, 2023 13:58 UTC (Fri)
by farnz (subscriber, #17727)
[Link] (2 responses)
What about ACPI would be better handled by the OS?
ACPI is a set of data tables the OS interprets to tell it how to do useful things (like enter suspend-to-RAM state, or find the PCIe Root Complex registers). If we got rid of it, the OS would have to have all of these details hard-coded for every single platform that the OS wishes to support - and you simply wouldn't be able to boot if no-one had hard-coded the right details for your motherboard + CPU combination into the OS.
Posted Nov 11, 2023 2:55 UTC (Sat)
by Hunterprocrasinates (guest, #167806)
[Link] (1 responses)
Fine you win. I don't know who to blame anymore. I'm sick of firmware bugs on other computers besides thinkpads. I Don't want to spend 7000$ on the newest linux laptop and I cant spend my money on a cheap modern computer because they are riddled with firmware bugs that affect linux.
Posted Nov 13, 2023 12:17 UTC (Mon)
by farnz (subscriber, #17727)
[Link]
Underlying this is firmware bugs, not ACPI or UEFI issues; if we replace ACPI or UEFI with something else, you'll just get a different set of buggy firmwares.
This is clear when you look at some of the crap that got put out there for OpenFirmware systems, and for platforms without a standard firmware like the Acorn platforms; they often could only boot one OS reliably, because the firmware authors "knew" that they would only run that OS.
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Ask ASUS for API description how to do that? Internet shows this data is field-programmable (for example https://support.nextcomputing.com/hc/en-us/articles/47096...-)
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?
Garrett: Why ACPI?