From nobody Tue Jan 24 22:10:38 2023 X-Original-To: dev-commits-src-branches@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 4P1h4G4Ds9z3bf07; Tue, 24 Jan 2023 22:10:38 +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 4P1h4G3Mgvz4L2R; Tue, 24 Jan 2023 22:10:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674598238; 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=nsGfAs+9Bw6dfaVSpghBZjpYTm4YkjLSwQ9Vw+Kk2II=; b=HaFWkWjj0e8GvyI3MmDEem8LG8SJd1MQt25oIc7npgKt4sVOluLyKZBAgpVysMwVKUngqg ORfvL44xfSek6skfNwqb4KB7zqWA8I1l6iKQM1JqnphDqc2XjwFz2WRUisurZmkQnvOqSi mB3YypZvj06rZKmgqz1UYs01bvJg9EC21cMrn/zWzOUZ5yYtOGBUTCWmve1US6MEy0fl53 vuKdBn3C+E5HS4ANslVA/QYq+0cVH6abYPQ71l9a0bbypWuCFFCs/AdPM1pXLlX0ozmVrZ paAVOyJoXADJ/jNa11sQ4pcXV4M10dOKg12Pvf9wxKieYYfu6YW9+Js7nfhpYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674598238; 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=nsGfAs+9Bw6dfaVSpghBZjpYTm4YkjLSwQ9Vw+Kk2II=; b=XtUqbQVYPdXaCTHiZ2u8B7dLilzfE2NBpF6exPntapUatydpDSK/dtALvzXQlREJbeNNGH pB30m4t0w4vMZyeFYTz+bGIxKtT4q8wMcPvvpMMXxh37HYtNJkL8PNcEbVZBYLg5Q231oh oJD9AS0Mx4X8DR9HLPE8cN4HHgaBjBmGm75y141Pb6CMeoqP46e7kDiPYaP7CiBR7cZk6d SnDTXkpbVkKMihXxcZ8EyBjhQ16yBnFdOTRM7a2kQsXkXaEp19ERAQyxfEshiHPhqfngFc lkCxKzdDZPNt4KilfIMRudO4cqTLAzohZeeVUs3UKawDKhjQdc9Q+VXQi9012w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674598238; a=rsa-sha256; cv=none; b=R4e4+UoP99HsyznLFPNWJVG4/q57YKlsDRhPUps5gZ1+wTaW84tvj0WZYK01URd/wk1ZyQ HF24sawUU7wLolT+ixaZ5ZJNafq7u5I4cjOR8b/zc+L9Pbr03TmEfI/slBd6E28WJZ3L0c oF8FXWQWMUNPyd7tUpLnSB1MlDSs/Q4GRT1XYFoyFwGBAHzmdI1O7LrGFYrkGtApsLlh+N vyeX6T0A/L6Xws0boe3SqzNN975Uwv10md0j/TGDd1xqO0krP0xVSuOmEUYTSH9ZQXh9Az PuUE0PwB5ryIGGYAtn0hvFwgFm7Y7Zn4h5+CS8svtNVvDb44z1H56goa0wzutQ== 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 4P1h4G2R5CzQFJ; Tue, 24 Jan 2023 22:10:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30OMAcKU080327; Tue, 24 Jan 2023 22:10:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30OMAcr5080326; Tue, 24 Jan 2023 22:10:38 GMT (envelope-from git) Date: Tue, 24 Jan 2023 22:10:38 GMT Message-Id: <202301242210.30OMAcr5080326@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 29edd79482f1 - stable/13 - loader: Set preferred kenv for acpi.rsdp on arm64 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 29edd79482f167ca6bfab9be7dcbdcd9b9d072fd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=29edd79482f167ca6bfab9be7dcbdcd9b9d072fd commit 29edd79482f167ca6bfab9be7dcbdcd9b9d072fd Author: Warner Losh AuthorDate: 2022-07-02 14:00:40 +0000 Commit: Warner Losh CommitDate: 2023-01-24 21:49:22 +0000 loader: Set preferred kenv for acpi.rsdp on arm64 Several years ago, x86 moved from using hints to communicate this information to using the simpler acpi.rsdp variables. If one compiles static hints into the kernel, then these hints are ignored. We can remove this when we branch FreeBSD 15. Thought about BURN_BRIDGES here, but it's too messy. Sponsored by: Netflix Reviewed by: andrew, jhb Differential Revision: https://reviews.freebsd.org/D35632 (cherry picked from commit 37a3df3d6162b8f408b7d8a669245716771c309b) --- stand/efi/loader/arch/arm64/exec.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/stand/efi/loader/arch/arm64/exec.c b/stand/efi/loader/arch/arm64/exec.c index 6cf4a4fd8e4d..3cf1c1857f51 100644 --- a/stand/efi/loader/arch/arm64/exec.c +++ b/stand/efi/loader/arch/arm64/exec.c @@ -81,6 +81,15 @@ elf64_exec(struct preloaded_file *fp) int err, revision; void (*entry)(vm_offset_t); + /* + * Report the RSDP to the kernel. The old code used the 'hints' method + * to communite this to the kernel. However, while convenient, the + * 'hints' method is fragile and does not work when static hints are + * compiled into the kernel. Instead, move to setting different tunables + * that start with acpi. The old 'hints' can be removed before we branch + * for FreeBSD 15. + */ + rsdp = efi_get_table(&acpi20_guid); if (rsdp == NULL) { rsdp = efi_get_table(&acpi_guid); @@ -88,23 +97,29 @@ elf64_exec(struct preloaded_file *fp) if (rsdp != NULL) { sprintf(buf, "0x%016llx", (unsigned long long)rsdp); setenv("hint.acpi.0.rsdp", buf, 1); + setenv("acpi.rsdp", buf, 1); revision = rsdp->Revision; if (revision == 0) revision = 1; sprintf(buf, "%d", revision); setenv("hint.acpi.0.revision", buf, 1); + setenv("acpi.revision", buf, 1); strncpy(buf, rsdp->OemId, sizeof(rsdp->OemId)); buf[sizeof(rsdp->OemId)] = '\0'; setenv("hint.acpi.0.oem", buf, 1); + setenv("acpi.oem", buf, 1); sprintf(buf, "0x%016x", rsdp->RsdtPhysicalAddress); setenv("hint.acpi.0.rsdt", buf, 1); + setenv("acpi.rsdt", buf, 1); if (revision >= 2) { /* XXX extended checksum? */ sprintf(buf, "0x%016llx", (unsigned long long)rsdp->XsdtPhysicalAddress); setenv("hint.acpi.0.xsdt", buf, 1); + setenv("acpi.xsdt", buf, 1); sprintf(buf, "%d", rsdp->Length); setenv("hint.acpi.0.xsdt_length", buf, 1); + setenv("acpi.xsdt_length", buf, 1); } }