xref: /freebsd/sys/amd64/conf/NOTES (revision 0f0379fa5581c6b89d22bd041f7443581bac616c)
1#
2# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
3#
4# This file contains machine dependent kernel configuration notes.  For
5# machine independent notes, look in /sys/conf/NOTES.
6#
7# $FreeBSD$
8#
9
10#
11# We want LINT to cover profiling as well.
12profile         2
13
14#
15# Enable the kernel DTrace hooks which are required to load the DTrace
16# kernel modules.
17#
18options 	KDTRACE_HOOKS
19
20# DTrace core
21# NOTE: introduces CDDL-licensed components into the kernel
22#device		dtrace
23
24# DTrace modules
25#device		dtrace_profile
26#device		dtrace_sdt
27#device		dtrace_fbt
28#device		dtrace_systrace
29#device		dtrace_prototype
30#device		dtnfscl
31#device		dtmalloc
32
33# Alternatively include all the DTrace modules
34#device		dtraceall
35
36
37#####################################################################
38# SMP OPTIONS:
39#
40# Notes:
41#
42# IPI_PREEMPTION instructs the kernel to preempt threads running on other
43#	  CPUS if needed.  Relies on the PREEMPTION option
44
45# Optional:
46options 	IPI_PREEMPTION
47device		atpic			# Optional legacy pic support
48device		mptable			# Optional MPSPEC mptable support
49
50#
51# Watchdog routines.
52#
53options 	MP_WATCHDOG
54
55# Debugging options.
56#
57options 	COUNT_XINVLTLB_HITS	# Counters for TLB events
58options 	COUNT_IPIS		# Per-CPU IPI interrupt counters
59
60
61
62#####################################################################
63# CPU OPTIONS
64
65#
66# You must specify at least one CPU (the one you intend to run on);
67# deleting the specification for CPUs you don't need to use may make
68# parts of the system run faster.
69#
70cpu		HAMMER			# aka K8, aka Opteron & Athlon64
71
72#
73# Options for CPU features.
74#
75
76
77#####################################################################
78# NETWORKING OPTIONS
79
80#
81# DEVICE_POLLING adds support for mixed interrupt-polling handling
82# of network device drivers, which has significant benefits in terms
83# of robustness to overloads and responsivity, as well as permitting
84# accurate scheduling of the CPU time between kernel network processing
85# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
86# potential increase in response times.
87# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
88# to achieve smoother behaviour.
89# Additionally, you can enable/disable polling at runtime with help of
90# the ifconfig(8) utility, and select the CPU fraction reserved to
91# userland with the sysctl variable kern.polling.user_frac
92# (default 50, range 0..100).
93#
94# Not all device drivers support this mode of operation at the time of
95# this writing.  See polling(4) for more details.
96
97options 	DEVICE_POLLING
98
99# BPF_JITTER adds support for BPF just-in-time compiler.
100
101options 	BPF_JITTER
102
103# OpenFabrics Enterprise Distribution (Infiniband).
104options 	OFED
105options 	OFED_DEBUG_INIT
106
107# Sockets Direct Protocol
108options 	SDP
109options 	SDP_DEBUG
110
111# IP over Infiniband
112options 	IPOIB
113options 	IPOIB_DEBUG
114options 	IPOIB_CM
115
116
117#####################################################################
118# CLOCK OPTIONS
119
120# Provide read/write access to the memory in the clock chip.
121device		nvram		# Access to rtc cmos via /dev/nvram
122
123
124#####################################################################
125# MISCELLANEOUS DEVICES AND OPTIONS
126
127device		speaker		#Play IBM BASIC-style noises out your speaker
128envvar		hint.speaker.0.at="isa"
129envvar		hint.speaker.0.port="0x61"
130
131
132#####################################################################
133# HARDWARE BUS CONFIGURATION
134
135#
136# ISA bus
137#
138device		isa
139
140#
141# Options for `isa':
142#
143# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
144# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
145# This option breaks suspend/resume on some portables.
146#
147# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
148# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
149# Automatic EOI is documented not to work for for the slave with the
150# original i8259A, but it works for some clones and some integrated
151# versions.
152#
153# MAXMEM specifies the amount of RAM on the machine; if this is not
154# specified, FreeBSD will first read the amount of memory from the CMOS
155# RAM, so the amount of memory will initially be limited to 64MB or 16MB
156# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
157# then attempt to detect the installed amount of RAM.  If this probe
158# fails to detect >64MB RAM you will have to use the MAXMEM option.
159# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
160# be 131072 (128 * 1024).
161#
162# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
163# reset the CPU for reboot.  This is needed on some systems with broken
164# keyboard controllers.
165
166options 	AUTO_EOI_1
167#options 	AUTO_EOI_2
168
169options 	MAXMEM=(128*1024)
170#options 	BROKEN_KEYBOARD_RESET
171
172#
173# AGP GART support
174device		agp
175
176#
177# AGP debugging.
178#
179options 	AGP_DEBUG
180
181
182#####################################################################
183# HARDWARE DEVICE CONFIGURATION
184
185# To include support for VGA VESA video modes
186options 	VESA
187
188# Turn on extra debugging checks and output for VESA support.
189options 	VESA_DEBUG
190
191device		dpms		# DPMS suspend & resume via VESA BIOS
192
193# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
194options 	X86BIOS
195
196#
197# Optional devices:
198#
199
200# PS/2 mouse
201device		psm
202envvar		hint.psm.0.at="atkbdc"
203envvar		hint.psm.0.irq="12"
204
205# Options for psm:
206options 	PSM_HOOKRESUME		#hook the system resume event, useful
207					#for some laptops
208options 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
209
210# The keyboard controller; it controls the keyboard and the PS/2 mouse.
211device		atkbdc
212envvar		hint.atkbdc.0.at="isa"
213envvar		hint.atkbdc.0.port="0x060"
214
215# The AT keyboard
216device		atkbd
217envvar		hint.atkbd.0.at="atkbdc"
218envvar		hint.atkbd.0.irq="1"
219
220# Options for atkbd:
221options 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
222makeoptions	ATKBD_DFLT_KEYMAP=fr.dvorak
223
224# `flags' for atkbd:
225#       0x01    Force detection of keyboard, else we always assume a keyboard
226#       0x02    Don't reset keyboard, useful for some newer ThinkPads
227#	0x03	Force detection and avoid reset, might help with certain
228#		dockingstations
229#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
230
231# Video card driver for VGA adapters.
232device		vga
233envvar		hint.vga.0.at="isa"
234
235# Options for vga:
236# Try the following option if the mouse pointer is not drawn correctly
237# or font does not seem to be loaded properly.  May cause flicker on
238# some systems.
239options 	VGA_ALT_SEQACCESS
240
241# If you can dispense with some vga driver features, you may want to
242# use the following options to save some memory.
243#options 	VGA_NO_FONT_LOADING	# don't save/load font
244#options 	VGA_NO_MODE_CHANGE	# don't change video modes
245
246# Older video cards may require this option for proper operation.
247options 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
248
249# The following option probably won't work with the LCD displays.
250options 	VGA_WIDTH90		# support 90 column modes
251
252# Debugging.
253options 	VGA_DEBUG
254
255# vt(4) drivers.
256device		vt_vga		# VGA
257device		vt_efifb	# EFI framebuffer
258device		vt_vbefb	# VBE framebuffer
259
260# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
261device		s3pci
262
263# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support.  This will create
264# the /dev/3dfx0 device to work with glide implementations.  This should get
265# linked to /dev/3dfx and /dev/voodoo.  Note that this is not the same as
266# the tdfx DRI module from XFree86 and is completely unrelated.
267#
268# To enable Linuxulator support, one must also include COMPAT_LINUX in the
269# config as well.  The other option is to load both as modules.
270
271device		tdfx			# Enable 3Dfx Voodoo support
272#XXX#device 	tdfx_linux		# Enable Linuxulator support
273
274#
275# ACPI support using the Intel ACPI Component Architecture reference
276# implementation.
277#
278# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
279# kernel environment variables to select initial debugging levels for the
280# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
281# defined when it is built).
282
283device		acpi
284options 	ACPI_DEBUG
285
286# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
287device		cpufreq
288
289#
290# Network interfaces:
291#
292
293# bxe:  Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet
294#       adapters.
295# ice:	Intel 800 Series Physical Function
296#	Requires the ice_ddp module for full functionality
297# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
298#	Requires the ipw firmware module
299# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
300#	Requires the iwi firmware module
301# iwn:	Intel Wireless WiFi Link 1000/105/135/2000/4965/5000/6000/6050 abgn
302#	802.11 network adapters
303#	Requires the iwn firmware module
304# mthca: Mellanox HCA InfiniBand
305# mlx4ib: Mellanox ConnectX HCA InfiniBand
306# mlx4en: Mellanox ConnectX HCA Ethernet
307# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
308# sfxge: Solarflare SFC9000 family 10Gb Ethernet adapters
309# vmx:	VMware VMXNET3 Ethernet (BSD open source)
310# wpi:	Intel 3945ABG Wireless LAN controller
311#	Requires the wpi firmware module
312
313device		bxe		# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
314options 	ED_3C503
315options 	ED_HPP
316options 	ED_SIC
317device		ipw		# Intel 2100 wireless NICs.
318device		iwi		# Intel 2200BG/2225BG/2915ABG wireless NICs.
319device		iwn		# Intel 4965/1000/5000/6000 wireless NICs.
320device		ixl		# Intel 700 Series Physical Function
321device		iavf		# Intel Adaptive Virtual Function
322device		ice		# Intel 800 Series Physical Function
323device		ice_ddp		# Intel 800 Series DDP Package
324device  	mthca		# Mellanox HCA InfiniBand
325device  	mlx4		# Shared code module between IB and Ethernet
326device  	mlx4ib		# Mellanox ConnectX HCA InfiniBand
327device  	mlx4en		# Mellanox ConnectX HCA Ethernet
328device		nfe		# nVidia nForce MCP on-board Ethernet
329device		sfxge		# Solarflare SFC9000 10Gb Ethernet
330device		vmx		# VMware VMXNET3 Ethernet
331device		wpi		# Intel 3945ABG wireless NICs.
332device		axp		# AMD EPYC integrated NIC
333
334# IEEE 802.11 adapter firmware modules
335
336# Intel PRO/Wireless 2100 firmware:
337#   ipwfw:		BSS/IBSS/monitor mode firmware
338#   ipwbssfw:		BSS mode firmware
339#   ipwibssfw:		IBSS mode firmware
340#   ipwmonitorfw:	Monitor mode firmware
341# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
342#   iwifw:		BSS/IBSS/monitor mode firmware
343#   iwibssfw:		BSS mode firmware
344#   iwiibssfw:		IBSS mode firmware
345#   iwimonitorfw:	Monitor mode firmware
346# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
347#   iwnfw:		Single module to support all devices
348#   iwn1000fw:		Specific module for the 1000 only
349#   iwn105fw:		Specific module for the 105 only
350#   iwn135fw:		Specific module for the 135 only
351#   iwn2000fw:		Specific module for the 2000 only
352#   iwn2030fw:		Specific module for the 2030 only
353#   iwn4965fw:		Specific module for the 4965 only
354#   iwn5000fw:		Specific module for the 5000 only
355#   iwn5150fw:		Specific module for the 5150 only
356#   iwn6000fw:		Specific module for the 6000 only
357#   iwn6000g2afw:	Specific module for the 6000g2a only
358#   iwn6000g2bfw:	Specific module for the 6000g2b only
359#   iwn6050fw:		Specific module for the 6050 only
360# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
361
362device		iwifw
363device		iwibssfw
364device		iwiibssfw
365device		iwimonitorfw
366device		ipwfw
367device		ipwbssfw
368device		ipwibssfw
369device		ipwmonitorfw
370device		iwnfw
371device		iwn1000fw
372device		iwn105fw
373device		iwn135fw
374device		iwn2000fw
375device		iwn2030fw
376device		iwn4965fw
377device		iwn5000fw
378device		iwn5150fw
379device		iwn6000fw
380device		iwn6000g2afw
381device		iwn6000g2bfw
382device		iwn6050fw
383device		wpifw
384
385#
386# Non-Transparent Bridge (NTB) drivers
387#
388device		if_ntb		# Virtual NTB network interface
389device		ntb_transport	# NTB packet transport driver
390device		ntb		# NTB hardware interface
391device		ntb_hw_amd	# AMD NTB hardware driver
392device		ntb_hw_intel	# Intel NTB hardware driver
393device		ntb_hw_plx	# PLX NTB hardware driver
394
395#
396#XXX this stores pointers in a 32bit field that is defined by the hardware
397#device	pst
398
399#
400# Areca 11xx and 12xx series of SATA II RAID controllers.
401# CAM is required.
402#
403device		arcmsr		# Areca SATA II RAID
404
405#
406# Microsemi smartpqi controllers.
407# These controllers have a SCSI-like interface, and require the
408# CAM infrastructure.
409#
410device		smartpqi
411
412#
413# 3ware 9000 series PATA/SATA RAID controller driver and options.
414# The driver is implemented as a SIM, and so, needs the CAM infrastructure.
415#
416options 	TWA_DEBUG		# 0-10; 10 prints the most messages.
417device		twa			# 3ware 9000 series PATA/SATA RAID
418
419#
420# Adaptec FSA RAID controllers, including integrated DELL controllers,
421# the Dell PERC 2/QC and the HP NetRAID-4M
422device		aac
423device		aacp	# SCSI Passthrough interface (optional, CAM required)
424
425#
426# Highpoint RocketRAID 27xx.
427device		hpt27xx
428
429#
430# Highpoint RocketRAID 182x.
431device		hptmv
432
433#
434# Highpoint DC7280 and R750.
435device		hptnr
436
437#
438# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
439# RR2210, RR174x, RR2522, RR231x, RR230x.
440device		hptrr
441
442#
443# Highpoint RocketRaid 3xxx series SATA RAID
444device		hptiop
445
446#
447# IBM (now Adaptec) ServeRAID controllers
448device		ips
449
450#
451# Intel integrated Memory Controller (iMC) SMBus controller
452#	Sandybridge-Xeon, Ivybridge-Xeon, Haswell-Xeon, Broadwell-Xeon
453device		imcsmb
454
455#
456# Intel C600 (Patsburg) integrated SAS controller
457device		isci
458options 	ISCI_LOGGING	# enable debugging in isci HAL
459
460#
461# NVM Express (NVMe) support
462device         nvme    # base NVMe driver
463device         nvd     # expose NVMe namespaces as disks, depends on nvme
464
465#
466# Intel Volume Management Device (VMD) support
467device		vmd		# base VMD device
468device		vmd_bus		# bus for VMD children
469
470#
471# PMC-Sierra SAS/SATA controller
472device		pmspcv
473
474#
475# Intel QuickAssist
476device		qat
477
478#
479# SafeNet crypto driver: can be moved to the MI NOTES as soon as
480# it's tested on a big-endian machine
481#
482device		safe		# SafeNet 1141
483options 	SAFE_DEBUG	# enable debugging support: hw.safe.debug
484options 	SAFE_RNDTEST	# enable rndtest support
485
486#
487# VirtIO support
488#
489# The virtio entry provides a generic bus for use by the device drivers.
490# It must be combined with an interface that communicates with the host.
491# Multiple such interfaces are defined by the VirtIO specification. FreeBSD
492# only has support for PCI. Therefore, virtio_pci must be statically
493# compiled in or loaded as a module for the device drivers to function.
494#
495device		virtio		# Generic VirtIO bus (required)
496device		virtio_pci	# VirtIO PCI Interface
497device		vtnet		# VirtIO Ethernet device
498device		virtio_blk	# VirtIO Block device
499device		virtio_scsi	# VirtIO SCSI device
500device		virtio_balloon	# VirtIO Memory Balloon device
501device		virtio_random	# VirtIO Entropy device
502device		virtio_console	# VirtIO Console device
503
504# Microsoft Hyper-V enhancement support
505device 		hyperv		# HyperV drivers
506
507# Xen HVM Guest Optimizations
508options 	XENHVM		# Xen HVM kernel infrastructure
509device 		xenpci		# Xen HVM Hypervisor services 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
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
542device		ioat		# Intel I/OAT DMA engine
543
544#
545# Laptop/Notebook options:
546#
547
548device backlight
549
550#
551# I2C Bus
552#
553
554#
555# Hardware watchdog timers:
556#
557# ichwd: Intel ICH watchdog timer
558# amdsbwd: AMD SB7xx watchdog timer
559# viawd: VIA south bridge watchdog timer
560# wbwd: Winbond watchdog timer
561# itwd: ITE Super I/O watchdog timer
562#
563device		ichwd
564device		amdsbwd
565device		viawd
566device		wbwd
567device		itwd
568
569#
570# Temperature sensors:
571#
572# coretemp: on-die sensor on Intel Core and newer CPUs
573# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
574#
575device		coretemp
576device		amdtemp
577
578#
579# CPU control pseudo-device. Provides access to MSRs, CPUID info and
580# microcode update feature.
581#
582device		cpuctl
583
584#
585# SuperIO driver.
586#
587device		superio
588
589#
590# System Management Bus (SMB)
591#
592options 	ENABLE_ALART		# Control alarm on Intel intpm driver
593
594#
595# AMD System Management Network (SMN)
596#
597device		amdsmn
598
599#
600# Number of initial kernel page table pages used for early bootstrap.
601# This number should include enough pages to map the kernel and any
602# modules or other data loaded with the kernel by the loader.  Each
603# page table page maps 2MB.
604#
605options 	NKPT=31
606
607# EFI Runtime Services support
608options 	EFIRT
609
610#
611# HID-over-I2C support
612#
613device		iichid		# HID-over-I2C support
614options 	IICHID_DEBUG	# Enable HID-over-I2C debug messages
615options 	IICHID_SAMPLING	# Workaround missing GPIO INTR support
616
617#####################################################################
618# ABI Emulation
619
620#XXX keep these here for now and reactivate when support for emulating
621#XXX these 32 bit binaries is added.
622
623# Enable 32-bit runtime support for FreeBSD/i386 binaries.
624options 	COMPAT_FREEBSD32
625
626# Enable (32-bit) a.out binary support
627options 	COMPAT_AOUT
628
629# Enable 32-bit runtime support for CloudABI binaries.
630options 	COMPAT_CLOUDABI32
631
632# Enable 64-bit runtime support for CloudABI binaries.
633options 	COMPAT_CLOUDABI64
634
635# Enable Linux ABI emulation
636#XXX#options 	COMPAT_LINUX
637
638# Enable 32-bit Linux ABI emulation (requires COMPAT_FREEBSD32).
639options 	COMPAT_LINUX32
640
641# Enable the linux-like proc filesystem support (requires COMPAT_LINUX32
642# and PSEUDOFS)
643options 	LINPROCFS
644
645#Enable the linux-like sys filesystem support (requires COMPAT_LINUX32
646# and PSEUDOFS)
647options 	LINSYSFS
648
649#####################################################################
650# ZFS support
651
652# NB: This depends on crypto, cryptodev and ZSTDIO
653options		ZFS
654
655#####################################################################
656# VM OPTIONS
657
658# KSTACK_PAGES is the number of memory pages to assign to the kernel
659# stack of each thread.
660
661options 	KSTACK_PAGES=5
662
663# Enable detailed accounting by the PV entry allocator.
664
665options 	PV_STATS
666
667#####################################################################
668
669# More undocumented options for linting.
670# Note that documenting these are not considered an affront.
671
672options 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
673
674options 	KBDIO_DEBUG=2
675options 	KBD_MAXRETRY=4
676options 	KBD_MAXWAIT=6
677options 	KBD_RESETDELAY=201
678
679options 	PSM_DEBUG=1
680
681options 	TIMER_FREQ=((14318182+6)/12)
682
683options 	VM_KMEM_SIZE
684options 	VM_KMEM_SIZE_MAX
685options 	VM_KMEM_SIZE_SCALE
686
687# Enable NDIS binary driver support
688options 	NDISAPI
689device		ndis
690
691
692# GCOV (code coverage) support
693
694options		LINDEBUGFS
695options		GCOV
696