xref: /src/sys/x86/conf/NOTES (revision 72bb61bac72eabb2e9de16206a68cde523eb59ba)
1#
2
3# Common NOTES between i386 and amd64
4
5#
6# Enable the kernel DTrace hooks which are required to load the DTrace
7# kernel modules.
8#
9#options 	KDTRACE_HOOKS
10
11# DTrace core
12# NOTE: introduces CDDL-licensed components into the kernel
13#device		dtrace
14
15# DTrace modules
16#device		dtrace_profile
17#device		dtrace_sdt
18#device		dtrace_fbt
19#device		dtrace_systrace
20#device		dtrace_prototype
21#device		dtnfscl
22#device		dtmalloc
23
24# Alternatively include all the DTrace modules
25#device		dtraceall
26
27
28#####################################################################
29# SMP OPTIONS:
30#
31# Notes:
32#
33# IPI_PREEMPTION instructs the kernel to preempt threads running on other
34# CPUS if needed.  Relies on the PREEMPTION option
35
36# Optional:
37options 	IPI_PREEMPTION
38
39# Debugging options.
40#
41options 	COUNT_XINVLTLB_HITS	# Counters for TLB events
42options 	COUNT_IPIS		# Per-CPU IPI interrupt counters
43
44
45#####################################################################
46# COMPATIBILITY OPTIONS
47
48# Implement system calls compatible with 4.3BSD and FreeBSD 1.x,
49# and 2.x a.out binaries. Not needed for ELF binaries, or newer
50# a.out binaries.
51options 	COMPAT_43
52
53
54#####################################################################
55# NETWORKING OPTIONS
56
57#
58# DEVICE_POLLING adds support for mixed interrupt-polling handling
59# of network device drivers, which has significant benefits in terms
60# of robustness to overloads and responsivity, as well as permitting
61# accurate scheduling of the CPU time between kernel network processing
62# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
63# potential increase in response times.
64# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
65# to achieve smoother behaviour.
66# Additionally, you can enable/disable polling at runtime with help of
67# the ifconfig(8) utility, and select the CPU fraction reserved to
68# userland with the sysctl variable kern.polling.user_frac
69# (default 50, range 0..100).
70#
71# Not all device drivers support this mode of operation at the time of
72# this writing.  See polling(4) for more details.
73
74options 	DEVICE_POLLING
75
76# BPF_JITTER adds support for BPF just-in-time compiler.
77
78options 	BPF_JITTER
79
80
81#####################################################################
82# CLOCK OPTIONS
83
84# Provide read/write access to the memory in the clock chip.
85device		nvram		# Access to rtc cmos via /dev/nvram
86
87
88#####################################################################
89# MISCELLANEOUS DEVICES AND OPTIONS
90
91device		speaker		#Play IBM BASIC-style noises out your speaker
92envvar		hint.speaker.0.at="isa"
93envvar		hint.speaker.0.port="0x61"
94
95
96#####################################################################
97# HARDWARE BUS CONFIGURATION
98
99options 	IOMMU			# Enable IOMMU support
100
101#
102# ISA bus
103#
104device		isa
105
106#
107# Options for `isa':
108#
109# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
110# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
111# This option breaks suspend/resume on some portables.
112#
113# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
114# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
115# Automatic EOI is documented not to work for the slave with the
116# original i8259A, but it works for some clones and some integrated
117# versions.
118#
119# MAXMEM specifies the amount of RAM on the machine; if this is not
120# specified, FreeBSD will first read the amount of memory from the CMOS
121# RAM, so the amount of memory will initially be limited to 64MB or 16MB
122# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
123# then attempt to detect the installed amount of RAM.  If this probe
124# fails to detect >64MB RAM you will have to use the MAXMEM option.
125# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
126# be 131072 (128 * 1024).
127#
128# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
129# reset the CPU for reboot.  This is needed on some systems with broken
130# keyboard controllers.
131
132options 	AUTO_EOI_1
133#options 	AUTO_EOI_2
134
135options 	MAXMEM=(128*1024)
136#options 	BROKEN_KEYBOARD_RESET
137
138#
139# AGP GART support
140device		agp
141
142# AGP debugging.
143options 	AGP_DEBUG
144
145#
146# ACPI support using the Intel ACPI Component Architecture reference
147# implementation.
148#
149# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
150# kernel environment variables to select initial debugging levels for the
151# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
152# defined when it is built).
153
154device		acpi
155options 	ACPI_DEBUG
156
157# ACPI WMI Mapping driver
158device		acpi_wmi
159
160# ACPI Asus Extras (LCD backlight/brightness, video output, etc.)
161device		acpi_asus
162
163# ACPI Fujitsu Extras (Buttons)
164device		acpi_fujitsu
165
166# ACPI extras driver for HP laptops
167device		acpi_hp
168
169# ACPI extras driver for IBM laptops
170device		acpi_ibm
171
172# ACPI Panasonic Extras (LCD backlight/brightness, video output, etc.)
173device		acpi_panasonic
174
175# ACPI SBL Firmware Update
176device		acpi_sbl_wmi
177
178# ACPI Sony extra (LCD brightness)
179device		acpi_sony
180
181# ACPI System76 extra (Keyboard brightness, Keyboard color)
182device		acpi_system76
183
184# ACPI Toshiba Extras (LCD backlight/brightness, video output, etc.)
185device		acpi_toshiba
186
187# ACPI Video Extensions (LCD backlight/brightness, video output, etc.)
188device		acpi_video
189
190# ACPI Docking Station
191device		acpi_dock
192
193# ACPI ASOC ATK0110 ASUSTeK AI Booster (voltage, temperature and fan sensors)
194device		aibs
195
196
197#####################################################################
198# HARDWARE DEVICE CONFIGURATION
199
200#
201# Optional devices:
202#
203
204# The syscons console driver (SCO color console compatible).
205device		sc
206envvar		hint.sc.0.at="isa"
207options 	MAXCONS=16		# number of virtual consoles
208options 	SC_ALT_MOUSE_IMAGE	# simplified mouse cursor in text mode
209options 	SC_DFLT_FONT		# compile font in
210makeoptions	SC_DFLT_FONT=cp850
211options 	SC_DFLT_TERM=\"sc\"	# default terminal emulator
212options 	SC_DISABLE_KDBKEY	# disable `debug' key
213options 	SC_DISABLE_REBOOT	# disable reboot key sequence
214options 	SC_HISTORY_SIZE=200	# number of history buffer lines
215options 	SC_MOUSE_CHAR=0x3	# char code for text mode mouse cursor
216options 	SC_PIXEL_MODE		# add support for the raster text mode
217
218# The following options will let you change the default colors of syscons.
219options 	SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
220options 	SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)
221options 	SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK)
222options 	SC_KERNEL_CONS_ATTRS=\"\x0c\x0d\x0e\x0f\x02\x09\x0a\x0b\"
223options 	SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)
224
225# The following options will let you change the default behavior of
226# cut-n-paste feature
227options 	SC_CUT_SPACES2TABS	# convert leading spaces into tabs
228options 	SC_CUT_SEPCHARS=\"x09\"	# set of characters that delimit words
229					# (default is single space - \"x20\")
230
231# If you have a two button mouse, you may want to add the following option
232# to use the right button of the mouse to paste text.
233options 	SC_TWOBUTTON_MOUSE
234
235# You can selectively disable features in syscons.
236options 	SC_NO_CUTPASTE
237options 	SC_NO_FONT_LOADING
238options 	SC_NO_HISTORY
239options 	SC_NO_MODE_CHANGE
240options 	SC_NO_SYSMOUSE
241options 	SC_NO_SUSPEND_VTYSWITCH
242#!options 	SC_NO_TERM_DUMB
243#!options 	SC_NO_TERM_SC
244#!options 	SC_NO_TERM_SCTEKEN
245
246# `flags' for sc
247#	0x80	Put the video card in the VESA 800x600 dots, 16 color mode
248#	0x100	Probe for a keyboard device periodically if one is not present
249
250# Splash screen and screen saver support
251device		splash
252
253# Various screen savers.
254device		blank_saver
255device		daemon_saver
256device		dragon_saver
257device		fade_saver
258device		fire_saver
259device		green_saver
260device		logo_saver
261device		rain_saver
262device		snake_saver
263device		star_saver
264device		warp_saver
265
266# To include support for VGA VESA video modes
267options 	VESA
268
269# Turn on extra debugging checks and output for VESA support.
270options 	VESA_DEBUG
271
272device		dpms		# DPMS suspend & resume via VESA BIOS
273
274# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
275options 	X86BIOS
276
277# PS/2 mouse
278device		psm
279envvar		hint.psm.0.at="atkbdc"
280envvar		hint.psm.0.irq="12"
281
282# Options for psm:
283options 	PSM_HOOKRESUME		#hook the system resume event, useful
284					#for some laptops
285options 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
286
287# The keyboard controller; it controls the keyboard and the PS/2 mouse.
288device		atkbdc
289envvar		hint.atkbdc.0.at="isa"
290envvar		hint.atkbdc.0.port="0x060"
291
292# The AT keyboard
293device		atkbd
294envvar		hint.atkbd.0.at="atkbdc"
295envvar		hint.atkbd.0.irq="1"
296
297# Options for atkbd:
298options 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
299makeoptions	ATKBD_DFLT_KEYMAP=fr.dvorak
300
301# `flags' for atkbd:
302#       0x01    Force detection of keyboard, else we always assume a keyboard
303#       0x02    Don't reset keyboard, useful for some newer ThinkPads
304#	0x03	Force detection and avoid reset, might help with certain
305#		dockingstations
306#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
307
308# Video card driver for VGA adapters.
309device		vga
310envvar		hint.vga.0.at="isa"
311
312# Options for vga:
313# Try the following option if the mouse pointer is not drawn correctly
314# or font does not seem to be loaded properly.  May cause flicker on
315# some systems.
316options 	VGA_ALT_SEQACCESS
317
318# If you can dispense with some vga driver features, you may want to
319# use the following options to save some memory.
320#options 	VGA_NO_FONT_LOADING	# don't save/load font
321#options 	VGA_NO_MODE_CHANGE	# don't change video modes
322
323# Older video cards may require this option for proper operation.
324options 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
325
326# The following option probably won't work with the LCD displays.
327options 	VGA_WIDTH90		# support 90 column modes
328
329# Debugging.
330options 	VGA_DEBUG
331
332# vt(4) drivers.
333device		vt_vga		# VGA
334device		vt_vbefb	# VBE framebuffer
335
336# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
337device		s3pci
338
339#
340# RAID adapters
341#
342
343#
344# Areca 11xx and 12xx series of SATA II RAID controllers.
345# CAM is required.
346#
347device		arcmsr		# Areca SATA II RAID
348
349#
350# Adaptec FSA RAID controllers, including integrated DELL controllers,
351# the Dell PERC 2/QC and the HP NetRAID-4M
352device		aac
353device		aacp	# SCSI Passthrough interface (optional, CAM required)
354
355#
356# Highpoint RocketRAID 27xx.
357device		hpt27xx
358
359#
360# Highpoint RocketRAID 182x.
361device		hptmv
362
363#
364# Highpoint DC7280 and R750.
365device		hptnr
366
367#
368# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
369# RR2210, RR174x, RR2522, RR231x, RR230x.
370device		hptrr
371
372#
373# Highpoint RocketRaid 3xxx series SATA RAID
374device		hptiop
375
376#
377# IBM (now Adaptec) ServeRAID controllers
378device		ips
379
380#
381# Intel C600 (Patsburg) integrated SAS controller
382device		isci
383options 	ISCI_LOGGING	# enable debugging in isci HAL
384
385#
386# Intel Volume Management Device (VMD) support
387device		vmd
388
389#
390# PMC-Sierra SAS/SATA controller
391device		pmspcv
392
393device		ocs_fc			# Emulex FC adapters
394device		tws			# LSI 3ware 9750 SATA+SAS 6Gb/s RAID controller
395
396#
397# Standard floppy disk controllers and floppy tapes, supports
398# the Y-E DATA External FDD (PC Card)
399#
400device		fdc
401envvar		hint.fdc.0.at="isa"
402envvar		hint.fdc.0.port="0x3F0"
403envvar		hint.fdc.0.irq="6"
404envvar		hint.fdc.0.drq="2"
405#
406# FDC_DEBUG enables floppy debugging.  Since the debug output is huge, you
407# gotta turn it actually on by setting the variable fd_debug with DDB,
408# however.
409options 	FDC_DEBUG
410#
411# Activate this line if you happen to have an Insight floppy tape.
412# Probing them proved to be dangerous for people with floppy disks only,
413# so it's "hidden" behind a flag:
414#hint.fdc.0.flags="1"
415
416# Specify floppy devices
417envvar		hint.fd.0.at="fdc0"
418envvar		hint.fd.0.drive="0"
419envvar		hint.fd.1.at="fdc0"
420envvar		hint.fd.1.drive="1"
421
422# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
423device		cpufreq
424
425#
426# Network interfaces:
427#
428
429# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
430#       adapters.
431# gve:	Google Virtual NIC (gVNIC)
432# igc:	Intel I225 2.5Gb Ethernet adapter
433# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
434#	Requires the ipw firmware module
435# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
436#	Requires the iwi firmware module
437# iwn:	Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn
438#	802.11 network adapters
439#	Requires the iwn firmware module
440# mthca: Mellanox HCA InfiniBand
441# mlx4ib: Mellanox ConnectX HCA InfiniBand
442# mlx4en: Mellanox ConnectX HCA Ethernet
443# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
444# vmx:	VMware VMXNET3 Ethernet (BSD open source)
445# wpi:	Intel 3945ABG Wireless LAN controller
446#	Requires the wpi firmware module
447
448device		aq		# Aquantia / Marvell AQC1xx
449device		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
450device		gve		# Google Virtual NIC (gVNIC)
451device		igc		# Intel I225 2.5G Ethernet
452device		ipw		# Intel 2100 wireless NICs.
453device		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
454device		iwm		# Intel IEEE 802.11ac wireless NICs.
455device		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
456device		iwx		# Intel IEEE 802.11ax wireless NICs.
457device  	mthca		# Mellanox HCA InfiniBand
458device  	mlx4		# Shared code module between IB and Ethernet
459device  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
460device  	mlx4en		# Mellanox ConnectX HCA Ethernet
461device		nfe		# nVidia nForce MCP on-board Ethernet
462device		vge		# VIA VT612x gigabit Ethernet
463device		vmx		# VMware VMXNET3 Ethernet
464device		wpi		# Intel 3945ABG wireless NICs.
465
466# IEEE 802.11 adapter firmware modules
467
468# Intel PRO/Wireless 2100 firmware:
469#   ipwfw:		BSS/IBSS/monitor mode firmware
470#   ipwbssfw:		BSS mode firmware
471#   ipwibssfw:		IBSS mode firmware
472#   ipwmonitorfw:	Monitor mode firmware
473# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
474#   iwifw:		BSS/IBSS/monitor mode firmware
475#   iwibssfw:		BSS mode firmware
476#   iwiibssfw:		IBSS mode firmware
477#   iwimonitorfw:	Monitor mode firmware
478# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
479#   iwnfw:		Single module to support all devices
480#   iwn1000fw:		Specific module for the 1000 only
481#   iwn105fw:		Specific module for the 105 only
482#   iwn135fw:		Specific module for the 135 only
483#   iwn2000fw:		Specific module for the 2000 only
484#   iwn2030fw:		Specific module for the 2030 only
485#   iwn4965fw:		Specific module for the 4965 only
486#   iwn5000fw:		Specific module for the 5000 only
487#   iwn5150fw:		Specific module for the 5150 only
488#   iwn6000fw:		Specific module for the 6000 only
489#   iwn6000g2afw:	Specific module for the 6000g2a only
490#   iwn6000g2bfw:	Specific module for the 6000g2b only
491#   iwn6050fw:		Specific module for the 6050 only
492# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
493
494device		iwifw
495device		iwibssfw
496device		iwiibssfw
497device		iwimonitorfw
498device		ipwfw
499device		ipwbssfw
500device		ipwibssfw
501device		ipwmonitorfw
502device		iwnfw
503device		iwn1000fw
504device		iwn105fw
505device		iwn135fw
506device		iwn2000fw
507device		iwn2030fw
508device		iwn4965fw
509device		iwn5000fw
510device		iwn5150fw
511device		iwn6000fw
512device		iwn6000g2afw
513device		iwn6000g2bfw
514device		iwn6050fw
515device		wpifw
516
517#
518# Non-Transparent Bridge (NTB) drivers
519#
520device		if_ntb		# Virtual NTB network interface
521device		ntb_transport	# NTB packet transport driver
522device		ntb		# NTB hardware interface
523device		ntb_hw_amd	# AMD NTB hardware driver
524device		ntb_hw_intel	# Intel NTB hardware driver
525device		ntb_hw_plx	# PLX NTB hardware driver
526
527#####################################################################
528
529#
530# Miscellaneous hardware:
531#
532# ipmi: Intelligent Platform Management Interface
533# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
534# smbios: DMI/SMBIOS entry point (requires EFIRT option)
535# vpd: Vital Product Data kernel interface
536# si: Specialix International SI/XIO or SX intelligent serial card
537# tpm: Trusted Platform Module
538
539# Notes on the Specialix SI/XIO driver:
540#  The host card is memory, not IO mapped.
541#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
542#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
543#  The cards can use an IRQ of 11, 12 or 15.
544
545device		ipmi
546device		pbio
547envvar		hint.pbio.0.at="isa"
548envvar		hint.pbio.0.port="0x360"
549device		smbios
550device		vpd
551device		tpm
552device		rdrand_rng	# Intel Bull Mountain RNG
553device		aesni		# AES-NI OpenCrypto module
554device		ossl		# OpenSSL OpenCrypto module
555
556# Linux KVM paravirtualization support
557device		kvm_clock	# KVM paravirtual clock driver
558
559# Microsoft Hyper-V enhancement support
560device 		hyperv		# HyperV drivers
561device		hvhid		# HyperV HID device
562
563# VMware hypervisor support
564device		pvscsi		# Paravirtual SCSI driver
565device		vmci		# Virtual Machine Communication Interface (VMCI)
566device		vmware_guestrpc	# GuestRPC interface
567
568#
569# Laptop/Notebook options:
570#
571
572device backlight
573
574#
575# System Management Bus (SMB)
576#
577# Supported SMB interfaces:
578# imcsmb	integrated Memory Controller (iMC) SMBus controller
579#		Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
580#
581
582device		imcsmb
583
584#
585# HID-over-I2C support
586#
587device		iichid		# HID-over-I2C support
588options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
589options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
590
591#
592# AMD System Management Network (SMN)
593#
594device		amdsmn
595
596#
597# Hardware watchdog timers:
598#
599# ichwd: Intel ICH watchdog timer
600# amdsbwd: AMD SB7xx watchdog timer
601# viawd: VIA south bridge watchdog timer
602# wbwd: Winbond watchdog timer
603# itwd: ITE Super I/O watchdog timer
604#
605device		ichwd
606device		amdsbwd
607device		viawd
608device		wbwd
609device		itwd
610
611#
612# Temperature sensors:
613#
614# coretemp: on-die sensor on Intel Core and newer CPUs
615# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
616#
617device		coretemp
618device		amdtemp
619
620#
621# CPU control pseudo-device. Provides access to MSRs, CPUID info and
622# microcode update feature.
623#
624device		cpuctl
625
626#
627# SuperIO driver.
628#
629device		superio
630
631#####################################################################
632
633# More undocumented options for linting.
634# Note that documenting these are not considered an affront.
635
636options 	KBDIO_DEBUG=2
637options 	KBD_MAXRETRY=4
638options 	KBD_MAXWAIT=6
639options 	KBD_RESETDELAY=201
640
641options 	PSM_DEBUG=1
642
643options 	TIMER_FREQ=((14318182+6)/12)
644
645options 	VM_KMEM_SIZE
646options 	VM_KMEM_SIZE_MAX
647options 	VM_KMEM_SIZE_SCALE
648