xref: /freebsd/sys/amd64/conf/NOTES (revision ccbb7b5e1985913f1dde267efdc96056b541087c)
1b132d96eSPeter Wemm#
2b132d96eSPeter Wemm# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
3b132d96eSPeter Wemm#
4b132d96eSPeter Wemm# This file contains machine dependent kernel configuration notes.  For
5b132d96eSPeter Wemm# machine independent notes, look in /sys/conf/NOTES.
632a31d0dSDavid E. O'Brien#
7b132d96eSPeter Wemm# $FreeBSD$
8b132d96eSPeter Wemm#
9b132d96eSPeter Wemm
10b132d96eSPeter Wemm#
1175294710SPeter Wemm# We want LINT to cover profiling as well.
1280a11093SPeter Wemmprofile         2
1332a31d0dSDavid E. O'Brien
149e3e64e7SKonstantin Belousov#
159e3e64e7SKonstantin Belousov# Enable the kernel DTrace hooks which are required to load the DTrace
169e3e64e7SKonstantin Belousov# kernel modules.
179e3e64e7SKonstantin Belousov#
189e3e64e7SKonstantin Belousovoptions 	KDTRACE_HOOKS
199e3e64e7SKonstantin Belousov
2032a31d0dSDavid E. O'Brien
215b9bfb42SDavid E. O'Brien#####################################################################
225b9bfb42SDavid E. O'Brien# SMP OPTIONS:
235b9bfb42SDavid E. O'Brien#
245b9bfb42SDavid E. O'Brien# Notes:
255b9bfb42SDavid E. O'Brien#
267452bc49SStephan Uphoff# IPI_PREEMPTION instructs the kernel to preempt threads running on other
277452bc49SStephan Uphoff#	  CPUS if needed.  Relies on the PREEMPTION option
285b9bfb42SDavid E. O'Brien
295b9bfb42SDavid E. O'Brien# Optional:
307452bc49SStephan Uphoffoptions 	IPI_PREEMPTION
3142044ceeSDavid E. O'Briendevice		atpic			# Optional legacy pic support
3284883913SDavid E. O'Briendevice		mptable			# Optional MPSPEC mptable support
335b9bfb42SDavid E. O'Brien
34fdbbb288SDavid E. O'Brien#
35fdbbb288SDavid E. O'Brien# Watchdog routines.
36fdbbb288SDavid E. O'Brien#
37fdbbb288SDavid E. O'Brienoptions 	MP_WATCHDOG
38fdbbb288SDavid E. O'Brien
39d3646381SAlexander Motin# Debugging options.
40d3646381SAlexander Motin#
41d3646381SAlexander Motinoptions 	COUNT_XINVLTLB_HITS	# Counters for TLB events
42d3646381SAlexander Motinoptions 	COUNT_IPIS		# Per-CPU IPI interrupt counters
43d3646381SAlexander Motin
44fdc9713bSDoug White
455b9bfb42SDavid E. O'Brien
465b9bfb42SDavid E. O'Brien#####################################################################
475b9bfb42SDavid E. O'Brien# CPU OPTIONS
485b9bfb42SDavid E. O'Brien
495b9bfb42SDavid E. O'Brien#
505b9bfb42SDavid E. O'Brien# You must specify at least one CPU (the one you intend to run on);
515b9bfb42SDavid E. O'Brien# deleting the specification for CPUs you don't need to use may make
525b9bfb42SDavid E. O'Brien# parts of the system run faster.
535b9bfb42SDavid E. O'Brien#
545b9bfb42SDavid E. O'Briencpu		HAMMER			# aka K8, aka Opteron & Athlon64
555b9bfb42SDavid E. O'Brien
565b9bfb42SDavid E. O'Brien#
575b9bfb42SDavid E. O'Brien# Options for CPU features.
585b9bfb42SDavid E. O'Brien#
59b132d96eSPeter Wemm
60b132d96eSPeter Wemm#
61b132d96eSPeter Wemm# PERFMON causes the driver for Pentium/Pentium Pro performance counters
62b132d96eSPeter Wemm# to be compiled.  See perfmon(4) for more information.
63b132d96eSPeter Wemm#
645b9bfb42SDavid E. O'Brien#XXX#options 	PERFMON
65b132d96eSPeter Wemm
66b132d96eSPeter Wemm
67b132d96eSPeter Wemm#####################################################################
68b132d96eSPeter Wemm# NETWORKING OPTIONS
69b132d96eSPeter Wemm
70b132d96eSPeter Wemm#
71b132d96eSPeter Wemm# DEVICE_POLLING adds support for mixed interrupt-polling handling
72b132d96eSPeter Wemm# of network device drivers, which has significant benefits in terms
73b132d96eSPeter Wemm# of robustness to overloads and responsivity, as well as permitting
74b132d96eSPeter Wemm# accurate scheduling of the CPU time between kernel network processing
75b132d96eSPeter Wemm# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
76b132d96eSPeter Wemm# potential increase in response times.
77b132d96eSPeter Wemm# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
78b132d96eSPeter Wemm# to achieve smoother behaviour.
799c26aa3cSGleb Smirnoff# Additionally, you can enable/disable polling at runtime with help of
809c26aa3cSGleb Smirnoff# the ifconfig(8) utility, and select the CPU fraction reserved to
819c26aa3cSGleb Smirnoff# userland with the sysctl variable kern.polling.user_frac
829c26aa3cSGleb Smirnoff# (default 50, range 0..100).
83b132d96eSPeter Wemm#
845b9bfb42SDavid E. O'Brien# Not all device drivers support this mode of operation at the time of
855b9bfb42SDavid E. O'Brien# this writing.  See polling(4) for more details.
86b132d96eSPeter Wemm
87b132d96eSPeter Wemmoptions 	DEVICE_POLLING
88b132d96eSPeter Wemm
89cb7d38abSJung-uk Kim# BPF_JITTER adds support for BPF just-in-time compiler.
90cb7d38abSJung-uk Kim
91cb7d38abSJung-uk Kimoptions 	BPF_JITTER
92cb7d38abSJung-uk Kim
93ed5a2b61SJohn Baldwin# OpenFabrics Enterprise Distribution (Infiniband).
94ed5a2b61SJohn Baldwinoptions 	OFED
95ed5a2b61SJohn Baldwinoptions 	OFED_DEBUG_INIT
96ed5a2b61SJohn Baldwin
97ed5a2b61SJohn Baldwin# Sockets Direct Protocol
98ed5a2b61SJohn Baldwinoptions 	SDP
99ed5a2b61SJohn Baldwinoptions 	SDP_DEBUG
100ed5a2b61SJohn Baldwin
1014c104449SJohn Baldwin# IP over Infiniband
102ed5a2b61SJohn Baldwinoptions 	IPOIB
103ed5a2b61SJohn Baldwinoptions 	IPOIB_DEBUG
104ed5a2b61SJohn Baldwinoptions 	IPOIB_CM
105ed5a2b61SJohn Baldwin
106b132d96eSPeter Wemm
107b132d96eSPeter Wemm#####################################################################
108b132d96eSPeter Wemm# CLOCK OPTIONS
109b132d96eSPeter Wemm
110c8b14fa8SPeter Wemm# Provide read/write access to the memory in the clock chip.
111c8b14fa8SPeter Wemmdevice		nvram		# Access to rtc cmos via /dev/nvram
112c8b14fa8SPeter Wemm
113b132d96eSPeter Wemm
114b132d96eSPeter Wemm#####################################################################
115b132d96eSPeter Wemm# MISCELLANEOUS DEVICES AND OPTIONS
116b132d96eSPeter Wemm
1176d8200ffSRuslan Ermilovdevice		speaker		#Play IBM BASIC-style noises out your speaker
1186d8200ffSRuslan Ermilovhint.speaker.0.at="isa"
1196d8200ffSRuslan Ermilovhint.speaker.0.port="0x61"
120b132d96eSPeter Wemmdevice		gzip		#Exec gzipped a.out's.  REQUIRES COMPAT_AOUT!
121b132d96eSPeter Wemm
122b132d96eSPeter Wemm
123b132d96eSPeter Wemm#####################################################################
124b132d96eSPeter Wemm# HARDWARE BUS CONFIGURATION
125b132d96eSPeter Wemm
126b132d96eSPeter Wemm#
127b132d96eSPeter Wemm# ISA bus
128b132d96eSPeter Wemm#
129b132d96eSPeter Wemmdevice		isa
130b132d96eSPeter Wemm
131b132d96eSPeter Wemm#
132b132d96eSPeter Wemm# Options for `isa':
133b132d96eSPeter Wemm#
134b132d96eSPeter Wemm# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
135b132d96eSPeter Wemm# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
136b132d96eSPeter Wemm# This option breaks suspend/resume on some portables.
137b132d96eSPeter Wemm#
138b132d96eSPeter Wemm# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
139b132d96eSPeter Wemm# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
140b132d96eSPeter Wemm# Automatic EOI is documented not to work for for the slave with the
141b132d96eSPeter Wemm# original i8259A, but it works for some clones and some integrated
142b132d96eSPeter Wemm# versions.
143b132d96eSPeter Wemm#
144b132d96eSPeter Wemm# MAXMEM specifies the amount of RAM on the machine; if this is not
145b132d96eSPeter Wemm# specified, FreeBSD will first read the amount of memory from the CMOS
146b132d96eSPeter Wemm# RAM, so the amount of memory will initially be limited to 64MB or 16MB
147b132d96eSPeter Wemm# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
148b132d96eSPeter Wemm# then attempt to detect the installed amount of RAM.  If this probe
149b132d96eSPeter Wemm# fails to detect >64MB RAM you will have to use the MAXMEM option.
150b132d96eSPeter Wemm# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
151b132d96eSPeter Wemm# be 131072 (128 * 1024).
152b132d96eSPeter Wemm#
153b132d96eSPeter Wemm# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
154b132d96eSPeter Wemm# reset the CPU for reboot.  This is needed on some systems with broken
155b132d96eSPeter Wemm# keyboard controllers.
156b132d96eSPeter Wemm
1575b9bfb42SDavid E. O'Brienoptions 	AUTO_EOI_1
1585b9bfb42SDavid E. O'Brien#options 	AUTO_EOI_2
1595b9bfb42SDavid E. O'Brien
160b132d96eSPeter Wemmoptions 	MAXMEM=(128*1024)
161b132d96eSPeter Wemm#options 	BROKEN_KEYBOARD_RESET
162b132d96eSPeter Wemm
163b132d96eSPeter Wemm#
164b132d96eSPeter Wemm# PCI bus & PCI options:
165b132d96eSPeter Wemm#
166b132d96eSPeter Wemmdevice		pci
167b132d96eSPeter Wemm
168b132d96eSPeter Wemm#
169b132d96eSPeter Wemm# AGP GART support
170b132d96eSPeter Wemmdevice		agp
171b132d96eSPeter Wemm
172c353491aSWojciech A. Koszek#
173c353491aSWojciech A. Koszek# AGP debugging.
174c353491aSWojciech A. Koszek#
175c353491aSWojciech A. Koszekoptions 	AGP_DEBUG
176c353491aSWojciech A. Koszek
177b132d96eSPeter Wemm
178b132d96eSPeter Wemm#####################################################################
179b132d96eSPeter Wemm# HARDWARE DEVICE CONFIGURATION
180b132d96eSPeter Wemm
1816abad12dSXin LI# To include support for VGA VESA video modes
182ee5e90daSXin LIoptions 	VESA
183ee5e90daSXin LI
184ee5e90daSXin LI# Turn on extra debugging checks and output for VESA support.
185ee5e90daSXin LIoptions 	VESA_DEBUG
186ee5e90daSXin LI
187a57707e7SXin LIdevice		dpms		# DPMS suspend & resume via VESA BIOS
188a57707e7SXin LI
189a57707e7SXin LI# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
190a57707e7SXin LIoptions 	X86BIOS
191a57707e7SXin LI
192b132d96eSPeter Wemm#
193b132d96eSPeter Wemm# Optional devices:
194b132d96eSPeter Wemm#
195b132d96eSPeter Wemm
196c43ac89aSDag-Erling Smørgrav# PS/2 mouse
197c43ac89aSDag-Erling Smørgravdevice		psm
198c43ac89aSDag-Erling Smørgravhint.psm.0.at="atkbdc"
199c43ac89aSDag-Erling Smørgravhint.psm.0.irq="12"
200c43ac89aSDag-Erling Smørgrav
201c43ac89aSDag-Erling Smørgrav# Options for psm:
202c43ac89aSDag-Erling Smørgravoptions 	PSM_HOOKRESUME		#hook the system resume event, useful
203c43ac89aSDag-Erling Smørgrav					#for some laptops
204c43ac89aSDag-Erling Smørgravoptions 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
205c43ac89aSDag-Erling Smørgrav
206c43ac89aSDag-Erling Smørgrav# The keyboard controller; it controls the keyboard and the PS/2 mouse.
207c43ac89aSDag-Erling Smørgravdevice		atkbdc
208c43ac89aSDag-Erling Smørgravhint.atkbdc.0.at="isa"
209c43ac89aSDag-Erling Smørgravhint.atkbdc.0.port="0x060"
210c43ac89aSDag-Erling Smørgrav
211c43ac89aSDag-Erling Smørgrav# The AT keyboard
212c43ac89aSDag-Erling Smørgravdevice		atkbd
213c43ac89aSDag-Erling Smørgravhint.atkbd.0.at="atkbdc"
214c43ac89aSDag-Erling Smørgravhint.atkbd.0.irq="1"
215c43ac89aSDag-Erling Smørgrav
216c43ac89aSDag-Erling Smørgrav# Options for atkbd:
217c43ac89aSDag-Erling Smørgravoptions 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
218c43ac89aSDag-Erling Smørgravmakeoptions	ATKBD_DFLT_KEYMAP=jp.106
219c43ac89aSDag-Erling Smørgrav
220c43ac89aSDag-Erling Smørgrav# `flags' for atkbd:
221c43ac89aSDag-Erling Smørgrav#       0x01    Force detection of keyboard, else we always assume a keyboard
222c43ac89aSDag-Erling Smørgrav#       0x02    Don't reset keyboard, useful for some newer ThinkPads
223c43ac89aSDag-Erling Smørgrav#	0x03	Force detection and avoid reset, might help with certain
224c43ac89aSDag-Erling Smørgrav#		dockingstations
225c43ac89aSDag-Erling Smørgrav#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
226c43ac89aSDag-Erling Smørgrav
227c43ac89aSDag-Erling Smørgrav# Video card driver for VGA adapters.
228c43ac89aSDag-Erling Smørgravdevice		vga
229c43ac89aSDag-Erling Smørgravhint.vga.0.at="isa"
230c43ac89aSDag-Erling Smørgrav
231c43ac89aSDag-Erling Smørgrav# Options for vga:
232c43ac89aSDag-Erling Smørgrav# Try the following option if the mouse pointer is not drawn correctly
233c43ac89aSDag-Erling Smørgrav# or font does not seem to be loaded properly.  May cause flicker on
234c43ac89aSDag-Erling Smørgrav# some systems.
235c43ac89aSDag-Erling Smørgravoptions 	VGA_ALT_SEQACCESS
236c43ac89aSDag-Erling Smørgrav
237c43ac89aSDag-Erling Smørgrav# If you can dispense with some vga driver features, you may want to
238c43ac89aSDag-Erling Smørgrav# use the following options to save some memory.
239c43ac89aSDag-Erling Smørgrav#options 	VGA_NO_FONT_LOADING	# don't save/load font
240c43ac89aSDag-Erling Smørgrav#options 	VGA_NO_MODE_CHANGE	# don't change video modes
241c43ac89aSDag-Erling Smørgrav
242c43ac89aSDag-Erling Smørgrav# Older video cards may require this option for proper operation.
243c43ac89aSDag-Erling Smørgravoptions 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
244c43ac89aSDag-Erling Smørgrav
245c43ac89aSDag-Erling Smørgrav# The following option probably won't work with the LCD displays.
246c43ac89aSDag-Erling Smørgravoptions 	VGA_WIDTH90		# support 90 column modes
247c43ac89aSDag-Erling Smørgrav
248c43ac89aSDag-Erling Smørgrav# Debugging.
249c43ac89aSDag-Erling Smørgravoptions 	VGA_DEBUG
250c43ac89aSDag-Erling Smørgrav
251*ccbb7b5eSEd Maste# vt(4) drivers.
252*ccbb7b5eSEd Mastedevice		vt_vga		# VGA
253*ccbb7b5eSEd Mastedevice		vt_efifb	# EFI framebuffer
254*ccbb7b5eSEd Maste
255372c7337SXin LI# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
256372c7337SXin LIdevice		s3pci
257372c7337SXin LI
2585b9bfb42SDavid E. O'Brien# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support.  This will create
2595b9bfb42SDavid E. O'Brien# the /dev/3dfx0 device to work with glide implementations.  This should get
2605b9bfb42SDavid E. O'Brien# linked to /dev/3dfx and /dev/voodoo.  Note that this is not the same as
2615b9bfb42SDavid E. O'Brien# the tdfx DRI module from XFree86 and is completely unrelated.
2625b9bfb42SDavid E. O'Brien#
2635b9bfb42SDavid E. O'Brien# To enable Linuxulator support, one must also include COMPAT_LINUX in the
2644ffbe6baSYaroslav Tykhiy# config as well.  The other option is to load both as modules.
2655b9bfb42SDavid E. O'Brien
2665b9bfb42SDavid E. O'Briendevice		tdfx			# Enable 3Dfx Voodoo support
2674ffbe6baSYaroslav Tykhiy#XXX#device 	tdfx_linux		# Enable Linuxulator support
2685b9bfb42SDavid E. O'Brien
269b132d96eSPeter Wemm#
270b132d96eSPeter Wemm# ACPI support using the Intel ACPI Component Architecture reference
271b132d96eSPeter Wemm# implementation.
272b132d96eSPeter Wemm#
273b132d96eSPeter Wemm# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
274b132d96eSPeter Wemm# kernel environment variables to select initial debugging levels for the
275b132d96eSPeter Wemm# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
276b132d96eSPeter Wemm# defined when it is built).
2775b9bfb42SDavid E. O'Brien
278b132d96eSPeter Wemmdevice		acpi
279b132d96eSPeter Wemmoptions 	ACPI_DEBUG
280b132d96eSPeter Wemm
281a1ec5393SNate Lawson# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
282a1ec5393SNate Lawsondevice		cpufreq
283a1ec5393SNate Lawson
284b8aa843cSEric Anholt# Direct Rendering modules for 3D acceleration.
285b8aa843cSEric Anholtdevice		drm		# DRM core module required by DRM drivers
28669b9fffcSEric Anholtdevice		i915drm		# Intel i830 through i915
287b8aa843cSEric Anholtdevice		mach64drm	# ATI Rage Pro, Rage Mobility P/M, Rage XL
288b8aa843cSEric Anholtdevice		mgadrm		# AGP Matrox G200, G400, G450, G550
289b8aa843cSEric Anholtdevice		r128drm		# ATI Rage 128
290af088425SEric Anholtdevice		radeondrm	# ATI Radeon
2919fb07673SEric Anholtdevice		savagedrm	# S3 Savage3D, Savage4
292b8aa843cSEric Anholtdevice		sisdrm		# SiS 300/305, 540, 630
293b8aa843cSEric Anholtdevice		tdfxdrm		# 3dfx Voodoo 3/4/5 and Banshee
294b1ba33ffSRobert Nolanddevice		viadrm		# VIA
295b8aa843cSEric Anholtoptions 	DRM_DEBUG	# Include debug printfs (slow)
296b132d96eSPeter Wemm
297b132d96eSPeter Wemm#
298b132d96eSPeter Wemm# Network interfaces:
299b132d96eSPeter Wemm#
300b132d96eSPeter Wemm
3014e400768SDavid Christensen# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
3024e400768SDavid Christensen#       adapters.
30332a31d0dSDavid E. O'Brien# ed:   Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
304e54ad0a1SWarner Losh#       HP PC Lan+, various PC Card devices
30575294710SPeter Wemm#       (requires miibus)
306e3d7caf4SJohn Baldwin# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
307c7ea7c46SRebecca Cran#	Requires the ipw firmware module
308e3d7caf4SJohn Baldwin# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
309c7ea7c46SRebecca Cran#	Requires the iwi firmware module
310c7ea7c46SRebecca Cran# iwn:	Intel Wireless WiFi Link 4965/1000/5000/6000 802.11 network adapters
311c7ea7c46SRebecca Cran#	Requires the iwn firmware module
312ed5a2b61SJohn Baldwin# mlx4ib: Mellanox ConnectX HCA InfiniBand
313ed5a2b61SJohn Baldwin# mlxen: Mellanox ConnectX HCA Ethernet
314ed5a2b61SJohn Baldwin# mthca: Mellanox HCA InfiniBand
315bfc788c2SDavid E. O'Brien# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
3167ac6374dSPhilip Paeps# sfxge: Solarflare SFC9000 family 10Gb Ethernet adapters
317ddb4ffd0SBryan Venteicher# vmx:	VMware VMXNET3 Ethernet (BSD open source)
31803734771SBenjamin Close# wpi:	Intel 3945ABG Wireless LAN controller
319c7ea7c46SRebecca Cran#	Requires the wpi firmware module
320b132d96eSPeter Wemm
3214e400768SDavid Christensendevice		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
32220b5d3bfSJohn Baldwindevice		ed		# NE[12]000, SMC Ultra, 3c503, DS8390 cards
3236ec29713SPeter Wemmoptions 	ED_3C503
3246ec29713SPeter Wemmoptions 	ED_HPP
3256ec29713SPeter Wemmoptions 	ED_SIC
32620b5d3bfSJohn Baldwindevice		ipw		# Intel 2100 wireless NICs.
32720b5d3bfSJohn Baldwindevice		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
32820b5d3bfSJohn Baldwindevice		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
329ed5a2b61SJohn Baldwindevice  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
330ed5a2b61SJohn Baldwindevice  	mlxen		# Mellanox ConnectX HCA Ethernet
331ed5a2b61SJohn Baldwindevice  	mthca		# Mellanox HCA InfiniBand
33220b5d3bfSJohn Baldwindevice		nfe		# nVidia nForce MCP on-board Ethernet
333778eefa4SJohn Baldwindevice		sfxge		# Solarflare SFC9000 10Gb Ethernet
334ddb4ffd0SBryan Venteicherdevice		vmx		# VMware VMXNET3 Ethernet
33520b5d3bfSJohn Baldwindevice		wpi		# Intel 3945ABG wireless NICs.
33632a31d0dSDavid E. O'Brien
337c7ea7c46SRebecca Cran# IEEE 802.11 adapter firmware modules
338c7ea7c46SRebecca Cran
339c7ea7c46SRebecca Cran# Intel PRO/Wireless 2100 firmware:
340c7ea7c46SRebecca Cran#   ipwfw:		BSS/IBSS/monitor mode firmware
341c7ea7c46SRebecca Cran#   ipwbssfw:		BSS mode firmware
342c7ea7c46SRebecca Cran#   ipwibssfw:		IBSS mode firmware
343c7ea7c46SRebecca Cran#   ipwmonitorfw:	Monitor mode firmware
344c7ea7c46SRebecca Cran# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
345c7ea7c46SRebecca Cran#   iwifw:		BSS/IBSS/monitor mode firmware
346c7ea7c46SRebecca Cran#   iwibssfw:		BSS mode firmware
347c7ea7c46SRebecca Cran#   iwiibssfw:		IBSS mode firmware
348c7ea7c46SRebecca Cran#   iwimonitorfw:	Monitor mode firmware
349c7ea7c46SRebecca Cran# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
350c7ea7c46SRebecca Cran#   iwnfw:		Single module to support the 4965/1000/5000/5150/6000
351c7ea7c46SRebecca Cran#   iwn4965fw:		Specific module for the 4965 only
352c7ea7c46SRebecca Cran#   iwn1000fw:		Specific module for the 1000 only
353c7ea7c46SRebecca Cran#   iwn5000fw:		Specific module for the 5000 only
354c7ea7c46SRebecca Cran#   iwn5150fw:		Specific module for the 5150 only
355c7ea7c46SRebecca Cran#   iwn6000fw:		Specific module for the 6000 only
356774f94f1SBernhard Schmidt#   iwn6050fw:		Specific module for the 6050 only
357c7ea7c46SRebecca Cran# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
358c7ea7c46SRebecca Cran
359c7ea7c46SRebecca Crandevice		iwifw
360c7ea7c46SRebecca Crandevice		iwibssfw
361c7ea7c46SRebecca Crandevice		iwiibssfw
362c7ea7c46SRebecca Crandevice		iwimonitorfw
363c7ea7c46SRebecca Crandevice		ipwfw
364c7ea7c46SRebecca Crandevice		ipwbssfw
365c7ea7c46SRebecca Crandevice		ipwibssfw
366c7ea7c46SRebecca Crandevice		ipwmonitorfw
367c7ea7c46SRebecca Crandevice		iwnfw
368c7ea7c46SRebecca Crandevice		iwn4965fw
369c7ea7c46SRebecca Crandevice		iwn1000fw
370c7ea7c46SRebecca Crandevice		iwn5000fw
371c7ea7c46SRebecca Crandevice		iwn5150fw
372c7ea7c46SRebecca Crandevice		iwn6000fw
373774f94f1SBernhard Schmidtdevice		iwn6050fw
374c7ea7c46SRebecca Crandevice		wpifw
375c7ea7c46SRebecca Cran
376e47937d1SCarl Delsey# Intel Non-Transparent Bridge (NTB) hardware
377e47937d1SCarl Delseydevice		ntb_hw	# Hardware Abstraction Layer for the NTB
378e47937d1SCarl Delseydevice		if_ntb	# Simulated ethernet device using the NTB
379e47937d1SCarl Delsey
380b132d96eSPeter Wemm#
3815b9bfb42SDavid E. O'Brien#XXX this stores pointers in a 32bit field that is defined by the hardware
3825b9bfb42SDavid E. O'Brien#device	pst
383b132d96eSPeter Wemm
384b132d96eSPeter Wemm#
385d0885ac3SScott Long# Areca 11xx and 12xx series of SATA II RAID controllers.
386d0885ac3SScott Long# CAM is required.
387d0885ac3SScott Long#
388d0885ac3SScott Longdevice		arcmsr		# Areca SATA II RAID
389d0885ac3SScott Long
390d0885ac3SScott Long#
3917be2e3e2SPeter Wemm# 3ware 9000 series PATA/SATA RAID controller driver and options.
3927be2e3e2SPeter Wemm# The driver is implemented as a SIM, and so, needs the CAM infrastructure.
3937be2e3e2SPeter Wemm#
3947be2e3e2SPeter Wemmoptions 	TWA_DEBUG		# 0-10; 10 prints the most messages.
3957be2e3e2SPeter Wemmoptions 	TWA_FLASH_FIRMWARE	# firmware image bundled when defined.
3967be2e3e2SPeter Wemmdevice		twa			# 3ware 9000 series PATA/SATA RAID
3977be2e3e2SPeter Wemm
3987be2e3e2SPeter Wemm#
399b132d96eSPeter Wemm# SCSI host adapters:
400b132d96eSPeter Wemm#
40132a31d0dSDavid E. O'Brien# ncv: NCR 53C500 based SCSI host adapters.
40232a31d0dSDavid E. O'Brien# nsp: Workbit Ninja SCSI-3 based PC Card SCSI host adapters.
40332a31d0dSDavid E. O'Brien# stg: TMC 18C30, 18C50 based SCSI host adapters.
40432a31d0dSDavid E. O'Brien
40532a31d0dSDavid E. O'Briendevice		ncv
40632a31d0dSDavid E. O'Briendevice		nsp
40732a31d0dSDavid E. O'Briendevice		stg
408b132d96eSPeter Wemm
409b132d96eSPeter Wemm#
410b132d96eSPeter Wemm# Adaptec FSA RAID controllers, including integrated DELL controllers,
411b132d96eSPeter Wemm# the Dell PERC 2/QC and the HP NetRAID-4M
412b132d96eSPeter Wemmdevice		aac
413b132d96eSPeter Wemmdevice		aacp	# SCSI Passthrough interface (optional, CAM required)
414b132d96eSPeter Wemm
415b132d96eSPeter Wemm#
416dce93cd0SAchim Leubner# Adaptec by PMC RAID controllers, Series 6/7/8 and upcoming families
417dce93cd0SAchim Leubnerdevice		aacraid		# Container interface, CAM required
418dce93cd0SAchim Leubner
419dce93cd0SAchim Leubner#
42081966bceSXin LI# Highpoint RocketRAID 27xx.
42181966bceSXin LIdevice		hpt27xx
42281966bceSXin LI
42381966bceSXin LI#
424b063a422SScott Long# Highpoint RocketRAID 182x.
425dc8540a9SScott Longdevice		hptmv
42680a11093SPeter Wemm
42780a11093SPeter Wemm#
4281fdeb165SXin LI# Highpoint DC7280 and R750.
4291fdeb165SXin LIdevice		hptnr
4301fdeb165SXin LI
4311fdeb165SXin LI#
432b063a422SScott Long# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
433b063a422SScott Long# RR2210, RR174x, RR2522, RR231x, RR230x.
434b063a422SScott Longdevice		hptrr
435b063a422SScott Long
436b063a422SScott Long#
437f73e86c3SScott Long# Highpoint RocketRaid 3xxx series SATA RAID
438f73e86c3SScott Longdevice		hptiop
439f73e86c3SScott Long
440f73e86c3SScott Long#
441b132d96eSPeter Wemm# IBM (now Adaptec) ServeRAID controllers
442b132d96eSPeter Wemmdevice		ips
443b132d96eSPeter Wemm
444b132d96eSPeter Wemm#
445f11c7f63SJim Harris# Intel C600 (Patsburg) integrated SAS controller
446f11c7f63SJim Harrisdevice		isci
447f11c7f63SJim Harrisoptions 	ISCI_LOGGING	# enable debugging in isci HAL
448f11c7f63SJim Harris
449f11c7f63SJim Harris#
450eb85d44fSJim Harris# NVM Express (NVMe) support
451eb85d44fSJim Harrisdevice         nvme    # base NVMe driver
452eb85d44fSJim Harrisdevice         nvd     # expose NVMe namespaces as disks, depends on nvme
453eb85d44fSJim Harris
454eb85d44fSJim Harris#
455b132d96eSPeter Wemm# SafeNet crypto driver: can be moved to the MI NOTES as soon as
456b132d96eSPeter Wemm# it's tested on a big-endian machine
457b132d96eSPeter Wemm#
458b132d96eSPeter Wemmdevice		safe		# SafeNet 1141
459b132d96eSPeter Wemmoptions 	SAFE_DEBUG	# enable debugging support: hw.safe.debug
460b132d96eSPeter Wemmoptions 	SAFE_RNDTEST	# enable rndtest support
461b132d96eSPeter Wemm
462ae366ffcSBryan Venteicher#
463ae366ffcSBryan Venteicher# VirtIO support
4640cfbcf8cSBryan Venteicher#
4650cfbcf8cSBryan Venteicher# The virtio entry provides a generic bus for use by the device drivers.
4660cfbcf8cSBryan Venteicher# It must be combined with an interface that communicates with the host.
467aa27ed45SJens Schweikhardt# Multiple such interfaces are defined by the VirtIO specification. FreeBSD
4680cfbcf8cSBryan Venteicher# only has support for PCI. Therefore, virtio_pci must be statically
4690cfbcf8cSBryan Venteicher# compiled in or loaded as a module for the device drivers to function.
4700cfbcf8cSBryan Venteicher#
471ae366ffcSBryan Venteicherdevice		virtio		# Generic VirtIO bus (required)
472ae366ffcSBryan Venteicherdevice		virtio_pci	# VirtIO PCI Interface
473ae366ffcSBryan Venteicherdevice		vtnet		# VirtIO Ethernet device
474ae366ffcSBryan Venteicherdevice		virtio_blk	# VirtIO Block device
475ae366ffcSBryan Venteicherdevice		virtio_scsi	# VirtIO SCSI device
476ae366ffcSBryan Venteicherdevice		virtio_balloon	# VirtIO Memory Balloon device
47710c40180SBryan Venteicherdevice		virtio_random	# VirtIO Entropy device
478ae366ffcSBryan Venteicher
47969eb2b17SGleb Smirnoffdevice 		hyperv		# HyperV drivers
48069eb2b17SGleb Smirnoff
48169eb2b17SGleb Smirnoff# Xen HVM Guest Optimizations
48269eb2b17SGleb Smirnoffoptions 	XENHVM		# Xen HVM kernel infrastructure
48369eb2b17SGleb Smirnoffdevice 		xenpci		# Xen HVM Hypervisor services driver
48469eb2b17SGleb Smirnoff
485b132d96eSPeter Wemm#####################################################################
486b132d96eSPeter Wemm
487b132d96eSPeter Wemm#
488b132d96eSPeter Wemm# Miscellaneous hardware:
489b132d96eSPeter Wemm#
490d72a0786SJohn Baldwin# ipmi: Intelligent Platform Management Interface
491c4ce3ea6SWojciech A. Koszek# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
4924bf21bfeSPeter Wemm# smbios: DMI/SMBIOS entry point
4934bf21bfeSPeter Wemm# vpd: Vital Product Data kernel interface
494d9aa6eb4SRui Paulo# asmc: Apple System Management Controller
495c4ce3ea6SWojciech A. Koszek# si: Specialix International SI/XIO or SX intelligent serial card
496cbf4dac6SNorikatsu Shigemura# tpm: Trusted Platform Module
497b132d96eSPeter Wemm
498b132d96eSPeter Wemm# Notes on the Specialix SI/XIO driver:
499b132d96eSPeter Wemm#  The host card is memory, not IO mapped.
500b132d96eSPeter Wemm#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
501b132d96eSPeter Wemm#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
502b132d96eSPeter Wemm#  The cards can use an IRQ of 11, 12 or 15.
503b132d96eSPeter Wemm
504d72a0786SJohn Baldwindevice		ipmi
50580a11093SPeter Wemmdevice		pbio
50680a11093SPeter Wemmhint.pbio.0.at="isa"
50780a11093SPeter Wemmhint.pbio.0.port="0x360"
508a52daa5fSJung-uk Kimdevice		smbios
5094bf21bfeSPeter Wemmdevice		vpd
510d9aa6eb4SRui Paulodevice		asmc
511c4ce3ea6SWojciech A. Koszek#device		si
512cbf4dac6SNorikatsu Shigemuradevice		tpm
51346be218dSDavid E. O'Briendevice		padlock_rng	# VIA Padlock RNG
51446be218dSDavid E. O'Briendevice		rdrand_rng	# Intel Bull Mountain RNG
51529904f46SJohn-Mark Gurneydevice		aesni		# AES-NI OpenCrypto module
516c4ce3ea6SWojciech A. Koszek
517b132d96eSPeter Wemm#
518b132d96eSPeter Wemm# Laptop/Notebook options:
519b132d96eSPeter Wemm#
520b132d96eSPeter Wemm
5215b9bfb42SDavid E. O'Brien
5225b9bfb42SDavid E. O'Brien#
5235b9bfb42SDavid E. O'Brien# I2C Bus
5245b9bfb42SDavid E. O'Brien#
5255b9bfb42SDavid E. O'Brien
52680a11093SPeter Wemm#
52780a11093SPeter Wemm# Hardware watchdog timers:
52880a11093SPeter Wemm#
52980a11093SPeter Wemm# ichwd: Intel ICH watchdog timer
5305022f21bSAndriy Gapon# amdsbwd: AMD SB7xx watchdog timer
53125841e91SXin LI# viawd: VIA south bridge watchdog timer
5320566170fSBjoern A. Zeeb# wbwd: Winbond watchdog timer
53380a11093SPeter Wemm#
53480a11093SPeter Wemmdevice		ichwd
5355022f21bSAndriy Gapondevice		amdsbwd
53661af1d13SFabien Thomasdevice		viawd
5370566170fSBjoern A. Zeebdevice		wbwd
53880a11093SPeter Wemm
53983d18f22SDag-Erling Smørgrav#
54083d18f22SDag-Erling Smørgrav# Temperature sensors:
54183d18f22SDag-Erling Smørgrav#
54283d18f22SDag-Erling Smørgrav# coretemp: on-die sensor on Intel Core and newer CPUs
5436465d2d9SDmitry Chagin# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
54483d18f22SDag-Erling Smørgrav#
54583d18f22SDag-Erling Smørgravdevice		coretemp
5466465d2d9SDmitry Chagindevice		amdtemp
54783d18f22SDag-Erling Smørgrav
548b132d96eSPeter Wemm#
549e085f869SStanislav Sedov# CPU control pseudo-device. Provides access to MSRs, CPUID info and
550e085f869SStanislav Sedov# microcode update feature.
551e085f869SStanislav Sedov#
552e085f869SStanislav Sedovdevice		cpuctl
553e085f869SStanislav Sedov
554e085f869SStanislav Sedov#
5557be2e3e2SPeter Wemm# System Management Bus (SMB)
5567be2e3e2SPeter Wemm#
5577be2e3e2SPeter Wemmoptions 	ENABLE_ALART		# Control alarm on Intel intpm driver
5587be2e3e2SPeter Wemm
5597be2e3e2SPeter Wemm#
560cee0b197SJohn Baldwin# Number of initial kernel page table pages used for early bootstrap.
561cee0b197SJohn Baldwin# This number should include enough pages to map the kernel and any
562cee0b197SJohn Baldwin# modules or other data loaded with the kernel by the loader.  Each
563cee0b197SJohn Baldwin# page table page maps 2MB.
564cee0b197SJohn Baldwin#
565cee0b197SJohn Baldwinoptions 	NKPT=31
566cee0b197SJohn Baldwin
567b132d96eSPeter Wemm
568b132d96eSPeter Wemm#####################################################################
569b132d96eSPeter Wemm# ABI Emulation
570b132d96eSPeter Wemm
5715b9bfb42SDavid E. O'Brien#XXX keep these here for now and reactivate when support for emulating
5725b9bfb42SDavid E. O'Brien#XXX these 32 bit binaries is added.
5735b9bfb42SDavid E. O'Brien
574c680f6b1SDavid E. O'Brien# Enable 32-bit runtime support for FreeBSD/i386 binaries.
575841c0c7eSNathan Whitehornoptions 	COMPAT_FREEBSD32
576c680f6b1SDavid E. O'Brien
5775b9bfb42SDavid E. O'Brien# Enable iBCS2 runtime support for SCO and ISC binaries
5785b9bfb42SDavid E. O'Brien#XXX#options 	IBCS2
5795b9bfb42SDavid E. O'Brien
5805b9bfb42SDavid E. O'Brien# Emulate spx device for client side of SVR3 local X interface
5815b9bfb42SDavid E. O'Brien#XXX#options 	SPX_HACK
5825b9bfb42SDavid E. O'Brien
583b132d96eSPeter Wemm# Enable Linux ABI emulation
5845b9bfb42SDavid E. O'Brien#XXX#options 	COMPAT_LINUX
585b132d96eSPeter Wemm
586841c0c7eSNathan Whitehorn# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_FREEBSD32)
587ea0fabbcSTim J. Robbinsoptions 	COMPAT_LINUX32
588ea0fabbcSTim J. Robbins
5897a474197STim J. Robbins# Enable the linux-like proc filesystem support (requires COMPAT_LINUX32
590b132d96eSPeter Wemm# and PSEUDOFS)
5917a474197STim J. Robbinsoptions 	LINPROCFS
5925b9bfb42SDavid E. O'Brien
59332397ce0SDoug Ambrisko#Enable the linux-like sys filesystem support (requires COMPAT_LINUX32
59432397ce0SDoug Ambrisko# and PSEUDOFS)
59532397ce0SDoug Ambriskooptions 	LINSYSFS
59632397ce0SDoug Ambrisko
5975b9bfb42SDavid E. O'Brien#
5985b9bfb42SDavid E. O'Brien# SysVR4 ABI emulation
5995b9bfb42SDavid E. O'Brien#
6005b9bfb42SDavid E. O'Brien# The svr4 ABI emulator can be statically compiled into the kernel or loaded as
6015b9bfb42SDavid E. O'Brien# a KLD module.
6025b9bfb42SDavid E. O'Brien# The STREAMS network emulation code can also be compiled statically or as a
6035b9bfb42SDavid E. O'Brien# module.  If loaded as a module, it must be loaded before the svr4 module
6045b9bfb42SDavid E. O'Brien# (the /usr/sbin/svr4 script does this for you).  If compiling statically,
6055b9bfb42SDavid E. O'Brien# the `streams' device must be configured into any kernel which also
6065b9bfb42SDavid E. O'Brien# specifies COMPAT_SVR4.  It is possible to have a statically-configured
6075b9bfb42SDavid E. O'Brien# STREAMS device and a dynamically loadable svr4 emulator;  the /usr/sbin/svr4
6085b9bfb42SDavid E. O'Brien# script understands that it doesn't need to load the `streams' module under
6095b9bfb42SDavid E. O'Brien# those circumstances.
6105b9bfb42SDavid E. O'Brien# Caveat:  At this time, `options KTRACE' is required for the svr4 emulator
6115b9bfb42SDavid E. O'Brien# (whether static or dynamic).
6125b9bfb42SDavid E. O'Brien#
6135b9bfb42SDavid E. O'Brien#XXX#options 	COMPAT_SVR4	# build emulator statically
6140fef69a2SPeter Wemm#XXX#options 	DEBUG_SVR4	# enable verbose debugging
6155b9bfb42SDavid E. O'Brien#XXX#device	streams		# STREAMS network driver (required for svr4).
616b132d96eSPeter Wemm
617b132d96eSPeter Wemm
618b132d96eSPeter Wemm#####################################################################
619b132d96eSPeter Wemm# VM OPTIONS
620b132d96eSPeter Wemm
621b132d96eSPeter Wemm# KSTACK_PAGES is the number of memory pages to assign to the kernel
622b132d96eSPeter Wemm# stack of each thread.
623b132d96eSPeter Wemm
624136882cfSAndriy Gaponoptions 	KSTACK_PAGES=5
625b132d96eSPeter Wemm
6265d4c773bSAlan Cox# Enable detailed accounting by the PV entry allocator.
6275d4c773bSAlan Cox
6285d4c773bSAlan Coxoptions 	PV_STATS
6295d4c773bSAlan Cox
630b132d96eSPeter Wemm#####################################################################
631b132d96eSPeter Wemm
632b132d96eSPeter Wemm# More undocumented options for linting.
633b132d96eSPeter Wemm# Note that documenting these are not considered an affront.
634b132d96eSPeter Wemm
635b132d96eSPeter Wemmoptions 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
636b132d96eSPeter Wemm
637b132d96eSPeter Wemmoptions 	KBDIO_DEBUG=2
638b132d96eSPeter Wemmoptions 	KBD_MAXRETRY=4
639b132d96eSPeter Wemmoptions 	KBD_MAXWAIT=6
640b132d96eSPeter Wemmoptions 	KBD_RESETDELAY=201
641b132d96eSPeter Wemm
642b132d96eSPeter Wemmoptions 	PSM_DEBUG=1
643b132d96eSPeter Wemm
644b132d96eSPeter Wemmoptions 	TIMER_FREQ=((14318182+6)/12)
645b132d96eSPeter Wemm
646b132d96eSPeter Wemmoptions 	VM_KMEM_SIZE
647b132d96eSPeter Wemmoptions 	VM_KMEM_SIZE_MAX
648b132d96eSPeter Wemmoptions 	VM_KMEM_SIZE_SCALE
6498ab2f5ecSMark Murray
650e3d7caf4SJohn Baldwin# Enable NDIS binary driver support
651663963b1SAndrew Thompsonoptions 	NDISAPI
652663963b1SAndrew Thompsondevice		ndis
653