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: stable/10/sys/amd64/conf/NOTES 330680 2018-03-09 02:55:27Z rpokala $
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
190266331Sianoptions 	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
308272313Sbz# ixl:	Intel XL710 40Gbe PCIE Ethernet
309272313Sbz# ixlv:	Intel XL710 40Gbe VF PCIE Ethernet
310234183Sjhb# mlx4ib: Mellanox ConnectX HCA InfiniBand
311234183Sjhb# mlxen: Mellanox ConnectX HCA Ethernet
312234183Sjhb# mthca: Mellanox HCA InfiniBand
313159967Sobrien# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
314151907Sjhb# nve:	nVidia nForce MCP on-board Ethernet Networking
315228085Sphilip# sfxge: Solarflare SFC9000 family 10Gb Ethernet adapters
316255323Sbryanv# vmx:	VMware VMXNET3 Ethernet (BSD open source)
317173491Sbenjsc# wpi:	Intel 3945ABG Wireless LAN controller
318203691Sbrucec#	Requires the wpi firmware module
319125461Speter
320255736Sdavidchdevice		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
321233872Sjhbdevice		ed		# NE[12]000, SMC Ultra, 3c503, DS8390 cards
322148263Speteroptions 	ED_3C503
323148263Speteroptions 	ED_HPP
324148263Speteroptions 	ED_SIC
325233872Sjhbdevice		ipw		# Intel 2100 wireless NICs.
326233872Sjhbdevice		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
327233872Sjhbdevice		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
328272313Sbzdevice		ixl		# Intel XL710 40Gbe PCIE Ethernet
329272313Sbzdevice		ixlv		# Intel XL710 40Gbe VF PCIE Ethernet
330234183Sjhbdevice  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
331234183Sjhbdevice  	mlxen		# Mellanox ConnectX HCA Ethernet
332234183Sjhbdevice  	mthca		# Mellanox HCA InfiniBand
333233872Sjhbdevice		nfe		# nVidia nForce MCP on-board Ethernet
334233872Sjhbdevice		nve		# nVidia nForce MCP on-board Ethernet Networking
335240098Sjhbdevice		sfxge		# Solarflare SFC9000 10Gb Ethernet
336255323Sbryanvdevice		vmx		# VMware VMXNET3 Ethernet
337233872Sjhbdevice		wpi		# Intel 3945ABG wireless NICs.
338125461Speter
339203691Sbrucec# IEEE 802.11 adapter firmware modules
340203691Sbrucec
341203691Sbrucec# Intel PRO/Wireless 2100 firmware:
342203691Sbrucec#   ipwfw:		BSS/IBSS/monitor mode firmware
343203691Sbrucec#   ipwbssfw:		BSS mode firmware
344203691Sbrucec#   ipwibssfw:		IBSS mode firmware
345203691Sbrucec#   ipwmonitorfw:	Monitor mode firmware
346203691Sbrucec# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
347203691Sbrucec#   iwifw:		BSS/IBSS/monitor mode firmware
348203691Sbrucec#   iwibssfw:		BSS mode firmware
349203691Sbrucec#   iwiibssfw:		IBSS mode firmware
350203691Sbrucec#   iwimonitorfw:	Monitor mode firmware
351203691Sbrucec# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
352203691Sbrucec#   iwnfw:		Single module to support the 4965/1000/5000/5150/6000
353203691Sbrucec#   iwn4965fw:		Specific module for the 4965 only
354203691Sbrucec#   iwn1000fw:		Specific module for the 1000 only
355203691Sbrucec#   iwn5000fw:		Specific module for the 5000 only
356203691Sbrucec#   iwn5150fw:		Specific module for the 5150 only
357203691Sbrucec#   iwn6000fw:		Specific module for the 6000 only
358210113Sbschmidt#   iwn6050fw:		Specific module for the 6050 only
359203691Sbrucec# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
360203691Sbrucec
361203691Sbrucecdevice		iwifw
362203691Sbrucecdevice		iwibssfw
363203691Sbrucecdevice		iwiibssfw
364203691Sbrucecdevice		iwimonitorfw
365203691Sbrucecdevice		ipwfw
366203691Sbrucecdevice		ipwbssfw
367203691Sbrucecdevice		ipwibssfw
368203691Sbrucecdevice		ipwmonitorfw
369203691Sbrucecdevice		iwnfw
370203691Sbrucecdevice		iwn4965fw
371203691Sbrucecdevice		iwn1000fw
372203691Sbrucecdevice		iwn5000fw
373203691Sbrucecdevice		iwn5150fw
374203691Sbrucecdevice		iwn6000fw
375210113Sbschmidtdevice		iwn6050fw
376203691Sbrucecdevice		wpifw
377203691Sbrucec
378250079Scarl# Intel Non-Transparent Bridge (NTB) hardware
379250079Scarldevice		ntb_hw	# Hardware Abstraction Layer for the NTB
380250079Scarldevice		if_ntb	# Simulated ethernet device using the NTB
381250079Scarl
382125461Speter#
383126541Sobrien#XXX this stores pointers in a 32bit field that is defined by the hardware
384126541Sobrien#device	pst
385125461Speter
386126541Sobrien#
387144423Sscottl# Areca 11xx and 12xx series of SATA II RAID controllers.
388144423Sscottl# CAM is required.
389144423Sscottl#
390144423Sscottldevice		arcmsr		# Areca SATA II RAID
391144423Sscottl
392144423Sscottl#
393129293Speter# 3ware 9000 series PATA/SATA RAID controller driver and options.
394129293Speter# The driver is implemented as a SIM, and so, needs the CAM infrastructure.
395129293Speter#
396142733Sobrienoptions 	TWA_DEBUG		# 0-10; 10 prints the most messages.
397142733Sobrienoptions 	TWA_FLASH_FIRMWARE	# firmware image bundled when defined.
398129293Speterdevice		twa			# 3ware 9000 series PATA/SATA RAID
399129293Speter
400129293Speter#
401125461Speter# SCSI host adapters:
402126541Sobrien#
403125984Sobrien# ncv: NCR 53C500 based SCSI host adapters.
404125984Sobrien# nsp: Workbit Ninja SCSI-3 based PC Card SCSI host adapters.
405125984Sobrien# stg: TMC 18C30, 18C50 based SCSI host adapters.
406125461Speter
407126638Sobriendevice		ncv
408126638Sobriendevice		nsp
409126638Sobriendevice		stg
410125984Sobrien
411125461Speter#
412125461Speter# Adaptec FSA RAID controllers, including integrated DELL controllers,
413125461Speter# the Dell PERC 2/QC and the HP NetRAID-4M
414125461Speterdevice		aac
415125461Speterdevice		aacp	# SCSI Passthrough interface (optional, CAM required)
416125461Speter
417125461Speter#
418250963Sachim# Adaptec by PMC RAID controllers, Series 6/7/8 and upcoming families
419250963Sachimdevice		aacraid		# Container interface, CAM required
420250963Sachim
421250963Sachim#
422228940Sdelphij# Highpoint RocketRAID 27xx.
423228940Sdelphijdevice		hpt27xx
424228940Sdelphij
425228940Sdelphij#
426174604Sscottl# Highpoint RocketRAID 182x.
427149873Sscottldevice		hptmv
428147687Speter
429147687Speter#
430252867Sdelphij# Highpoint DC7280 and R750.
431252867Sdelphijdevice		hptnr
432252867Sdelphij
433252867Sdelphij#
434174604Sscottl# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
435174604Sscottl# RR2210, RR174x, RR2522, RR231x, RR230x.
436174604Sscottldevice		hptrr
437174604Sscottl
438174604Sscottl#
439169421Sscottl# Highpoint RocketRaid 3xxx series SATA RAID
440169421Sscottldevice		hptiop
441169421Sscottl
442169421Sscottl#
443125461Speter# IBM (now Adaptec) ServeRAID controllers
444125461Speterdevice		ips
445125461Speter
446125461Speter#
447330680Srpokala# Intel integrated Memory Controller (iMC) SMBus controller
448330680Srpokala#	Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
449330680Srpokaladevice		imcsmb
450330680Srpokala
451330680Srpokala#
452230843Sjimharris# Intel C600 (Patsburg) integrated SAS controller
453230843Sjimharrisdevice		isci
454266331Sianoptions 	ISCI_LOGGING	# enable debugging in isci HAL
455230843Sjimharris
456230843Sjimharris#
457240618Sjimharris# NVM Express (NVMe) support
458240618Sjimharrisdevice         nvme    # base NVMe driver
459240618Sjimharrisdevice         nvd     # expose NVMe namespaces as disks, depends on nvme
460240618Sjimharris
461240618Sjimharris#
462285809Sscottl# PMC-Sierra SAS/SATA controller
463285809Sscottldevice		pmspcv
464285809Sscottl
465285809Sscottl#
466125461Speter# SafeNet crypto driver: can be moved to the MI NOTES as soon as
467125461Speter# it's tested on a big-endian machine
468125461Speter#
469125461Speterdevice		safe		# SafeNet 1141
470142733Sobrienoptions 	SAFE_DEBUG	# enable debugging support: hw.safe.debug
471142733Sobrienoptions 	SAFE_RNDTEST	# enable rndtest support
472125461Speter
473245362Sbryanv#
474245362Sbryanv# VirtIO support
475247870Sbryanv#
476247870Sbryanv# The virtio entry provides a generic bus for use by the device drivers.
477247870Sbryanv# It must be combined with an interface that communicates with the host.
478247870Sbryanv# Multiple such interfaces defined by the VirtIO specification. FreeBSD
479247870Sbryanv# only has support for PCI. Therefore, virtio_pci must be statically
480247870Sbryanv# compiled in or loaded as a module for the device drivers to function.
481247870Sbryanv#
482245362Sbryanvdevice		virtio		# Generic VirtIO bus (required)
483245362Sbryanvdevice		virtio_pci	# VirtIO PCI Interface
484245362Sbryanvdevice		vtnet		# VirtIO Ethernet device
485245362Sbryanvdevice		virtio_blk	# VirtIO Block device
486245362Sbryanvdevice		virtio_scsi	# VirtIO SCSI device
487245362Sbryanvdevice		virtio_balloon	# VirtIO Memory Balloon device
488268933Sjhbdevice		virtio_random	# VirtIO Entropy device
489275273Sbryanvdevice		virtio_console	# VirtIO Console device
490245362Sbryanv
491283280Swhu# Microsoft Hyper-V enchancement support
492283280Swhuoptions 	HYPERV		# Hyper-V kernel infrastructure
493259541Sglebiusdevice 		hyperv		# HyperV drivers
494259541Sglebius
495259541Sglebius# Xen HVM Guest Optimizations
496259541Sglebiusoptions 	XENHVM		# Xen HVM kernel infrastructure 
497259541Sglebiusdevice 		xenpci		# Xen HVM Hypervisor services driver
498259541Sglebius
499125461Speter#####################################################################
500125461Speter
501125461Speter#
502125461Speter# Miscellaneous hardware:
503125461Speter#
504162562Sjhb# ipmi: Intelligent Platform Management Interface
505188254Swkoszek# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
506148264Speter# smbios: DMI/SMBIOS entry point
507148264Speter# vpd: Vital Product Data kernel interface
508174962Srpaulo# asmc: Apple System Management Controller
509188254Swkoszek# si: Specialix International SI/XIO or SX intelligent serial card
510212861Snork# tpm: Trusted Platform Module
511125461Speter
512125461Speter# Notes on the Specialix SI/XIO driver:
513125461Speter#  The host card is memory, not IO mapped.
514125461Speter#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
515125461Speter#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
516125461Speter#  The cards can use an IRQ of 11, 12 or 15.
517125461Speter
518162562Sjhbdevice		ipmi
519147687Speterdevice		pbio
520147687Speterhint.pbio.0.at="isa"
521147687Speterhint.pbio.0.port="0x360"
522148217Sjkimdevice		smbios
523148264Speterdevice		vpd
524174962Srpaulodevice		asmc
525188254Swkoszek#device		si
526212861Snorkdevice		tpm
527254624Sobriendevice		padlock_rng	# VIA Padlock RNG
528254624Sobriendevice		rdrand_rng	# Intel Bull Mountain RNG
529256053Sjmgdevice		aesni		# AES-NI OpenCrypto module
530188254Swkoszek
531125461Speter#
532125461Speter# Laptop/Notebook options:
533125461Speter#
534125461Speter
535126541Sobrien
536126541Sobrien#
537126541Sobrien# I2C Bus
538126541Sobrien#
539126541Sobrien
540147687Speter#
541147687Speter# Hardware watchdog timers:
542147687Speter#
543147687Speter# ichwd: Intel ICH watchdog timer
544199969Savg# amdsbwd: AMD SB7xx watchdog timer
545228724Sdelphij# viawd: VIA south bridge watchdog timer
546232614Sbz# wbwd: Winbond watchdog timer
547147687Speter#
548147687Speterdevice		ichwd
549199969Savgdevice		amdsbwd
550228431Sfabientdevice		viawd
551232614Sbzdevice		wbwd
552147687Speter
553171854Sdes#
554171854Sdes# Temperature sensors:
555171854Sdes#
556171854Sdes# coretemp: on-die sensor on Intel Core and newer CPUs
557189872Sdchagin# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
558171854Sdes#
559171854Sdesdevice		coretemp
560189872Sdchagindevice		amdtemp
561171854Sdes
562126541Sobrien#
563181430Sstas# CPU control pseudo-device. Provides access to MSRs, CPUID info and
564181430Sstas# microcode update feature.
565181430Sstas#
566181430Sstasdevice		cpuctl
567181430Sstas
568181430Sstas#
569129293Speter# System Management Bus (SMB)
570129293Speter#
571129293Speteroptions 	ENABLE_ALART		# Control alarm on Intel intpm driver
572129293Speter
573129293Speter#
574225194Sjhb# Number of initial kernel page table pages used for early bootstrap.
575225194Sjhb# This number should include enough pages to map the kernel and any
576225194Sjhb# modules or other data loaded with the kernel by the loader.  Each
577225194Sjhb# page table page maps 2MB.
578225194Sjhb#
579225194Sjhboptions 	NKPT=31
580225194Sjhb
581125461Speter
582125461Speter#####################################################################
583125461Speter# ABI Emulation
584125461Speter
585126541Sobrien#XXX keep these here for now and reactivate when support for emulating
586126541Sobrien#XXX these 32 bit binaries is added.
587126541Sobrien
588133844Sobrien# Enable 32-bit runtime support for FreeBSD/i386 binaries.
589205014Snwhitehornoptions 	COMPAT_FREEBSD32
590133844Sobrien
591126541Sobrien# Enable iBCS2 runtime support for SCO and ISC binaries
592126541Sobrien#XXX#options 	IBCS2
593126541Sobrien
594126541Sobrien# Emulate spx device for client side of SVR3 local X interface
595126541Sobrien#XXX#options 	SPX_HACK
596126541Sobrien
597125461Speter# Enable Linux ABI emulation
598126541Sobrien#XXX#options 	COMPAT_LINUX
599125461Speter
600205014Snwhitehorn# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_FREEBSD32)
601133819Stjroptions 	COMPAT_LINUX32
602133819Stjr
603133853Stjr# Enable the linux-like proc filesystem support (requires COMPAT_LINUX32
604125461Speter# and PSEUDOFS)
605133853Stjroptions 	LINPROCFS
606125461Speter
607158381Sambrisko#Enable the linux-like sys filesystem support (requires COMPAT_LINUX32
608158381Sambrisko# and PSEUDOFS)
609191954Skuriyamaoptions 	LINSYSFS
610158381Sambrisko
611126541Sobrien#
612126541Sobrien# SysVR4 ABI emulation
613126541Sobrien#
614126541Sobrien# The svr4 ABI emulator can be statically compiled into the kernel or loaded as
615126541Sobrien# a KLD module.
616126541Sobrien# The STREAMS network emulation code can also be compiled statically or as a
617126541Sobrien# module.  If loaded as a module, it must be loaded before the svr4 module
618126541Sobrien# (the /usr/sbin/svr4 script does this for you).  If compiling statically,
619126541Sobrien# the `streams' device must be configured into any kernel which also
620126541Sobrien# specifies COMPAT_SVR4.  It is possible to have a statically-configured
621126541Sobrien# STREAMS device and a dynamically loadable svr4 emulator;  the /usr/sbin/svr4
622126541Sobrien# script understands that it doesn't need to load the `streams' module under
623126541Sobrien# those circumstances.
624126541Sobrien# Caveat:  At this time, `options KTRACE' is required for the svr4 emulator
625126541Sobrien# (whether static or dynamic).
626126541Sobrien#
627126541Sobrien#XXX#options 	COMPAT_SVR4	# build emulator statically
628126930Speter#XXX#options 	DEBUG_SVR4	# enable verbose debugging
629126541Sobrien#XXX#device	streams		# STREAMS network driver (required for svr4).
630126541Sobrien
631125461Speter
632125461Speter#####################################################################
633125461Speter# VM OPTIONS
634125461Speter
635125461Speter# KSTACK_PAGES is the number of memory pages to assign to the kernel
636125461Speter# stack of each thread.
637125461Speter
638219525Savgoptions 	KSTACK_PAGES=5
639125461Speter
640233433Salc# Enable detailed accounting by the PV entry allocator.
641233433Salc
642233433Salcoptions 	PV_STATS
643233433Salc
644125461Speter#####################################################################
645125461Speter
646125461Speter# More undocumented options for linting.
647125461Speter# Note that documenting these are not considered an affront.
648125461Speter
649125461Speteroptions 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
650125461Speter
651125461Speteroptions 	KBDIO_DEBUG=2
652125461Speteroptions 	KBD_MAXRETRY=4
653125461Speteroptions 	KBD_MAXWAIT=6
654125461Speteroptions 	KBD_RESETDELAY=201
655125461Speter
656125461Speteroptions 	PSM_DEBUG=1
657125461Speter
658125461Speteroptions 	TIMER_FREQ=((14318182+6)/12)
659125461Speter
660125461Speteroptions 	VM_KMEM_SIZE
661125461Speteroptions 	VM_KMEM_SIZE_MAX
662125461Speteroptions 	VM_KMEM_SIZE_SCALE
663132956Smarkm
664159549Sjhb# Enable NDIS binary driver support
665189497Sthompsaoptions 	NDISAPI
666189497Sthompsadevice		ndis
667197518Sbz
668197518Sbz# Linux-specific pseudo devices support
669197518Sbzdevice		lindev
670266273Sian
671266273Sian# Module to enable execution of application via emulators like QEMU
672266273Sianoptions         IMAGACT_BINMISC
673