1125461Speter#
2125461Speter# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
3125461Speter#
4125461Speter# This file contains machine dependent kernel configuration notes.  For
5125461Speter# machine independent notes, look in /sys/conf/NOTES.
6125984Sobrien#
7125461Speter# $FreeBSD$
8125461Speter#
9125461Speter
10125461Speter#
11126929Speter# We want LINT to cover profiling as well.
12147687Speterprofile         2
13125461Speter
14209313Skib#
15209313Skib# Enable the kernel DTrace hooks which are required to load the DTrace
16209313Skib# kernel modules.
17209313Skib#
18209313Skiboptions 	KDTRACE_HOOKS
19209313Skib
20125461Speter
21126541Sobrien#####################################################################
22126541Sobrien# SMP OPTIONS:
23126541Sobrien#
24126541Sobrien# Notes:
25126541Sobrien#
26147378Sups# IPI_PREEMPTION instructs the kernel to preempt threads running on other
27147378Sups#	  CPUS if needed.  Relies on the PREEMPTION option
28125461Speter
29126541Sobrien# Optional:
30147378Supsoptions 	IPI_PREEMPTION
31126638Sobriendevice		atpic			# Optional legacy pic support
32126637Sobriendevice		mptable			# Optional MPSPEC mptable support
33126541Sobrien
34142732Sobrien#
35142732Sobrien# Watchdog routines.
36142732Sobrien#
37142732Sobrienoptions 	MP_WATCHDOG
38142732Sobrien
39209248Smav# Debugging options.
40209248Smav#
41209248Smavoptions 	COUNT_XINVLTLB_HITS	# Counters for TLB events
42209248Smavoptions 	COUNT_IPIS		# Per-CPU IPI interrupt counters
43145727Sdwhite
44209248Smav
45126541Sobrien
46126541Sobrien#####################################################################
47126541Sobrien# CPU OPTIONS
48126541Sobrien
49125461Speter#
50126541Sobrien# You must specify at least one CPU (the one you intend to run on);
51126541Sobrien# deleting the specification for CPUs you don't need to use may make
52126541Sobrien# parts of the system run faster.
53126541Sobrien#
54126541Sobriencpu		HAMMER			# aka K8, aka Opteron & Athlon64
55126541Sobrien
56126541Sobrien#
57126541Sobrien# Options for CPU features.
58126541Sobrien#
59126541Sobrien
60126541Sobrien#
61125461Speter# PERFMON causes the driver for Pentium/Pentium Pro performance counters
62125461Speter# to be compiled.  See perfmon(4) for more information.
63125461Speter#
64126541Sobrien#XXX#options 	PERFMON
65125461Speter
66125461Speter
67125461Speter#####################################################################
68125461Speter# NETWORKING OPTIONS
69125461Speter
70125461Speter#
71125461Speter# DEVICE_POLLING adds support for mixed interrupt-polling handling
72125461Speter# of network device drivers, which has significant benefits in terms
73125461Speter# of robustness to overloads and responsivity, as well as permitting
74125461Speter# accurate scheduling of the CPU time between kernel network processing
75126541Sobrien# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
76125461Speter# potential increase in response times.
77125461Speter# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
78125461Speter# to achieve smoother behaviour.
79151051Sglebius# Additionally, you can enable/disable polling at runtime with help of
80151051Sglebius# the ifconfig(8) utility, and select the CPU fraction reserved to
81151051Sglebius# userland with the sysctl variable kern.polling.user_frac
82151051Sglebius# (default 50, range 0..100).
83125461Speter#
84126541Sobrien# Not all device drivers support this mode of operation at the time of
85126541Sobrien# this writing.  See polling(4) for more details.
86125461Speter
87125461Speteroptions 	DEVICE_POLLING
88125461Speter
89177586Sjkim# BPF_JITTER adds support for BPF just-in-time compiler.
90177586Sjkim
91191954Skuriyamaoptions 	BPF_JITTER
92177586Sjkim
93234183Sjhb# OpenFabrics Enterprise Distribution (Infiniband).
94234183Sjhboptions 	OFED
95234183Sjhboptions 	OFED_DEBUG_INIT
96234183Sjhb
97234183Sjhb# Sockets Direct Protocol
98234183Sjhboptions 	SDP
99234183Sjhboptions 	SDP_DEBUG
100234183Sjhb
101239771Sjhb# IP over Infiniband
102234183Sjhboptions 	IPOIB
103234183Sjhboptions 	IPOIB_DEBUG
104234183Sjhboptions 	IPOIB_CM
105234183Sjhb
106125461Speter
107125461Speter#####################################################################
108125461Speter# CLOCK OPTIONS
109125461Speter
110173160Speter# Provide read/write access to the memory in the clock chip.
111173160Speterdevice		nvram		# Access to rtc cmos via /dev/nvram
112173160Speter
113125461Speter
114125461Speter#####################################################################
115125461Speter# MISCELLANEOUS DEVICES AND OPTIONS
116125461Speter
117152306Srudevice		speaker		#Play IBM BASIC-style noises out your speaker
118152306Sruhint.speaker.0.at="isa"
119152306Sruhint.speaker.0.port="0x61"
120126541Sobriendevice		gzip		#Exec gzipped a.out's.  REQUIRES COMPAT_AOUT!
121125461Speter
122125461Speter
123125461Speter#####################################################################
124125461Speter# HARDWARE BUS CONFIGURATION
125125461Speter
126125461Speter#
127125461Speter# ISA bus
128125461Speter#
129125461Speterdevice		isa
130125461Speter
131125461Speter#
132125461Speter# Options for `isa':
133125461Speter#
134125461Speter# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
135125461Speter# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
136125461Speter# This option breaks suspend/resume on some portables.
137125461Speter#
138125461Speter# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
139125461Speter# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
140125461Speter# Automatic EOI is documented not to work for for the slave with the
141125461Speter# original i8259A, but it works for some clones and some integrated
142125461Speter# versions.
143125461Speter#
144125461Speter# MAXMEM specifies the amount of RAM on the machine; if this is not
145125461Speter# specified, FreeBSD will first read the amount of memory from the CMOS
146125461Speter# RAM, so the amount of memory will initially be limited to 64MB or 16MB
147125461Speter# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
148125461Speter# then attempt to detect the installed amount of RAM.  If this probe
149125461Speter# fails to detect >64MB RAM you will have to use the MAXMEM option.
150125461Speter# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
151125461Speter# be 131072 (128 * 1024).
152125461Speter#
153125461Speter# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
154125461Speter# reset the CPU for reboot.  This is needed on some systems with broken
155125461Speter# keyboard controllers.
156125461Speter
157126541Sobrienoptions 	AUTO_EOI_1
158126541Sobrien#options 	AUTO_EOI_2
159126541Sobrien
160125461Speteroptions 	MAXMEM=(128*1024)
161125461Speter#options 	BROKEN_KEYBOARD_RESET
162125461Speter
163125461Speter#
164125461Speter# PCI bus & PCI options:
165125461Speter#
166125461Speterdevice		pci
167125461Speter
168125461Speter#
169125461Speter# AGP GART support
170125461Speterdevice		agp
171125461Speter
172188247Swkoszek#
173188247Swkoszek# AGP debugging.
174188247Swkoszek#
175191954Skuriyamaoptions 	AGP_DEBUG
176188247Swkoszek
177125461Speter
178125461Speter#####################################################################
179125461Speter# HARDWARE DEVICE CONFIGURATION
180125461Speter
181197380Sdelphij# To include support for VGA VESA video modes
182197025Sdelphijoptions 	VESA
183197025Sdelphij
184197025Sdelphij# Turn on extra debugging checks and output for VESA support.
185197025Sdelphijoptions 	VESA_DEBUG
186197025Sdelphij
187197397Sdelphijdevice		dpms		# DPMS suspend & resume via VESA BIOS
188197397Sdelphij
189197397Sdelphij# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
190197397Sdelphijoptions		X86BIOS
191197397Sdelphij
192125461Speter#
193125461Speter# Optional devices:
194125461Speter#
195125461Speter
196163535Sdes# PS/2 mouse
197163535Sdesdevice		psm
198163535Sdeshint.psm.0.at="atkbdc"
199163535Sdeshint.psm.0.irq="12"
200163535Sdes
201163535Sdes# Options for psm:
202163535Sdesoptions 	PSM_HOOKRESUME		#hook the system resume event, useful
203163535Sdes					#for some laptops
204163535Sdesoptions 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
205163535Sdes
206163535Sdes# The keyboard controller; it controls the keyboard and the PS/2 mouse.
207163535Sdesdevice		atkbdc
208163535Sdeshint.atkbdc.0.at="isa"
209163535Sdeshint.atkbdc.0.port="0x060"
210163535Sdes
211163535Sdes# The AT keyboard
212163535Sdesdevice		atkbd
213163535Sdeshint.atkbd.0.at="atkbdc"
214163535Sdeshint.atkbd.0.irq="1"
215163535Sdes
216163535Sdes# Options for atkbd:
217163535Sdesoptions 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
218163535Sdesmakeoptions	ATKBD_DFLT_KEYMAP=jp.106
219163535Sdes
220163535Sdes# `flags' for atkbd:
221163535Sdes#       0x01    Force detection of keyboard, else we always assume a keyboard
222163535Sdes#       0x02    Don't reset keyboard, useful for some newer ThinkPads
223163535Sdes#	0x03	Force detection and avoid reset, might help with certain
224163535Sdes#		dockingstations
225163535Sdes#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
226163535Sdes
227163535Sdes# Video card driver for VGA adapters.
228163535Sdesdevice		vga
229163535Sdeshint.vga.0.at="isa"
230163535Sdes
231163535Sdes# Options for vga:
232163535Sdes# Try the following option if the mouse pointer is not drawn correctly
233163535Sdes# or font does not seem to be loaded properly.  May cause flicker on
234163535Sdes# some systems.
235163535Sdesoptions 	VGA_ALT_SEQACCESS
236163535Sdes
237163535Sdes# If you can dispense with some vga driver features, you may want to
238163535Sdes# use the following options to save some memory.
239163535Sdes#options 	VGA_NO_FONT_LOADING	# don't save/load font
240163535Sdes#options 	VGA_NO_MODE_CHANGE	# don't change video modes
241163535Sdes
242163535Sdes# Older video cards may require this option for proper operation.
243163535Sdesoptions 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
244163535Sdes
245163535Sdes# The following option probably won't work with the LCD displays.
246163535Sdesoptions 	VGA_WIDTH90		# support 90 column modes
247163535Sdes
248163535Sdes# Debugging.
249163535Sdesoptions 	VGA_DEBUG
250163535Sdes
251197379Sdelphij# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
252197379Sdelphijdevice		s3pci
253197379Sdelphij
254126541Sobrien# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support.  This will create
255126541Sobrien# the /dev/3dfx0 device to work with glide implementations.  This should get
256126541Sobrien# linked to /dev/3dfx and /dev/voodoo.  Note that this is not the same as
257126541Sobrien# the tdfx DRI module from XFree86 and is completely unrelated.
258125461Speter#
259126541Sobrien# To enable Linuxulator support, one must also include COMPAT_LINUX in the
260156354Syar# config as well.  The other option is to load both as modules.
261126541Sobrien
262126541Sobriendevice		tdfx			# Enable 3Dfx Voodoo support
263156354Syar#XXX#device 	tdfx_linux		# Enable Linuxulator support
264126541Sobrien
265126541Sobrien#
266125461Speter# ACPI support using the Intel ACPI Component Architecture reference
267125461Speter# implementation.
268125461Speter#
269125461Speter# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
270125461Speter# kernel environment variables to select initial debugging levels for the
271125461Speter# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
272125461Speter# defined when it is built).
273126541Sobrien
274125461Speterdevice		acpi
275125461Speteroptions 	ACPI_DEBUG
276125461Speter
277171146Snjl# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
278171146Snjldevice		cpufreq
279171146Snjl
280145132Sanholt# Direct Rendering modules for 3D acceleration.
281145132Sanholtdevice		drm		# DRM core module required by DRM drivers
282153033Sanholtdevice		i915drm		# Intel i830 through i915
283145132Sanholtdevice		mach64drm	# ATI Rage Pro, Rage Mobility P/M, Rage XL
284145132Sanholtdevice		mgadrm		# AGP Matrox G200, G400, G450, G550
285145132Sanholtdevice		r128drm		# ATI Rage 128
286148211Sanholtdevice		radeondrm	# ATI Radeon
287152909Sanholtdevice		savagedrm	# S3 Savage3D, Savage4
288145132Sanholtdevice		sisdrm		# SiS 300/305, 540, 630
289145132Sanholtdevice		tdfxdrm		# 3dfx Voodoo 3/4/5 and Banshee
290203288Srnolanddevice		viadrm		# VIA
291145132Sanholtoptions 	DRM_DEBUG	# Include debug printfs (slow)
292125461Speter
293125461Speter#
294125461Speter# Network interfaces:
295125461Speter#
296125461Speter
297255736Sdavidch# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
298255736Sdavidch#       adapters.
299125984Sobrien# ed:   Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
300163494Simp#       HP PC Lan+, various PC Card devices
301129293Speter#       (requires miibus)
302159549Sjhb# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
303203691Sbrucec#	Requires the ipw firmware module
304159549Sjhb# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
305203691Sbrucec#	Requires the iwi firmware module
306203691Sbrucec# iwn:	Intel Wireless WiFi Link 4965/1000/5000/6000 802.11 network adapters
307203691Sbrucec#	Requires the iwn firmware module
308234183Sjhb# mlx4ib: Mellanox ConnectX HCA InfiniBand
309234183Sjhb# mlxen: Mellanox ConnectX HCA Ethernet
310234183Sjhb# mthca: Mellanox HCA InfiniBand
311159967Sobrien# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
312151907Sjhb# nve:	nVidia nForce MCP on-board Ethernet Networking
313228085Sphilip# sfxge: Solarflare SFC9000 family 10Gb Ethernet adapters
314255323Sbryanv# vmx:	VMware VMXNET3 Ethernet (BSD open source)
315173491Sbenjsc# wpi:	Intel 3945ABG Wireless LAN controller
316203691Sbrucec#	Requires the wpi firmware module
317125461Speter
318255736Sdavidchdevice		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
319233872Sjhbdevice		ed		# NE[12]000, SMC Ultra, 3c503, DS8390 cards
320148263Speteroptions 	ED_3C503
321148263Speteroptions 	ED_HPP
322148263Speteroptions 	ED_SIC
323233872Sjhbdevice		ipw		# Intel 2100 wireless NICs.
324233872Sjhbdevice		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
325233872Sjhbdevice		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
326234183Sjhbdevice  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
327234183Sjhbdevice  	mlxen		# Mellanox ConnectX HCA Ethernet
328234183Sjhbdevice  	mthca		# Mellanox HCA InfiniBand
329233872Sjhbdevice		nfe		# nVidia nForce MCP on-board Ethernet
330233872Sjhbdevice		nve		# nVidia nForce MCP on-board Ethernet Networking
331240098Sjhbdevice		sfxge		# Solarflare SFC9000 10Gb Ethernet
332255323Sbryanvdevice		vmx		# VMware VMXNET3 Ethernet
333233872Sjhbdevice		wpi		# Intel 3945ABG wireless NICs.
334125461Speter
335203691Sbrucec# IEEE 802.11 adapter firmware modules
336203691Sbrucec
337203691Sbrucec# Intel PRO/Wireless 2100 firmware:
338203691Sbrucec#   ipwfw:		BSS/IBSS/monitor mode firmware
339203691Sbrucec#   ipwbssfw:		BSS mode firmware
340203691Sbrucec#   ipwibssfw:		IBSS mode firmware
341203691Sbrucec#   ipwmonitorfw:	Monitor mode firmware
342203691Sbrucec# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
343203691Sbrucec#   iwifw:		BSS/IBSS/monitor mode firmware
344203691Sbrucec#   iwibssfw:		BSS mode firmware
345203691Sbrucec#   iwiibssfw:		IBSS mode firmware
346203691Sbrucec#   iwimonitorfw:	Monitor mode firmware
347203691Sbrucec# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
348203691Sbrucec#   iwnfw:		Single module to support the 4965/1000/5000/5150/6000
349203691Sbrucec#   iwn4965fw:		Specific module for the 4965 only
350203691Sbrucec#   iwn1000fw:		Specific module for the 1000 only
351203691Sbrucec#   iwn5000fw:		Specific module for the 5000 only
352203691Sbrucec#   iwn5150fw:		Specific module for the 5150 only
353203691Sbrucec#   iwn6000fw:		Specific module for the 6000 only
354210113Sbschmidt#   iwn6050fw:		Specific module for the 6050 only
355203691Sbrucec# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
356203691Sbrucec
357203691Sbrucecdevice		iwifw
358203691Sbrucecdevice		iwibssfw
359203691Sbrucecdevice		iwiibssfw
360203691Sbrucecdevice		iwimonitorfw
361203691Sbrucecdevice		ipwfw
362203691Sbrucecdevice		ipwbssfw
363203691Sbrucecdevice		ipwibssfw
364203691Sbrucecdevice		ipwmonitorfw
365203691Sbrucecdevice		iwnfw
366203691Sbrucecdevice		iwn4965fw
367203691Sbrucecdevice		iwn1000fw
368203691Sbrucecdevice		iwn5000fw
369203691Sbrucecdevice		iwn5150fw
370203691Sbrucecdevice		iwn6000fw
371210113Sbschmidtdevice		iwn6050fw
372203691Sbrucecdevice		wpifw
373203691Sbrucec
374250079Scarl# Intel Non-Transparent Bridge (NTB) hardware
375250079Scarldevice		ntb_hw	# Hardware Abstraction Layer for the NTB
376250079Scarldevice		if_ntb	# Simulated ethernet device using the NTB
377250079Scarl
378125461Speter#
379126541Sobrien#XXX this stores pointers in a 32bit field that is defined by the hardware
380126541Sobrien#device	pst
381125461Speter
382126541Sobrien#
383144423Sscottl# Areca 11xx and 12xx series of SATA II RAID controllers.
384144423Sscottl# CAM is required.
385144423Sscottl#
386144423Sscottldevice		arcmsr		# Areca SATA II RAID
387144423Sscottl
388144423Sscottl#
389129293Speter# 3ware 9000 series PATA/SATA RAID controller driver and options.
390129293Speter# The driver is implemented as a SIM, and so, needs the CAM infrastructure.
391129293Speter#
392142733Sobrienoptions 	TWA_DEBUG		# 0-10; 10 prints the most messages.
393142733Sobrienoptions 	TWA_FLASH_FIRMWARE	# firmware image bundled when defined.
394129293Speterdevice		twa			# 3ware 9000 series PATA/SATA RAID
395129293Speter
396129293Speter#
397125461Speter# SCSI host adapters:
398126541Sobrien#
399125984Sobrien# ncv: NCR 53C500 based SCSI host adapters.
400125984Sobrien# nsp: Workbit Ninja SCSI-3 based PC Card SCSI host adapters.
401125984Sobrien# stg: TMC 18C30, 18C50 based SCSI host adapters.
402125461Speter
403126638Sobriendevice		ncv
404126638Sobriendevice		nsp
405126638Sobriendevice		stg
406125984Sobrien
407125461Speter#
408125461Speter# Adaptec FSA RAID controllers, including integrated DELL controllers,
409125461Speter# the Dell PERC 2/QC and the HP NetRAID-4M
410125461Speterdevice		aac
411125461Speterdevice		aacp	# SCSI Passthrough interface (optional, CAM required)
412125461Speter
413125461Speter#
414250963Sachim# Adaptec by PMC RAID controllers, Series 6/7/8 and upcoming families
415250963Sachimdevice		aacraid		# Container interface, CAM required
416250963Sachim
417250963Sachim#
418228940Sdelphij# Highpoint RocketRAID 27xx.
419228940Sdelphijdevice		hpt27xx
420228940Sdelphij
421228940Sdelphij#
422174604Sscottl# Highpoint RocketRAID 182x.
423149873Sscottldevice		hptmv
424147687Speter
425147687Speter#
426252867Sdelphij# Highpoint DC7280 and R750.
427252867Sdelphijdevice		hptnr
428252867Sdelphij
429252867Sdelphij#
430174604Sscottl# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
431174604Sscottl# RR2210, RR174x, RR2522, RR231x, RR230x.
432174604Sscottldevice		hptrr
433174604Sscottl
434174604Sscottl#
435169421Sscottl# Highpoint RocketRaid 3xxx series SATA RAID
436169421Sscottldevice		hptiop
437169421Sscottl
438169421Sscottl#
439125461Speter# IBM (now Adaptec) ServeRAID controllers
440125461Speterdevice		ips
441125461Speter
442125461Speter#
443230843Sjimharris# Intel C600 (Patsburg) integrated SAS controller
444230843Sjimharrisdevice		isci
445230843Sjimharrisoptions		ISCI_LOGGING	# enable debugging in isci HAL
446230843Sjimharris
447230843Sjimharris#
448240618Sjimharris# NVM Express (NVMe) support
449240618Sjimharrisdevice         nvme    # base NVMe driver
450240618Sjimharrisdevice         nvd     # expose NVMe namespaces as disks, depends on nvme
451240618Sjimharris
452240618Sjimharris#
453125461Speter# SafeNet crypto driver: can be moved to the MI NOTES as soon as
454125461Speter# it's tested on a big-endian machine
455125461Speter#
456125461Speterdevice		safe		# SafeNet 1141
457142733Sobrienoptions 	SAFE_DEBUG	# enable debugging support: hw.safe.debug
458142733Sobrienoptions 	SAFE_RNDTEST	# enable rndtest support
459125461Speter
460245362Sbryanv#
461245362Sbryanv# VirtIO support
462247870Sbryanv#
463247870Sbryanv# The virtio entry provides a generic bus for use by the device drivers.
464247870Sbryanv# It must be combined with an interface that communicates with the host.
465247870Sbryanv# Multiple such interfaces defined by the VirtIO specification. FreeBSD
466247870Sbryanv# only has support for PCI. Therefore, virtio_pci must be statically
467247870Sbryanv# compiled in or loaded as a module for the device drivers to function.
468247870Sbryanv#
469245362Sbryanvdevice		virtio		# Generic VirtIO bus (required)
470245362Sbryanvdevice		virtio_pci	# VirtIO PCI Interface
471245362Sbryanvdevice		vtnet		# VirtIO Ethernet device
472245362Sbryanvdevice		virtio_blk	# VirtIO Block device
473245362Sbryanvdevice		virtio_scsi	# VirtIO SCSI device
474245362Sbryanvdevice		virtio_balloon	# VirtIO Memory Balloon device
475245362Sbryanv
476259637Sglebiusdevice 		hyperv		# HyperV drivers
477259637Sglebius
478259637Sglebius# Xen HVM Guest Optimizations
479259637Sglebiusoptions 	XENHVM		# Xen HVM kernel infrastructure 
480259637Sglebiusdevice 		xenpci		# Xen HVM Hypervisor services driver
481259637Sglebius
482125461Speter#####################################################################
483125461Speter
484125461Speter#
485125461Speter# Miscellaneous hardware:
486125461Speter#
487162562Sjhb# ipmi: Intelligent Platform Management Interface
488188254Swkoszek# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
489148264Speter# smbios: DMI/SMBIOS entry point
490148264Speter# vpd: Vital Product Data kernel interface
491174962Srpaulo# asmc: Apple System Management Controller
492188254Swkoszek# si: Specialix International SI/XIO or SX intelligent serial card
493212861Snork# tpm: Trusted Platform Module
494125461Speter
495125461Speter# Notes on the Specialix SI/XIO driver:
496125461Speter#  The host card is memory, not IO mapped.
497125461Speter#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
498125461Speter#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
499125461Speter#  The cards can use an IRQ of 11, 12 or 15.
500125461Speter
501162562Sjhbdevice		ipmi
502147687Speterdevice		pbio
503147687Speterhint.pbio.0.at="isa"
504147687Speterhint.pbio.0.port="0x360"
505148217Sjkimdevice		smbios
506148264Speterdevice		vpd
507174962Srpaulodevice		asmc
508188254Swkoszek#device		si
509212861Snorkdevice		tpm
510254624Sobriendevice		padlock_rng	# VIA Padlock RNG
511254624Sobriendevice		rdrand_rng	# Intel Bull Mountain RNG
512256053Sjmgdevice		aesni		# AES-NI OpenCrypto module
513188254Swkoszek
514125461Speter#
515125461Speter# Laptop/Notebook options:
516125461Speter#
517125461Speter
518126541Sobrien
519126541Sobrien#
520126541Sobrien# I2C Bus
521126541Sobrien#
522126541Sobrien
523147687Speter#
524147687Speter# Hardware watchdog timers:
525147687Speter#
526147687Speter# ichwd: Intel ICH watchdog timer
527199969Savg# amdsbwd: AMD SB7xx watchdog timer
528228724Sdelphij# viawd: VIA south bridge watchdog timer
529232614Sbz# wbwd: Winbond watchdog timer
530147687Speter#
531147687Speterdevice		ichwd
532199969Savgdevice		amdsbwd
533228431Sfabientdevice		viawd
534232614Sbzdevice		wbwd
535147687Speter
536171854Sdes#
537171854Sdes# Temperature sensors:
538171854Sdes#
539171854Sdes# coretemp: on-die sensor on Intel Core and newer CPUs
540189872Sdchagin# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
541171854Sdes#
542171854Sdesdevice		coretemp
543189872Sdchagindevice		amdtemp
544171854Sdes
545126541Sobrien#
546181430Sstas# CPU control pseudo-device. Provides access to MSRs, CPUID info and
547181430Sstas# microcode update feature.
548181430Sstas#
549181430Sstasdevice		cpuctl
550181430Sstas
551181430Sstas#
552129293Speter# System Management Bus (SMB)
553129293Speter#
554129293Speteroptions 	ENABLE_ALART		# Control alarm on Intel intpm driver
555129293Speter
556129293Speter#
557225194Sjhb# Number of initial kernel page table pages used for early bootstrap.
558225194Sjhb# This number should include enough pages to map the kernel and any
559225194Sjhb# modules or other data loaded with the kernel by the loader.  Each
560225194Sjhb# page table page maps 2MB.
561225194Sjhb#
562225194Sjhboptions 	NKPT=31
563225194Sjhb
564125461Speter
565125461Speter#####################################################################
566125461Speter# ABI Emulation
567125461Speter
568126541Sobrien#XXX keep these here for now and reactivate when support for emulating
569126541Sobrien#XXX these 32 bit binaries is added.
570126541Sobrien
571133844Sobrien# Enable 32-bit runtime support for FreeBSD/i386 binaries.
572205014Snwhitehornoptions 	COMPAT_FREEBSD32
573133844Sobrien
574126541Sobrien# Enable iBCS2 runtime support for SCO and ISC binaries
575126541Sobrien#XXX#options 	IBCS2
576126541Sobrien
577126541Sobrien# Emulate spx device for client side of SVR3 local X interface
578126541Sobrien#XXX#options 	SPX_HACK
579126541Sobrien
580125461Speter# Enable Linux ABI emulation
581126541Sobrien#XXX#options 	COMPAT_LINUX
582125461Speter
583205014Snwhitehorn# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_FREEBSD32)
584133819Stjroptions 	COMPAT_LINUX32
585133819Stjr
586133853Stjr# Enable the linux-like proc filesystem support (requires COMPAT_LINUX32
587125461Speter# and PSEUDOFS)
588133853Stjroptions 	LINPROCFS
589125461Speter
590158381Sambrisko#Enable the linux-like sys filesystem support (requires COMPAT_LINUX32
591158381Sambrisko# and PSEUDOFS)
592191954Skuriyamaoptions 	LINSYSFS
593158381Sambrisko
594126541Sobrien#
595126541Sobrien# SysVR4 ABI emulation
596126541Sobrien#
597126541Sobrien# The svr4 ABI emulator can be statically compiled into the kernel or loaded as
598126541Sobrien# a KLD module.
599126541Sobrien# The STREAMS network emulation code can also be compiled statically or as a
600126541Sobrien# module.  If loaded as a module, it must be loaded before the svr4 module
601126541Sobrien# (the /usr/sbin/svr4 script does this for you).  If compiling statically,
602126541Sobrien# the `streams' device must be configured into any kernel which also
603126541Sobrien# specifies COMPAT_SVR4.  It is possible to have a statically-configured
604126541Sobrien# STREAMS device and a dynamically loadable svr4 emulator;  the /usr/sbin/svr4
605126541Sobrien# script understands that it doesn't need to load the `streams' module under
606126541Sobrien# those circumstances.
607126541Sobrien# Caveat:  At this time, `options KTRACE' is required for the svr4 emulator
608126541Sobrien# (whether static or dynamic).
609126541Sobrien#
610126541Sobrien#XXX#options 	COMPAT_SVR4	# build emulator statically
611126930Speter#XXX#options 	DEBUG_SVR4	# enable verbose debugging
612126541Sobrien#XXX#device	streams		# STREAMS network driver (required for svr4).
613126541Sobrien
614125461Speter
615125461Speter#####################################################################
616125461Speter# VM OPTIONS
617125461Speter
618125461Speter# KSTACK_PAGES is the number of memory pages to assign to the kernel
619125461Speter# stack of each thread.
620125461Speter
621219525Savgoptions 	KSTACK_PAGES=5
622125461Speter
623233433Salc# Enable detailed accounting by the PV entry allocator.
624233433Salc
625233433Salcoptions 	PV_STATS
626233433Salc
627125461Speter#####################################################################
628125461Speter
629125461Speter# More undocumented options for linting.
630125461Speter# Note that documenting these are not considered an affront.
631125461Speter
632125461Speteroptions 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
633125461Speter
634125461Speteroptions 	KBDIO_DEBUG=2
635125461Speteroptions 	KBD_MAXRETRY=4
636125461Speteroptions 	KBD_MAXWAIT=6
637125461Speteroptions 	KBD_RESETDELAY=201
638125461Speter
639125461Speteroptions 	PSM_DEBUG=1
640125461Speter
641125461Speteroptions 	TIMER_FREQ=((14318182+6)/12)
642125461Speter
643125461Speteroptions 	VM_KMEM_SIZE
644125461Speteroptions 	VM_KMEM_SIZE_MAX
645125461Speteroptions 	VM_KMEM_SIZE_SCALE
646132956Smarkm
647159549Sjhb# Enable NDIS binary driver support
648189497Sthompsaoptions 	NDISAPI
649189497Sthompsadevice		ndis
650197518Sbz
651197518Sbz# Linux-specific pseudo devices support
652197518Sbzdevice		lindev
653