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