xref: /src/sys/x86/conf/NOTES (revision cdad55809ef59239c3bbdc841ed307db68bb3971)
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
393#
394# Standard floppy disk controllers and floppy tapes, supports
395# the Y-E DATA External FDD (PC Card)
396#
397device		fdc
398envvar		hint.fdc.0.at="isa"
399envvar		hint.fdc.0.port="0x3F0"
400envvar		hint.fdc.0.irq="6"
401envvar		hint.fdc.0.drq="2"
402#
403# FDC_DEBUG enables floppy debugging.  Since the debug output is huge, you
404# gotta turn it actually on by setting the variable fd_debug with DDB,
405# however.
406options 	FDC_DEBUG
407#
408# Activate this line if you happen to have an Insight floppy tape.
409# Probing them proved to be dangerous for people with floppy disks only,
410# so it's "hidden" behind a flag:
411#hint.fdc.0.flags="1"
412
413# Specify floppy devices
414envvar		hint.fd.0.at="fdc0"
415envvar		hint.fd.0.drive="0"
416envvar		hint.fd.1.at="fdc0"
417envvar		hint.fd.1.drive="1"
418
419# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
420device		cpufreq
421
422#
423# Network interfaces:
424#
425
426# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
427#       adapters.
428# gve:	Google Virtual NIC (gVNIC)
429# igc:	Intel I225 2.5Gb Ethernet adapter
430# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
431#	Requires the ipw firmware module
432# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
433#	Requires the iwi firmware module
434# iwn:	Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn
435#	802.11 network adapters
436#	Requires the iwn firmware module
437# mthca: Mellanox HCA InfiniBand
438# mlx4ib: Mellanox ConnectX HCA InfiniBand
439# mlx4en: Mellanox ConnectX HCA Ethernet
440# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
441# vmx:	VMware VMXNET3 Ethernet (BSD open source)
442# wpi:	Intel 3945ABG Wireless LAN controller
443#	Requires the wpi firmware module
444
445device		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
446device		gve		# Google Virtual NIC (gVNIC)
447device		igc		# Intel I225 2.5G Ethernet
448device		ipw		# Intel 2100 wireless NICs.
449device		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
450device		iwm		# Intel IEEE 802.11ac wireless NICs.
451device		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
452device		iwx		# Intel IEEE 802.11ax wireless NICs.
453device  	mthca		# Mellanox HCA InfiniBand
454device  	mlx4		# Shared code module between IB and Ethernet
455device  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
456device  	mlx4en		# Mellanox ConnectX HCA Ethernet
457device		nfe		# nVidia nForce MCP on-board Ethernet
458device		vmx		# VMware VMXNET3 Ethernet
459device		wpi		# Intel 3945ABG wireless NICs.
460
461# IEEE 802.11 adapter firmware modules
462
463# Intel PRO/Wireless 2100 firmware:
464#   ipwfw:		BSS/IBSS/monitor mode firmware
465#   ipwbssfw:		BSS mode firmware
466#   ipwibssfw:		IBSS mode firmware
467#   ipwmonitorfw:	Monitor mode firmware
468# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
469#   iwifw:		BSS/IBSS/monitor mode firmware
470#   iwibssfw:		BSS mode firmware
471#   iwiibssfw:		IBSS mode firmware
472#   iwimonitorfw:	Monitor mode firmware
473# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
474#   iwnfw:		Single module to support all devices
475#   iwn1000fw:		Specific module for the 1000 only
476#   iwn105fw:		Specific module for the 105 only
477#   iwn135fw:		Specific module for the 135 only
478#   iwn2000fw:		Specific module for the 2000 only
479#   iwn2030fw:		Specific module for the 2030 only
480#   iwn4965fw:		Specific module for the 4965 only
481#   iwn5000fw:		Specific module for the 5000 only
482#   iwn5150fw:		Specific module for the 5150 only
483#   iwn6000fw:		Specific module for the 6000 only
484#   iwn6000g2afw:	Specific module for the 6000g2a only
485#   iwn6000g2bfw:	Specific module for the 6000g2b only
486#   iwn6050fw:		Specific module for the 6050 only
487# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
488
489device		iwifw
490device		iwibssfw
491device		iwiibssfw
492device		iwimonitorfw
493device		ipwfw
494device		ipwbssfw
495device		ipwibssfw
496device		ipwmonitorfw
497device		iwnfw
498device		iwn1000fw
499device		iwn105fw
500device		iwn135fw
501device		iwn2000fw
502device		iwn2030fw
503device		iwn4965fw
504device		iwn5000fw
505device		iwn5150fw
506device		iwn6000fw
507device		iwn6000g2afw
508device		iwn6000g2bfw
509device		iwn6050fw
510device		wpifw
511
512#
513# Non-Transparent Bridge (NTB) drivers
514#
515device		if_ntb		# Virtual NTB network interface
516device		ntb_transport	# NTB packet transport driver
517device		ntb		# NTB hardware interface
518device		ntb_hw_amd	# AMD NTB hardware driver
519device		ntb_hw_intel	# Intel NTB hardware driver
520device		ntb_hw_plx	# PLX NTB hardware driver
521
522#####################################################################
523
524#
525# Miscellaneous hardware:
526#
527# ipmi: Intelligent Platform Management Interface
528# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
529# smbios: DMI/SMBIOS entry point (requires EFIRT option)
530# vpd: Vital Product Data kernel interface
531# si: Specialix International SI/XIO or SX intelligent serial card
532# tpm: Trusted Platform Module
533
534# Notes on the Specialix SI/XIO driver:
535#  The host card is memory, not IO mapped.
536#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
537#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
538#  The cards can use an IRQ of 11, 12 or 15.
539
540device		ipmi
541device		pbio
542envvar		hint.pbio.0.at="isa"
543envvar		hint.pbio.0.port="0x360"
544device		smbios
545device		vpd
546device		tpm
547device		rdrand_rng	# Intel Bull Mountain RNG
548device		aesni		# AES-NI OpenCrypto module
549device		ossl		# OpenSSL OpenCrypto module
550
551# Linux KVM paravirtualization support
552device		kvm_clock	# KVM paravirtual clock driver
553
554# Microsoft Hyper-V enhancement support
555device 		hyperv		# HyperV drivers
556device		hvhid		# HyperV HID device
557
558# VMware hypervisor support
559device		pvscsi		# Paravirtual SCSI driver
560device		vmci		# Virtual Machine Communication Interface (VMCI)
561device		vmware_guestrpc	# GuestRPC interface
562
563#
564# Laptop/Notebook options:
565#
566
567device backlight
568
569#
570# System Management Bus (SMB)
571#
572# Supported SMB interfaces:
573# imcsmb	integrated Memory Controller (iMC) SMBus controller
574#		Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
575#
576
577device		imcsmb
578
579#
580# HID-over-I2C support
581#
582device		iichid		# HID-over-I2C support
583options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
584options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
585
586#
587# AMD System Management Network (SMN)
588#
589device		amdsmn
590
591#
592# Hardware watchdog timers:
593#
594# ichwd: Intel ICH watchdog timer
595# amdsbwd: AMD SB7xx watchdog timer
596# viawd: VIA south bridge watchdog timer
597# wbwd: Winbond watchdog timer
598# itwd: ITE Super I/O watchdog timer
599#
600device		ichwd
601device		amdsbwd
602device		viawd
603device		wbwd
604device		itwd
605
606#
607# Temperature sensors:
608#
609# coretemp: on-die sensor on Intel Core and newer CPUs
610# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
611#
612device		coretemp
613device		amdtemp
614
615#
616# CPU control pseudo-device. Provides access to MSRs, CPUID info and
617# microcode update feature.
618#
619device		cpuctl
620
621#
622# SuperIO driver.
623#
624device		superio
625
626#####################################################################
627
628# More undocumented options for linting.
629# Note that documenting these are not considered an affront.
630
631options 	KBDIO_DEBUG=2
632options 	KBD_MAXRETRY=4
633options 	KBD_MAXWAIT=6
634options 	KBD_RESETDELAY=201
635
636options 	PSM_DEBUG=1
637
638options 	TIMER_FREQ=((14318182+6)/12)
639
640options 	VM_KMEM_SIZE
641options 	VM_KMEM_SIZE_MAX
642options 	VM_KMEM_SIZE_SCALE
643