From nobody Thu Jul 14 06:18:16 2022 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 87CBD1CFB253; Thu, 14 Jul 2022 06:18:16 +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 4Lk46w3SpMz3K90; Thu, 14 Jul 2022 06:18:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1657779496; 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=lPoKDzUY5vgi+cZuah+bNoCHasMJ8bu4zzbNKVvmUQ4=; b=gS1wzD27PaK8sEMyOKoJ8dsWZXSghlLKJ4VYly6mIs4tWlfgZ9z02NtPDWCR6kt2u5OO48 7U/FUparTXmWH/ev4iDrlvvcYEpTsIQ7WwC9AQCJqpODHm+x0QhDNmgc5ys9KQV0K7gLIm KWRiEAvdVEvKOnwbI9xGQjs+Ue4aT+9KtcwVFau06Iv4MQRCF7Rh28nX3vcUmXCvZ4zDOL +UhP4mi+uCTXGkvvJlzVYm+8HzRCrb/9l7U2k8XLQ0pQl+vF8p9bH+AR3a/3jF2B/ISD+x 0TCA4cL9MQ1hDmn9ZfB6Eo+NeVjHuIJ7nIrqWUuK+A/N8ZwC9TBJdnpsgJHzwA== 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 4Lk46w2SGTzsn5; Thu, 14 Jul 2022 06:18:16 +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 26E6IGAg049222; Thu, 14 Jul 2022 06:18:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 26E6IGtd049221; Thu, 14 Jul 2022 06:18:16 GMT (envelope-from git) Date: Thu, 14 Jul 2022 06:18:16 GMT Message-Id: <202207140618.26E6IGtd049221@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: 07007f314700 - main - uart: Don't check SPCR tables if !late_console 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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 07007f314700bb556baac724488b4ecbf8e4e29c Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1657779496; 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=lPoKDzUY5vgi+cZuah+bNoCHasMJ8bu4zzbNKVvmUQ4=; b=p0kYr+6qawKGk0Nc83FdKu0diS0dkZLKJZwUrQfUEUeniTGzUUsy6tQQGHOV0kD+Y4AEk5 rS7VjAr3JsaWvQ4EvyfCu0tHQLP/9wKf/fJPB5e/Tyy7ie1f01gwngfAWWElx+Dy34tawe lcWC2lcGExcBNVMFdvHkMNXjn8D01Kylh1U/T/B5bjSFvTJScf1Kip2ErizNrX6G0cPche 3Hh0OuZbUF0KsJmHe2Tmzp1DdTEgkmcDRsMycEuO09QnfZNCbyD4qJwb9QrClgVS9ixPpG KpPAbrdLRU8IEjLd4GYXeH1zBtBFVBrq4LgkhHZ03ZE+yLHO0xpyc5ensaqlgg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1657779496; a=rsa-sha256; cv=none; b=VKKtf2tm5Ng8xdMALE8aFlNXbvW3bUkcUR0oSpYweGZM0fGFo2D36r5U+7+ZwyMyDT/D8z 0dQYfQSMIt7lRbggo7hlt8zr+EH/YZY1LpjzynMfLmgyivoc0C2MiiRk1abSIDkNVGwYNl D3qNncqRGq4gVP2ZFMC8NdzkbVmE2cBIvxgrPrC8P4tuP1U7CRXcBB0UUVHA/yfa62Bz2C cZhvlSU5FOzVbc+fBreC20EYVvPLLv9prqj20mJN4Rzw3g8BBpt22ZRfsb2plqivhGFmiB kU71ndJ8NkRPL+bhoiutJxqQTlJJNNsoUjJASUVBNFcF24uA3TPpCVjm5xy6Ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=07007f314700bb556baac724488b4ecbf8e4e29c commit 07007f314700bb556baac724488b4ecbf8e4e29c Author: Colin Percival AuthorDate: 2022-07-13 00:39:00 +0000 Commit: Colin Percival CommitDate: 2022-07-14 06:17:44 +0000 uart: Don't check SPCR tables if !late_console On x86 systems, the debug.late_console tunable makes it possible to set up the console before we call pmap_bootstrap. (The tunable is turned on by default; setting late_console=0 results in consoles being probed early.) Unfortunately this is not compatible with using the ACPI SPCR table to find the console, since consulting ACPI tables requires mapping memory addresses. As such, we skip the call to uart_cpu_acpi_spcr from uart_cpu_x86 in the !late_console case. Reviewed by: imp Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D35794 --- sys/amd64/amd64/machdep.c | 3 +-- sys/dev/uart/uart_cpu_x86.c | 10 ++++++++-- sys/i386/i386/machdep.c | 3 +-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 9979592acc19..368a3c56c900 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -202,6 +202,7 @@ int cold = 1; long Maxmem = 0; long realmem = 0; +int late_console = 1; struct kva_md_info kmi; @@ -1301,7 +1302,6 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) struct user_segment_descriptor *gdt; struct region_descriptor r_gdt; size_t kstack0_sz; - int late_console; TSRAW(&thread0, TS_ENTER, __func__, NULL); @@ -1521,7 +1521,6 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) * Default to late console initialization to support these drivers. * This loses mainly printf()s in getmemsize() and early debugging. */ - late_console = 1; TUNABLE_INT_FETCH("debug.late_console", &late_console); if (!late_console) { cninit(); diff --git a/sys/dev/uart/uart_cpu_x86.c b/sys/dev/uart/uart_cpu_x86.c index b9e109646c5d..eeeabde21ebc 100644 --- a/sys/dev/uart/uart_cpu_x86.c +++ b/sys/dev/uart/uart_cpu_x86.c @@ -44,6 +44,8 @@ __FBSDID("$FreeBSD$"); bus_space_tag_t uart_bus_space_io = X86_BUS_SPACE_IO; bus_space_tag_t uart_bus_space_mem = X86_BUS_SPACE_MEM; +extern int late_console; + int uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2) { @@ -66,8 +68,12 @@ uart_cpu_getdev(int devtype, struct uart_devinfo *di) return (0); #ifdef DEV_ACPI - /* Check if SPCR can tell us what console to use. */ - if (uart_cpu_acpi_spcr(devtype, di) == 0) + /* + * Check if SPCR can tell us what console to use. If running with + * !late_console, we haven't set up our own page tables yet, so we + * can't map ACPI tables to look at them. + */ + if (late_console && uart_cpu_acpi_spcr(devtype, di) == 0) return (0); #endif diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 43c18042748e..c096ea220146 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -178,6 +178,7 @@ int cold = 1; long Maxmem = 0; long realmem = 0; +int late_console = 1; #ifdef PAE FEATURE(pae, "Physical Address Extensions"); @@ -1396,7 +1397,6 @@ init386(int first) caddr_t kmdp; vm_offset_t addend; size_t ucode_len; - int late_console; thread0.td_kstack = proc0kstack; thread0.td_kstack_pages = TD0_KSTACK_PAGES; @@ -1541,7 +1541,6 @@ init386(int first) * Default to late console initialization to support these drivers. * This loses mainly printf()s in getmemsize() and early debugging. */ - late_console = 1; TUNABLE_INT_FETCH("debug.late_console", &late_console); if (!late_console) { cninit();