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