From nobody Fri Dec 8 21:46:47 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Sn4Tz5h5lz53SkB; Fri, 8 Dec 2023 21:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Sn4Tz59NMz4QNN; Fri, 8 Dec 2023 21:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1702072007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0RUlszetQ8N1KWOESC/7zxtnfiRs6Z5P64J6kwfkfeo=; b=vPxATsP4EQcEo3GW1PFVbYJS9GgQXR87SYNBJ9Vs4w3BN690xhJbmxA/BNn+0JqZOKcbQo jjEvHhKmPt2R06Nl9yRDEmn0HX347/zdoVL97PvoIOo1W5hA5OW6suoKa9LnUeqXqxSWsF SkvDRKd+uAM/R8T/8EaQS9KsdsIMBppU6GcU8q4hcw1VD5R/pjA+ma5Z7rJNyOLYdDT9Jc aL2yhpPiTk1b1JazuzDcAuVAJQb71XMI1o1L+nepKP2GAReOkMcwey6Orsnvc/wGg2RpvK q6hdQa/cscAfQIDNeH9qma7J00eG47adoHf7+Gh9r/DvEMq4Zxcbo7cwNxGSHA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1702072007; a=rsa-sha256; cv=none; b=w6dOivd66yeUzUwL1TPu/2m6LQXJn3iNi2Y4+Faamg0Q8bnl2v77UI/jZFwDjI6RinIb9z w8tH0nTVAi6mdIgMEmZQxD6RWGJKgZP8BJ1xJqyBudCmKkQlUbrBtFXLCeOWWqpDVUuRnA ex+hEXSbSx1vkFOKbKID9duY5VZnne046d9Zh1X+z7SO48QmN/ptnKrC/iyd55uT/zK2qG TwtDk8xp9vjJebNYJDdKiSTpV7VO555BgCp6tA1pi5OifE0h6cUCJ9MFhR0pWSzDsEXswZ /zCybKCtV75oE6L3V1htlqs8JMABqM1EUm5e4USh9w+Hh/Bum3bcEdWMo9ZIiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1702072007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0RUlszetQ8N1KWOESC/7zxtnfiRs6Z5P64J6kwfkfeo=; b=csszqj4uS3bNIOA0RpiY4ZLz1DL1w6zToUKTHa0ZlwxDyXAoCv+t8EagMo4AGxXgPL19m8 JlnG0TBTgt8xN8f+8tIbais0sSKAyY3H7k9ctZOw9gFqJgJSkfcR2eZOywNE12ms8l2zf3 o8RB1dMDPNMSYzLS/AADBl5VCJl6Zn1iPnmZfxBYzPdwTC8zAlFKUxvBhF1eyrzO4MCZec bMmdABlcvBrBlO2Jc4/qtJHGFIekerH2bsfhyu7OPpbRxjhETj4vAQ5sQ8chbVL/RGqnQb VDys4cIS4GZPBEDp2kzW9HWpRj+xLtOK7DSOLHAEKhczTuEg+p7OvSpbYFeNOw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Sn4Tz4F0WzctT; Fri, 8 Dec 2023 21:46:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3B8LklEU087375; Fri, 8 Dec 2023 21:46:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3B8Lklan087371; Fri, 8 Dec 2023 21:46:47 GMT (envelope-from git) Date: Fri, 8 Dec 2023 21:46:47 GMT Message-Id: <202312082146.3B8Lklan087371@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: e183039f0882 - main - loader: lua: assume late ACPI detection if the feature isn't enabled List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e183039f0882009c455c3b59fe1ab58a4fd25a5e Auto-Submitted: auto-generated The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=e183039f0882009c455c3b59fe1ab58a4fd25a5e commit e183039f0882009c455c3b59fe1ab58a4fd25a5e Author: Kyle Evans AuthorDate: 2023-12-08 21:36:06 +0000 Commit: Kyle Evans CommitDate: 2023-12-08 21:43:59 +0000 loader: lua: assume late ACPI detection if the feature isn't enabled While we're here, enable the feature in the places we detect ACPI. This lets us side-step the existing issues and provide a path forward for folks upgrading from previous releases that haven't updated their ESP yet. Let's also fix core.setACPI: the hint already indicates that the user's disabled it more consistently than loader.acpi_disabled_by_user. Even more, the latter is wrong because we set it by default if we did not detect ACPI. The ACPI hint remains even when we're setting defaults because ACPI loaded into the kernel will make some noise if it's not hinted off, even when we didn't detect it. imp notes that this will result in some relatively harmless noise on platforms that don't support ACPI but aren't using the UEFI loader, as we would enable the ACPI module for loading on them and then loader would not be able to find it. These are non-fatal, but should probably be fixed by just declaring support for EARLY_ACPI in those loaders since we know they won't have ACPI early on -- punting on this for the time being, though, in favor of providing a safer upgrade path sooner. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D42727 --- stand/efi/loader/main.c | 1 + stand/i386/libi386/biosacpi.c | 2 ++ stand/lua/core.lua | 21 +++++++++++---------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c index d6ba7ec3da44..23894d832e5e 100644 --- a/stand/efi/loader/main.c +++ b/stand/efi/loader/main.c @@ -909,6 +909,7 @@ acpi_detect(void) char buf[24]; int revision; + feature_enable(FEATURE_EARLY_ACPI); if ((rsdp = efi_get_table(&acpi20)) == NULL) if ((rsdp = efi_get_table(&acpi)) == NULL) return; diff --git a/stand/i386/libi386/biosacpi.c b/stand/i386/libi386/biosacpi.c index f94e8684c970..fcad64d81549 100644 --- a/stand/i386/libi386/biosacpi.c +++ b/stand/i386/libi386/biosacpi.c @@ -54,6 +54,8 @@ biosacpi_detect(void) char buf[24]; int revision; + feature_enable(FEATURE_EARLY_ACPI); + /* locate and validate the RSDP */ if ((rsdp = biosacpi_find_rsdp()) == NULL) return; diff --git a/stand/lua/core.lua b/stand/lua/core.lua index 3a80b0822ca6..c7581b296b8f 100644 --- a/stand/lua/core.lua +++ b/stand/lua/core.lua @@ -133,17 +133,20 @@ function core.setSingleUser(single_user) end function core.hasACPI() - return loader.getenv("acpi.rsdp") ~= nil -end + -- We can't trust acpi.rsdp to be set if the loader binary doesn't do + -- ACPI detection early enough. UEFI loader historically didn't, so + -- we'll fallback to assuming ACPI is enabled if this binary does not + -- declare that it probes for ACPI early enough + if loader.getenv("acpi.rsdp") ~= nil then + return true + end -function core.isX86() - return loader.machine_arch == "i386" or loader.machine_arch == "amd64" + return not core.hasFeature("EARLY_ACPI") end function core.getACPI() if not core.hasACPI() then - -- x86 requires ACPI pretty much - return false or core.isX86() + return false end -- Otherwise, respect disabled if it's set @@ -157,13 +160,11 @@ function core.setACPI(acpi) end if acpi then - loader.setenv("acpi_load", "YES") + config.enableModule("acpi") loader.setenv("hint.acpi.0.disabled", "0") - loader.unsetenv("loader.acpi_disabled_by_user") else - loader.unsetenv("acpi_load") + config.disableModule("acpi") loader.setenv("hint.acpi.0.disabled", "1") - loader.setenv("loader.acpi_disabled_by_user", "1") end core.acpi = acpi end