git: 0abe05aeac29 - main - stand: bandaide for acpi
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 21 Nov 2023 03:30:34 UTC
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=0abe05aeac29d99786401b9078e97dcead35f7f3 commit 0abe05aeac29d99786401b9078e97dcead35f7f3 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2023-11-21 03:30:16 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2023-11-21 03:30:16 +0000 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 763f8f29a4f0..8b503e1ccfb6 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 718783309687..f4a2815769c9 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