xref: /freebsd/sys/amd64/conf/NOTES (revision d364638110eec9a389d744c1e32ab738064a00e1)
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#####################################################################
16# SMP OPTIONS:
17#
18# Notes:
19#
20# IPI_PREEMPTION instructs the kernel to preempt threads running on other
21#	  CPUS if needed.  Relies on the PREEMPTION option
22
23# Optional:
24options 	IPI_PREEMPTION
25device		atpic			# Optional legacy pic support
26device		mptable			# Optional MPSPEC mptable support
27
28#
29# Watchdog routines.
30#
31options 	MP_WATCHDOG
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#####################################################################
41# CPU OPTIONS
42
43#
44# You must specify at least one CPU (the one you intend to run on);
45# deleting the specification for CPUs you don't need to use may make
46# parts of the system run faster.
47#
48cpu		HAMMER			# aka K8, aka Opteron & Athlon64
49
50#
51# Options for CPU features.
52#
53
54#
55# PERFMON causes the driver for Pentium/Pentium Pro performance counters
56# to be compiled.  See perfmon(4) for more information.
57#
58#XXX#options 	PERFMON
59
60
61#####################################################################
62# NETWORKING OPTIONS
63
64#
65# DEVICE_POLLING adds support for mixed interrupt-polling handling
66# of network device drivers, which has significant benefits in terms
67# of robustness to overloads and responsivity, as well as permitting
68# accurate scheduling of the CPU time between kernel network processing
69# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
70# potential increase in response times.
71# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
72# to achieve smoother behaviour.
73# Additionally, you can enable/disable polling at runtime with help of
74# the ifconfig(8) utility, and select the CPU fraction reserved to
75# userland with the sysctl variable kern.polling.user_frac
76# (default 50, range 0..100).
77#
78# Not all device drivers support this mode of operation at the time of
79# this writing.  See polling(4) for more details.
80
81options 	DEVICE_POLLING
82
83# BPF_JITTER adds support for BPF just-in-time compiler.
84
85options 	BPF_JITTER
86
87
88#####################################################################
89# CLOCK OPTIONS
90
91# Provide read/write access to the memory in the clock chip.
92device		nvram		# Access to rtc cmos via /dev/nvram
93
94
95#####################################################################
96# MISCELLANEOUS DEVICES AND OPTIONS
97
98device		speaker		#Play IBM BASIC-style noises out your speaker
99hint.speaker.0.at="isa"
100hint.speaker.0.port="0x61"
101device		gzip		#Exec gzipped a.out's.  REQUIRES COMPAT_AOUT!
102
103
104#####################################################################
105# HARDWARE BUS CONFIGURATION
106
107#
108# ISA bus
109#
110device		isa
111
112#
113# Options for `isa':
114#
115# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
116# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
117# This option breaks suspend/resume on some portables.
118#
119# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
120# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
121# Automatic EOI is documented not to work for for the slave with the
122# original i8259A, but it works for some clones and some integrated
123# versions.
124#
125# MAXMEM specifies the amount of RAM on the machine; if this is not
126# specified, FreeBSD will first read the amount of memory from the CMOS
127# RAM, so the amount of memory will initially be limited to 64MB or 16MB
128# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
129# then attempt to detect the installed amount of RAM.  If this probe
130# fails to detect >64MB RAM you will have to use the MAXMEM option.
131# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
132# be 131072 (128 * 1024).
133#
134# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
135# reset the CPU for reboot.  This is needed on some systems with broken
136# keyboard controllers.
137
138options 	AUTO_EOI_1
139#options 	AUTO_EOI_2
140
141options 	MAXMEM=(128*1024)
142#options 	BROKEN_KEYBOARD_RESET
143
144#
145# PCI bus & PCI options:
146#
147device		pci
148
149#
150# AGP GART support
151device		agp
152
153#
154# AGP debugging.
155#
156options 	AGP_DEBUG
157
158
159#####################################################################
160# HARDWARE DEVICE CONFIGURATION
161
162# To include support for VGA VESA video modes
163options 	VESA
164
165# Turn on extra debugging checks and output for VESA support.
166options 	VESA_DEBUG
167
168device		dpms		# DPMS suspend & resume via VESA BIOS
169
170# x86 real mode BIOS emulator, required by atkbdc/dpms/vesa
171options		X86BIOS
172
173#
174# Optional devices:
175#
176
177# PS/2 mouse
178device		psm
179hint.psm.0.at="atkbdc"
180hint.psm.0.irq="12"
181
182# Options for psm:
183options 	PSM_HOOKRESUME		#hook the system resume event, useful
184					#for some laptops
185options 	PSM_RESETAFTERSUSPEND	#reset the device at the resume event
186
187# The keyboard controller; it controls the keyboard and the PS/2 mouse.
188device		atkbdc
189hint.atkbdc.0.at="isa"
190hint.atkbdc.0.port="0x060"
191
192# The AT keyboard
193device		atkbd
194hint.atkbd.0.at="atkbdc"
195hint.atkbd.0.irq="1"
196
197# Options for atkbd:
198options 	ATKBD_DFLT_KEYMAP	# specify the built-in keymap
199makeoptions	ATKBD_DFLT_KEYMAP=jp.106
200
201# `flags' for atkbd:
202#       0x01    Force detection of keyboard, else we always assume a keyboard
203#       0x02    Don't reset keyboard, useful for some newer ThinkPads
204#	0x03	Force detection and avoid reset, might help with certain
205#		dockingstations
206#       0x04    Old-style (XT) keyboard support, useful for older ThinkPads
207
208# Video card driver for VGA adapters.
209device		vga
210hint.vga.0.at="isa"
211
212# Options for vga:
213# Try the following option if the mouse pointer is not drawn correctly
214# or font does not seem to be loaded properly.  May cause flicker on
215# some systems.
216options 	VGA_ALT_SEQACCESS
217
218# If you can dispense with some vga driver features, you may want to
219# use the following options to save some memory.
220#options 	VGA_NO_FONT_LOADING	# don't save/load font
221#options 	VGA_NO_MODE_CHANGE	# don't change video modes
222
223# Older video cards may require this option for proper operation.
224options 	VGA_SLOW_IOACCESS	# do byte-wide i/o's to TS and GDC regs
225
226# The following option probably won't work with the LCD displays.
227options 	VGA_WIDTH90		# support 90 column modes
228
229# Debugging.
230options 	VGA_DEBUG
231
232# Linear framebuffer driver for S3 VESA 1.2 cards. Works on top of VESA.
233device		s3pci
234
235# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support.  This will create
236# the /dev/3dfx0 device to work with glide implementations.  This should get
237# linked to /dev/3dfx and /dev/voodoo.  Note that this is not the same as
238# the tdfx DRI module from XFree86 and is completely unrelated.
239#
240# To enable Linuxulator support, one must also include COMPAT_LINUX in the
241# config as well.  The other option is to load both as modules.
242
243device		tdfx			# Enable 3Dfx Voodoo support
244#XXX#device 	tdfx_linux		# Enable Linuxulator support
245
246#
247# ACPI support using the Intel ACPI Component Architecture reference
248# implementation.
249#
250# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
251# kernel environment variables to select initial debugging levels for the
252# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
253# defined when it is built).
254
255device		acpi
256options 	ACPI_DEBUG
257
258# The cpufreq(4) driver provides support for non-ACPI CPU frequency control
259device		cpufreq
260
261# Direct Rendering modules for 3D acceleration.
262device		drm		# DRM core module required by DRM drivers
263device		i915drm		# Intel i830 through i915
264device		mach64drm	# ATI Rage Pro, Rage Mobility P/M, Rage XL
265device		mgadrm		# AGP Matrox G200, G400, G450, G550
266device		r128drm		# ATI Rage 128
267device		radeondrm	# ATI Radeon
268device		savagedrm	# S3 Savage3D, Savage4
269device		sisdrm		# SiS 300/305, 540, 630
270device		tdfxdrm		# 3dfx Voodoo 3/4/5 and Banshee
271device		viadrm		# VIA
272options 	DRM_DEBUG	# Include debug printfs (slow)
273
274#
275# Network interfaces:
276#
277
278# ed:   Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
279#       HP PC Lan+, various PC Card devices
280#       (requires miibus)
281# ipw:	Intel PRO/Wireless 2100 IEEE 802.11 adapter
282#	Requires the ipw firmware module
283# iwi:	Intel PRO/Wireless 2200BG/2225BG/2915ABG IEEE 802.11 adapters
284#	Requires the iwi firmware module
285# iwn:	Intel Wireless WiFi Link 4965/1000/5000/6000 802.11 network adapters
286#	Requires the iwn firmware module
287# mwl:	Marvell 88W8363 IEEE 802.11 adapter
288#	Requires the mwl firmware module
289# nfe:	nVidia nForce MCP on-board Ethernet Networking (BSD open source)
290# nve:	nVidia nForce MCP on-board Ethernet Networking
291# wpi:	Intel 3945ABG Wireless LAN controller
292#	Requires the wpi firmware module
293
294device		ed
295options 	ED_3C503
296options 	ED_HPP
297options 	ED_SIC
298device		ipw
299device		iwi
300device		iwn
301device		mwl
302device		nfe
303device		nve
304device		wpi
305
306# IEEE 802.11 adapter firmware modules
307
308# Intel PRO/Wireless 2100 firmware:
309#   ipwfw:		BSS/IBSS/monitor mode firmware
310#   ipwbssfw:		BSS mode firmware
311#   ipwibssfw:		IBSS mode firmware
312#   ipwmonitorfw:	Monitor mode firmware
313# Intel PRO/Wireless 2200BG/2225BG/2915ABG firmware:
314#   iwifw:		BSS/IBSS/monitor mode firmware
315#   iwibssfw:		BSS mode firmware
316#   iwiibssfw:		IBSS mode firmware
317#   iwimonitorfw:	Monitor mode firmware
318# Intel Wireless WiFi Link 4965/1000/5000/6000 series firmware:
319#   iwnfw:		Single module to support the 4965/1000/5000/5150/6000
320#   iwn4965fw:		Specific module for the 4965 only
321#   iwn1000fw:		Specific module for the 1000 only
322#   iwn5000fw:		Specific module for the 5000 only
323#   iwn5150fw:		Specific module for the 5150 only
324#   iwn6000fw:		Specific module for the 6000 only
325# mwlfw:	Marvell 88W8363 firmware
326# wpifw:	Intel 3945ABG Wireless LAN Controller firmware
327
328device		iwifw
329device		iwibssfw
330device		iwiibssfw
331device		iwimonitorfw
332device		ipwfw
333device		ipwbssfw
334device		ipwibssfw
335device		ipwmonitorfw
336device		iwnfw
337device		iwn4965fw
338device		iwn1000fw
339device		iwn5000fw
340device		iwn5150fw
341device		iwn6000fw
342device		mwlfw
343device		wpifw
344
345#
346#XXX this stores pointers in a 32bit field that is defined by the hardware
347#device	pst
348
349#
350# Areca 11xx and 12xx series of SATA II RAID controllers.
351# CAM is required.
352#
353device		arcmsr		# Areca SATA II RAID
354
355#
356# 3ware 9000 series PATA/SATA RAID controller driver and options.
357# The driver is implemented as a SIM, and so, needs the CAM infrastructure.
358#
359options 	TWA_DEBUG		# 0-10; 10 prints the most messages.
360options 	TWA_FLASH_FIRMWARE	# firmware image bundled when defined.
361device		twa			# 3ware 9000 series PATA/SATA RAID
362
363#
364# SCSI host adapters:
365#
366# ncv: NCR 53C500 based SCSI host adapters.
367# nsp: Workbit Ninja SCSI-3 based PC Card SCSI host adapters.
368# stg: TMC 18C30, 18C50 based SCSI host adapters.
369
370device		ncv
371device		nsp
372device		stg
373
374#
375# Adaptec FSA RAID controllers, including integrated DELL controllers,
376# the Dell PERC 2/QC and the HP NetRAID-4M
377device		aac
378device		aacp	# SCSI Passthrough interface (optional, CAM required)
379
380#
381# Highpoint RocketRAID 182x.
382device		hptmv
383
384#
385# Highpoint RocketRAID.  Supports RR172x, RR222x, RR2240, RR232x, RR2340,
386# RR2210, RR174x, RR2522, RR231x, RR230x.
387device		hptrr
388
389#
390# Highpoint RocketRaid 3xxx series SATA RAID
391device		hptiop
392
393#
394# IBM (now Adaptec) ServeRAID controllers
395device		ips
396
397#
398# SafeNet crypto driver: can be moved to the MI NOTES as soon as
399# it's tested on a big-endian machine
400#
401device		safe		# SafeNet 1141
402options 	SAFE_DEBUG	# enable debugging support: hw.safe.debug
403options 	SAFE_RNDTEST	# enable rndtest support
404
405#####################################################################
406
407#
408# Miscellaneous hardware:
409#
410# ipmi: Intelligent Platform Management Interface
411# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
412# smbios: DMI/SMBIOS entry point
413# vpd: Vital Product Data kernel interface
414# asmc: Apple System Management Controller
415# si: Specialix International SI/XIO or SX intelligent serial card
416
417# Notes on the Specialix SI/XIO driver:
418#  The host card is memory, not IO mapped.
419#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
420#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
421#  The cards can use an IRQ of 11, 12 or 15.
422
423device		ipmi
424device		pbio
425hint.pbio.0.at="isa"
426hint.pbio.0.port="0x360"
427device		smbios
428device		vpd
429device		asmc
430#device		si
431
432#
433# Laptop/Notebook options:
434#
435
436
437#
438# I2C Bus
439#
440
441#
442# Hardware watchdog timers:
443#
444# ichwd: Intel ICH watchdog timer
445# amdsbwd: AMD SB7xx watchdog timer
446#
447device		ichwd
448device		amdsbwd
449
450#
451# Temperature sensors:
452#
453# coretemp: on-die sensor on Intel Core and newer CPUs
454# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
455#
456device		coretemp
457device		amdtemp
458
459#
460# CPU control pseudo-device. Provides access to MSRs, CPUID info and
461# microcode update feature.
462#
463device		cpuctl
464
465#
466# System Management Bus (SMB)
467#
468options 	ENABLE_ALART		# Control alarm on Intel intpm driver
469
470#
471# Set the number of PV entries per process.  Increasing this can
472# stop panics related to heavy use of shared memory.  However, that can
473# (combined with large amounts of physical memory) cause panics at
474# boot time due the kernel running out of VM space.
475#
476# If you're tweaking this, you might also want to increase the sysctls
477# "vm.v_free_min", "vm.v_free_reserved", and "vm.v_free_target".
478#
479# The value below is the one more than the default.
480#
481options 	PMAP_SHPGPERPROC=201
482
483
484#####################################################################
485# ABI Emulation
486
487#XXX keep these here for now and reactivate when support for emulating
488#XXX these 32 bit binaries is added.
489
490# Enable 32-bit runtime support for FreeBSD/i386 binaries.
491options 	COMPAT_FREEBSD32
492
493# Enable iBCS2 runtime support for SCO and ISC binaries
494#XXX#options 	IBCS2
495
496# Emulate spx device for client side of SVR3 local X interface
497#XXX#options 	SPX_HACK
498
499# Enable Linux ABI emulation
500#XXX#options 	COMPAT_LINUX
501
502# Enable 32-bit Linux ABI emulation (requires COMPAT_43 and COMPAT_FREEBSD32)
503options 	COMPAT_LINUX32
504
505# Enable the linux-like proc filesystem support (requires COMPAT_LINUX32
506# and PSEUDOFS)
507options 	LINPROCFS
508
509#Enable the linux-like sys filesystem support (requires COMPAT_LINUX32
510# and PSEUDOFS)
511options 	LINSYSFS
512
513#
514# SysVR4 ABI emulation
515#
516# The svr4 ABI emulator can be statically compiled into the kernel or loaded as
517# a KLD module.
518# The STREAMS network emulation code can also be compiled statically or as a
519# module.  If loaded as a module, it must be loaded before the svr4 module
520# (the /usr/sbin/svr4 script does this for you).  If compiling statically,
521# the `streams' device must be configured into any kernel which also
522# specifies COMPAT_SVR4.  It is possible to have a statically-configured
523# STREAMS device and a dynamically loadable svr4 emulator;  the /usr/sbin/svr4
524# script understands that it doesn't need to load the `streams' module under
525# those circumstances.
526# Caveat:  At this time, `options KTRACE' is required for the svr4 emulator
527# (whether static or dynamic).
528#
529#XXX#options 	COMPAT_SVR4	# build emulator statically
530#XXX#options 	DEBUG_SVR4	# enable verbose debugging
531#XXX#device	streams		# STREAMS network driver (required for svr4).
532
533
534#####################################################################
535# VM OPTIONS
536
537# KSTACK_PAGES is the number of memory pages to assign to the kernel
538# stack of each thread.
539
540options 	KSTACK_PAGES=3
541
542#####################################################################
543
544# More undocumented options for linting.
545# Note that documenting these are not considered an affront.
546
547options 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
548
549options 	KBDIO_DEBUG=2
550options 	KBD_MAXRETRY=4
551options 	KBD_MAXWAIT=6
552options 	KBD_RESETDELAY=201
553
554options 	PSM_DEBUG=1
555
556options 	TIMER_FREQ=((14318182+6)/12)
557
558options 	VM_KMEM_SIZE
559options 	VM_KMEM_SIZE_MAX
560options 	VM_KMEM_SIZE_SCALE
561
562# Enable NDIS binary driver support
563options 	NDISAPI
564device		ndis
565
566# Linux-specific pseudo devices support
567device		lindev
568