xref: /f-stack/freebsd/amd64/conf/NOTES (revision 22ce4aff)
1a9643ea8Slogwang#
2a9643ea8Slogwang# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
3a9643ea8Slogwang#
4a9643ea8Slogwang# This file contains machine dependent kernel configuration notes.  For
5a9643ea8Slogwang# machine independent notes, look in /sys/conf/NOTES.
6a9643ea8Slogwang#
7a9643ea8Slogwang# $FreeBSD$
8a9643ea8Slogwang#
9a9643ea8Slogwang
10a9643ea8Slogwang#
11a9643ea8Slogwang# We want LINT to cover profiling as well.
12a9643ea8Slogwangprofile         2
13a9643ea8Slogwang
14a9643ea8Slogwang#
15a9643ea8Slogwang# Enable the kernel DTrace hooks which are required to load the DTrace
16a9643ea8Slogwang# kernel modules.
17a9643ea8Slogwang#
18a9643ea8Slogwangoptions 	KDTRACE_HOOKS
19a9643ea8Slogwang
20a9643ea8Slogwang# DTrace core
21a9643ea8Slogwang# NOTE: introduces CDDL-licensed components into the kernel
22a9643ea8Slogwang#device		dtrace
23a9643ea8Slogwang
24a9643ea8Slogwang# DTrace modules
25a9643ea8Slogwang#device		dtrace_profile
26a9643ea8Slogwang#device		dtrace_sdt
27a9643ea8Slogwang#device		dtrace_fbt
28a9643ea8Slogwang#device		dtrace_systrace
29a9643ea8Slogwang#device		dtrace_prototype
30a9643ea8Slogwang#device		dtnfscl
31a9643ea8Slogwang#device		dtmalloc
32a9643ea8Slogwang
33a9643ea8Slogwang# Alternatively include all the DTrace modules
34a9643ea8Slogwang#device		dtraceall
35a9643ea8Slogwang
36a9643ea8Slogwang
37a9643ea8Slogwang#####################################################################
38a9643ea8Slogwang# SMP OPTIONS:
39a9643ea8Slogwang#
40a9643ea8Slogwang# Notes:
41a9643ea8Slogwang#
42a9643ea8Slogwang# IPI_PREEMPTION instructs the kernel to preempt threads running on other
43a9643ea8Slogwang#	  CPUS if needed.  Relies on the PREEMPTION option
44a9643ea8Slogwang
45a9643ea8Slogwang# Optional:
46a9643ea8Slogwangoptions 	IPI_PREEMPTION
47a9643ea8Slogwangdevice		atpic			# Optional legacy pic support
48a9643ea8Slogwangdevice		mptable			# Optional MPSPEC mptable support
49a9643ea8Slogwang
50a9643ea8Slogwang#
51a9643ea8Slogwang# Watchdog routines.
52a9643ea8Slogwang#
53a9643ea8Slogwangoptions 	MP_WATCHDOG
54a9643ea8Slogwang
55a9643ea8Slogwang# Debugging options.
56a9643ea8Slogwang#
57a9643ea8Slogwangoptions 	COUNT_XINVLTLB_HITS	# Counters for TLB events
58a9643ea8Slogwangoptions 	COUNT_IPIS		# Per-CPU IPI interrupt counters
59a9643ea8Slogwang
60a9643ea8Slogwang
61a9643ea8Slogwang
62a9643ea8Slogwang#####################################################################
63a9643ea8Slogwang# CPU OPTIONS
64a9643ea8Slogwang
65a9643ea8Slogwang#
66a9643ea8Slogwang# You must specify at least one CPU (the one you intend to run on);
67a9643ea8Slogwang# deleting the specification for CPUs you don't need to use may make
68a9643ea8Slogwang# parts of the system run faster.
69a9643ea8Slogwang#
70a9643ea8Slogwangcpu		HAMMER			# aka K8, aka Opteron & Athlon64
71a9643ea8Slogwang
72a9643ea8Slogwang#
73a9643ea8Slogwang# Options for CPU features.
74a9643ea8Slogwang#
75a9643ea8Slogwang
76a9643ea8Slogwang
77a9643ea8Slogwang#####################################################################
78a9643ea8Slogwang# NETWORKING OPTIONS
79a9643ea8Slogwang
80a9643ea8Slogwang#
81a9643ea8Slogwang# DEVICE_POLLING adds support for mixed interrupt-polling handling
82a9643ea8Slogwang# of network device drivers, which has significant benefits in terms
83a9643ea8Slogwang# of robustness to overloads and responsivity, as well as permitting
84a9643ea8Slogwang# accurate scheduling of the CPU time between kernel network processing
85a9643ea8Slogwang# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
86a9643ea8Slogwang# potential increase in response times.
87a9643ea8Slogwang# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
88a9643ea8Slogwang# to achieve smoother behaviour.
89a9643ea8Slogwang# Additionally, you can enable/disable polling at runtime with help of
90a9643ea8Slogwang# the ifconfig(8) utility, and select the CPU fraction reserved to
91a9643ea8Slogwang# userland with the sysctl variable kern.polling.user_frac
92a9643ea8Slogwang# (default 50, range 0..100).
93a9643ea8Slogwang#
94a9643ea8Slogwang# Not all device drivers support this mode of operation at the time of
95a9643ea8Slogwang# this writing.  See polling(4) for more details.
96a9643ea8Slogwang
97a9643ea8Slogwangoptions 	DEVICE_POLLING
98a9643ea8Slogwang
99a9643ea8Slogwang# BPF_JITTER adds support for BPF just-in-time compiler.
100a9643ea8Slogwang
101a9643ea8Slogwangoptions 	BPF_JITTER
102a9643ea8Slogwang
103a9643ea8Slogwang# OpenFabrics Enterprise Distribution (Infiniband).
104a9643ea8Slogwangoptions 	OFED
105a9643ea8Slogwangoptions 	OFED_DEBUG_INIT
106a9643ea8Slogwang
107a9643ea8Slogwang# Sockets Direct Protocol
108a9643ea8Slogwangoptions 	SDP
109a9643ea8Slogwangoptions 	SDP_DEBUG
110a9643ea8Slogwang
111a9643ea8Slogwang# IP over Infiniband
112a9643ea8Slogwangoptions 	IPOIB
113a9643ea8Slogwangoptions 	IPOIB_DEBUG
114a9643ea8Slogwangoptions 	IPOIB_CM
115a9643ea8Slogwang
116a9643ea8Slogwang
117a9643ea8Slogwang#####################################################################
118a9643ea8Slogwang# CLOCK OPTIONS
119a9643ea8Slogwang
120a9643ea8Slogwang# Provide read/write access to the memory in the clock chip.
121a9643ea8Slogwangdevice		nvram		# Access to rtc cmos via /dev/nvram
122a9643ea8Slogwang
123a9643ea8Slogwang
124a9643ea8Slogwang#####################################################################
125a9643ea8Slogwang# MISCELLANEOUS DEVICES AND OPTIONS
126a9643ea8Slogwang
127a9643ea8Slogwangdevice		speaker		#Play IBM BASIC-style noises out your speaker
128*22ce4affSfengbojiangenvvar		hint.speaker.0.at="isa"
129*22ce4affSfengbojiangenvvar		hint.speaker.0.port="0x61"
130a9643ea8Slogwang
131a9643ea8Slogwang
132a9643ea8Slogwang#####################################################################
133a9643ea8Slogwang# HARDWARE BUS CONFIGURATION
134a9643ea8Slogwang
135a9643ea8Slogwang#
136a9643ea8Slogwang# ISA bus
137a9643ea8Slogwang#
138a9643ea8Slogwangdevice		isa
139a9643ea8Slogwang
140a9643ea8Slogwang#
141a9643ea8Slogwang# Options for `isa':
142a9643ea8Slogwang#
143a9643ea8Slogwang# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
144a9643ea8Slogwang# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
145a9643ea8Slogwang# This option breaks suspend/resume on some portables.
146a9643ea8Slogwang#
147a9643ea8Slogwang# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
148a9643ea8Slogwang# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
149a9643ea8Slogwang# Automatic EOI is documented not to work for for the slave with the
150a9643ea8Slogwang# original i8259A, but it works for some clones and some integrated
151a9643ea8Slogwang# versions.
152a9643ea8Slogwang#
153a9643ea8Slogwang# MAXMEM specifies the amount of RAM on the machine; if this is not
154a9643ea8Slogwang# specified, FreeBSD will first read the amount of memory from the CMOS
155a9643ea8Slogwang# RAM, so the amount of memory will initially be limited to 64MB or 16MB
156a9643ea8Slogwang# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
157a9643ea8Slogwang# then attempt to detect the installed amount of RAM.  If this probe
158a9643ea8Slogwang# fails to detect >64MB RAM you will have to use the MAXMEM option.
159a9643ea8Slogwang# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
160a9643ea8Slogwang# be 131072 (128 * 1024).
161a9643ea8Slogwang#
162a9643ea8Slogwang# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
163a9643ea8Slogwang# reset the CPU for reboot.  This is needed on some systems with broken
164a9643ea8Slogwang# keyboard controllers.
165a9643ea8Slogwang
166a9643ea8Slogwangoptions 	AUTO_EOI_1
167a9643ea8Slogwang#options 	AUTO_EOI_2
168a9643ea8Slogwang
169a9643ea8Slogwangoptions 	MAXMEM=(128*1024)
170a9643ea8Slogwang#options 	BROKEN_KEYBOARD_RESET
171a9643ea8Slogwang
172a9643ea8Slogwang#
173a9643ea8Slogwang# AGP GART support
174a9643ea8Slogwangdevice		agp
175a9643ea8Slogwang
176a9643ea8Slogwang#
177a9643ea8Slogwang# AGP debugging.
178a9643ea8Slogwang#
179a9643ea8Slogwangoptions 	AGP_DEBUG
180a9643ea8Slogwang
181a9643ea8Slogwang
182a9643ea8Slogwang#####################################################################
183a9643ea8Slogwang# HARDWARE DEVICE CONFIGURATION
184a9643ea8Slogwang
185a9643ea8Slogwang# To include support for VGA VESA video modes
186a9643ea8Slogwangoptions 	VESA
187a9643ea8Slogwang
188a9643ea8Slogwang# Turn on extra debugging checks and output for VESA support.
189a9643ea8Slogwangoptions 	VESA_DEBUG
190a9643ea8Slogwang
191a9643ea8Slogwangdevice		dpms		# DPMS suspend & resume via VESA BIOS
192a9643ea8Slogwang
193a9643ea8Slogwang# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
194a9643ea8Slogwangoptions 	X86BIOS
195a9643ea8Slogwang
196a9643ea8Slogwang#
197a9643ea8Slogwang# Optional devices:
198a9643ea8Slogwang#
199a9643ea8Slogwang
200a9643ea8Slogwang# PS/2 mouse
201a9643ea8Slogwangdevice		psm
202*22ce4affSfengbojiangenvvar		hint.psm.0.at="atkbdc"
203*22ce4affSfengbojiangenvvar		hint.psm.0.irq="12"
204a9643ea8Slogwang
205a9643ea8Slogwang# Options for psm:
206a9643ea8Slogwangoptions 	PSM_HOOKRESUME		#hook the system resume event, useful
207a9643ea8Slogwang					#for some laptops
208a9643ea8Slogwangoptions 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
209a9643ea8Slogwang
210a9643ea8Slogwang# The keyboard controller; it controls the keyboard and the PS/2 mouse.
211a9643ea8Slogwangdevice		atkbdc
212*22ce4affSfengbojiangenvvar		hint.atkbdc.0.at="isa"
213*22ce4affSfengbojiangenvvar		hint.atkbdc.0.port="0x060"
214a9643ea8Slogwang
215a9643ea8Slogwang# The AT keyboard
216a9643ea8Slogwangdevice		atkbd
217*22ce4affSfengbojiangenvvar		hint.atkbd.0.at="atkbdc"
218*22ce4affSfengbojiangenvvar		hint.atkbd.0.irq="1"
219a9643ea8Slogwang
220a9643ea8Slogwang# Options for atkbd:
221a9643ea8Slogwangoptions 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
222a9643ea8Slogwangmakeoptions	ATKBD_DFLT_KEYMAP=fr.dvorak
223a9643ea8Slogwang
224a9643ea8Slogwang# `flags' for atkbd:
225a9643ea8Slogwang#       0x01    Force detection of keyboard, else we always assume a keyboard
226a9643ea8Slogwang#       0x02    Don't reset keyboard, useful for some newer ThinkPads
227a9643ea8Slogwang#	0x03	Force detection and avoid reset, might help with certain
228a9643ea8Slogwang#		dockingstations
229a9643ea8Slogwang#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
230a9643ea8Slogwang
231a9643ea8Slogwang# Video card driver for VGA adapters.
232a9643ea8Slogwangdevice		vga
233*22ce4affSfengbojiangenvvar		hint.vga.0.at="isa"
234a9643ea8Slogwang
235a9643ea8Slogwang# Options for vga:
236a9643ea8Slogwang# Try the following option if the mouse pointer is not drawn correctly
237a9643ea8Slogwang# or font does not seem to be loaded properly.  May cause flicker on
238a9643ea8Slogwang# some systems.
239a9643ea8Slogwangoptions 	VGA_ALT_SEQACCESS
240a9643ea8Slogwang
241a9643ea8Slogwang# If you can dispense with some vga driver features, you may want to
242a9643ea8Slogwang# use the following options to save some memory.
243a9643ea8Slogwang#options 	VGA_NO_FONT_LOADING	# don't save/load font
244a9643ea8Slogwang#options 	VGA_NO_MODE_CHANGE	# don't change video modes
245a9643ea8Slogwang
246a9643ea8Slogwang# Older video cards may require this option for proper operation.
247a9643ea8Slogwangoptions 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
248a9643ea8Slogwang
249a9643ea8Slogwang# The following option probably won't work with the LCD displays.
250a9643ea8Slogwangoptions 	VGA_WIDTH90		# support 90 column modes
251a9643ea8Slogwang
252a9643ea8Slogwang# Debugging.
253a9643ea8Slogwangoptions 	VGA_DEBUG
254a9643ea8Slogwang
255a9643ea8Slogwang# vt(4) drivers.
256a9643ea8Slogwangdevice		vt_vga		# VGA
257a9643ea8Slogwangdevice		vt_efifb	# EFI framebuffer
258*22ce4affSfengbojiangdevice		vt_vbefb	# VBE framebuffer
259a9643ea8Slogwang
260a9643ea8Slogwang# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
261a9643ea8Slogwangdevice		s3pci
262a9643ea8Slogwang
263a9643ea8Slogwang# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support.  This will create
264a9643ea8Slogwang# the /dev/3dfx0 device to work with glide implementations.  This should get
265a9643ea8Slogwang# linked to /dev/3dfx and /dev/voodoo.  Note that this is not the same as
266a9643ea8Slogwang# the tdfx DRI module from XFree86 and is completely unrelated.
267a9643ea8Slogwang#
268a9643ea8Slogwang# To enable Linuxulator support, one must also include COMPAT_LINUX in the
269a9643ea8Slogwang# config as well.  The other option is to load both as modules.
270a9643ea8Slogwang
271a9643ea8Slogwangdevice		tdfx			# Enable 3Dfx Voodoo support
272a9643ea8Slogwang#XXX#device 	tdfx_linux		# Enable Linuxulator support
273a9643ea8Slogwang
274a9643ea8Slogwang#
275a9643ea8Slogwang# ACPI support using the Intel ACPI Component Architecture reference
276a9643ea8Slogwang# implementation.
277a9643ea8Slogwang#
278a9643ea8Slogwang# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
279a9643ea8Slogwang# kernel environment variables to select initial debugging levels for the
280a9643ea8Slogwang# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
281a9643ea8Slogwang# defined when it is built).
282a9643ea8Slogwang
283a9643ea8Slogwangdevice		acpi
284a9643ea8Slogwangoptions 	ACPI_DEBUG
285a9643ea8Slogwang
286a9643ea8Slogwang# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
287a9643ea8Slogwangdevice		cpufreq
288a9643ea8Slogwang
289a9643ea8Slogwang#
290a9643ea8Slogwang# Network interfaces:
291a9643ea8Slogwang#
292a9643ea8Slogwang
293a9643ea8Slogwang# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
294a9643ea8Slogwang#       adapters.
295*22ce4affSfengbojiang# ice:	Intel 800 Series Physical Function
296*22ce4affSfengbojiang#	Requires the ice_ddp module for full functionality
297a9643ea8Slogwang# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
298a9643ea8Slogwang#	Requires the ipw firmware module
299a9643ea8Slogwang# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
300a9643ea8Slogwang#	Requires the iwi firmware module
301a9643ea8Slogwang# iwn:	Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn
302a9643ea8Slogwang#	802.11 network adapters
303a9643ea8Slogwang#	Requires the iwn firmware module
304a9643ea8Slogwang# mthca: Mellanox HCA InfiniBand
305*22ce4affSfengbojiang# mlx4ib: Mellanox ConnectX HCA InfiniBand
306*22ce4affSfengbojiang# mlx4en: Mellanox ConnectX HCA Ethernet
307a9643ea8Slogwang# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
308a9643ea8Slogwang# sfxge: Solarflare SFC9000 family 10Gb Ethernet adapters
309a9643ea8Slogwang# vmx:	VMware VMXNET3 Ethernet (BSD open source)
310a9643ea8Slogwang# wpi:	Intel 3945ABG Wireless LAN controller
311a9643ea8Slogwang#	Requires the wpi firmware module
312a9643ea8Slogwang
313a9643ea8Slogwangdevice		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
314a9643ea8Slogwangoptions 	ED_3C503
315a9643ea8Slogwangoptions 	ED_HPP
316a9643ea8Slogwangoptions 	ED_SIC
317a9643ea8Slogwangdevice		ipw		# Intel 2100 wireless NICs.
318a9643ea8Slogwangdevice		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
319a9643ea8Slogwangdevice		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
320*22ce4affSfengbojiangdevice		ixl		# Intel 700 Series Physical Function
321*22ce4affSfengbojiangdevice		iavf		# Intel Adaptive Virtual Function
322*22ce4affSfengbojiangdevice		ice		# Intel 800 Series Physical Function
323*22ce4affSfengbojiangdevice		ice_ddp		# Intel 800 Series DDP Package
324a9643ea8Slogwangdevice  	mthca		# Mellanox HCA InfiniBand
325*22ce4affSfengbojiangdevice  	mlx4		# Shared code module between IB and Ethernet
326*22ce4affSfengbojiangdevice  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
327*22ce4affSfengbojiangdevice  	mlx4en		# Mellanox ConnectX HCA Ethernet
328a9643ea8Slogwangdevice		nfe		# nVidia nForce MCP on-board Ethernet
329a9643ea8Slogwangdevice		sfxge		# Solarflare SFC9000 10Gb Ethernet
330a9643ea8Slogwangdevice		vmx		# VMware VMXNET3 Ethernet
331a9643ea8Slogwangdevice		wpi		# Intel 3945ABG wireless NICs.
332*22ce4affSfengbojiangdevice		axp		# AMD EPYC integrated NIC
333a9643ea8Slogwang
334a9643ea8Slogwang# IEEE 802.11 adapter firmware modules
335a9643ea8Slogwang
336a9643ea8Slogwang# Intel PRO/Wireless 2100 firmware:
337a9643ea8Slogwang#   ipwfw:		BSS/IBSS/monitor mode firmware
338a9643ea8Slogwang#   ipwbssfw:		BSS mode firmware
339a9643ea8Slogwang#   ipwibssfw:		IBSS mode firmware
340a9643ea8Slogwang#   ipwmonitorfw:	Monitor mode firmware
341a9643ea8Slogwang# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
342a9643ea8Slogwang#   iwifw:		BSS/IBSS/monitor mode firmware
343a9643ea8Slogwang#   iwibssfw:		BSS mode firmware
344a9643ea8Slogwang#   iwiibssfw:		IBSS mode firmware
345a9643ea8Slogwang#   iwimonitorfw:	Monitor mode firmware
346a9643ea8Slogwang# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
347a9643ea8Slogwang#   iwnfw:		Single module to support all devices
348a9643ea8Slogwang#   iwn1000fw:		Specific module for the 1000 only
349a9643ea8Slogwang#   iwn105fw:		Specific module for the 105 only
350a9643ea8Slogwang#   iwn135fw:		Specific module for the 135 only
351a9643ea8Slogwang#   iwn2000fw:		Specific module for the 2000 only
352a9643ea8Slogwang#   iwn2030fw:		Specific module for the 2030 only
353a9643ea8Slogwang#   iwn4965fw:		Specific module for the 4965 only
354a9643ea8Slogwang#   iwn5000fw:		Specific module for the 5000 only
355a9643ea8Slogwang#   iwn5150fw:		Specific module for the 5150 only
356a9643ea8Slogwang#   iwn6000fw:		Specific module for the 6000 only
357a9643ea8Slogwang#   iwn6000g2afw:	Specific module for the 6000g2a only
358a9643ea8Slogwang#   iwn6000g2bfw:	Specific module for the 6000g2b only
359a9643ea8Slogwang#   iwn6050fw:		Specific module for the 6050 only
360a9643ea8Slogwang# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
361a9643ea8Slogwang
362a9643ea8Slogwangdevice		iwifw
363a9643ea8Slogwangdevice		iwibssfw
364a9643ea8Slogwangdevice		iwiibssfw
365a9643ea8Slogwangdevice		iwimonitorfw
366a9643ea8Slogwangdevice		ipwfw
367a9643ea8Slogwangdevice		ipwbssfw
368a9643ea8Slogwangdevice		ipwibssfw
369a9643ea8Slogwangdevice		ipwmonitorfw
370a9643ea8Slogwangdevice		iwnfw
371a9643ea8Slogwangdevice		iwn1000fw
372a9643ea8Slogwangdevice		iwn105fw
373a9643ea8Slogwangdevice		iwn135fw
374a9643ea8Slogwangdevice		iwn2000fw
375a9643ea8Slogwangdevice		iwn2030fw
376a9643ea8Slogwangdevice		iwn4965fw
377a9643ea8Slogwangdevice		iwn5000fw
378a9643ea8Slogwangdevice		iwn5150fw
379a9643ea8Slogwangdevice		iwn6000fw
380a9643ea8Slogwangdevice		iwn6000g2afw
381a9643ea8Slogwangdevice		iwn6000g2bfw
382a9643ea8Slogwangdevice		iwn6050fw
383a9643ea8Slogwangdevice		wpifw
384a9643ea8Slogwang
385*22ce4affSfengbojiang#
386*22ce4affSfengbojiang# Non-Transparent Bridge (NTB) drivers
387*22ce4affSfengbojiang#
388*22ce4affSfengbojiangdevice		if_ntb		# Virtual NTB network interface
389*22ce4affSfengbojiangdevice		ntb_transport	# NTB packet transport driver
390*22ce4affSfengbojiangdevice		ntb		# NTB hardware interface
391*22ce4affSfengbojiangdevice		ntb_hw_amd	# AMD NTB hardware driver
392*22ce4affSfengbojiangdevice		ntb_hw_intel	# Intel NTB hardware driver
393*22ce4affSfengbojiangdevice		ntb_hw_plx	# PLX NTB hardware driver
394a9643ea8Slogwang
395a9643ea8Slogwang#
396a9643ea8Slogwang#XXX this stores pointers in a 32bit field that is defined by the hardware
397a9643ea8Slogwang#device	pst
398a9643ea8Slogwang
399a9643ea8Slogwang#
400a9643ea8Slogwang# Areca 11xx and 12xx series of SATA II RAID controllers.
401a9643ea8Slogwang# CAM is required.
402a9643ea8Slogwang#
403a9643ea8Slogwangdevice		arcmsr		# Areca SATA II RAID
404a9643ea8Slogwang
405a9643ea8Slogwang#
406*22ce4affSfengbojiang# Microsemi smartpqi controllers.
407*22ce4affSfengbojiang# These controllers have a SCSI-like interface, and require the
408*22ce4affSfengbojiang# CAM infrastructure.
409*22ce4affSfengbojiang#
410*22ce4affSfengbojiangdevice		smartpqi
411*22ce4affSfengbojiang
412*22ce4affSfengbojiang#
413a9643ea8Slogwang# 3ware 9000 series PATA/SATA RAID controller driver and options.
414a9643ea8Slogwang# The driver is implemented as a SIM, and so, needs the CAM infrastructure.
415a9643ea8Slogwang#
416a9643ea8Slogwangoptions 	TWA_DEBUG		# 0-10; 10 prints the most messages.
417a9643ea8Slogwangdevice		twa			# 3ware 9000 series PATA/SATA RAID
418a9643ea8Slogwang
419a9643ea8Slogwang#
420a9643ea8Slogwang# Adaptec FSA RAID controllers, including integrated DELL controllers,
421a9643ea8Slogwang# the Dell PERC 2/QC and the HP NetRAID-4M
422a9643ea8Slogwangdevice		aac
423a9643ea8Slogwangdevice		aacp	# SCSI Passthrough interface (optional, CAM required)
424a9643ea8Slogwang
425a9643ea8Slogwang#
426a9643ea8Slogwang# Highpoint RocketRAID 27xx.
427a9643ea8Slogwangdevice		hpt27xx
428a9643ea8Slogwang
429a9643ea8Slogwang#
430a9643ea8Slogwang# Highpoint RocketRAID 182x.
431a9643ea8Slogwangdevice		hptmv
432a9643ea8Slogwang
433a9643ea8Slogwang#
434a9643ea8Slogwang# Highpoint DC7280 and R750.
435a9643ea8Slogwangdevice		hptnr
436a9643ea8Slogwang
437a9643ea8Slogwang#
438a9643ea8Slogwang# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
439a9643ea8Slogwang# RR2210, RR174x, RR2522, RR231x, RR230x.
440a9643ea8Slogwangdevice		hptrr
441a9643ea8Slogwang
442a9643ea8Slogwang#
443a9643ea8Slogwang# Highpoint RocketRaid 3xxx series SATA RAID
444a9643ea8Slogwangdevice		hptiop
445a9643ea8Slogwang
446a9643ea8Slogwang#
447a9643ea8Slogwang# IBM (now Adaptec) ServeRAID controllers
448a9643ea8Slogwangdevice		ips
449a9643ea8Slogwang
450a9643ea8Slogwang#
451*22ce4affSfengbojiang# Intel integrated Memory Controller (iMC) SMBus controller
452*22ce4affSfengbojiang#	Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
453*22ce4affSfengbojiangdevice		imcsmb
454*22ce4affSfengbojiang
455*22ce4affSfengbojiang#
456a9643ea8Slogwang# Intel C600 (Patsburg) integrated SAS controller
457a9643ea8Slogwangdevice		isci
458a9643ea8Slogwangoptions 	ISCI_LOGGING	# enable debugging in isci HAL
459a9643ea8Slogwang
460a9643ea8Slogwang#
461a9643ea8Slogwang# NVM Express (NVMe) support
462a9643ea8Slogwangdevice         nvme    # base NVMe driver
463a9643ea8Slogwangdevice         nvd     # expose NVMe namespaces as disks, depends on nvme
464a9643ea8Slogwang
465a9643ea8Slogwang#
466*22ce4affSfengbojiang# Intel Volume Management Device (VMD) support
467*22ce4affSfengbojiangdevice		vmd		# base VMD device
468*22ce4affSfengbojiangdevice		vmd_bus		# bus for VMD children
469*22ce4affSfengbojiang
470*22ce4affSfengbojiang#
471a9643ea8Slogwang# PMC-Sierra SAS/SATA controller
472a9643ea8Slogwangdevice		pmspcv
473a9643ea8Slogwang
474a9643ea8Slogwang#
475*22ce4affSfengbojiang# Intel QuickAssist
476*22ce4affSfengbojiangdevice		qat
477*22ce4affSfengbojiang
478*22ce4affSfengbojiang#
479a9643ea8Slogwang# SafeNet crypto driver: can be moved to the MI NOTES as soon as
480a9643ea8Slogwang# it's tested on a big-endian machine
481a9643ea8Slogwang#
482a9643ea8Slogwangdevice		safe		# SafeNet 1141
483a9643ea8Slogwangoptions 	SAFE_DEBUG	# enable debugging support: hw.safe.debug
484a9643ea8Slogwangoptions 	SAFE_RNDTEST	# enable rndtest support
485a9643ea8Slogwang
486a9643ea8Slogwang#
487a9643ea8Slogwang# VirtIO support
488a9643ea8Slogwang#
489a9643ea8Slogwang# The virtio entry provides a generic bus for use by the device drivers.
490a9643ea8Slogwang# It must be combined with an interface that communicates with the host.
491a9643ea8Slogwang# Multiple such interfaces are defined by the VirtIO specification. FreeBSD
492a9643ea8Slogwang# only has support for PCI. Therefore, virtio_pci must be statically
493a9643ea8Slogwang# compiled in or loaded as a module for the device drivers to function.
494a9643ea8Slogwang#
495a9643ea8Slogwangdevice		virtio		# Generic VirtIO bus (required)
496a9643ea8Slogwangdevice		virtio_pci	# VirtIO PCI Interface
497a9643ea8Slogwangdevice		vtnet		# VirtIO Ethernet device
498a9643ea8Slogwangdevice		virtio_blk	# VirtIO Block device
499a9643ea8Slogwangdevice		virtio_scsi	# VirtIO SCSI device
500a9643ea8Slogwangdevice		virtio_balloon	# VirtIO Memory Balloon device
501a9643ea8Slogwangdevice		virtio_random	# VirtIO Entropy device
502a9643ea8Slogwangdevice		virtio_console	# VirtIO Console device
503a9643ea8Slogwang
504a9643ea8Slogwang# Microsoft Hyper-V enhancement support
505a9643ea8Slogwangdevice 		hyperv		# HyperV drivers
506a9643ea8Slogwang
507a9643ea8Slogwang# Xen HVM Guest Optimizations
508a9643ea8Slogwangoptions 	XENHVM		# Xen HVM kernel infrastructure
509a9643ea8Slogwangdevice 		xenpci		# Xen HVM Hypervisor services driver
510a9643ea8Slogwang
511a9643ea8Slogwang#####################################################################
512a9643ea8Slogwang
513a9643ea8Slogwang#
514a9643ea8Slogwang# Miscellaneous hardware:
515a9643ea8Slogwang#
516a9643ea8Slogwang# ipmi: Intelligent Platform Management Interface
517a9643ea8Slogwang# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
518a9643ea8Slogwang# smbios: DMI/SMBIOS entry point
519a9643ea8Slogwang# vpd: Vital Product Data kernel interface
520a9643ea8Slogwang# asmc: Apple System Management Controller
521a9643ea8Slogwang# si: Specialix International SI/XIO or SX intelligent serial card
522a9643ea8Slogwang# tpm: Trusted Platform Module
523a9643ea8Slogwang
524a9643ea8Slogwang# Notes on the Specialix SI/XIO driver:
525a9643ea8Slogwang#  The host card is memory, not IO mapped.
526a9643ea8Slogwang#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
527a9643ea8Slogwang#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
528a9643ea8Slogwang#  The cards can use an IRQ of 11, 12 or 15.
529a9643ea8Slogwang
530a9643ea8Slogwangdevice		ipmi
531a9643ea8Slogwangdevice		pbio
532*22ce4affSfengbojiangenvvar		hint.pbio.0.at="isa"
533*22ce4affSfengbojiangenvvar		hint.pbio.0.port="0x360"
534a9643ea8Slogwangdevice		smbios
535a9643ea8Slogwangdevice		vpd
536a9643ea8Slogwangdevice		asmc
537a9643ea8Slogwangdevice		tpm
538a9643ea8Slogwangdevice		padlock_rng	# VIA Padlock RNG
539a9643ea8Slogwangdevice		rdrand_rng	# Intel Bull Mountain RNG
540a9643ea8Slogwangdevice		aesni		# AES-NI OpenCrypto module
541*22ce4affSfengbojiangdevice		ossl		# OpenSSL OpenCrypto module
542a9643ea8Slogwangdevice		ioat		# Intel I/OAT DMA engine
543a9643ea8Slogwang
544a9643ea8Slogwang#
545a9643ea8Slogwang# Laptop/Notebook options:
546a9643ea8Slogwang#
547a9643ea8Slogwang
548*22ce4affSfengbojiangdevice backlight
549a9643ea8Slogwang
550a9643ea8Slogwang#
551a9643ea8Slogwang# I2C Bus
552a9643ea8Slogwang#
553a9643ea8Slogwang
554a9643ea8Slogwang#
555a9643ea8Slogwang# Hardware watchdog timers:
556a9643ea8Slogwang#
557a9643ea8Slogwang# ichwd: Intel ICH watchdog timer
558a9643ea8Slogwang# amdsbwd: AMD SB7xx watchdog timer
559a9643ea8Slogwang# viawd: VIA south bridge watchdog timer
560a9643ea8Slogwang# wbwd: Winbond watchdog timer
561*22ce4affSfengbojiang# itwd: ITE Super I/O watchdog timer
562a9643ea8Slogwang#
563a9643ea8Slogwangdevice		ichwd
564a9643ea8Slogwangdevice		amdsbwd
565a9643ea8Slogwangdevice		viawd
566a9643ea8Slogwangdevice		wbwd
567*22ce4affSfengbojiangdevice		itwd
568a9643ea8Slogwang
569a9643ea8Slogwang#
570a9643ea8Slogwang# Temperature sensors:
571a9643ea8Slogwang#
572a9643ea8Slogwang# coretemp: on-die sensor on Intel Core and newer CPUs
573a9643ea8Slogwang# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
574a9643ea8Slogwang#
575a9643ea8Slogwangdevice		coretemp
576a9643ea8Slogwangdevice		amdtemp
577a9643ea8Slogwang
578a9643ea8Slogwang#
579a9643ea8Slogwang# CPU control pseudo-device. Provides access to MSRs, CPUID info and
580a9643ea8Slogwang# microcode update feature.
581a9643ea8Slogwang#
582a9643ea8Slogwangdevice		cpuctl
583a9643ea8Slogwang
584a9643ea8Slogwang#
585*22ce4affSfengbojiang# SuperIO driver.
586*22ce4affSfengbojiang#
587*22ce4affSfengbojiangdevice		superio
588*22ce4affSfengbojiang
589*22ce4affSfengbojiang#
590a9643ea8Slogwang# System Management Bus (SMB)
591a9643ea8Slogwang#
592a9643ea8Slogwangoptions 	ENABLE_ALART		# Control alarm on Intel intpm driver
593a9643ea8Slogwang
594a9643ea8Slogwang#
595*22ce4affSfengbojiang# AMD System Management Network (SMN)
596*22ce4affSfengbojiang#
597*22ce4affSfengbojiangdevice		amdsmn
598*22ce4affSfengbojiang
599*22ce4affSfengbojiang#
600a9643ea8Slogwang# Number of initial kernel page table pages used for early bootstrap.
601a9643ea8Slogwang# This number should include enough pages to map the kernel and any
602a9643ea8Slogwang# modules or other data loaded with the kernel by the loader.  Each
603a9643ea8Slogwang# page table page maps 2MB.
604a9643ea8Slogwang#
605a9643ea8Slogwangoptions 	NKPT=31
606a9643ea8Slogwang
607*22ce4affSfengbojiang# EFI Runtime Services support
608*22ce4affSfengbojiangoptions 	EFIRT
609*22ce4affSfengbojiang
610*22ce4affSfengbojiang#
611*22ce4affSfengbojiang# HID-over-I2C support
612*22ce4affSfengbojiang#
613*22ce4affSfengbojiangdevice		iichid		# HID-over-I2C support
614*22ce4affSfengbojiangoptions 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
615*22ce4affSfengbojiangoptions 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
616*22ce4affSfengbojiang
617a9643ea8Slogwang#####################################################################
618a9643ea8Slogwang# ABI Emulation
619a9643ea8Slogwang
620a9643ea8Slogwang#XXX keep these here for now and reactivate when support for emulating
621a9643ea8Slogwang#XXX these 32 bit binaries is added.
622a9643ea8Slogwang
623a9643ea8Slogwang# Enable 32-bit runtime support for FreeBSD/i386 binaries.
624a9643ea8Slogwangoptions 	COMPAT_FREEBSD32
625a9643ea8Slogwang
626*22ce4affSfengbojiang# Enable (32-bit) a.out binary support
627*22ce4affSfengbojiangoptions 	COMPAT_AOUT
628a9643ea8Slogwang
629*22ce4affSfengbojiang# Enable 32-bit runtime support for CloudABI binaries.
630*22ce4affSfengbojiangoptions 	COMPAT_CLOUDABI32
631a9643ea8Slogwang
632a9643ea8Slogwang# Enable 64-bit runtime support for CloudABI binaries.
633a9643ea8Slogwangoptions 	COMPAT_CLOUDABI64
634a9643ea8Slogwang
635a9643ea8Slogwang# Enable Linux ABI emulation
636a9643ea8Slogwang#XXX#options 	COMPAT_LINUX
637a9643ea8Slogwang
638*22ce4affSfengbojiang# Enable 32-bit Linux ABI emulation (requires COMPAT_FREEBSD32).
639a9643ea8Slogwangoptions 	COMPAT_LINUX32
640a9643ea8Slogwang
641a9643ea8Slogwang# Enable the linux-like proc filesystem support (requires COMPAT_LINUX32
642a9643ea8Slogwang# and PSEUDOFS)
643a9643ea8Slogwangoptions 	LINPROCFS
644a9643ea8Slogwang
645a9643ea8Slogwang#Enable the linux-like sys filesystem support (requires COMPAT_LINUX32
646a9643ea8Slogwang# and PSEUDOFS)
647a9643ea8Slogwangoptions 	LINSYSFS
648a9643ea8Slogwang
649*22ce4affSfengbojiang#####################################################################
650*22ce4affSfengbojiang# ZFS support
651a9643ea8Slogwang
652*22ce4affSfengbojiang# NB: This depends on crypto, cryptodev and ZSTDIO
653*22ce4affSfengbojiangoptions		ZFS
654*22ce4affSfengbojiang
655a9643ea8Slogwang#####################################################################
656a9643ea8Slogwang# VM OPTIONS
657a9643ea8Slogwang
658a9643ea8Slogwang# KSTACK_PAGES is the number of memory pages to assign to the kernel
659a9643ea8Slogwang# stack of each thread.
660a9643ea8Slogwang
661a9643ea8Slogwangoptions 	KSTACK_PAGES=5
662a9643ea8Slogwang
663a9643ea8Slogwang# Enable detailed accounting by the PV entry allocator.
664a9643ea8Slogwang
665a9643ea8Slogwangoptions 	PV_STATS
666a9643ea8Slogwang
667a9643ea8Slogwang#####################################################################
668a9643ea8Slogwang
669a9643ea8Slogwang# More undocumented options for linting.
670a9643ea8Slogwang# Note that documenting these are not considered an affront.
671a9643ea8Slogwang
672a9643ea8Slogwangoptions 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
673a9643ea8Slogwang
674a9643ea8Slogwangoptions 	KBDIO_DEBUG=2
675a9643ea8Slogwangoptions 	KBD_MAXRETRY=4
676a9643ea8Slogwangoptions 	KBD_MAXWAIT=6
677a9643ea8Slogwangoptions 	KBD_RESETDELAY=201
678a9643ea8Slogwang
679a9643ea8Slogwangoptions 	PSM_DEBUG=1
680a9643ea8Slogwang
681a9643ea8Slogwangoptions 	TIMER_FREQ=((14318182+6)/12)
682a9643ea8Slogwang
683a9643ea8Slogwangoptions 	VM_KMEM_SIZE
684a9643ea8Slogwangoptions 	VM_KMEM_SIZE_MAX
685a9643ea8Slogwangoptions 	VM_KMEM_SIZE_SCALE
686a9643ea8Slogwang
687a9643ea8Slogwang# Enable NDIS binary driver support
688a9643ea8Slogwangoptions 	NDISAPI
689a9643ea8Slogwangdevice		ndis
690*22ce4affSfengbojiang
691*22ce4affSfengbojiang
692*22ce4affSfengbojiang# GCOV (code coverage) support
693*22ce4affSfengbojiang
694*22ce4affSfengbojiangoptions		LINDEBUGFS
695*22ce4affSfengbojiangoptions		GCOV
696