From 0abe05aeac29d99786401b9078e97dcead35f7f3 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Mon, 20 Nov 2023 20:30:16 -0700 Subject: [PATCH] stand: bandaide for acpi Old binaries do not set acpi.rsdp early enough. So when we boot with an older loader.efi from an ESP that's not been updated, we assume there's no ACPI on this system. This is unwise. Put a band-aide on this until we can implement a proper 'feature' variable that the binary reports so we can do conditionals for things like this in the future. This is at best a rapid-response stop-gap. Glanced at by: kevans Sponsored by: Netflix --- UPDATING | 6 ++++++ stand/lua/core.lua | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 763f8f29a4f..8b503e1ccfb 100644 --- a/UPDATING +++ b/UPDATING @@ -27,6 +27,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: world, or to merely disable the most expensive debugging functionality at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20231120: + If you have an arm64 system that uses ACPI, you will need to update your + loader.efi in the ESP when you update past this point. Detection of ACPI + was moved earlier in the binary so the scripts could use it, but old + binaries don't have this, so we default to 'no ACPI' in this case. + 20231113: The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled it is always installed as /usr/bin/ld. diff --git a/stand/lua/core.lua b/stand/lua/core.lua index 71878330968..f4a2815769c 100644 --- a/stand/lua/core.lua +++ b/stand/lua/core.lua @@ -136,9 +136,14 @@ function core.hasACPI() return loader.getenv("acpi.rsdp") ~= nil end +function core.isX86() + return loader.machine_arch == "i386" or loader.machine_arch == "amd64" +end + function core.getACPI() if not core.hasACPI() then - return false + -- x86 requires ACPI pretty much + return false or core.isX86() end -- Otherwise, respect disabled if it's set