xref: /freebsd/sys/amd64/conf/NOTES (revision 2357939bc239bd5334a169b62313806178dd8f30)
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# We don't have modules on amd64.
11makeoptions	NO_MODULES=not_yet
12
13#
14# This directive is mandatory; it defines the architecture to be
15# configured for; in this case, the AMD64 family based machines.
16#
17machine		amd64
18
19#
20# We want LINT to cover profiling as well.
21#XXX#profile         2
22
23
24#####################################################################
25# SMP OPTIONS:
26#
27# The apic device enables the use of the I/O APIC for interrupt delivery.
28# The apic device can be used in both UP and SMP kernels, but is required
29# for SMP kernels.  Thus, the apic device is not strictly an SMP option,
30# but it is a prerequisite for SMP.
31#
32# Notes:
33#
34# By default, mixed mode is used to route IRQ0 from the AT timer via
35# the 8259A master PIC through the ExtINT pin on the first I/O APIC.
36# This can be disabled via the NO_MIXED_MODE option.  In that case,
37# IRQ0 will be routed via an intpin on the first I/O APIC.  Not all
38# motherboards hook IRQ0 up to the first I/O APIC even though their
39# MP table or MADT may claim to do so.  That is why mixed mode is
40# enabled by default.
41#
42
43# Optional:
44device		atpic			# Optional legacy pic support
45device		mptable			# Optional MPSPEC mptable support
46options 	NO_MIXED_MODE		# Disable use of mixed mode
47
48
49#####################################################################
50# CPU OPTIONS
51
52#
53# You must specify at least one CPU (the one you intend to run on);
54# deleting the specification for CPUs you don't need to use may make
55# parts of the system run faster.
56#
57cpu		HAMMER			# aka K8, aka Opteron & Athlon64
58
59#
60# Options for CPU features.
61#
62
63#
64# PERFMON causes the driver for Pentium/Pentium Pro performance counters
65# to be compiled.  See perfmon(4) for more information.
66#
67#XXX#options 	PERFMON
68
69
70#####################################################################
71# NETWORKING OPTIONS
72
73#
74# DEVICE_POLLING adds support for mixed interrupt-polling handling
75# of network device drivers, which has significant benefits in terms
76# of robustness to overloads and responsivity, as well as permitting
77# accurate scheduling of the CPU time between kernel network processing
78# and other activities.  The drawback is a moderate (up to 1/HZ seconds)
79# potential increase in response times.
80# It is strongly recommended to use HZ=1000 or 2000 with DEVICE_POLLING
81# to achieve smoother behaviour.
82# Additionally, you can enable/disable polling at runtime with the
83# sysctl variable kern.polling.enable (defaults off), and select
84# the CPU fraction reserved to userland with the sysctl variable
85# kern.polling.user_frac (default 50, range 0..100).
86#
87# Not all device drivers support this mode of operation at the time of
88# this writing.  See polling(4) for more details.
89
90options 	DEVICE_POLLING
91
92
93#####################################################################
94# CLOCK OPTIONS
95
96# The following options are used for debugging clock behavior only, and
97# should not be used for production systems.
98
99# CLK_CALIBRATION_LOOP causes clock calibration to be run in a loop at
100# startup until the user presses a key.  (The i8254 clock is always
101# calibrated relative to the RTC (mc146818a) and this option causes the
102# calibration to be repeated.)
103options 	CLK_CALIBRATION_LOOP
104
105# CLK_USE_I8254_CALIBRATION causes the calibrated frequency of the i8254
106# clock to actually be used.
107options 	CLK_USE_I8254_CALIBRATION
108
109
110#####################################################################
111# MISCELLANEOUS DEVICES AND OPTIONS
112
113device		gzip		#Exec gzipped a.out's.  REQUIRES COMPAT_AOUT!
114
115
116#####################################################################
117# HARDWARE BUS CONFIGURATION
118
119#
120# ISA bus
121#
122device		isa
123
124#
125# Options for `isa':
126#
127# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
128# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
129# This option breaks suspend/resume on some portables.
130#
131# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
132# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
133# Automatic EOI is documented not to work for for the slave with the
134# original i8259A, but it works for some clones and some integrated
135# versions.
136#
137# MAXMEM specifies the amount of RAM on the machine; if this is not
138# specified, FreeBSD will first read the amount of memory from the CMOS
139# RAM, so the amount of memory will initially be limited to 64MB or 16MB
140# depending on the BIOS.  If the BIOS reports 64MB, a memory probe will
141# then attempt to detect the installed amount of RAM.  If this probe
142# fails to detect >64MB RAM you will have to use the MAXMEM option.
143# The amount is in kilobytes, so for a machine with 128MB of RAM, it would
144# be 131072 (128 * 1024).
145#
146# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
147# reset the CPU for reboot.  This is needed on some systems with broken
148# keyboard controllers.
149
150options 	AUTO_EOI_1
151#options 	AUTO_EOI_2
152
153options 	MAXMEM=(128*1024)
154#options 	BROKEN_KEYBOARD_RESET
155
156#
157# PCI bus & PCI options:
158#
159device		pci
160
161#
162# AGP GART support
163device		agp
164
165
166#####################################################################
167# HARDWARE DEVICE CONFIGURATION
168
169#
170# Optional devices:
171#
172
173# 3Dfx Voodoo Graphics, Voodoo II /dev/3dfx CDEV support.  This will create
174# the /dev/3dfx0 device to work with glide implementations.  This should get
175# linked to /dev/3dfx and /dev/voodoo.  Note that this is not the same as
176# the tdfx DRI module from XFree86 and is completely unrelated.
177#
178# To enable Linuxulator support, one must also include COMPAT_LINUX in the
179# config as well, or you will not have the dependencies.  The other option
180# is to load both as modules.
181
182device		tdfx			# Enable 3Dfx Voodoo support
183#XXX#options 	TDFX_LINUX		# Enable Linuxulator support
184
185#
186# ACPI support using the Intel ACPI Component Architecture reference
187# implementation.
188#
189# ACPI_DEBUG enables the use of the debug.acpi.level and debug.acpi.layer
190# kernel environment variables to select initial debugging levels for the
191# Intel ACPICA code.  (Note that the Intel code must also have USE_DEBUGGER
192# defined when it is built).
193#
194# ACPI_MAX_THREADS sets the number of task threads started.
195#
196# ACPI_NO_SEMAPHORES makes the AcpiOs*Semaphore routines a no-op.
197#
198# ACPICA_PEDANTIC enables strict checking of AML.  Our default is to
199# relax these checks to allow code generated by the Microsoft compiler
200# to still execute.
201#
202# Note that building ACPI into the kernel is deprecated; the module is
203# normally loaded automatically by the loader.
204
205device		acpi
206options 	ACPI_DEBUG
207options 	ACPI_MAX_THREADS=1
208#!options 	ACPI_NO_SEMAPHORES
209#!options 	ACPICA_PEDANTIC
210
211# DRM options:
212# mgadrm:    AGP Matrox G200, G400, G450, G550
213# r128drm:   ATI Rage 128
214# radeondrm: ATI Radeon up to 9000/9100
215# sisdrm:    SiS 300/305,540,630
216# tdfxdrm:   3dfx Voodoo 3/4/5 and Banshee
217# DRM_DEBUG: include debug printfs, very slow
218#
219# mga requires AGP in the kernel, and it is recommended
220# for AGP r128 and radeon cards.
221
222device		mgadrm
223device		"r128drm"
224device		radeondrm
225device		sisdrm
226device		tdfxdrm
227
228options 	DRM_DEBUG
229
230#
231# Network interfaces:
232#
233
234# ath:	Atheros a/b/g WiFi adapters (requires ath_hal and wlan)
235# ed:   Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
236#       HP PC Lan+, various PC Card devices (refer to etc/defaults/pccard.conf)
237#	(requires miibus)
238# lnc:  Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL, AMD Am7990 and
239#       Am79C960)
240
241#XXX#	still calls MD i386 kvtop function instead of vtophys etc
242#XXX#device		ed
243#XXX#device		lnc
244
245#XXX#device	ath
246#XXX#device	ath_hal		# Atheros HAL (includes binary component)
247device		wlan		# 802.11 layer
248
249#
250# ATA raid adapters
251#
252#XXX this stores pointers in a 32bit field that is defined by the hardware
253#device	pst
254
255#
256# SCSI host adapters:
257#
258# ncv: NCR 53C500 based SCSI host adapters.
259# nsp: Workbit Ninja SCSI-3 based PC Card SCSI host adapters.
260# stg: TMC 18C30, 18C50 based SCSI host adapters.
261
262device		ncv
263device		nsp
264device		stg
265
266#
267# Adaptec FSA RAID controllers, including integrated DELL controllers,
268# the Dell PERC 2/QC and the HP NetRAID-4M
269device		aac
270device		aacp	# SCSI Passthrough interface (optional, CAM required)
271
272#
273# IBM (now Adaptec) ServeRAID controllers
274device		ips
275
276#
277# SafeNet crypto driver: can be moved to the MI NOTES as soon as
278# it's tested on a big-endian machine
279#
280device		safe		# SafeNet 1141
281options		SAFE_DEBUG	# enable debugging support: hw.safe.debug
282options		SAFE_RNDTEST	# enable rndtest support
283
284#####################################################################
285
286#
287# Miscellaneous hardware:
288#
289# digi: Digiboard driver
290# stl: Stallion EasyIO and EasyConnection 8/32 (cd1400 based)
291
292# Notes on the Specialix SI/XIO driver:
293#  The host card is memory, not IO mapped.
294#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
295#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
296#  The cards can use an IRQ of 11, 12 or 15.
297
298device		digi
299hint.digi.0.at="isa"
300hint.digi.0.port="0x104"
301hint.digi.0.maddr="0xd0000"
302# BIOS & FEP/OS components of device digi.
303device		digi_CX
304device		digi_CX_PCI
305device		digi_EPCX
306device		digi_EPCX_PCI
307device		digi_Xe
308device		digi_Xem
309device		digi_Xr
310#XXX#	PCI versions exist, but driver needs to be moved and split up,
311#XXX#	Warner Losh working on it.
312#XXX#device		stl
313# HOT1 Xilinx 6200 card (http://www.vcc.com/)
314device		xrpu
315
316#
317# Laptop/Notebook options:
318#
319
320
321#
322# I2C Bus
323#
324
325#---------------------------------------------------------------------------
326# ISDN4BSD
327#
328# See /usr/share/examples/isdn/ROADMAP for an introduction to isdn4bsd.
329#
330# i4b passive ISDN cards support contains the following hardware drivers:
331#
332#	isic  - Siemens/Infineon ISDN ISAC/HSCX/IPAC chipset driver
333#	iwic  - Winbond W6692 PCI bus ISDN S/T interface controller
334#	ifpi  - AVM Fritz!Card PCI driver
335#	ifpi2  - AVM Fritz!Card PCI version 2 driver
336#	itjc  - Siemens ISAC / TJNet Tiger300/320 chipset
337#
338# i4b active ISDN cards support contains the following hardware drivers:
339#
340#	iavc  - AVM B1 PCI, AVM B1 ISA, AVM T1
341#
342# Note that the ``options'' (if given) and ``device'' lines must BOTH
343# be uncommented to enable support for a given card !
344#
345# In addition to a hardware driver (and probably an option) the mandatory
346# ISDN protocol stack devices and the mandatory support device must be
347# enabled as well as one or more devices from the optional devices section.
348#
349#---------------------------------------------------------------------------
350#	isic driver (Siemens/Infineon chipsets)
351#
352#XXX#device	isic
353#
354# PCI bus Cards:
355# --------------
356#
357# ELSA MicroLink ISDN/PCI (same as ELSA QuickStep 1000pro PCI)
358options 	ELSA_QS1PCI
359#
360#---------------------------------------------------------------------------
361#	ifpi2 driver for AVM Fritz!Card PCI version 2
362#
363# AVM Fritz!Card PCI version 2
364#XXX#device  "ifpi2"
365#
366#---------------------------------------------------------------------------
367#	iwic driver for Winbond W6692 chipset
368#
369# ASUSCOM P-IN100-ST-D (and other Winbond W6692 based cards)
370#XXX#device  iwic
371#
372#---------------------------------------------------------------------------
373#	itjc driver for Siemens ISAC / TJNet Tiger300/320 chipset
374#
375# Traverse Technologies NETjet-S
376# Teles PCI-TJ
377#XXX#device  itjc
378#
379#---------------------------------------------------------------------------
380#	iavc driver (AVM active cards, needs i4bcapi driver!)
381#
382#XXX#device	iavc
383#
384#---------------------------------------------------------------------------
385#	ISDN Protocol Stack - mandatory for all hardware drivers
386#
387# Q.921 / layer 2 - i4b passive cards D channel handling
388#XXX#device		"i4bq921"
389#
390# Q.931 / layer 3 - i4b passive cards D channel handling
391#XXX#device		"i4bq931"
392#
393# layer 4 - i4b common passive and active card handling
394#XXX#device		"i4b"
395#
396#---------------------------------------------------------------------------
397#	ISDN devices - mandatory for all hardware drivers
398#
399# userland driver to do ISDN tracing (for passive cards only)
400#XXX#device		"i4btrc"	4
401#
402# userland driver to control the whole thing
403#XXX#device		"i4bctl"
404#
405#---------------------------------------------------------------------------
406#	ISDN devices - optional
407#
408# userland driver for access to raw B channel
409#XXX#device		"i4brbch"	4
410#
411# userland driver for telephony
412#XXX#device		"i4btel"	2
413#
414# network driver for IP over raw HDLC ISDN
415#XXX#device		"i4bipr"	4
416# enable VJ header compression detection for ipr i/f
417options 	IPR_VJ
418# enable logging of the first n IP packets to isdnd (n=32 here)
419options 	IPR_LOG=32
420#
421# network driver for sync PPP over ISDN; requires an equivalent
422# number of sppp device to be configured
423#XXX#device		"i4bisppp"	4
424#
425# B-channel interface to the netgraph subsystem
426#XXX#device		"i4bing"	2
427#
428#---------------------------------------------------------------------------
429
430#
431# Set the number of PV entries per process.  Increasing this can
432# stop panics related to heavy use of shared memory.  However, that can
433# (combined with large amounts of physical memory) cause panics at
434# boot time due the kernel running out of VM space.
435#
436# If you're tweaking this, you might also want to increase the sysctls
437# "vm.v_free_min", "vm.v_free_reserved", and "vm.v_free_target".
438#
439# The value below is the one more than the default.
440#
441options 	PMAP_SHPGPERPROC=201
442
443
444#####################################################################
445# ABI Emulation
446
447#XXX keep these here for now and reactivate when support for emulating
448#XXX these 32 bit binaries is added.
449
450# Enable iBCS2 runtime support for SCO and ISC binaries
451#XXX#options 	IBCS2
452
453# Emulate spx device for client side of SVR3 local X interface
454#XXX#options 	SPX_HACK
455
456# Enable Linux ABI emulation
457#XXX#options 	COMPAT_LINUX
458
459# Enable the linux-like proc filesystem support (requires COMPAT_LINUX
460# and PSEUDOFS)
461#XXX#options 	LINPROCFS
462
463#
464# SysVR4 ABI emulation
465#
466# The svr4 ABI emulator can be statically compiled into the kernel or loaded as
467# a KLD module.
468# The STREAMS network emulation code can also be compiled statically or as a
469# module.  If loaded as a module, it must be loaded before the svr4 module
470# (the /usr/sbin/svr4 script does this for you).  If compiling statically,
471# the `streams' device must be configured into any kernel which also
472# specifies COMPAT_SVR4.  It is possible to have a statically-configured
473# STREAMS device and a dynamically loadable svr4 emulator;  the /usr/sbin/svr4
474# script understands that it doesn't need to load the `streams' module under
475# those circumstances.
476# Caveat:  At this time, `options KTRACE' is required for the svr4 emulator
477# (whether static or dynamic).
478#
479#XXX#options 	COMPAT_SVR4	# build emulator statically
480#XXX#options 	DEBUG_SVR4	# enable verbose debugging
481#XXX#device	streams		# STREAMS network driver (required for svr4).
482
483
484#####################################################################
485# VM OPTIONS
486
487# KSTACK_PAGES is the number of memory pages to assign to the kernel
488# stack of each thread.
489
490options 	KSTACK_PAGES=3
491
492#####################################################################
493
494# More undocumented options for linting.
495# Note that documenting these are not considered an affront.
496
497options 	FB_INSTALL_CDEV		# install a CDEV entry in /dev
498
499options 	ENABLE_ALART		# Control alarm on Intel intpm driver
500options 	KBDIO_DEBUG=2
501options 	KBD_MAXRETRY=4
502options 	KBD_MAXWAIT=6
503options 	KBD_RESETDELAY=201
504
505options 	PSM_DEBUG=1
506
507options 	TIMER_FREQ=((14318182+6)/12)
508
509options 	VM_KMEM_SIZE
510options 	VM_KMEM_SIZE_MAX
511options 	VM_KMEM_SIZE_SCALE
512