xref: /freebsd/sys/x86/conf/NOTES (revision 96f1dfc1be9cf5525152941d06f07c6889e60071)
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#
9options 	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 Toshiba Extras (LCD backlight/brightness, video output, etc.)
182device		acpi_toshiba
183
184# ACPI Video Extensions (LCD backlight/brightness, video output, etc.)
185device		acpi_video
186
187# ACPI Docking Station
188device		acpi_dock
189
190# ACPI ASOC ATK0110 ASUSTeK AI Booster (voltage, temperature and fan sensors)
191device		aibs
192
193
194#####################################################################
195# HARDWARE DEVICE CONFIGURATION
196
197#
198# Optional devices:
199#
200
201# The syscons console driver (SCO color console compatible).
202device		sc
203envvar		hint.sc.0.at="isa"
204options 	MAXCONS=16		# number of virtual consoles
205options 	SC_ALT_MOUSE_IMAGE	# simplified mouse cursor in text mode
206options 	SC_DFLT_FONT		# compile font in
207makeoptions	SC_DFLT_FONT=cp850
208options 	SC_DFLT_TERM=\"sc\"	# default terminal emulator
209options 	SC_DISABLE_KDBKEY	# disable `debug' key
210options 	SC_DISABLE_REBOOT	# disable reboot key sequence
211options 	SC_HISTORY_SIZE=200	# number of history buffer lines
212options 	SC_MOUSE_CHAR=0x3	# char code for text mode mouse cursor
213options 	SC_PIXEL_MODE		# add support for the raster text mode
214
215# The following options will let you change the default colors of syscons.
216options 	SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
217options 	SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)
218options 	SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK)
219options 	SC_KERNEL_CONS_ATTRS=\"\x0c\x0d\x0e\x0f\x02\x09\x0a\x0b\"
220options 	SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)
221
222# The following options will let you change the default behavior of
223# cut-n-paste feature
224options 	SC_CUT_SPACES2TABS	# convert leading spaces into tabs
225options 	SC_CUT_SEPCHARS=\"x09\"	# set of characters that delimit words
226					# (default is single space - \"x20\")
227
228# If you have a two button mouse, you may want to add the following option
229# to use the right button of the mouse to paste text.
230options 	SC_TWOBUTTON_MOUSE
231
232# You can selectively disable features in syscons.
233options 	SC_NO_CUTPASTE
234options 	SC_NO_FONT_LOADING
235options 	SC_NO_HISTORY
236options 	SC_NO_MODE_CHANGE
237options 	SC_NO_SYSMOUSE
238options 	SC_NO_SUSPEND_VTYSWITCH
239#!options 	SC_NO_TERM_DUMB
240#!options 	SC_NO_TERM_SC
241#!options 	SC_NO_TERM_SCTEKEN
242
243# `flags' for sc
244#	0x80	Put the video card in the VESA 800x600 dots, 16 color mode
245#	0x100	Probe for a keyboard device periodically if one is not present
246
247# Splash screen and screen saver support
248device		splash
249
250# Various screen savers.
251device		blank_saver
252device		daemon_saver
253device		dragon_saver
254device		fade_saver
255device		fire_saver
256device		green_saver
257device		logo_saver
258device		rain_saver
259device		snake_saver
260device		star_saver
261device		warp_saver
262
263# To include support for VGA VESA video modes
264options 	VESA
265
266# Turn on extra debugging checks and output for VESA support.
267options 	VESA_DEBUG
268
269device		dpms		# DPMS suspend & resume via VESA BIOS
270
271# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
272options 	X86BIOS
273
274# PS/2 mouse
275device		psm
276envvar		hint.psm.0.at="atkbdc"
277envvar		hint.psm.0.irq="12"
278
279# Options for psm:
280options 	PSM_HOOKRESUME		#hook the system resume event, useful
281					#for some laptops
282options 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
283
284# The keyboard controller; it controls the keyboard and the PS/2 mouse.
285device		atkbdc
286envvar		hint.atkbdc.0.at="isa"
287envvar		hint.atkbdc.0.port="0x060"
288
289# The AT keyboard
290device		atkbd
291envvar		hint.atkbd.0.at="atkbdc"
292envvar		hint.atkbd.0.irq="1"
293
294# Options for atkbd:
295options 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
296makeoptions	ATKBD_DFLT_KEYMAP=fr.dvorak
297
298# `flags' for atkbd:
299#       0x01    Force detection of keyboard, else we always assume a keyboard
300#       0x02    Don't reset keyboard, useful for some newer ThinkPads
301#	0x03	Force detection and avoid reset, might help with certain
302#		dockingstations
303#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
304
305# Video card driver for VGA adapters.
306device		vga
307envvar		hint.vga.0.at="isa"
308
309# Options for vga:
310# Try the following option if the mouse pointer is not drawn correctly
311# or font does not seem to be loaded properly.  May cause flicker on
312# some systems.
313options 	VGA_ALT_SEQACCESS
314
315# If you can dispense with some vga driver features, you may want to
316# use the following options to save some memory.
317#options 	VGA_NO_FONT_LOADING	# don't save/load font
318#options 	VGA_NO_MODE_CHANGE	# don't change video modes
319
320# Older video cards may require this option for proper operation.
321options 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
322
323# The following option probably won't work with the LCD displays.
324options 	VGA_WIDTH90		# support 90 column modes
325
326# Debugging.
327options 	VGA_DEBUG
328
329# vt(4) drivers.
330device		vt_vga		# VGA
331device		vt_vbefb	# VBE framebuffer
332
333# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
334device		s3pci
335
336#
337# RAID adapters
338#
339
340#
341# Areca 11xx and 12xx series of SATA II RAID controllers.
342# CAM is required.
343#
344device		arcmsr		# Areca SATA II RAID
345
346#
347# Adaptec FSA RAID controllers, including integrated DELL controllers,
348# the Dell PERC 2/QC and the HP NetRAID-4M
349device		aac
350device		aacp	# SCSI Passthrough interface (optional, CAM required)
351
352#
353# Highpoint RocketRAID 27xx.
354device		hpt27xx
355
356#
357# Highpoint RocketRAID 182x.
358device		hptmv
359
360#
361# Highpoint DC7280 and R750.
362device		hptnr
363
364#
365# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
366# RR2210, RR174x, RR2522, RR231x, RR230x.
367device		hptrr
368
369#
370# Highpoint RocketRaid 3xxx series SATA RAID
371device		hptiop
372
373#
374# IBM (now Adaptec) ServeRAID controllers
375device		ips
376
377#
378# Intel C600 (Patsburg) integrated SAS controller
379device		isci
380options 	ISCI_LOGGING	# enable debugging in isci HAL
381
382#
383# Intel Volume Management Device (VMD) support
384device		vmd
385
386#
387# PMC-Sierra SAS/SATA controller
388device		pmspcv
389
390#
391# Standard floppy disk controllers and floppy tapes, supports
392# the Y-E DATA External FDD (PC Card)
393#
394device		fdc
395envvar		hint.fdc.0.at="isa"
396envvar		hint.fdc.0.port="0x3F0"
397envvar		hint.fdc.0.irq="6"
398envvar		hint.fdc.0.drq="2"
399#
400# FDC_DEBUG enables floppy debugging.  Since the debug output is huge, you
401# gotta turn it actually on by setting the variable fd_debug with DDB,
402# however.
403options 	FDC_DEBUG
404#
405# Activate this line if you happen to have an Insight floppy tape.
406# Probing them proved to be dangerous for people with floppy disks only,
407# so it's "hidden" behind a flag:
408#hint.fdc.0.flags="1"
409
410# Specify floppy devices
411envvar		hint.fd.0.at="fdc0"
412envvar		hint.fd.0.drive="0"
413envvar		hint.fd.1.at="fdc0"
414envvar		hint.fd.1.drive="1"
415
416# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
417device		cpufreq
418
419#
420# Network interfaces:
421#
422
423# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
424#       adapters.
425# gve:	Google Virtual NIC (gVNIC)
426# igc:	Intel I225 2.5Gb Ethernet adapter
427# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
428#	Requires the ipw firmware module
429# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
430#	Requires the iwi firmware module
431# iwn:	Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn
432#	802.11 network adapters
433#	Requires the iwn firmware module
434# mthca: Mellanox HCA InfiniBand
435# mlx4ib: Mellanox ConnectX HCA InfiniBand
436# mlx4en: Mellanox ConnectX HCA Ethernet
437# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
438# vmx:	VMware VMXNET3 Ethernet (BSD open source)
439# wpi:	Intel 3945ABG Wireless LAN controller
440#	Requires the wpi firmware module
441
442device		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
443device		gve		# Google Virtual NIC (gVNIC)
444device		igc		# Intel I225 2.5G Ethernet
445device		ipw		# Intel 2100 wireless NICs.
446device		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
447device		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
448device  	mthca		# Mellanox HCA InfiniBand
449device  	mlx4		# Shared code module between IB and Ethernet
450device  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
451device  	mlx4en		# Mellanox ConnectX HCA Ethernet
452device		nfe		# nVidia nForce MCP on-board Ethernet
453device		vmx		# VMware VMXNET3 Ethernet
454device		wpi		# Intel 3945ABG wireless NICs.
455
456# IEEE 802.11 adapter firmware modules
457
458# Intel PRO/Wireless 2100 firmware:
459#   ipwfw:		BSS/IBSS/monitor mode firmware
460#   ipwbssfw:		BSS mode firmware
461#   ipwibssfw:		IBSS mode firmware
462#   ipwmonitorfw:	Monitor mode firmware
463# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
464#   iwifw:		BSS/IBSS/monitor mode firmware
465#   iwibssfw:		BSS mode firmware
466#   iwiibssfw:		IBSS mode firmware
467#   iwimonitorfw:	Monitor mode firmware
468# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
469#   iwnfw:		Single module to support all devices
470#   iwn1000fw:		Specific module for the 1000 only
471#   iwn105fw:		Specific module for the 105 only
472#   iwn135fw:		Specific module for the 135 only
473#   iwn2000fw:		Specific module for the 2000 only
474#   iwn2030fw:		Specific module for the 2030 only
475#   iwn4965fw:		Specific module for the 4965 only
476#   iwn5000fw:		Specific module for the 5000 only
477#   iwn5150fw:		Specific module for the 5150 only
478#   iwn6000fw:		Specific module for the 6000 only
479#   iwn6000g2afw:	Specific module for the 6000g2a only
480#   iwn6000g2bfw:	Specific module for the 6000g2b only
481#   iwn6050fw:		Specific module for the 6050 only
482# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
483
484device		iwifw
485device		iwibssfw
486device		iwiibssfw
487device		iwimonitorfw
488device		ipwfw
489device		ipwbssfw
490device		ipwibssfw
491device		ipwmonitorfw
492device		iwnfw
493device		iwn1000fw
494device		iwn105fw
495device		iwn135fw
496device		iwn2000fw
497device		iwn2030fw
498device		iwn4965fw
499device		iwn5000fw
500device		iwn5150fw
501device		iwn6000fw
502device		iwn6000g2afw
503device		iwn6000g2bfw
504device		iwn6050fw
505device		wpifw
506
507#
508# Non-Transparent Bridge (NTB) drivers
509#
510device		if_ntb		# Virtual NTB network interface
511device		ntb_transport	# NTB packet transport driver
512device		ntb		# NTB hardware interface
513device		ntb_hw_amd	# AMD NTB hardware driver
514device		ntb_hw_intel	# Intel NTB hardware driver
515device		ntb_hw_plx	# PLX NTB hardware driver
516
517#####################################################################
518
519#
520# Miscellaneous hardware:
521#
522# ipmi: Intelligent Platform Management Interface
523# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
524# smbios: DMI/SMBIOS entry point (requires EFIRT option)
525# vpd: Vital Product Data kernel interface
526# asmc: Apple System Management Controller
527# si: Specialix International SI/XIO or SX intelligent serial card
528# tpm: Trusted Platform Module
529
530# Notes on the Specialix SI/XIO driver:
531#  The host card is memory, not IO mapped.
532#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
533#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
534#  The cards can use an IRQ of 11, 12 or 15.
535
536device		ipmi
537device		pbio
538envvar		hint.pbio.0.at="isa"
539envvar		hint.pbio.0.port="0x360"
540device		smbios
541device		vpd
542device		asmc
543device		tpm
544device		padlock_rng	# VIA Padlock RNG
545device		rdrand_rng	# Intel Bull Mountain RNG
546device		aesni		# AES-NI OpenCrypto module
547device		ossl		# OpenSSL OpenCrypto module
548
549# Linux KVM paravirtualization support
550device		kvm_clock	# KVM paravirtual clock driver
551
552# Microsoft Hyper-V enhancement support
553device 		hyperv		# HyperV drivers
554device		hvhid		# HyperV HID device
555
556# VMware hypervisor support
557device		pvscsi		# Paravirtual SCSI driver
558device		vmci		# Virtual Machine Communication Interface (VMCI)
559device		vmware_guestrpc	# GuestRPC interface
560
561#
562# Laptop/Notebook options:
563#
564
565device backlight
566
567#
568# System Management Bus (SMB)
569#
570# Supported SMB interfaces:
571# imcsmb	integrated Memory Controller (iMC) SMBus controller
572#		Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
573#
574
575device		imcsmb
576
577#
578# HID-over-I2C support
579#
580device		iichid		# HID-over-I2C support
581options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
582options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
583
584#
585# AMD System Management Network (SMN)
586#
587device		amdsmn
588
589#
590# Hardware watchdog timers:
591#
592# ichwd: Intel ICH watchdog timer
593# amdsbwd: AMD SB7xx watchdog timer
594# viawd: VIA south bridge watchdog timer
595# wbwd: Winbond watchdog timer
596# itwd: ITE Super I/O watchdog timer
597#
598device		ichwd
599device		amdsbwd
600device		viawd
601device		wbwd
602device		itwd
603
604#
605# Temperature sensors:
606#
607# coretemp: on-die sensor on Intel Core and newer CPUs
608# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
609#
610device		coretemp
611device		amdtemp
612
613#
614# CPU control pseudo-device. Provides access to MSRs, CPUID info and
615# microcode update feature.
616#
617device		cpuctl
618
619#
620# SuperIO driver.
621#
622device		superio
623
624#####################################################################
625
626# More undocumented options for linting.
627# Note that documenting these are not considered an affront.
628
629options 	KBDIO_DEBUG=2
630options 	KBD_MAXRETRY=4
631options 	KBD_MAXWAIT=6
632options 	KBD_RESETDELAY=201
633
634options 	PSM_DEBUG=1
635
636options 	TIMER_FREQ=((14318182+6)/12)
637
638options 	VM_KMEM_SIZE
639options 	VM_KMEM_SIZE_MAX
640options 	VM_KMEM_SIZE_SCALE
641