40.3 Machine-Dependent Kernel Options
Machine-dependent options are optimized for hardware characteristics of processor architectures such as x86, ARM, and RISC-V. This section annotates key options in amd64/conf/NOTES, listing the original text and English interpretations by functional category.
Original: amd64/conf/NOTES
Tip
You can directly cut and paste kernel options and hints entries into the kernel configuration file.
amd64 Machine-Dependent Kernel Options
GCOV (Generate Coverage Information)
options LINDEBUGFS # ①
options GCOV # ②① Linux pseudo-filesystem for debugging, see: lindebugfs(4)[EB/OL]. [2026-03-26]. https://man.freebsd.org/cgi/man.cgi?query=lindebugfs&sektion=4.
② GCOV is used for kernel code coverage analysis.
SMP
This subsection describes optional device configurations related to Symmetric Multi-Processing (SMP):
Optional devices:
device atpic # Optional compatible pic programmable interrupt controller, ISA-related
device mptable # Optional MPSPEC multiprocessor table ①① Provides kernel support for the MPSPEC multiprocessor table. See: mptable(1)[EB/OL]. [2026-03-26]. https://man.freebsd.org/cgi/man.cgi?query=mptable&sektion=1.
CPU
This subsection describes CPU-related configuration options, including processor model specifications.
Tip
At least one CPU type (i.e., the target CPU intended to run on) must be specified; removing unused CPU configurations can improve system efficiency.
Hardware Device Configuration
This subsection describes kernel configuration options for various hardware devices, including display devices, network interfaces, storage adapters, etc.:
Optional devices:
① vt(4) driver. See: vt(4)[EB/OL]. [2026-03-26]. https://man.freebsd.org/cgi/man.cgi?query=vt%284%29&apropos=0&sektion=4.
Provides support for the /dev/3dfx character device for 3Dfx Voodoo Graphics and Voodoo II (products from the 1990s).
This will create device /dev/3dfx0 for use with Glide implementations. This device should be linked to /dev/3dfx and /dev/voodoo. Note that this is independent of the XFree86 tdfx DRI module; they are unrelated.
RAID Adapters
This subsection describes driver configurations for various RAID (Redundant Array of Independent Disks) adapters:
Device driver for the Promise SuperTrak SX6000.
Microchip smartpqi controller. These controllers provide a SCSI-like interface and require the CAM infrastructure.
Broadcom MPIMR 3.0 IT/IR 24Gb/s SAS Tri-Mode RAID controller, 64-bit architecture only.
Network Interface Devices
This subsection describes driver configurations for various network interface devices, including Ethernet, wireless NICs, etc.:
Other Hardware
This subsection describes configuration options for various other hardware devices, including DMA engines, EFI services, etc.:
Provides Intel I/O Acceleration Technology (I/OAT) support.
EFI runtime services support.
EFI pseudo device.
EFI RTC (Real-Time Clock).
Intel QuickAssist driver with OpenCrypto support, only supports Atom C2XXX chipsets.
Kernel optimization support for Xen HVM virtual machines.
ABI Emulation
Enables compatibility support for running FreeBSD i386 32-bit binaries on amd64 systems.
Enables 32-bit a.out binary support.
ZFS
Note
This feature depends on the crypto, cryptodev, and ZSTDIO kernel components.
ZFS file system.
VM
The number of initial kernel page table pages for early boot. This number should include enough pages to map the kernel and all modules or other data loaded by the loader along with the kernel. Each page table page maps 2 MB.
KSTACK_PAGES is the number of memory pages allocated for each thread's kernel stack.
Enables detailed statistics and accounting for the PV entry allocator.
Kernel Sanitizers
① Warning: KUBSAN may cause the kernel to become so large that the loader cannot load it.
i386 and amd64 Shared Machine-Dependent Kernel Options
The following describes kernel configuration options shared by both i386 and amd64 x86 architectures.
Original x86/conf/NOTES, version NOTES: Add iwm and iwx.
Tip
You can directly cut and paste kernel and hints entries into the kernel configuration file.
DTrace
Enables kernel DTrace hooks, which the DTrace module depends on.
DTrace core.
Note
This introduces CDDL-licensed components (DTrace) into the kernel.
The above are different types of DTrace modules.
Optional; loads all the DTrace modules above.
SMP
This option is optional.
Note
IPI_PREEMPTIONinstructs the kernel to preempt threads running on other CPUs when needed. This feature depends onPREEMPTION.
Debug options.
Compatibility
Implements system calls compatible with 4.3BSD, FreeBSD 1.x, and 2.x a.out binaries. ELF binaries or newer a.out binaries do not need this.
Network Support
DEVICE_POLLING adds a combined interrupt and polling processing mechanism for network device drivers. This feature offers significant advantages in handling overload, improving system responsiveness, and more precisely scheduling CPU time between kernel network processing and other activities. Its drawback is that response time may moderately increase (up to 1/HZ seconds).
It is strongly recommended to set HZ to 1000 or 2000 when using DEVICE_POLLING for smoother operation. Polling can be enabled/disabled at runtime via the ifconfig(8) tool, and the proportion of CPU time reserved for user space can be adjusted through the sysctl variable kern.polling.user_frac (default 50, range 0 to 100). Note that at the time of this writing, not all device drivers support this operating mode. For more details, see polling(4).
BPF_JITTER adds just-in-time compiler support for BPF.
Clock
Provides read and write access to the RTC CMOS storage area.
Other Devices and Options
Plays IBM BASIC-style beep tones through the speaker.
Hardware Bus Configuration
Enables IOMMU.
Enables ISA bus.
ISA bus options.
AUTO_EOI_1 enables the "auto EOI" feature for the primary 8259A interrupt controller. This saves approximately 0.7-1.25 microseconds per interrupt. This option breaks suspend/resume on some portable devices.
AUTO_EOI_2 enables the "auto EOI" feature for the secondary 8259A interrupt controller. This saves approximately 0.7-1.25 microseconds per interrupt. Documentation states that auto EOI does not work on the slave controller of the original i8259A chip, but some clone chips and integrated versions work correctly.
MAXMEM is used to specify the host memory capacity. If this parameter is not specified, FreeBSD will first read the memory capacity from CMOS RAM, and the initial memory will be limited to 64 MB or 16 MB (depending on the BIOS). If the BIOS reports 64 MB, the system will attempt to detect the actual installed memory capacity through memory probing. If probing fails and the memory is greater than 64 MB, the MAXMEM parameter must be used. The capacity value is in kilobytes, for example, 128 MB of memory should be set to 131072 (128 * 1024).
BROKEN_KEYBOARD_RESET disables the function of performing CPU reset and reboot via the keyboard controller. This option is suitable for systems with faulty keyboard controllers.
AGP GART support.
Enables AGP debug support.
ACPI
ACPI support (based on the Intel ACPI Component Architecture reference implementation, ACPICA).
ACPI_DEBUG can set the initial debug level of Intel ACPICA code through kernel environment variables debug.acpi.level and debug.acpi.layer (note: this feature requires the USE_DEBUGGER option to be enabled at Intel code compile time).
ACPI WMI mapping driver.
ACPI extensions for Asus (LCD backlight/brightness, video output, etc.).
ACPI extensions for Fujitsu (buttons).
ACPI extension driver for HP notebooks.
ACPI extension driver for IBM notebooks (ThinkPad series).
ACPI extensions for Panasonic (LCD backlight/brightness, video output, etc.).
ACPI SBL firmware update.
ACPI extensions for Sony (LCD brightness adjustment).
ACPI extensions for Toshiba (LCD backlight/brightness, video output, etc.).
ACPI video extensions (LCD backlight/brightness, video output, etc.).
ACPI docking station support.
ACPI ASOC ATK0110 Asus AI Booster (voltage, temperature, and fan sensors).
Hardware Device Configuration
Optional Devices
syscons console driver (compatible with SCO color console interface). syscons has been replaced by vt(4) as the default console driver and is incompatible with UEFI-booted systems; new deployments are recommended to use vt(4). See: syscons(4)[EB/OL]. [2026-06-10]. https://man.freebsd.org/cgi/man.cgi?query=syscons&sektion=4.
The above options can be used to adjust the default color configuration of syscons.
flags parameter for sc:
0x80sets the video card to VESA 800x600 dot matrix 16-color mode0x100periodically probes if no keyboard device is detected
The above options can be used to modify the default behavior of the cut and paste function.
If using a two-button mouse, you can add the above option to enable right-click paste text functionality.
Selectively disable functional modules in syscons.
Boot splash screen and screen saver.
Various screen savers.
VGA VESA display modes.
Enables additional debug checks and output for VESA support.
DPMS (VESA Display Power Management Signaling) suspend and resume via VESA BIOS.
x86 real-mode BIOS emulator (atkbdc/dpms/vesa functionality depends on this).
PS/2 mouse.
psm option.
Resets the device on system resume events (particularly useful for some laptops).
Keyboard controller: this component controls the keyboard and PS/2 mouse.
AT keyboard.
atkbd driver options.
atkbd flags parameters:
0x01
Force keyboard detection (default always assumes keyboard is present)
0x02
Do not reset keyboard (applicable to some newer ThinkPads)
0x03
Force detection and avoid reset (may help with specific docking station compatibility)
0x04
Enable legacy (XT) keyboard support (applicable to older ThinkPads)
VGA adapter graphics driver.
VGA driver option: if the mouse pointer displays incorrectly or fonts do not load properly, try the above option (may cause screen flickering on some systems).
If you need to save memory space, you can disable some VGA driver features through the above options.
Performs byte-width I/O operations on TS and GDC registers. Older graphics cards may need this option to ensure proper operation.
Supports 90-column mode. The above option may not be suitable for LCD display devices.
VGA debug support.
vt(4) driver.
VESA-based S3 VESA 1.2 graphics card linear framebuffer driver.
RAID Adapters
Areca 11xx and 12xx series SATA II RAID controllers (requires CAM subsystem to be enabled).
Adaptec FSA RAID controller series, including Dell integrated controllers, Dell PERC 2/QC, and HP NetRAID-4M.
Highpoint-related devices.
IBM (some models manufactured by Adaptec, x86 server business was sold to Lenovo in 2014) ServeRAID controllers (IBM. IBM Completes Initial Closing of the Sale of its x86 Server Business to Lenovo[EB/OL]. [2026-04-17]. https://www.ibm.com/investor/att/pdf/IBM-Divests-x86-Systems-Business-to-Lenovo.pdf.).
Intel C600 (Patsburg) integrated SAS controller.
Intel Volume Management Device (VMD) support.
PMC-Sierra SAS/SATA controller.
Floppy Disk
Standard floppy disk controller and floppy tape drive, supports Y-E DATA external FDD (PC card).
FDC_DEBUG enables floppy disk debugging. Due to the large volume of debug output, the fd_debug variable must be set via DDB to activate it.
If using Insight's floppy tape device, please activate this configuration item. Since there is a risk in device probing for users who only configure floppy disks, this feature has been isolated via flag bits.
Specifies floppy disk devices.
CPU Frequency Control
The cpufreq(4) driver provides support for non-ACPI CPU frequency control.
Network Cards
IEEE 802.11 Adapter Firmware
Intel PRO/Wireless 2100 firmware:
ipwfw - Full-featured firmware supporting BSS/IBSS/monitor mode
ipwbssfw - BSS mode only firmware
ipwibssfw - IBSS mode only firmware
ipwmonitorfw - Monitor mode only firmware
Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
iwifw - Full-featured firmware supporting BSS/IBSS/monitor mode
iwibssfw - BSS mode only firmware
iwiibssfw - IBSS mode only firmware
iwimonitorfw - Monitor mode only firmware
Intel Wireless Wi-Fi Link 4965/1000/5000/6000 series firmware:
iwnfw - Single module supporting all devices in this series
iwn1000fw - Specific module for 1000 only
iwn105fw - Specific module for 105 only
iwn135fw - Specific module for 135 only
iwn2000fw - Specific module for 2000 only
iwn2030fw - Specific module for 2030 only
iwn4965fw - Specific module for 4965 only
iwn5000fw - Specific module for 5000 only
iwn5150fw - Specific module for 5150 only
iwn6000fw - Specific module for 6000 only
iwn6000g2afw - Specific module for 6000g2a only
iwn6000g2bfw - Specific module for 6000g2b only
iwn6050fw - Specific module for 6050 only
Other:
wpifw - Intel 3945ABG wireless LAN controller firmware
Non-Transparent Bridge (NTB) Drivers
Other Hardware
Specialix SI/XIO driver notes:
Host cards use memory-mapped (not I/O-mapped)
Rev 1 host cards use 64 K memory blocks, aligned to 32 K boundaries
Rev 2 host cards use 32 K memory blocks, aligned to 32 K boundaries
This card series supports using IRQ 11, 12, or 15
Linux KVM paravirtualization support.
Microsoft Hyper-V virtualization enhancement support.
VMware hypervisor support.
Laptop-specific option. Backlight brightness adjustment.
System Management Bus (SMBus).
Supported SMBus interfaces:
imcsmb: Integrated Memory Controller (iMC) SMBus controller.
Supported platforms: Sandy Bridge-Xeon, Ivy Bridge-Xeon, Haswell-Xeon, Broadwell-Xeon processors
HID-over-I²C support.
AMD System Management Network (SMN).
Hardware watchdog timers.
Temperature sensors:
coretemp: Built-in sensor on Intel Core and newer architecture processor diesamdtemp: Built-in sensor on AMD Family 0Fh-17h (K8 to Zen) series processor dies
CPU control pseudo device. Provides access to MSR (Model Specific Registers), CPUID information, and microcode update functionality.
SuperIO driver.
Many internal options for code checking.
Note
Original comment: Writing documentation for such options is not considered improper.
arm64 (aarch64) Machine-Dependent Configuration
Original: sys/arm64/conf/NOTES: Machine-dependent kernel configuration notes for aarch64. Version: LINT: add KDTRACE_MIB_SDT to catch inconsistencies with struct tcpstat.
Would like LINT to also support profiling, but this feature currently still has defects.
Enables kernel DTrace hooks needed to load the DTrace kernel module.
The following content is mainly ported from the ARM64 platform GENERIC configuration file.
Build a kernel with gdb(1) debug symbols.
Run ctfconvert(1) to support DTrace functionality.
Prevents printf output interleaving.
Ensures frame information is included at compile time.
Floating-point operation support.
Sets kern.racct.enable=0 as the default.
SoC Support
Allwinner A64 (sun50iw1) SoC features a quad-core Cortex-A53 ARM processor and integrates an ARM Mali400 MP2 graphics processor.
Allwinner H5 (sun50iw2p1) SoC features a quad-core Cortex-A53 ARM processor and integrates an ARM Mali450 MP4 graphics processor.
Allwinner H6 (sun50iw6p1) SoC features a quad-core Cortex-A53 ARM processor and integrates an ARM Mali-T720 MP2 graphics processor. This chip is an SoC designed specifically for OTT devices.
This chip is used in Raspberry Pi 3B, later models of 2B, and Raspberry Pi Compute Module 3. The underlying architecture of BCM2837 is the same as BCM2836. The only notable difference is the replacement of the quad-core ARMv7 cluster with a quad-core ARM Cortex A53 (ARMv8) cluster.
Broadcom chip used in Raspberry Pi 4B. The SoC actually equipped on Raspberry Pi 4B is BCM2711, and the FreeBSD kernel option retains the BCM2838 naming (Raspberry Pi Foundation. BCM2711[EB/OL]. [2026-04-17]. https://www.raspberrypi.com/documentation/computers/processors.html.).
Broadcom Northstar 2 (NS2) SoC. NS2 is an ARMv8 architecture-based SoC, part of the Broadcom iProc product family.
Marvell ThunderX.
i.MX 8 series application processors based on Arm Cortex architecture.
HiSilicon Kirin 620.
Intel Stratix® 10.
Marvell Armada 8K SoC.
NVIDIA Tegra210.
NXP Layerscape processors.
Rockchip.
Rockchip RK3328.
Rockchip RK3399.
Rockchip RK3568.
AMD Xilinx Zynq SoC.
Timer
Allwinner timer driver.
Annapurna Alpine Driver
Alpine Cache Coherency Unit.
Alpine Northbridge Service.
Alpine I/O Fabric Interrupt Controller.
Alpine Serializer/Deserializer.
Alpine Universal DMA.
Qualcomm Snapdragon Series Drivers
Qualcomm Snapdragon Global Clock Controller.
Google Virtual NIC
Google Virtual NIC (gVNIC) driver.
Microsoft Hyper-V
Microsoft Hyper-V.
CPU Frequency Scaling
CPU frequency scaling support.
Hardware Crypto Acceleration
ARMv8 OpenCrypto module.
OpenSSL OpenCrypto module.
Bus Drivers
Annapurna Alpine PCIe.
PCIe native hot-plug.
Ethernet Cards
IEEE 802.3 Management Data Input/Output Interface (MDIO).
Allwinner EMAC Gigabit Ethernet controller.
AMD Opteron A1100 integrated NIC.
Marvell Armada 370/38x/XP/3700 NIC.
SMSC LAN91C111.
Marvell ThunderX NIC.
Annapurna Alpine Ethernet NIC.
Synopsys Designware GMAC Ethernet.
Rockchip Designware.
Altera SOCFPGA Ethernet MAC.
Intel 800 Series Physical Function.
Intel 800 Series DDP package.
Etherswitch Devices
Marvell mv88e6085-based switch.
Storage
Broadcom MPIMR 3.0 IT/IR 24Gb/s SAS Tri-Mode RAID controller, 64-bit architecture only.
MMC/SD/SDIO Card Slot Support
Marvell Xenon SD/MMC controller.
Allwinner SD/MMC controller.
DesignWare SD/MMC bus controller.
Altera SoCFPGA DWMAC controller.
The rkemmcphy driver controls the integrated eMMC PHY on Rockchip SoCs.
Serial (COM) Ports
Qualcomm MSM UART driver.
Raspberry Pi 3 auxiliary port.
Armada 3700 UART driver.
NS8250-type UART driver.
DesignWare Synopsys UART driver.
PL011 generic ARM UART controller.
Arm FVP
Early printf support using PL011 UART on the Arm FVP platform.
USB
Allwinner USB PHY.
DWC OTG controller.
Marvell EHCI USB controller.
USB Ethernet
Microchip LAN78xx USB Gigabit Ethernet controller driver.
Microchip LAN9xxx USB Fast Ethernet driver.
Audio
Allwinner A10 codec.
DMA Controller
Allwinner A31 (sun6i) SoC DMA controller.
GPIO / Pin Control (PINCTRL)
Marvell Armada 37x0 GPIO controller.
Allwinner GPIO controller.
FDT I/O pin multiplexing support.
Marvell GPIO controller.
Marvell Pinmux controller.
Rockchip GPIO controller.
Rockchip Pinmux controller.
I²C
Allwinner Reduced Serial Bus.
Broadcom BCM283x I²C controller.
Allwinner I²C controller (TWSI).
RockChip I²C controller.
Clock and Reset Controller
Allwinner Clock Controller.
Interrupt Controller
Allwinner NMI.
Marvell CP110 ICU.
Marvell AP806 GICP.
RTC Clock
Allwinner RTC real-time clock.
Marvell RTC real-time clock.
Watchdog Controller
Allwinner watchdog timer.
Power Management Controller
X-Powers AXP81x power management IC.
Rockchip RK8xx base support.
Rockchip RK805 power management IC.
Rockchip RK808 power management IC.
Rockchip RK817 power management IC.
Electronic Fuse (EFUSE)
Allwinner Secure ID eFuse.
Thermal Sensor
Allwinner thermal sensor controller.
Marvell thermal sensor controller.
SPI
Broadcom BCM283x SPI bus.
PWM
Configure PWM (Pulse Width Modulation) hardware.
Allwinner PWM support.
EFI framebuffer terminal driver.
Simple framebuffer virtual console driver.
EVDEV, evdev support in legacy input drivers.
Allwinner Consumer IR (IR) controller.
Pseudo devices.
Backlight subsystem.
Other Devices
ARM PL330 DMA controller.
xDMA framework for SoC on-chip DMA controllers.
Chip-specific errata.
FDT support.
ACPI support.
DTB (Device Tree Blob) support.
Add CAMDEBUG debug functionality.
Also includes camified MMC.
arm64 does not support inb/outb, so chipset probing that requires them is disabled.
These options may cause abnormal issues, the reason is not yet clear.
Related assumptions about bus labels do not hold on the arm64 architecture.
The arm64 architecture did not exist in these versions, so the required compatibility support is lacking; these options are directly disabled.
arm64 supports 32-bit FreeBSD/arm binaries (armv6/armv7 ABI).
ARM64 SMMU/IOMMU support.
ZFS
ZFS file system support.
HID-over-I2C
HID-over-I2C support.
Enable HID-over-I2C debug messages.
Workaround for missing GPIO interrupt support.
armv7/32-bit arm Machine-Dependent Configuration
Original: sys/arm/conf/NOTES: Machine-dependent kernel configuration notes for armv7. Version: arm: tweak imx module build logic.
This architecture is being deprecated, so its kernel options are not listed.
64-bit RISC-V Machine-Dependent Configuration
Original: sys/riscv/conf/NOTES: Machine-dependent kernel configuration notes for riscv64 (64-bit RISC-V). Over 100 lines. Version: riscv: support PV_STATS pmap option.
Specifies the processor architecture as RISC-V.
Build a kernel with gdb(1) debug symbols.
Run ctfconvert(1) to support DTrace.
Prevents printf output interleaving.
Ensures stack frame information is compiled into the kernel.
Kernel DTrace hooks.
Kernel ELF linker loads CTF data.
Sets the default value of kern.racct.enable to 0.
Enables detailed statistics for the PV entry allocator.
RISC-V SBI console.
Pseudo devices.
Backlight subsystem.
MMC/SD/SDIO card slot support.
DTrace core.
Note
The
dtraceoption introduces CDDL-licensed components into the kernel.
Built-in all DTrace modules.
Serial (COM) Ports
lowRISC UART driver.
ns8250-type UART driver.
RTC Real-Time Clock
Dialog Semiconductor DA9063 real-time clock.
QEMU real-time clock.
Ethernet Drivers
Synopsys DesignWare GMAC Ethernet.
Xilinx AXI Ethernet MAC.
DMA Interface Support
DMA interface.
Xilinx AXI DMA controller.
SPI
Xilinx AXI Quad SPI controller.
Power Management Control
Dialog Semiconductor DA9063 Power Management IC (PMIC).
SiFive Device Drivers
Flattened Device Tree (FDT)
FreeBSD/riscv Did Not Exist in These Versions
Since the RISC-V Architecture Does Not Support inb/outb Instructions, Chipset Probing That Requires These Instructions Is Disabled
On the RISC-V Architecture, Certain Assumptions About Bus Labels Do Not Hold
hwpmc(4) Functionality Is Not Yet Implemented
RISC-V Architecture Specific
Last updated