Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Nov 2023 03:30:34 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 0abe05aeac29 - main - stand: bandaide for acpi
Message-ID:  <202311210330.3AL3UYoe035729@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202311210330.3AL3UYoe035729>