aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/conf
diff options
context:
space:
mode:
Diffstat (limited to 'sys/amd64/conf')
-rw-r--r--sys/amd64/conf/DEFAULTS7
-rw-r--r--sys/amd64/conf/FIRECRACKER196
-rw-r--r--sys/amd64/conf/GENERIC67
-rw-r--r--sys/amd64/conf/GENERIC-KASAN1
-rw-r--r--sys/amd64/conf/GENERIC-KCSAN1
-rw-r--r--sys/amd64/conf/GENERIC-KMSAN1
-rw-r--r--sys/amd64/conf/GENERIC-MMCCAM39
-rw-r--r--sys/amd64/conf/GENERIC-NODEBUG3
-rw-r--r--sys/amd64/conf/GENERIC.hints17
-rw-r--r--sys/amd64/conf/LINT1
-rw-r--r--sys/amd64/conf/LINT-NOINET4
-rw-r--r--sys/amd64/conf/LINT-NOINET62
-rw-r--r--sys/amd64/conf/LINT-NOIP2
-rw-r--r--sys/amd64/conf/LINT-NOVIMAGE4
-rw-r--r--sys/amd64/conf/MINIMAL46
-rw-r--r--sys/amd64/conf/MINIMAL-NODEBUG11
-rw-r--r--sys/amd64/conf/NOTES593
17 files changed, 339 insertions, 656 deletions
diff --git a/sys/amd64/conf/DEFAULTS b/sys/amd64/conf/DEFAULTS
index 5ea20c19f791..eb8ee6b76a69 100644
--- a/sys/amd64/conf/DEFAULTS
+++ b/sys/amd64/conf/DEFAULTS
@@ -1,10 +1,11 @@
#
# DEFAULTS -- Default kernel configuration file for FreeBSD/amd64
#
-# $FreeBSD$
machine amd64
+options EARLY_AP_STARTUP
+
# Bus support.
device isa
@@ -22,6 +23,6 @@ options GEOM_PART_MBR
options GEOM_PART_GPT
# Default congestion control algorithm
-options CC_NEWRENO # include newreno congestion control
+options CC_CUBIC # include CUBIC congestion control
-options NEW_PCIB
+options NETLINK # netlink(4) support
diff --git a/sys/amd64/conf/FIRECRACKER b/sys/amd64/conf/FIRECRACKER
new file mode 100644
index 000000000000..a36fb974c24e
--- /dev/null
+++ b/sys/amd64/conf/FIRECRACKER
@@ -0,0 +1,196 @@
+#
+# FIRECRACKER -- kernel configuration file for Firecracker VM
+#
+# This is largely a stripped-down version of the GENERIC kernel configuration
+# file, without drivers for hardware which will never appear inside the
+# Firecracker VM environment. It adds support for the Virtio MMIO bus,
+# which Firecracker uses for exposing devices, and legacy mptable, which
+# Firecracker uses for exposing information about CPUs (since it doesn't
+# support ACPI).
+#
+# Since Firecracker loads the kernel directly via the PVH boot protocol,
+# it bypasses the boot loader; some environment variables are hard-coded
+# here which would normally be provided via device hints or loader.conf.
+#
+# For more information about the Firecracker VM, see:
+#
+# https://firecracker-microvm.github.io/
+
+cpu HAMMER
+ident FIRECRACKER
+
+makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
+makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
+
+options SCHED_ULE # ULE scheduler
+options NUMA # Non-Uniform Memory Architecture support
+options PREEMPTION # Enable kernel thread preemption
+options VIMAGE # Subsystem virtualization, e.g. VNET
+options INET # InterNETworking
+options INET6 # IPv6 communications protocols
+options IPSEC_SUPPORT # Allow kldload of ipsec and tcpmd5
+options ROUTE_MPATH # Multipath routing support
+options FIB_ALGO # Modular fib lookups
+options TCP_OFFLOAD # TCP offload
+options TCP_BLACKBOX # Enhanced TCP event logging
+options TCP_HHOOK # hhook(9) framework for TCP
+options TCP_RFC7413 # TCP Fast Open
+options SCTP_SUPPORT # Allow kldload of SCTP
+options KERN_TLS # TLS transmit & receive offload
+options FFS # Berkeley Fast Filesystem
+options SOFTUPDATES # Enable FFS soft updates support
+options UFS_ACL # Support for access control lists
+options UFS_DIRHASH # Improve performance on big directories
+options UFS_GJOURNAL # Enable gjournal-based UFS journaling
+options QUOTA # Enable disk quotas for UFS
+options MD_ROOT # MD is a potential root device
+options NFSCL # Network Filesystem Client
+options NFSD # Network Filesystem Server
+options NFSLOCKD # Network Lock Manager
+options NFS_ROOT # NFS usable as /, requires NFSCL
+options MSDOSFS # MSDOS Filesystem
+options CD9660 # ISO 9660 Filesystem
+options PROCFS # Process filesystem (requires PSEUDOFS)
+options PSEUDOFS # Pseudo-filesystem framework
+options TMPFS # Efficient memory filesystem
+options GEOM_RAID # Soft RAID functionality.
+options GEOM_LABEL # Provides labelization
+options EFIRT # EFI Runtime Services support
+options COMPAT_FREEBSD32 # Compatible with i386 binaries
+options COMPAT_FREEBSD10 # Compatible with FreeBSD10
+options COMPAT_FREEBSD11 # Compatible with FreeBSD11
+options COMPAT_FREEBSD12 # Compatible with FreeBSD12
+options COMPAT_FREEBSD13 # Compatible with FreeBSD13
+options COMPAT_FREEBSD14 # Compatible with FreeBSD14
+options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
+options KTRACE # ktrace(1) support
+options STACK # stack(9) support
+options SYSVSHM # SYSV-style shared memory
+options SYSVMSG # SYSV-style message queues
+options SYSVSEM # SYSV-style semaphores
+options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
+options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
+options KBD_INSTALL_CDEV # install a CDEV entry in /dev
+options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
+options AUDIT # Security event auditing
+options CAPABILITY_MODE # Capsicum capability mode
+options CAPABILITIES # Capsicum capabilities
+options MAC # TrustedBSD MAC Framework
+options KDTRACE_FRAME # Ensure frames are compiled in
+options KDTRACE_HOOKS # Kernel DTrace hooks
+options DDB_CTF # Kernel ELF linker loads CTF data
+options INCLUDE_CONFIG_FILE # Include this file in kernel
+options RACCT # Resource accounting framework
+options RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
+options RCTL # Resource limits
+
+# Debugging support. Always need this:
+options KDB # Enable kernel debugger support.
+options KDB_TRACE # Print a stack trace for a panic.
+# For full debugger support use (turn off in stable branch):
+options BUF_TRACKING # Track buffer history
+options DDB # Support DDB.
+options FULL_BUF_TRACKING # Track more buffer history
+options GDB # Support remote GDB.
+options DEADLKRES # Enable the deadlock resolver
+options INVARIANTS # Enable calls of extra sanity checking
+options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
+options QUEUE_MACRO_DEBUG_TRASH # Trash queue(2) internal pointers on invalidation
+options WITNESS # Enable checks to detect deadlocks and cycles
+options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
+options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
+options VERBOSE_SYSINIT=0 # Support debug.verbose_sysinit, off by default
+
+# Kernel dump features.
+options EKCD # Support for encrypted kernel dumps
+options GZIO # gzip-compressed kernel and user dumps
+options ZSTDIO # zstd-compressed kernel and user dumps
+options DEBUGNET # debugnet networking
+options NETDUMP # netdump(4) client support
+options NETGDB # netgdb(4) client support
+
+# Make an SMP-capable kernel by default
+options SMP # Symmetric MultiProcessor Kernel
+
+# Pseudo devices.
+device crypto # core crypto support
+device aesni # AES-NI OpenCrypto module
+device loop # Network loopback
+device rdrand_rng # Intel Bull Mountain RNG
+device ether # Ethernet support
+device vlan # 802.1Q VLAN support
+device tuntap # Packet tunnel.
+device md # Memory "disks"
+device gif # IPv6 and IPv4 tunneling
+device firmware # firmware assist module
+device xz # lzma decompression
+device bpf # Berkeley packet filter
+
+# Serial (COM) ports
+device uart # Generic UART driver
+
+# VirtIO support
+device virtio # Generic VirtIO bus (required)
+device virtio_mmio # VirtIO MMIO bus
+device vtnet # VirtIO Ethernet device
+device virtio_blk # VirtIO Block device
+
+# Linux KVM paravirtualization support
+device kvm_clock # KVM paravirtual clock driver
+
+# Netmap provides direct access to TX/RX rings on supported NICs
+device netmap # netmap(4) support
+
+# Firecracker exposes information via the legacy MP Table mechanism
+# rather than via ACPI (which it does not implement).
+device mptable
+
+# Firecracker launches the FreeBSD kernel directly, via the PVH boot
+# protocol, rather than via the boot loader; as such, we need to bake
+# device hints into the kernel configuration rather than relying on
+# device.hints being loaded, and likewise have no loader.conf to place
+# other settings into.
+envvar hint.uart.0.at="isa"
+envvar hint.uart.0.port="0x3F8"
+envvar hint.uart.0.flags="0x10"
+envvar hint.uart.0.irq="0x4"
+envvar hint.acpi.0.disabled="1"
+
+# Inside a VM, "power off" doesn't really yank the AC power, so there's
+# no need to worry about disks flushing caches before losing power.
+envvar kern.shutdown.poweroff_delay="0"
+
+# Firecracker seems to have a bug in its UART emulation. This works
+# around the problem.
+envvar hw.broken_txfifo="1"
+
+# We don't have an early timecounter to calibrate the TSC against, so
+# skip that; later in the boot process we have other timecounters.
+envvar machdep.disable_tsc_calibration="1"
+
+# Provide bug-for-bug compatibility with Linux in MP Table searching
+# and parsing. Firecracker relies on these bugs.
+options MPTABLE_LINUX_BUG_COMPAT
+
+# Disable the automatic registration of a PCI bridge; we do in fact
+# not have one.
+options NO_LEGACY_PCIB
+
+# Bus support.
+# Note that Firecracker provides neither ACPI nor PCI; but removing these
+# devices currently (2022-07-09) prevents the kernel from building.
+device acpi
+device pci
+
+# Xen HVM Guest Optimizations
+# NOTE: XENHVM depends on xenpci and xentimer.
+# They must be added or removed together.
+# NOTE: These are present in FIRECRACKER because the PVH boot method
+# originates from Xen; once that code is untangled these can be removed.
+options XENHVM # Xen HVM kernel infrastructure
+device xenpci # Xen HVM Hypervisor services driver
+device xentimer # Xen x86 PV timer device
+
+# EFI devices
+device efidev # EFI pseudo-device
+device efirtc # EFI RTC
diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
index 53c6043a0146..fb8473505128 100644
--- a/sys/amd64/conf/GENERIC
+++ b/sys/amd64/conf/GENERIC
@@ -16,7 +16,6 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD$
cpu HAMMER
ident GENERIC
@@ -27,18 +26,20 @@ makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
options SCHED_ULE # ULE scheduler
options NUMA # Non-Uniform Memory Architecture support
options PREEMPTION # Enable kernel thread preemption
+options EXTERR_STRINGS
options VIMAGE # Subsystem virtualization, e.g. VNET
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options IPSEC_SUPPORT # Allow kldload of ipsec and tcpmd5
-options ROUTE_MPATH # Multipath routing support
-options FIB_ALGO # Modular fib lookups
+options IPSEC_OFFLOAD # Inline ipsec offload infra
+options ROUTE_MPATH # Multipath routing support
+options FIB_ALGO # Modular fib lookups
options TCP_OFFLOAD # TCP offload
options TCP_BLACKBOX # Enhanced TCP event logging
options TCP_HHOOK # hhook(9) framework for TCP
-options TCP_RFC7413 # TCP Fast Open
+options TCP_RFC7413 # TCP Fast Open
options SCTP_SUPPORT # Allow kldload of SCTP
-options KERN_TLS # TLS transmit & receive offload
+options KERN_TLS # TLS transmit & receive offload
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
@@ -68,6 +69,7 @@ options COMPAT_FREEBSD10 # Compatible with FreeBSD10
options COMPAT_FREEBSD11 # Compatible with FreeBSD11
options COMPAT_FREEBSD12 # Compatible with FreeBSD12
options COMPAT_FREEBSD13 # Compatible with FreeBSD13
+options COMPAT_FREEBSD14 # Compatible with FreeBSD14
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
@@ -94,25 +96,7 @@ options RCTL # Resource limits
options KDB # Enable kernel debugger support.
options KDB_TRACE # Print a stack trace for a panic.
# For full debugger support use (turn off in stable branch):
-options BUF_TRACKING # Track buffer history
-options DDB # Support DDB.
-options FULL_BUF_TRACKING # Track more buffer history
-options GDB # Support remote GDB.
-options DEADLKRES # Enable the deadlock resolver
-options INVARIANTS # Enable calls of extra sanity checking
-options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
-options QUEUE_MACRO_DEBUG_TRASH # Trash queue(2) internal pointers on invalidation
-options WITNESS # Enable checks to detect deadlocks and cycles
-options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
-options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
-options VERBOSE_SYSINIT=0 # Support debug.verbose_sysinit, off by default
-
-# Kernel Sanitizers
-#options COVERAGE # Generic kernel coverage. Used by KCOV
-#options KCOV # Kernel Coverage Sanitizer
-# Warning: KUBSAN can result in a kernel too large for loader to load
-#options KUBSAN # Kernel Undefined Behavior Sanitizer
-#options KCSAN # Kernel Concurrency Sanitizer
+include "std.debug"
# Kernel dump features.
options EKCD # Support for encrypted kernel dumps
@@ -124,7 +108,6 @@ options NETGDB # netgdb(4) client support
# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel
-options EARLY_AP_STARTUP
# CPU frequency control
device cpufreq
@@ -135,7 +118,7 @@ device smbios
options IOMMU
device pci
options PCI_HP # PCI-Express native HotPlug
-options PCI_IOV # PCI SR-IOV support
+options PCI_IOV # PCI SR-IOV support
options COMPAT_LINUXKPI
@@ -163,6 +146,7 @@ device isp # Qlogic family
device mpt # LSI-Logic MPT-Fusion
device mps # LSI-Logic MPT-Fusion 2
device mpr # LSI-Logic MPT-Fusion 3
+device mpi3mr # LSI-Logic MPT-Fusion 4
device sym # NCR/Symbios Logic
device isci # Intel C600 SAS controller
device ocs_fc # Emulex FC adapters
@@ -193,15 +177,16 @@ device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device mrsas # LSI/Avago MegaRAID SAS/SATA, 6Gb/s and 12Gb/s
-device pmspcv # PMC-Sierra SAS/SATA Controller driver
#XXX pointer/int warnings
#device pst # Promise Supertrak SX6000
-device twe # 3ware ATA RAID
# NVM Express (NVMe) support
device nvme # base NVMe driver
device nvd # expose NVMe namespaces as disks, depends on nvme
+# Universal Flash Storage Host Controller Interface support
+device ufshci # UFS host controller
+
# Intel Volume Management Device (VMD) support
device vmd
@@ -260,7 +245,8 @@ device le # AMD Am7900 LANCE and Am79C9xx PCnet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
# Nvidia/Mellanox Connect-X 4 and later, Ethernet only
-# mlx5ib requires ibcore infra and is not included by default
+# o requires COMPAT_LINUXKPI and xz(4)
+# o mlx5ib requires ibcore infra and is not included by default
device mlx5 # Base driver
device mlxfw # Firmware update
device mlx5en # Ethernet driver
@@ -301,14 +287,13 @@ device wlan # 802.11 support
options IEEE80211_DEBUG # enable debug msgs
options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
+device wlan_ccmp # 802.11 CCMP support
+device wlan_gcmp # 802.11 GCMP support
device wlan_amrr # AMRR transmit rate control algorithm
-device ath # Atheros NICs
-device ath_pci # Atheros pci/cardbus glue
-device ath_hal # pci/cardbus chip support
+device ath # Atheros CardBus/PCI NICs
+device ath_hal # Atheros CardBus/PCI chip support
options AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
-options ATH_ENABLE_11N # Enable 802.11n support for AR5416 and later
device ath_rate_sample # SampleRate tx rate control for ath
#device bwi # Broadcom BCM430x/BCM431x wireless NICs.
#device bwn # Broadcom BCM43xx wireless NICs.
@@ -324,7 +309,6 @@ device wpi # Intel 3945ABG wireless NICs.
device crypto # core crypto support
device aesni # AES-NI OpenCrypto module
device loop # Network loopback
-device padlock_rng # VIA Padlock RNG
device rdrand_rng # Intel Bull Mountain RNG
device ether # Ethernet support
device vlan # 802.1Q VLAN support
@@ -346,7 +330,9 @@ device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device xhci # XHCI PCI->USB interface (USB 3.0)
device usb # USB Bus (required)
-device ukbd # Keyboard
+device usbhid # USB HID Transport
+device hkbd # HID Keyboard
+device ukbd # USB Keyboard
device umass # Disks/Mass storage - Requires scbus and da
# Sound support
@@ -363,7 +349,6 @@ device snd_via8233 # VIA VT8233x Audio
device mmc # MMC/SD bus
device mmcsd # MMC/SD memory card
device sdhci # Generic PCI SD Host Controller
-device rtsx # Realtek SD card reader
# VirtIO support
device virtio # Generic VirtIO bus (required)
@@ -377,12 +362,13 @@ device virtio_balloon # VirtIO Memory Balloon device
device kvm_clock # KVM paravirtual clock driver
# HyperV drivers and enhancement support
-device hyperv # HyperV drivers
+device hyperv # HyperV drivers
# Xen HVM Guest Optimizations
# NOTE: XENHVM depends on xenpci and xentimer.
# They must be added or removed together.
options XENHVM # Xen HVM kernel infrastructure
+device xenefi # Xen EFI timer device
device xenpci # Xen HVM Hypervisor services driver
device xentimer # Xen x86 PV timer device
@@ -397,4 +383,9 @@ device uinput # install /dev/uinput cdev
# HID support
options HID_DEBUG # enable debug msgs
device hid # Generic HID support
+device hidbus # Generic HID Bus
options IICHID_SAMPLING # Workaround missing GPIO INTR support
+
+# EFI devices
+device efidev # EFI pseudo-device
+device efirtc # EFI RTC
diff --git a/sys/amd64/conf/GENERIC-KASAN b/sys/amd64/conf/GENERIC-KASAN
index 8d5703141e86..5aa2d50d3cca 100644
--- a/sys/amd64/conf/GENERIC-KASAN
+++ b/sys/amd64/conf/GENERIC-KASAN
@@ -1,4 +1,3 @@
-# $FreeBSD$
include GENERIC
diff --git a/sys/amd64/conf/GENERIC-KCSAN b/sys/amd64/conf/GENERIC-KCSAN
index b578fbf641cd..a0970f2a46a4 100644
--- a/sys/amd64/conf/GENERIC-KCSAN
+++ b/sys/amd64/conf/GENERIC-KCSAN
@@ -24,7 +24,6 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD$
include GENERIC
diff --git a/sys/amd64/conf/GENERIC-KMSAN b/sys/amd64/conf/GENERIC-KMSAN
index 0afbade172b4..e147d8b8168b 100644
--- a/sys/amd64/conf/GENERIC-KMSAN
+++ b/sys/amd64/conf/GENERIC-KMSAN
@@ -1,4 +1,3 @@
-# $FreeBSD$
include GENERIC
diff --git a/sys/amd64/conf/GENERIC-MMCCAM b/sys/amd64/conf/GENERIC-MMCCAM
index 8a5bc7175d68..65bada999030 100644
--- a/sys/amd64/conf/GENERIC-MMCCAM
+++ b/sys/amd64/conf/GENERIC-MMCCAM
@@ -1,32 +1,19 @@
-# MMCCAM is the kernel config for doing MMC on CAM development
-# and testing on bhyve
-# $FreeBSD$
+#
+# GENERIC-MMCCAM
+#
+# Custom kernel for GENERIC plus MMCCAM as opposed to the prior MMC stack.
+#
-include MINIMAL
+#NO_UNIVERSE
-ident GENERIC-MMCCAM
-
-# Access GPT-formatted and labeled root volume
-options GEOM_LABEL
+include GENERIC
-# UART -- for bhyve console
-device uart
-
-# VirtIO support, needed for bhyve
-device virtio # Generic VirtIO bus (required)
-device virtio_pci # VirtIO PCI device
-device vtnet # VirtIO Ethernet device
-device virtio_blk # VirtIO Block device
-device virtio_scsi # VirtIO SCSI device
-device virtio_balloon # VirtIO Memory Balloon device
+ident GENERIC-MMCCAM
-# CAM-specific stuff
-device pass
-device scbus
-device da
+options MMCCAM
-options MMCCAM
+# Allow for CAM debugging
+options CAMDEBUG
-# Add CAMDEBUG stuff
-options CAMDEBUG
-options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH)
+nodevice mmc
+nodevice mmcsd
diff --git a/sys/amd64/conf/GENERIC-NODEBUG b/sys/amd64/conf/GENERIC-NODEBUG
index 1c767e84d483..1939b0efd352 100644
--- a/sys/amd64/conf/GENERIC-NODEBUG
+++ b/sys/amd64/conf/GENERIC-NODEBUG
@@ -24,9 +24,8 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD$
include GENERIC
-include "../../conf/std.nodebug"
+include "std.nodebug"
ident GENERIC-NODEBUG
diff --git a/sys/amd64/conf/GENERIC.hints b/sys/amd64/conf/GENERIC.hints
index 31311d03fc94..4f6121c7cf77 100644
--- a/sys/amd64/conf/GENERIC.hints
+++ b/sys/amd64/conf/GENERIC.hints
@@ -1,12 +1,3 @@
-# $FreeBSD$
-hint.fdc.0.at="isa"
-hint.fdc.0.port="0x3F0"
-hint.fdc.0.irq="6"
-hint.fdc.0.drq="2"
-hint.fd.0.at="fdc0"
-hint.fd.0.drive="0"
-hint.fd.1.at="fdc0"
-hint.fd.1.drive="1"
hint.atkbdc.0.at="isa"
hint.atkbdc.0.port="0x060"
hint.atkbd.0.at="atkbdc"
@@ -15,15 +6,11 @@ hint.psm.0.at="atkbdc"
hint.psm.0.irq="12"
hint.sc.0.at="isa"
hint.sc.0.flags="0x100"
-hint.uart.0.at="isa"
+hint.uart.0.at="acpi"
hint.uart.0.port="0x3F8"
hint.uart.0.flags="0x10"
-hint.uart.0.irq="4"
-hint.uart.1.at="isa"
+hint.uart.1.at="acpi"
hint.uart.1.port="0x2F8"
-hint.uart.1.irq="3"
-hint.ppc.0.at="isa"
-hint.ppc.0.irq="7"
hint.atrtc.0.at="isa"
hint.atrtc.0.port="0x70"
hint.atrtc.0.irq="8"
diff --git a/sys/amd64/conf/LINT b/sys/amd64/conf/LINT
index 9618f78944ab..41207eb63cb9 100644
--- a/sys/amd64/conf/LINT
+++ b/sys/amd64/conf/LINT
@@ -1,4 +1,3 @@
-# $FreeBSD$
include "../../conf/NOTES"
include "../../x86/conf/NOTES"
diff --git a/sys/amd64/conf/LINT-NOINET b/sys/amd64/conf/LINT-NOINET
index 2e4366ef8996..f5e704f6c071 100644
--- a/sys/amd64/conf/LINT-NOINET
+++ b/sys/amd64/conf/LINT-NOINET
@@ -1,8 +1,4 @@
-# $FreeBSD$
include LINT
ident LINT-NOINET
-makeoptions MKMODULESENV+="WITHOUT_INET_SUPPORT="
nooptions INET
-nodevice gre
-nodevice netmap
diff --git a/sys/amd64/conf/LINT-NOINET6 b/sys/amd64/conf/LINT-NOINET6
index ffb275fd68d9..041916883277 100644
--- a/sys/amd64/conf/LINT-NOINET6
+++ b/sys/amd64/conf/LINT-NOINET6
@@ -1,6 +1,4 @@
-# $FreeBSD$
include LINT
ident LINT-NOINET6
-makeoptions MKMODULESENV+="WITHOUT_INET6_SUPPORT="
nooptions INET6
diff --git a/sys/amd64/conf/LINT-NOIP b/sys/amd64/conf/LINT-NOIP
index 0d4ec1e8c1ac..b3006cdb363e 100644
--- a/sys/amd64/conf/LINT-NOIP
+++ b/sys/amd64/conf/LINT-NOIP
@@ -1,4 +1,3 @@
-# $FreeBSD$
include LINT
ident LINT-NOIP
@@ -13,6 +12,7 @@ nodevice ale
nodevice bxe
nodevice em
nodevice fxp
+nodevice gve
nodevice jme
nodevice lio
nodevice msk
diff --git a/sys/amd64/conf/LINT-NOVIMAGE b/sys/amd64/conf/LINT-NOVIMAGE
new file mode 100644
index 000000000000..e58df1214fe2
--- /dev/null
+++ b/sys/amd64/conf/LINT-NOVIMAGE
@@ -0,0 +1,4 @@
+
+include LINT
+ident LINT-NOVIMAGE
+nooptions VIMAGE
diff --git a/sys/amd64/conf/MINIMAL b/sys/amd64/conf/MINIMAL
index 62f942eef677..61c713c609a4 100644
--- a/sys/amd64/conf/MINIMAL
+++ b/sys/amd64/conf/MINIMAL
@@ -6,10 +6,6 @@
# modules.
#
# Exceptions:
-# o While UFS is buildable as a module, the current module lacks
-# some features (ACL, GJOURNAL) that GENERIC includes.
-# o acpi as a module has been reported flakey and not well tested, so
-# is included in the kernel.
# o (non-loaded) random is included due to uncertainty...
# o Many networking things are included
#
@@ -30,7 +26,6 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD$
cpu HAMMER
ident MINIMAL
@@ -41,33 +36,27 @@ makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support
options SCHED_ULE # ULE scheduler
options NUMA # Non-Uniform Memory Architecture support
options PREEMPTION # Enable kernel thread preemption
+options VIMAGE # Subsystem virtualization, e.g. VNET
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options TCP_OFFLOAD # TCP offload
options SCTP_SUPPORT # Allow kldload of SCTP
-options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options QUOTA # Enable disk quotas for UFS
options MD_ROOT # MD is a potential root device
+options GEOM_LABEL # Provides labelization
options COMPAT_FREEBSD32 # Compatible with i386 binaries
-options COMPAT_FREEBSD4 # Compatible with FreeBSD4
-options COMPAT_FREEBSD5 # Compatible with FreeBSD5
-options COMPAT_FREEBSD6 # Compatible with FreeBSD6
-options COMPAT_FREEBSD7 # Compatible with FreeBSD7
-options COMPAT_FREEBSD9 # Compatible with FreeBSD9
options COMPAT_FREEBSD10 # Compatible with FreeBSD10
options COMPAT_FREEBSD11 # Compatible with FreeBSD11
options COMPAT_FREEBSD12 # Compatible with FreeBSD12
options COMPAT_FREEBSD13 # Compatible with FreeBSD13
+options COMPAT_FREEBSD14 # Compatible with FreeBSD14
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
-options SYSVSHM # SYSV-style shared memory
-options SYSVMSG # SYSV-style message queues
-options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
@@ -84,10 +73,11 @@ options INCLUDE_CONFIG_FILE # Include this file in kernel
# Debugging support. Always need this:
options KDB # Enable kernel debugger support.
options KDB_TRACE # Print a stack trace for a panic.
+# For full debugger support use (turn off in stable branch):
+include "std.debug"
# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel
-options EARLY_AP_STARTUP
# CPU frequency control
device cpufreq
@@ -118,13 +108,11 @@ device vt_vbefb
device agp # support several AGP chipsets
-# Bring in 'uart' as well, since it can be a console driver and all console
-# drivers must be compiled into the kernel.
-device uart
+# Serial (COM) ports
+device uart # Generic UART driver
# Pseudo devices.
device loop # Network loopback
-device padlock_rng # VIA Padlock RNG
device rdrand_rng # Intel Bull Mountain RNG
device ether # Ethernet support
@@ -133,6 +121,13 @@ device ether # Ethernet support
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
+# VirtIO support
+device virtio # Generic VirtIO bus (required)
+device virtio_pci # VirtIO PCI device
+device vtnet # VirtIO Ethernet device
+device virtio_blk # VirtIO Block device
+device virtio_balloon # VirtIO Memory Balloon device
+
# Linux KVM paravirtualization support
device kvm_clock # KVM paravirtual clock driver
@@ -140,6 +135,7 @@ device kvm_clock # KVM paravirtual clock driver
# NOTE: XENHVM depends on xenpci and xentimer.
# They must be added or removed together.
options XENHVM # Xen HVM kernel infrastructure
+device xenefi # Xen EFI timer device
device xenpci # Xen HVM Hypervisor services driver
device xentimer # Xen x86 PV timer device
@@ -147,3 +143,15 @@ device xentimer # Xen x86 PV timer device
options EVDEV_SUPPORT # evdev support in legacy drivers
device evdev # input event device support
device uinput # install /dev/uinput cdev
+
+# NVM Express (NVMe) support
+device nvme # base NVMe driver
+
+# ATA controllers
+device ahci # AHCI-compatible SATA controllers
+
+# CAM
+device scbus # SCSI bus (required for ATA/SCSI)
+device da # Direct Access (disks)
+device cd # CD
+device pass # Passthrough device (direct ATA/SCSI access)
diff --git a/sys/amd64/conf/MINIMAL-NODEBUG b/sys/amd64/conf/MINIMAL-NODEBUG
new file mode 100644
index 000000000000..7b7c22bbcaf6
--- /dev/null
+++ b/sys/amd64/conf/MINIMAL-NODEBUG
@@ -0,0 +1,11 @@
+#
+# MINIMAL-NODEBUG -- Non-debug MINIMAL kernel.
+#
+# This is the MINIMAL equivalent to GENERIC-NODEBUG.
+
+#NO_UNIVERSE
+
+include MINIMAL
+include "std.nodebug"
+
+ident MINIMAL-NODEBUG
diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES
index cf284ec8e5f0..e0a9e1b77d93 100644
--- a/sys/amd64/conf/NOTES
+++ b/sys/amd64/conf/NOTES
@@ -2,58 +2,24 @@
# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
#
# This file contains machine dependent kernel configuration notes. For
-# machine independent notes, look in /sys/conf/NOTES.
+# machine independent notes, look in /sys/conf/NOTES. For notes shared
+# with i386, look in /sys/x86/conf/NOTES.
#
-# $FreeBSD$
#
-#
-# Enable the kernel DTrace hooks which are required to load the DTrace
-# kernel modules.
-#
-options KDTRACE_HOOKS
-
-# DTrace core
-# NOTE: introduces CDDL-licensed components into the kernel
-#device dtrace
-
-# DTrace modules
-#device dtrace_profile
-#device dtrace_sdt
-#device dtrace_fbt
-#device dtrace_systrace
-#device dtrace_prototype
-#device dtnfscl
-#device dtmalloc
+# GCOV (code coverage) support
-# Alternatively include all the DTrace modules
-#device dtraceall
+options LINDEBUGFS
+options GCOV
#####################################################################
# SMP OPTIONS:
-#
-# Notes:
-#
-# IPI_PREEMPTION instructs the kernel to preempt threads running on other
-# CPUS if needed. Relies on the PREEMPTION option
# Optional:
-options IPI_PREEMPTION
device atpic # Optional legacy pic support
device mptable # Optional MPSPEC mptable support
-#
-# Watchdog routines.
-#
-options MP_WATCHDOG
-
-# Debugging options.
-#
-options COUNT_XINVLTLB_HITS # Counters for TLB events
-options COUNT_IPIS # Per-CPU IPI interrupt counters
-
-
#####################################################################
# CPU OPTIONS
@@ -71,190 +37,14 @@ cpu HAMMER # aka K8, aka Opteron & Athlon64
#####################################################################
-# NETWORKING OPTIONS
-
-#
-# DEVICE_POLLING adds support for mixed interrupt-polling handling
-# of network device drivers, which has significant benefits in terms
-# of robustness to overloads and responsivity, as well as permitting
-# accurate scheduling of the CPU time between kernel network processing
-# and other activities. The drawback is a moderate (up to 1/HZ seconds)
-# potential increase in response times.
-# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
-# to achieve smoother behaviour.
-# Additionally, you can enable/disable polling at runtime with help of
-# the ifconfig(8) utility, and select the CPU fraction reserved to
-# userland with the sysctl variable kern.polling.user_frac
-# (default 50, range 0..100).
-#
-# Not all device drivers support this mode of operation at the time of
-# this writing. See polling(4) for more details.
-
-options DEVICE_POLLING
-
-# BPF_JITTER adds support for BPF just-in-time compiler.
-
-options BPF_JITTER
-
-# OpenFabrics Enterprise Distribution (Infiniband).
-options OFED
-options OFED_DEBUG_INIT
-
-# Sockets Direct Protocol
-options SDP
-options SDP_DEBUG
-
-# IP over Infiniband
-options IPOIB
-options IPOIB_DEBUG
-options IPOIB_CM
-
-
-#####################################################################
-# CLOCK OPTIONS
-
-# Provide read/write access to the memory in the clock chip.
-device nvram # Access to rtc cmos via /dev/nvram
-
-
-#####################################################################
-# MISCELLANEOUS DEVICES AND OPTIONS
-
-device speaker #Play IBM BASIC-style noises out your speaker
-envvar hint.speaker.0.at="isa"
-envvar hint.speaker.0.port="0x61"
-
-
-#####################################################################
-# HARDWARE BUS CONFIGURATION
-
-#
-# ISA bus
-#
-device isa
-
-#
-# Options for `isa':
-#
-# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
-# interrupt controller. This saves about 0.7-1.25 usec for each interrupt.
-# This option breaks suspend/resume on some portables.
-#
-# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
-# interrupt controller. This saves about 0.7-1.25 usec for each interrupt.
-# Automatic EOI is documented not to work for the slave with the
-# original i8259A, but it works for some clones and some integrated
-# versions.
-#
-# MAXMEM specifies the amount of RAM on the machine; if this is not
-# specified, FreeBSD will first read the amount of memory from the CMOS
-# RAM, so the amount of memory will initially be limited to 64MB or 16MB
-# depending on the BIOS. If the BIOS reports 64MB, a memory probe will
-# then attempt to detect the installed amount of RAM. If this probe
-# fails to detect >64MB RAM you will have to use the MAXMEM option.
-# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
-# be 131072 (128 * 1024).
-#
-# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
-# reset the CPU for reboot. This is needed on some systems with broken
-# keyboard controllers.
-
-options AUTO_EOI_1
-#options AUTO_EOI_2
-
-options MAXMEM=(128*1024)
-#options BROKEN_KEYBOARD_RESET
-
-#
-# AGP GART support
-device agp
-
-#
-# AGP debugging.
-#
-options AGP_DEBUG
-
-
-#####################################################################
# HARDWARE DEVICE CONFIGURATION
-# To include support for VGA VESA video modes
-options VESA
-
-# Turn on extra debugging checks and output for VESA support.
-options VESA_DEBUG
-
-device dpms # DPMS suspend & resume via VESA BIOS
-
-# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
-options X86BIOS
-
#
# Optional devices:
#
-# PS/2 mouse
-device psm
-envvar hint.psm.0.at="atkbdc"
-envvar hint.psm.0.irq="12"
-
-# Options for psm:
-options PSM_HOOKRESUME #hook the system resume event, useful
- #for some laptops
-options PSM_RESETAFTERSUSPEND #reset the device at the resume event
-
-# The keyboard controller; it controls the keyboard and the PS/2 mouse.
-device atkbdc
-envvar hint.atkbdc.0.at="isa"
-envvar hint.atkbdc.0.port="0x060"
-
-# The AT keyboard
-device atkbd
-envvar hint.atkbd.0.at="atkbdc"
-envvar hint.atkbd.0.irq="1"
-
-# Options for atkbd:
-options ATKBD_DFLT_KEYMAP # specify the built-in keymap
-makeoptions ATKBD_DFLT_KEYMAP=fr.dvorak
-
-# `flags' for atkbd:
-# 0x01 Force detection of keyboard, else we always assume a keyboard
-# 0x02 Don't reset keyboard, useful for some newer ThinkPads
-# 0x03 Force detection and avoid reset, might help with certain
-# dockingstations
-# 0x04 Old-style (XT) keyboard support, useful for older ThinkPads
-
-# Video card driver for VGA adapters.
-device vga
-envvar hint.vga.0.at="isa"
-
-# Options for vga:
-# Try the following option if the mouse pointer is not drawn correctly
-# or font does not seem to be loaded properly. May cause flicker on
-# some systems.
-options VGA_ALT_SEQACCESS
-
-# If you can dispense with some vga driver features, you may want to
-# use the following options to save some memory.
-#options VGA_NO_FONT_LOADING # don't save/load font
-#options VGA_NO_MODE_CHANGE # don't change video modes
-
-# Older video cards may require this option for proper operation.
-options VGA_SLOW_IOACCESS # do byte-wide i/o's to TS and GDC regs
-
-# The following option probably won't work with the LCD displays.
-options VGA_WIDTH90 # support 90 column modes
-
-# Debugging.
-options VGA_DEBUG
-
# vt(4) drivers.
-device vt_vga # VGA
device vt_efifb # EFI framebuffer
-device vt_vbefb # VBE framebuffer
-
-# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
-device s3pci
# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support. This will create
# the /dev/3dfx0 device to work with glide implementations. This should get
@@ -265,19 +55,21 @@ device s3pci
device tdfx # Enable 3Dfx Voodoo support
#
-# ACPI support using the Intel ACPI Component Architecture reference
-# implementation.
+# RAID adapters
#
-# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
-# kernel environment variables to select initial debugging levels for the
-# Intel ACPICA code. (Note that the Intel code must also have USE_DEBUGGER
-# defined when it is built).
-device acpi
-options ACPI_DEBUG
+#XXX this stores pointers in a 32bit field that is defined by the hardware
+#device pst
+
+#
+# Microsemi smartpqi controllers.
+# These controllers have a SCSI-like interface, and require the
+# CAM infrastructure.
+#
+device smartpqi
-# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
-device cpufreq
+# Broadcom MPT Fusion, version 4, is 64-bit only
+device mpi3mr # LSI-Logic MPT-Fusion 4
#
# Network interfaces:
@@ -285,340 +77,60 @@ device cpufreq
# axp: AMD EPYC integrated NIC
# Requires the miibus module
-# bxe: Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
-# adapters.
# ice: Intel 800 Series Physical Function
# Requires the ice_ddp module for full functionality
-# igc: Intel I225 2.5Gb Ethernet adapter
-# ipw: Intel PRO/Wireless 2100 IEEE 802.11 adapter
-# Requires the ipw firmware module
# irdma: Intel 800 Series RDMA driver
# Requires the ice module
-# iwi: Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
-# Requires the iwi firmware module
-# iwn: Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn
-# 802.11 network adapters
-# Requires the iwn firmware module
-# mthca: Mellanox HCA InfiniBand
-# mlx4ib: Mellanox ConnectX HCA InfiniBand
-# mlx4en: Mellanox ConnectX HCA Ethernet
-# nfe: nVidia nForce MCP on-board Ethernet Networking (BSD open source)
# qlxgb: QLogic 3200 and 8200 series 10 Gigabit Ethernet & CNA Adapter
# qlxgbe: QLogic 8300 series 10 Gigabit Ethernet & CNA Adapter
# qlxge: QLogic 8100 series 10 Gigabit Ethernet & CNA Adapter
+# qlnxe: Cavium QLogic 41000/45000 series 10/25/40/100 Gigabit Ethernet & CNA Adapter
# sfxge: Solarflare SFC9000 family 10Gb Ethernet adapters
-# vmx: VMware VMXNET3 Ethernet (BSD open source)
-# wpi: Intel 3945ABG Wireless LAN controller
-# Requires the wpi firmware module
device axp # AMD EPYC integrated NIC
-device bxe # Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
-device igc # Intel I225 2.5G Ethernet
-device ipw # Intel 2100 wireless NICs.
-device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs.
-device iwn # Intel 4965/1000/5000/6000 wireless NICs.
device ixl # Intel 700 Series Physical Function
device iavf # Intel Adaptive Virtual Function
device ice # Intel 800 Series Physical Function
device ice_ddp # Intel 800 Series DDP Package
device irdma # Intel 800 Series RDMA driver
-device mthca # Mellanox HCA InfiniBand
-device mlx4 # Shared code module between IB and Ethernet
-device mlx4ib # Mellanox ConnectX HCA InfiniBand
-device mlx4en # Mellanox ConnectX HCA Ethernet
-device nfe # nVidia nForce MCP on-board Ethernet
device qlxgb # QLogic 3200/8200 Ethernet
device qlxgbe # QLogic 8300 Ethernet
device qlxge # QLogic 8100 Ethernet
+device qlnxe # QLogic 41000/45000 Ethernet
device sfxge # Solarflare SFC9000 10Gb Ethernet
-device vmx # VMware VMXNET3 Ethernet
-device wpi # Intel 3945ABG wireless NICs.
-
-# IEEE 802.11 adapter firmware modules
-
-# Intel PRO/Wireless 2100 firmware:
-# ipwfw: BSS/IBSS/monitor mode firmware
-# ipwbssfw: BSS mode firmware
-# ipwibssfw: IBSS mode firmware
-# ipwmonitorfw: Monitor mode firmware
-# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
-# iwifw: BSS/IBSS/monitor mode firmware
-# iwibssfw: BSS mode firmware
-# iwiibssfw: IBSS mode firmware
-# iwimonitorfw: Monitor mode firmware
-# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
-# iwnfw: Single module to support all devices
-# iwn1000fw: Specific module for the 1000 only
-# iwn105fw: Specific module for the 105 only
-# iwn135fw: Specific module for the 135 only
-# iwn2000fw: Specific module for the 2000 only
-# iwn2030fw: Specific module for the 2030 only
-# iwn4965fw: Specific module for the 4965 only
-# iwn5000fw: Specific module for the 5000 only
-# iwn5150fw: Specific module for the 5150 only
-# iwn6000fw: Specific module for the 6000 only
-# iwn6000g2afw: Specific module for the 6000g2a only
-# iwn6000g2bfw: Specific module for the 6000g2b only
-# iwn6050fw: Specific module for the 6050 only
-# wpifw: Intel 3945ABG Wireless LAN Controller firmware
-
-device iwifw
-device iwibssfw
-device iwiibssfw
-device iwimonitorfw
-device ipwfw
-device ipwbssfw
-device ipwibssfw
-device ipwmonitorfw
-device iwnfw
-device iwn1000fw
-device iwn105fw
-device iwn135fw
-device iwn2000fw
-device iwn2030fw
-device iwn4965fw
-device iwn5000fw
-device iwn5150fw
-device iwn6000fw
-device iwn6000g2afw
-device iwn6000g2bfw
-device iwn6050fw
-device wpifw
-
-#
-# Non-Transparent Bridge (NTB) drivers
-#
-device if_ntb # Virtual NTB network interface
-device ntb_transport # NTB packet transport driver
-device ntb # NTB hardware interface
-device ntb_hw_amd # AMD NTB hardware driver
-device ntb_hw_intel # Intel NTB hardware driver
-device ntb_hw_plx # PLX NTB hardware driver
-
-#
-#XXX this stores pointers in a 32bit field that is defined by the hardware
-#device pst
-
-#
-# Areca 11xx and 12xx series of SATA II RAID controllers.
-# CAM is required.
-#
-device arcmsr # Areca SATA II RAID
-
-#
-# Microsemi smartpqi controllers.
-# These controllers have a SCSI-like interface, and require the
-# CAM infrastructure.
-#
-device smartpqi
-
-#
-# Adaptec FSA RAID controllers, including integrated DELL controllers,
-# the Dell PERC 2/QC and the HP NetRAID-4M
-device aac
-device aacp # SCSI Passthrough interface (optional, CAM required)
-
-#
-# Highpoint RocketRAID 27xx.
-device hpt27xx
-
-#
-# Highpoint RocketRAID 182x.
-device hptmv
-
-#
-# Highpoint DC7280 and R750.
-device hptnr
-
-#
-# Highpoint RocketRAID. Supports RR172x, RR222x, RR2240, RR232x, RR2340,
-# RR2210, RR174x, RR2522, RR231x, RR230x.
-device hptrr
-
-#
-# Highpoint RocketRaid 3xxx series SATA RAID
-device hptiop
-
-#
-# IBM (now Adaptec) ServeRAID controllers
-device ips
-#
-# Intel integrated Memory Controller (iMC) SMBus controller
-# Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
-device imcsmb
+#####################################################################
#
-# Intel C600 (Patsburg) integrated SAS controller
-device isci
-options ISCI_LOGGING # enable debugging in isci HAL
-
+# Miscellaneous hardware:
#
-# NVM Express (NVMe) support
-device nvme # base NVMe driver
-device nvd # expose NVMe namespaces as disks, depends on nvme
-#
-# Intel Volume Management Device (VMD) support
-device vmd
+device ioat # Intel I/OAT DMA engine
-#
-# PMC-Sierra SAS/SATA controller
-device pmspcv
+# EFI Runtime Services support
+options EFIRT
-#
-# Intel QuickAssist
-device qat
+# EFI pseudo-device
+device efidev
-#
-# SafeNet crypto driver: can be moved to the MI NOTES as soon as
-# it's tested on a big-endian machine
-#
-device safe # SafeNet 1141
-options SAFE_DEBUG # enable debugging support: hw.safe.debug
-options SAFE_RNDTEST # enable rndtest support
+# EFI RTC
+device efirtc
#
-# VirtIO support
+# Intel QuickAssist driver with OpenCrypto support
#
-# The virtio entry provides a generic bus for use by the device drivers.
-# It must be combined with an interface that communicates with the host.
-# Multiple such interfaces are defined by the VirtIO specification. FreeBSD
-# only has support for PCI. Therefore, virtio_pci must be statically
-# compiled in or loaded as a module for the device drivers to function.
-#
-device virtio # Generic VirtIO bus (required)
-device virtio_pci # VirtIO PCI Interface
-device vtnet # VirtIO Ethernet device
-device virtio_blk # VirtIO Block device
-device virtio_scsi # VirtIO SCSI device
-device virtio_balloon # VirtIO Memory Balloon device
-device virtio_random # VirtIO Entropy device
-device virtio_console # VirtIO Console device
-
-# Linux KVM paravirtualization support
-device kvm_clock # KVM paravirtual clock driver
-
-# Microsoft Hyper-V enhancement support
-device hyperv # HyperV drivers
+# Only for legacy Atom C2XXX chipsets.
+device qat_c2xxx
# Xen HVM Guest Optimizations
options XENHVM # Xen HVM kernel infrastructure
+device xenefi # Xen EFI timer device
device xenpci # Xen HVM Hypervisor services driver
device xentimer # Xen x86 PV timer device
#####################################################################
-
-#
-# Miscellaneous hardware:
-#
-# ipmi: Intelligent Platform Management Interface
-# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
-# smbios: DMI/SMBIOS entry point (requires EFIRT option)
-# vpd: Vital Product Data kernel interface
-# asmc: Apple System Management Controller
-# si: Specialix International SI/XIO or SX intelligent serial card
-# tpm: Trusted Platform Module
-
-# Notes on the Specialix SI/XIO driver:
-# The host card is memory, not IO mapped.
-# The Rev 1 host cards use a 64K chunk, on a 32K boundary.
-# The Rev 2 host cards use a 32K chunk, on a 32K boundary.
-# The cards can use an IRQ of 11, 12 or 15.
-
-device ipmi
-device pbio
-envvar hint.pbio.0.at="isa"
-envvar hint.pbio.0.port="0x360"
-device smbios
-device vpd
-device asmc
-device tpm
-device padlock_rng # VIA Padlock RNG
-device rdrand_rng # Intel Bull Mountain RNG
-device aesni # AES-NI OpenCrypto module
-device ossl # OpenSSL OpenCrypto module
-device ioat # Intel I/OAT DMA engine
-
-#
-# Laptop/Notebook options:
-#
-
-device backlight
-
-#
-# I2C Bus
-#
-
-#
-# Hardware watchdog timers:
-#
-# ichwd: Intel ICH watchdog timer
-# amdsbwd: AMD SB7xx watchdog timer
-# viawd: VIA south bridge watchdog timer
-# wbwd: Winbond watchdog timer
-# itwd: ITE Super I/O watchdog timer
-#
-device ichwd
-device amdsbwd
-device viawd
-device wbwd
-device itwd
-
-#
-# Temperature sensors:
-#
-# coretemp: on-die sensor on Intel Core and newer CPUs
-# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
-#
-device coretemp
-device amdtemp
-
-#
-# CPU control pseudo-device. Provides access to MSRs, CPUID info and
-# microcode update feature.
-#
-device cpuctl
-
-#
-# SuperIO driver.
-#
-device superio
-
-#
-# System Management Bus (SMB)
-#
-options ENABLE_ALART # Control alarm on Intel intpm driver
-
-#
-# AMD System Management Network (SMN)
-#
-device amdsmn
-
-#
-# Number of initial kernel page table pages used for early bootstrap.
-# This number should include enough pages to map the kernel and any
-# modules or other data loaded with the kernel by the loader. Each
-# page table page maps 2MB.
-#
-options NKPT=31
-
-# EFI Runtime Services support
-options EFIRT
-
-#
-# HID-over-I2C support
-#
-device iichid # HID-over-I2C support
-options IICHID_DEBUG # Enable HID-over-I2C debug messages
-options IICHID_SAMPLING # Workaround missing GPIO INTR support
-
-#####################################################################
# ABI Emulation
-#XXX keep these here for now and reactivate when support for emulating
-#XXX these 32 bit binaries is added.
-
# Enable 32-bit runtime support for FreeBSD/i386 binaries.
options COMPAT_FREEBSD32
@@ -629,11 +141,19 @@ options COMPAT_AOUT
# ZFS support
# NB: This depends on crypto, cryptodev and ZSTDIO
-options ZFS
+options ZFS
#####################################################################
# VM OPTIONS
+#
+# Number of initial kernel page table pages used for early bootstrap.
+# This number should include enough pages to map the kernel and any
+# modules or other data loaded with the kernel by the loader. Each
+# page table page maps 2MB.
+#
+options NKPT=31
+
# KSTACK_PAGES is the number of memory pages to assign to the kernel
# stack of each thread.
@@ -644,24 +164,13 @@ options KSTACK_PAGES=5
options PV_STATS
#####################################################################
-
-# More undocumented options for linting.
-# Note that documenting these are not considered an affront.
-
-options KBDIO_DEBUG=2
-options KBD_MAXRETRY=4
-options KBD_MAXWAIT=6
-options KBD_RESETDELAY=201
-
-options PSM_DEBUG=1
-
-options TIMER_FREQ=((14318182+6)/12)
-
-options VM_KMEM_SIZE
-options VM_KMEM_SIZE_MAX
-options VM_KMEM_SIZE_SCALE
-
-# GCOV (code coverage) support
-
-options LINDEBUGFS
-options GCOV
+# Kernel sanitizers
+
+#options COVERAGE # Generic kernel coverage. Used by KCOV
+#options KCOV # Kernel Coverage Sanitizer
+# Warning: KUBSAN can result in a kernel too large for loader to load
+#options KUBSAN # Kernel Undefined Behavior Sanitizer
+#options KCSAN # Kernel Concurrency Sanitizer
+#options KASAN # Kernel Address Sanitizer
+#options KCSAN # Kernel Concurrency Sanitizer
+#options KMSAN # Kernel Memory Sanitizer