For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

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 #

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 ①

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:

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_PREEMPTION instructs the kernel to preempt threads running on other CPUs when needed. This feature depends on PREEMPTION.

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:

  • 0x80 sets the video card to VESA 800x600 dot matrix 16-color mode

  • 0x100 periodically 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:

Flag Value
Description

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 dies

  • amdtemp: 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

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

This architecture is being deprecated, so its kernel options are not listed.

64-bit RISC-V Machine-Dependent Configuration

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 dtrace option 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