git: 2297a1633d86 - main - Add NO_LEGACY_PCIB kernel option to i386, amd64
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 18 Oct 2022 06:03:12 UTC
The branch main has been updated by cperciva:
URL: https://cgit.FreeBSD.org/src/commit/?id=2297a1633d86fa098c4ed7b3e5ac5c7c708fbe8a
commit 2297a1633d86fa098c4ed7b3e5ac5c7c708fbe8a
Author: Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2022-07-13 00:44:47 +0000
Commit: Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2022-10-18 06:02:22 +0000
Add NO_LEGACY_PCIB kernel option to i386, amd64
On systems without a PCI bus, legacy_pcib_identify by default creates
one anyway:
legacy_pcib_identify: no bridge found, adding pcib0 anyway
This commit adds a kernel option NO_LEGACY_PCIB which disables this,
allowing systems to be fully PCI-free.
Reviewed by: imp
Sponsored by: https://www.patreon.com/cperciva
Differential Revision: https://reviews.freebsd.org/D35798
---
sys/conf/options.amd64 | 3 +++
sys/conf/options.i386 | 3 +++
sys/x86/pci/pci_bus.c | 2 ++
3 files changed, 8 insertions(+)
diff --git a/sys/conf/options.amd64 b/sys/conf/options.amd64
index 8b98aa405953..66ccfb7bbddb 100644
--- a/sys/conf/options.amd64
+++ b/sys/conf/options.amd64
@@ -60,3 +60,6 @@ ISCI_LOGGING opt_isci.h
# EFI Runtime services support
EFIRT opt_efirt.h
+
+# Don't create a "legacy" PCI bridge if none is found.
+NO_LEGACY_PCIB opt_cpu.h
diff --git a/sys/conf/options.i386 b/sys/conf/options.i386
index f65592653a82..03e88b985107 100644
--- a/sys/conf/options.i386
+++ b/sys/conf/options.i386
@@ -104,3 +104,6 @@ XENHVM opt_global.h
# options for the Intel C600 SAS driver (isci)
ISCI_LOGGING opt_isci.h
+
+# Don't create a "legacy" PCI bridge if none is found.
+NO_LEGACY_PCIB opt_cpu.h
diff --git a/sys/x86/pci/pci_bus.c b/sys/x86/pci/pci_bus.c
index f2a919989f02..51679675ffb6 100644
--- a/sys/x86/pci/pci_bus.c
+++ b/sys/x86/pci/pci_bus.c
@@ -488,11 +488,13 @@ legacy_pcib_identify(driver_t *driver, device_t parent)
* Note that pci_cfgregopen() thinks we have PCI devices..
*/
if (!found) {
+#ifndef NO_LEGACY_PCIB
if (bootverbose)
printf(
"legacy_pcib_identify: no bridge found, adding pcib0 anyway\n");
child = BUS_ADD_CHILD(parent, 100, "pcib", 0);
legacy_set_pcibus(child, 0);
+#endif
}
}