xref: /freebsd/sys/i386/conf/NOTES (revision 952d112864d8008aa87278a30a539d888a8493cd)
1#
2# LINT -- config file for checking all the sources, tries to pull in
3#	as much of the source tree as it can.
4#
5#	$Id: LINT,v 1.324 1997/03/26 17:46:03 ache Exp $
6#
7# NB: You probably don't want to try running a kernel built from this
8# file.  Instead, you should start from GENERIC, and add options from
9# this file as required.
10#
11
12#
13# This directive is mandatory; it defines the architecture to be
14# configured for; in this case, the 386 family based IBM-PC and
15# compatibles.
16#
17machine		"i386"
18
19#
20# This is the ``identification'' of the kernel.  Usually this should
21# be the same as the name of your kernel.
22#
23ident		LINT
24
25#
26# The `maxusers' parameter controls the static sizing of a number of
27# internal system tables by a complicated formula defined in param.c.
28#
29maxusers	10
30
31#
32# Certain applications can grow to be larger than the 128M limit
33# that FreeBSD initially imposes.  Below are some options to
34# allow that limit to grow to 256MB, and can be increased further
35# with changing the parameters.  MAXDSIZ is the maximum that the
36# limit can be set to, and the DFLDSIZ is the default value for
37# the limit.  You might want to set the default lower than the
38# max, and explicitly set the maximum with a shell command for processes
39# that regularly exceed the limit like INND.
40#
41options		"MAXDSIZ=(256*1024*1024)"
42options		"DFLDSIZ=(256*1024*1024)"
43
44# When this is set, be extra conservative in various parts of the kernel
45# and choose functionality over speed (on the widest variety of systems).
46options		FAILSAFE
47
48# This allows you to actually store this configuration file into
49# the kernel binary itself, where it may be later read by saying:
50#    strings /kernel | grep ^___ | sed -e 's/^___//' > MYKERNEL
51#
52options         INCLUDE_CONFIG_FILE     # Include this file in kernel
53
54#
55# This directive defines a number of things:
56#  - The compiled kernel is to be called `kernel'
57#  - The root filesystem might be on partition wd0a
58#  - Crash dumps will be written to wd0b, if possible.  Specifying the
59#    dump device here is not recommended.  Use dumpon(8).
60#
61config		kernel	root on wd0 dumps on wd0
62
63
64#####################################################################
65# CPU OPTIONS
66
67#
68# You must specify at least one CPU (the one you intend to run on);
69# deleting the specification for CPUs you don't need to use may make
70# parts of the system run faster.  This is especially true removing
71# I386_CPU.
72#
73cpu		"I386_CPU"
74cpu		"I486_CPU"
75cpu		"I586_CPU"		# aka Pentium(tm)
76cpu		"I686_CPU"		# aka Pentium Pro(tm)
77
78#
79# Options for CPU features.
80#
81# CPU_BLUELIGHTNING_FPU_OP_CACHE enables FPU operand cache on IBM
82# BlueLightning CPU.  It works only with Cyrix FPU, and this option
83# should not be used with Intel FPU.
84#
85# CPU_BLUELIGHTNING_3X enables triple-clock mode on IBM Blue Lightning
86# CPU if CPU supports it. The default is double-clock mode on
87# BlueLightning CPU box.
88#
89# CPU_BTB_EN enables branch target buffer on Cyrix 5x86 (NOTE 1).
90#
91# CPU_DISABLE_5X86_LSSER disables load store serialize (i.e. enables
92# reorder).  This option should not be used if you use memory mapped
93# I/O device(s).
94#
95# CPU_FASTER_5X86_FPU enables faster FPU exception handler.
96#
97# CPU_I486_ON_386 enables CPU cache on i486 based CPU upgrade products
98# for i386 machines.
99# CPU_IORT defines I/O clock delay time (NOTE 1).  Default vaules of
100# I/O clock delay time on Cyrix 5x86 and 6x86 are 0 and 7,respectively
101# (no clock delay).
102#
103# CPU_LOOP_EN prevents flushing the prefetch buffer if the destination
104# of a jump is already present in the prefetch buffer on Cyrix 5x86(NOTE
105# 1).
106#
107# CPU_RSTK_EN enables return stack on Cyrix 5x86 (NOTE 1).
108#
109# CPU_SUSP_HLT enables suspend on HALT.  If this option is set, CPU
110# enters suspend mode following execution of HALT instruction.
111#
112# CYRIX_CACHE_WORKS enables CPU cache on Cyrix 486 CPUs with cache
113# flush at hold state.
114#
115# CYRIX_CACHE_REALLY_WORKS enables (1) CPU cache on Cyrix 486 CPUs
116# without cache flush at hold state, and (2) write-back CPU cache on
117# Cyrix 6x86 whose revision < 2.7 (NOTE 2).
118#
119# NOTE 1: The options, CPU_BTB_EN, CPU_LOOP_EN, CPU_IORT,
120# CPU_LOOP_ENand CPU_RSTK_EN should no be used becasue of CPU bugs.
121# These options may crash your system.
122#
123# NOTE 2: If CYRIX_CACHE_REALLY_WORKS is not set, CPU cache is enabled
124# in write-through mode when revision < 2.7.  If revision of Cyrix
125# 6x86 >= 2.7, CPU cache is always enabled in write-back mode.
126#
127options		"CPU_BLUELIGHTNING_FPU_OP_CACHE"
128options		"CPU_BLUELIGHTNING_3X"
129options		"CPU_BTB_EN"
130options		"CPU_DISABLE_5X86_LSSER"
131options		"CPU_FASTER_5X86_FPU"
132options		"CPU_I486_ON_386"
133options		"CPU_IORT"
134options		"CPU_LOOP_EN"
135options		"CPU_RSTK_EN"
136options		"CPU_SUSP_HLT"
137options		"CYRIX_CACHE_WORKS"
138options		"CYRIX_CACHE_REALLY_WORKS"
139
140#
141# A math emulator is mandatory if you wish to run on hardware which
142# does not have a floating-point processor.  Pick either the original,
143# bogus (but freely-distributable) math emulator, or a much more
144# fully-featured but GPL-licensed emulator taken from Linux.
145#
146options		MATH_EMULATE		#Support for x87 emulation
147# Don't enable both of these in a real config.
148options		GPL_MATH_EMULATE	#Support for x87 emulation via
149					#new math emulator
150
151
152#####################################################################
153# COMPATIBILITY OPTIONS
154
155#
156# Implement system calls compatible with 4.3BSD and older versions of
157# FreeBSD.  You probably do NOT want to remove this as much current code
158# still relies on the 4.3 emulation.
159#
160options		"COMPAT_43"
161
162#
163# Allow user-mode programs to manipulate their local descriptor tables.
164# This option is required for the WINE Windows(tm) emulator, and is
165# not used by anything else (that we know of).
166#
167options		USER_LDT		#allow user-level control of i386 ldt
168
169#
170# These three options provide support for System V Interface
171# Definition-style interprocess communication, in the form of shared
172# memory, semaphores, and message queues, respectively.
173#
174options		SYSVSHM
175options		SYSVSEM
176options		SYSVMSG
177
178#
179# This option includes a MD5 routine in the kernel, this is used for
180# various authentication and privacy uses.
181#
182options		"MD5"
183
184
185#####################################################################
186# DEBUGGING OPTIONS
187
188#
189# Enable the kernel debugger.
190#
191options		DDB
192
193#
194# Don't drop into DDB for a panic. Intended for unattended operation
195# where you may want to drop to DDB from the console, but still want
196# the machine to recover from a panic
197#
198options		DDB_UNATTENDED
199
200#
201# KTRACE enables the system-call tracing facility ktrace(2).
202#
203options		KTRACE			#kernel tracing
204
205#
206# The DIAGNOSTIC option is used in a number of source files to enable
207# extra sanity checking of internal structures.  This support is not
208# enabled by default because of the extra time it would take to check
209# for these conditions, which can only occur as a result of
210# programming errors.
211#
212options		DIAGNOSTIC
213
214#
215# PERFMON causes the driver for Pentium/Pentium Pro performance counters
216# to be compiled.  See perfmon(4) for more information.
217#
218options		PERFMON
219
220# XXX - this doesn't belong here.
221# Allow ordinary users to take the console - this is useful for X.
222options		UCONSOLE
223
224# XXX - this doesn't belong here either
225options		USERCONFIG		#boot -c editor
226options		USERCONFIG_BOOT		#imply -c and parse info area
227options		VISUAL_USERCONFIG	#visual boot -c editor
228
229#####################################################################
230# NETWORKING OPTIONS
231
232#
233# Protocol families:
234#  Only the INET (Internet) family is officially supported in FreeBSD.
235#  Source code for the NS (Xerox Network Service) is provided for amusement
236#  value.
237#
238options		INET			#Internet communications protocols
239
240options		IPX			#IPX/SPX communications protocols
241options		IPXIP			#IPX in IP encapsulation (not available)
242options		IPTUNNEL		#IP in IPX encapsulation (not available)
243options		IPXPRINTFS=0		#IPX/SPX Console Debugging Information
244options		IPX_ERRPRINTFS=0	#IPX/SPX Console Debugging Information
245
246options		NETATALK		#Appletalk communications protocols
247
248# These are currently broken but are shipped due to interest.
249#options		NS			#Xerox NS protocols
250
251# These are currently broken and are no longer shipped due to lack
252# of interest.
253#options		CCITT			#X.25 network layer
254#options		ISO
255#options		TPIP			#ISO TP class 4 over IP
256#options		TPCONS			#ISO TP class 0 over X.25
257#options		LLC			#X.25 link layer for Ethernets
258#options		HDLC			#X.25 link layer for serial lines
259#options		EON			#ISO CLNP over IP
260#options		NSIP			#XNS over IP
261
262#
263# Network interfaces:
264#  The `loop' pseudo-device is MANDATORY when networking is enabled.
265#  The `ether' pseudo-device provides generic code to handle
266#  Ethernets; it is MANDATORY when a Ethernet device driver is
267#  configured.
268#  The 'fddi' pseudo-device provides generic code to support FDDI.
269#  The `sppp' pseudo-device serves a similar role for certain types
270#  of synchronous PPP links (like `cx', `ar').
271#  The `sl' pseudo-device implements the Serial Line IP (SLIP) service.
272#  The `ppp' pseudo-device implements the Point-to-Point Protocol.
273#  The `bpfilter' pseudo-device enables the Berkeley Packet Filter.  Be
274#  aware of the legal and administrative consequences of enabling this
275#  option.  The number of devices determines the maximum number of
276#  simultaneous BPF clients programs runnable.
277#  The `disc' pseudo-device implements a minimal network interface,
278#  which throws away all packets sent and never receives any.  It is
279#  included for testing purposes.
280#  The `tun' pseudo-device implements the User Process PPP (iijppp)
281#
282pseudo-device	ether			#Generic Ethernet
283pseudo-device	fddi			#Generic FDDI
284pseudo-device	sppp			#Generic Synchronous PPP
285pseudo-device	loop			#Network loopback device
286pseudo-device	sl	2		#Serial Line IP
287pseudo-device	ppp	2		#Point-to-point protocol
288pseudo-device	bpfilter	4	#Berkeley packet filter
289pseudo-device	disc			#Discard device
290pseudo-device	tun	1		#Tunnel driver(user process ppp)
291
292#
293# Internet family options:
294#
295# TCP_COMPAT_42 causes the TCP code to emulate certain bugs present in
296# 4.2BSD.  This option should not be used unless you have a 4.2BSD
297# machine and TCP connections fail.
298#
299# MROUTING enables the kernel multicast packet forwarder, which works
300# with mrouted(8).
301#
302# IPFIREWALL enables support for IP firewall construction, in
303# conjunction with the `ipfw' program.  IPFIREWALL_VERBOSE sends
304# logged packets to the system logger.  IPFIREWALL_VERBOSE_LIMIT
305# limits the number of times a matching entry can be logged.
306#
307# IPDIVERT enables the divert IP sockets, used by ``ipfw divert''
308#
309# TCPDEBUG is undocumented.
310#
311options		"TCP_COMPAT_42"		#emulate 4.2BSD TCP bugs
312options		MROUTING		# Multicast routing
313options         IPFIREWALL              #firewall
314options         IPFIREWALL_VERBOSE      #print information about
315					# dropped packets
316options		"IPFIREWALL_VERBOSE_LIMIT=100" #limit verbosity
317options		IPDIVERT		#divert sockets
318options		TCPDEBUG
319
320
321#####################################################################
322# FILESYSTEM OPTIONS
323
324#
325# Only the root, /usr, and /tmp filesystems need be statically
326# compiled; everything else will be automatically loaded at mount
327# time.  (Exception: the UFS family---FFS, MFS, and LFS---cannot
328# currently be demand-loaded.)  Some people still prefer to statically
329# compile other filesystems as well.
330#
331# NB: The LFS, PORTAL, and UNION filesystems are known to be buggy,
332# and WILL panic your system if you attempt to do anything with them.
333# They are included here as an incentive for some enterprising soul to
334# sit down and fix them.
335#
336# Note: 4.4BSD NQNFS lease checking has relatively high cost for
337# _local_ I/O as well as remote I/O. Don't use it unless you will
338# using NQNFS.
339#
340
341# One of these is mandatory:
342options		FFS			#Fast filesystem
343options		NFS			#Network File System
344
345# The rest are optional:
346options		NQNFS			#Enable NQNFS lease checking
347# options	NFS_NOSERVER		#Disable the NFS-server code.
348options		"CD9660"		#ISO 9660 filesystem
349options		FDESC			#File descriptor filesystem
350options		KERNFS			#Kernel filesystem
351options		LFS			#Log filesystem
352options		MFS			#Memory File System
353options		MSDOSFS			#MS DOS File System
354options		NULLFS			#NULL filesystem
355options		PORTAL			#Portal filesystem
356options		PROCFS			#Process filesystem
357options		UMAPFS			#UID map filesystem
358options		UNION			#Union filesystem
359# This DEVFS is experimental but seems to work
360options		DEVFS			#devices filesystem
361
362# Make space in the kernel for a MFS root filesystem.  Define to the number
363# of kilobytes to reserve for the filesystem.
364options		MFS_ROOT=10
365# Allow the MFS_ROOT code to load the MFS image from floppy if it is missing.
366options		MFS_AUTOLOAD
367
368# Allow this many swap-devices.
369options		NSWAPDEV=20
370
371# Disk quotas are supported when this option is enabled.  If you
372# change the value of this option, you must do a `make clean' in your
373# kernel compile directory in order to get a working kernel.
374#
375options		QUOTA			#enable disk quotas
376
377# Add more checking code to various filesystems
378#options		NULLFS_DIAGNOSTIC
379#options		KERNFS_DIAGNOSTIC
380#options		UMAPFS_DIAGNOSTIC
381#options		UNION_DIAGNOSTIC
382
383# Add some error checking code to the null_bypass routine
384# in the NULL filesystem
385#options		SAFETY
386
387
388#####################################################################
389# SCSI DEVICES
390
391# SCSI DEVICE CONFIGURATION
392
393# The SCSI subsystem consists of the `base' SCSI code, a number of
394# high-level SCSI device `type' drivers, and the low-level host-adapter
395# device drivers.  The host adapters are listed in the ISA and PCI
396# device configuration sections below.
397#
398# Beginning with FreeBSD 2.0.5 you can wire down your SCSI devices so
399# that a given bus, target, and LUN always come on line as the same
400# device unit.  In earlier versions the unit numbers were assigned
401# in the order that the devices were probed on the SCSI bus.  This
402# means that if you removed a disk drive, you may have had to rewrite
403# your /etc/fstab file, and also that you had to be careful when adding
404# a new disk as it may have been probed earlier and moved your device
405# configuration around.
406
407# This old behavior is maintained as the default behavior.  The unit
408# assignment begins with the first non-wired down unit for a device
409# type.  For example, if you wire a disk as "sd3" then the first
410# non-wired disk will be assigned sd4.
411
412# The syntax for wiring down devices is:
413
414# controller	scbus0 at ahc0		# Single bus device
415# controller	scbus1 at ahc1 bus 0	# Single bus device
416# controller	scbus3 at ahc2 bus 0	# Twin bus device
417# controller	scbus2 at ahc2 bus 1	# Twin bus device
418# disk 		sd0 at scbus0 target 0 unit 0
419# disk		sd1 at scbus3 target 1
420# disk		sd2 at scbus2 target 3
421# tape		st1 at scbus1 target 6
422# device	cd0 at scbus?
423
424# "units" (SCSI logical unit number) that are not specified are
425# treated as if specified as LUN 0.
426
427# All SCSI devices allocate as many units as are required.
428
429# The "unknown" device (uk? in pre-2.0.5) is now part of the base SCSI
430# configuration and doesn't have to be explicitly configured.
431
432controller	scbus0	#base SCSI code
433device		ch0	#SCSI media changers
434device		sd0	#SCSI disks
435device		st0	#SCSI tapes
436device		cd0	#SCSI CD-ROMs
437device		od0	#SCSI optical disk
438
439# The previous devices (ch, sd, st, cd) are recognized by config.
440# config doesn't (and shouldn't) know about these newer ones,
441# so we have to specify that they are on a SCSI bus with the "at scbus?"
442# clause.
443
444device worm0 at scbus?	# SCSI worm
445device pt0 at scbus?	# SCSI processor type
446device sctarg0 at scbus? # SCSI target
447
448# SCSI OPTIONS:
449
450# SCSIDEBUG: When defined enables debugging macros
451# NO_SCSI_SENSE: When defined disables sense descriptions (about 4k)
452# SCSI_REPORT_GEOMETRY: Always report disk geometry at boot up instead
453#                       of only when booting verbosely.
454options		SCSIDEBUG
455#options	NO_SCSI_SENSE
456options		SCSI_REPORT_GEOMETRY
457
458# Options for the `od' optical disk driver:
459#
460# If drive returns sense key as 0x02 with vendor specific additional
461# sense code (ASC) and additional sense code qualifier (ASCQ), or
462# illegal ASC and ASCQ. This cause an error (NOT READY) and retrying.
463# To suppress this, use the following option.
464#
465options		OD_BOGUS_NOT_READY
466#
467# For an automatic spindown, try this.  Again, preferably as an
468# option in your config file.
469# WARNING!  Use at your own risk.  Joerg's ancient SONY SMO drive
470# groks it fine, while Shunsuke's Fujitsu chokes on it and times
471# out.
472#
473options		OD_AUTO_TURNOFF
474
475
476
477#####################################################################
478# MISCELLANEOUS DEVICES AND OPTIONS
479
480#
481# Of these, only the `log' device is truly mandatory.  The `pty'
482# device usually turns out to be ``effectively mandatory'', as it is
483# required for `telnetd', `rlogind', `screen', `emacs', and `xterm',
484# among others.
485# If you wish to run certain
486# system utilities which are compressed by default (like /stand/sysinstall)
487# then `gzip' becomes mandatory too.
488#
489pseudo-device	pty	16	#Pseudo ttys - can go as high as 256
490pseudo-device	speaker		#Play IBM BASIC-style noises out your speaker
491pseudo-device	log		#Kernel syslog interface (/dev/klog)
492pseudo-device	gzip		#Exec gzipped a.out's
493pseudo-device	vn		#Vnode driver (turns a file into a device)
494pseudo-device	snp	3	#Snoop device - to look at pty/vty/etc..
495pseudo-device	ccd	4	#Concatenated disk driver
496
497# These are only for watching for bitrot in old tty code.
498# broken
499#pseudo-device	tb
500
501# These are only for watching for bitrot in old SCSI code.
502pseudo-device	su		#scsi user
503pseudo-device	ssc		#super scsi
504
505
506#####################################################################
507# HARDWARE DEVICE CONFIGURATION
508
509# ISA and EISA devices:
510# EISA support is available for some device, so they can be auto-probed.
511# Micro Channel is not supported at all.
512
513#
514# Mandatory ISA devices: isa, sc or vt, npx
515#
516controller	isa0
517
518#
519# Options for `isa':
520#
521# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
522# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
523# This option breaks suspend/resume on some portables.
524#
525# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
526# interrupt controller.  This saves about 0.7-1.25 usec for each interrupt.
527# Automatic EOI is documented not to work for for the slave with the
528# original i8259A, but it works for some clones and some integrated
529# versions.
530#
531# BOUNCE_BUFFERS provides support for ISA DMA on machines with more
532# than 16 megabytes of memory.  It doesn't hurt on other machines.
533# Some broken EISA and VLB hardware may need this, too.
534#
535# MAXMEM specifies the amount of RAM on the machine; if this is not
536# specified, FreeBSD will read the amount of memory from the CMOS RAM,
537# so the amount of memory will be limited to 64MB or 16MB depending on
538# the BIOS.  The amount is in kilobytes, so for a machine with 128MB of
539# RAM, it would be 131072 (128 * 1024).
540#
541# TUNE_1542 enables the automatic ISA bus speed selection for the
542# Adaptec 1542 boards. Does not work for all boards, use it with caution.
543#
544# BROKEN_KEYBOARD_RESET disables the use of the keyboard controller to
545# reset the CPU for reboot.  This is needed on some systems with broken
546# keyboard controllers.
547#
548# PAS_JOYSTICK_ENABLE enables the gameport on the ProAudio Spectrum
549
550options		"AUTO_EOI_1"
551#options	"AUTO_EOI_2"
552options		BOUNCE_BUFFERS
553options		"MAXMEM=(128*1024)"
554#options        "TUNE_1542"
555#options	BROKEN_KEYBOARD_RESET
556#options	PAS_JOYSTICK_ENABLE
557
558# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
559device		vt0	at isa? port "IO_KBD" tty irq 1 vector pcrint
560options		PCVT_FREEBSD=210	# pcvt running on FreeBSD >= 2.0.5
561options		XSERVER			# include code for XFree86
562options		FAT_CURSOR		# start with block cursor
563# This PCVT option is for keyboards such as those used on IBM ThinkPad laptops
564options		PCVT_SCANSET=2 		# IBM keyboards are non-std
565
566# The syscons console driver (sco color console compatible) - default.
567device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
568options		MAXCONS=16		# number of virtual consoles
569options		SLOW_VGA		# do byte-wide i/o's to TS and GDC regs
570
571#
572# `flags' for sc0:
573#       0x01    Use a 'visual' bell
574#       0x02    Use a 'blink' cursor
575#       0x04    Use a 'block' cursor
576#       0x08    Force detection of keyboard, else we always assume a keyboard
577#       0x10    Old-style (XT) keyboard support, useful for older ThinkPads
578
579#
580# The Numeric Processing eXtension driver.  This should be configured if
581# your machine has a math co-processor, unless the coprocessor is very
582# buggy. If it is not configured then you *must* configure math emulation
583# (see above).  If both npx0 and emulation are configured, then only npx0
584# is used (provided it works).
585device		npx0	at isa? port "IO_NPX" iosiz 0x0 flags 0x0 irq 13 vector npxintr
586
587#
588# `flags' for npx0:
589#	0x01	don't use the npx registers to optimize bcopy
590#	0x02	don't use the npx registers to optimize bzero
591#	0x04	don't use the npx registers to optimize copyin or copyout.
592# The npx registers are normally used to optimize copying and zeroing when
593# all of the following conditions are satisfied:
594#	"I586_CPU" is an option
595#	the cpu is an i586 (perhaps not a Pentium)
596#	the probe for npx0 succeeds
597#	INT 16 exception handling works.
598# Then copying and zeroing using the npx registers is normally 30-100% faster.
599# The flags can be used to control cases where it doesn't work or is slower.
600# Setting them at boot time using userconfig works right (the optimizations
601# are not used until later in the bootstrap when npx0 is attached).
602#
603
604#
605# `iosiz' for npx0:
606# This can be used instead of the MAXMEM option to set the memory size.  If
607# it is nonzero, then it overrides both the MAXMEM option and the memory
608# size reported by the BIOS.  Setting it at boot time using userconfig takes
609# effect on the next reboot after the change has been recorded in the kernel
610# binary (the size is used early in the boot before userconfig has a chance
611# to change it).
612#
613
614#
615# Optional ISA and EISA devices:
616#
617
618#
619# SCSI host adapters: `aha', `aic', `bt', `nca'
620#
621# aha: Adaptec 154x
622# ahc: Adaptec 274x/284x/294x
623# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
624# bt: Most Buslogic controllers
625# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130
626# uha: UltraStore 14F and 34F
627# sea: Seagate ST01/02 8 bit controller (slow!)
628# wds: Western Digital WD7000 controller (no scatter/gather!).
629#
630# Note that the order is important in order for Buslogic cards to be
631# probed correctly.
632#
633
634controller	bt0	at isa? port "IO_BT0" bio irq ? vector bt_isa_intr
635controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
636controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
637
638controller      aic0    at isa? port 0x340 bio irq 11 vector aicintr
639controller	nca0	at isa? port 0x1f88 bio irq 10 vector ncaintr
640controller	nca1	at isa? port 0x1f84
641controller	nca2	at isa? port 0x1f8c
642controller	nca3	at isa? port 0x1e88
643controller	nca4	at isa? port 0x350 bio irq 5 vector ncaintr
644
645controller	sea0	at isa? bio irq 5 iomem 0xdc000 iosiz 0x2000 vector seaintr
646controller	wds0	at isa? port 0x350 bio irq 15 drq 6 vector wdsintr
647
648#
649# ST-506, ESDI, and IDE hard disks: `wdc' and `wd'
650#
651# NB: ``Enhanced IDE'' is NOT supported at this time.
652#
653# The flags fields are used to enable the multi-sector I/O and
654# the 32BIT I/O modes.  The flags may be used in either the controller
655# definition or in the individual disk definitions.  The controller
656# definition is supported for the boot configuration stuff.
657#
658# Each drive has a 16 bit flags value defined:
659#	The low 8 bits are the maximum value for the multi-sector I/O,
660#	where 0xff defaults to the maximum that the drive can handle.
661#	The high bit of the 16 bit flags (0x8000) allows probing for
662#	32 bit transfers.
663#
664# The flags field for the drives can be specified in the controller
665# specification with the low 16 bits for drive 0, and the high 16 bits
666# for drive 1.
667# e.g.:
668#controller	wdc0	at isa? port "IO_WD1" bio irq 14 flags 0x00ff8004 vector wdintr
669#
670# specifies that drive 0 will be allowed to probe for 32 bit transfers and
671# a maximum multi-sector transfer of 4 sectors, and drive 1 will not be
672# allowed to probe for 32 bit transfers, but will allow multi-sector
673# transfers up to the maximum that the drive supports.
674#
675
676#
677controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
678disk		wd0	at wdc0 drive 0
679disk		wd1	at wdc0 drive 1
680controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
681disk		wd2	at wdc1 drive 0
682disk		wd3	at wdc1 drive 1
683
684#
685# Options for `wdc':
686#
687# CMD640 enables serializing access to primary and secondary channel
688# of the CMD640B IDE Chip. The serializing will only take place
689# if this option is set *and* the chip is probed by the pci-system.
690#
691options         "CMD640"	#Enable work around for CMD640 h/w bug
692#
693# ATAPI enables the support for ATAPI-compatible IDE devices
694#
695options         ATAPI   #Enable ATAPI support for IDE bus
696options		ATAPI_STATIC	#Don't do it as an LKM
697
698# IDE CD-ROM driver - requires wdc controller and ATAPI option
699device          wcd0
700
701#
702# Standard floppy disk controllers and floppy tapes: `fdc', `fd', and `ft'
703#
704controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
705#
706# Activate this line instead of the fdc0 line above if you happen to
707# have an Insight floppy tape.  Probing them proved to be dangerous
708# for people with floppy disks only, so it's "hidden" behind a flag:
709#controller fdc0 at isa? port "IO_FD1" bio flags 1 irq 6 drq 2 vector fdintr
710
711disk		fd0	at fdc0 drive 0
712disk		fd1	at fdc0 drive 1
713tape		ft0	at fdc0 drive 2
714
715
716#
717# Options for `fd':
718#
719# FDSEEKWAIT selects a non-default head-settle time (i.e., the time to
720# wait after a seek is performed).  The default value (1/32 s) is
721# usually sufficient.  The units are inverse seconds, so a value of 16
722# here means to wait 1/16th of a second; you should choose a power of
723# two.
724# XXX: this seems to be missing!
725options	FDSEEKWAIT=16
726
727#
728# Other standard PC hardware: `lpt', `mse', `psm', `sio', etc.
729#
730# lpt: printer port
731#	lpt specials:
732#		port can be specified as ?, this will cause the driver to scan
733#		the BIOS port list;
734#		the irq and vector clauses may be omitted, this
735#		will force the port into polling mode.
736# mse: Logitech and ATI InPort bus mouse ports
737# psm: PS/2 mouse port [note: conflicts with sc0/vt0, thus "conflicts" keywd]
738# sio: serial ports (see sio(4))
739
740device		lpt0	at isa? port? tty irq 7 vector lptintr
741device		lpt1	at isa? port "IO_LPT3" tty irq 5 vector lptintr
742device		mse0	at isa? port 0x23c tty irq 5 vector mseintr
743device		psm0	at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
744# Options for psm:
745options		PSM_CHECKSYNC		#checks the header byte for sync.
746
747device		sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
748
749# Options for sio:
750options		COMCONSOLE		#prefer serial console to video console
751options		COM_ESP			#code for Hayes ESP
752options		COM_MULTIPORT		#code for some cards with shared IRQs
753options		DSI_SOFT_MODEM		#code for DSI Softmodems
754options		BREAK_TO_DEBUGGER	#a BREAK on a comconsole goes to
755					#DDB, if available.
756
757#
758# Network interfaces: `cx', `ed', `el', `ep', `ie', `is', `le', `lnc'
759#
760# ar: Arnet SYNC/570i hdlc sync 2/4 port V.35/X.21 serial driver (requires sppp)
761# cx: Cronyx/Sigma multiport sync/async (with Cisco or PPP framing)
762# ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
763# el: 3Com 3C501 (slow!)
764# ep: 3Com 3C509 (buggy)
765# fe: Fujitsu MB86960A/MB86965A Ethernet
766# ie: AT&T StarLAN 10 and EN100; 3Com 3C507; unknown NI5210
767# le: Digital Equipment EtherWorks 2 and EtherWorks 3 (DEPCA, DE100,
768#     DE101, DE200, DE201, DE202, DE203, DE204, DE205, DE422)
769# lnc: Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)
770# sr: RISCom/N2 hdlc sync 1/2 port V.35/X.21 serial driver (requires sppp)
771# ze: IBM/National Semiconductor PCMCIA ethernet controller.
772# zp: 3Com PCMCIA Etherlink III (It does not require shared memory for
773#     send/receive operation, but it needs 'iomem' to read/write the
774#     attribute memory)
775#
776
777device ar0 at isa? port 0x300 net irq 10 iomem 0xd0000 vector arintr
778device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr
779device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
780device eg0 at isa? port 0x310 net irq 5 vector egintr
781device el0 at isa? port 0x300 net irq 9 vector elintr
782device ep0 at isa? port 0x300 net irq 10 vector epintr
783device ex0 at isa? port? net irq? vector exintr
784device fe0 at isa? port 0x300 net irq ? vector feintr
785device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
786device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr
787device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
788device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr
789device sr0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector srintr
790# Needed so that we can (bogusly) include both the dedicated PCCARD
791# drivers and the generic support
792options	LINT_PCCARD_HACK
793device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
794device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr
795
796
797#
798# Audio drivers: `snd', `sb', `pas', `gus', `pca'
799#
800# snd: Voxware sound support code
801# sb: SoundBlaster PCM - SoundBlaster, SB Pro, SB16, ProAudioSpectrum
802# sbxvi: SoundBlaster 16
803# sbmidi: SoundBlaster 16 MIDI interface
804# pas: ProAudioSpectrum PCM and MIDI
805# gus: Gravis Ultrasound - Ultrasound, Ultrasound 16, Ultrasound MAX
806# gusxvi: Gravis Ultrasound 16-bit PCM	(do not use)
807# mss: Microsoft Sound System
808# opl: Yamaha OPL-2 and OPL-3 FM - SB, SB Pro, SB 16, ProAudioSpectrum
809# uart: stand-alone 6850 UART for MIDI
810# mpu: Roland MPU-401 stand-alone card
811#
812# Beware!  The addresses specified below are also hard-coded in
813# i386/isa/sound/sound_config.h.  If you change the values here, you
814# must also change the values in the include file.
815#
816# pca: PCM audio through your PC speaker
817#
818# If you don't have a lpt0 device at IRQ 7, you can remove the
819# ``conflicts'' specification in the appropriate device entries below.
820#
821# If you have a GUS-MAX card and want to use the CS4231 codec on the
822# card the drqs for the gus max must be 8 bit (1, 2, or 3).
823#
824# If you would like to use the full duplex option on the gus, then define
825# flags to be the ``read dma channel''.
826#
827# options BROKEN_BUS_CLOCK	#PAS-16 isn't working and OPTI chipset
828# options SYMPHONY_PAS		#PAS-16 isn't working and SYMPHONY chipset
829# options EXCLUDE_SBPRO		#PAS-16
830# options SBC_IRQ=5		#PAS-16. Must match irq on sb0 line.
831# PAS16: The order of the pas0/sb0/opl0 is important since the
832#	sb emulation is enabled in the pas-16 attach.
833#
834# The i386/isa/sound/sound.doc has more information.
835
836# Controls all sound devices
837controller	snd0
838device pas0     at isa? port 0x388 irq 10 drq 6 vector pasintr
839device sb0      at isa? port 0x220 irq 5 conflicts drq 1 vector sbintr
840device sbxvi0   at isa? port? irq? drq 5 conflicts
841device sbmidi0  at isa? port 0x330 irq? conflicts
842#device awe0     at isa? port 0x620
843device gus0 at isa? port 0x220 irq 12 drq 1 vector gusintr
844#device gus0 at isa? port 0x220 irq 12 drq 1 flags 0x3 vector gusintr
845device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr
846device opl0     at isa? port 0x388 conflicts
847device mpu0     at isa? port 0x330 irq 6 drq 0
848device uart0 at isa? port 0x330 irq 5 vector "m6850intr"
849
850# More undocumented sound devices with bogus configurations for linting.
851# broken
852#device sscape0  at isa? port 0x330 irq 6 drq 0
853#device trix0    at isa? port 0x330 irq 6 drq 0 vector sscapeintr
854
855# Not controlled by `snd'
856device pca0 at isa? port IO_TIMER1 tty
857
858#
859# Miscellaneous hardware:
860#
861# mcd: Mitsumi CD-ROM
862# scd: Sony CD-ROM
863# matcd: Matsushita/Panasonic CD-ROM
864# wt: Wangtek and Archive QIC-02/QIC-36 tape drives
865# ctx: Cortex-I frame grabber
866# apm: Laptop Advanced Power Management (experimental)
867# spigot: The Creative Labs Video Spigot video-acquisition board
868# meteor: Matrox Meteor video capture board
869# cy: Cyclades serial driver
870# dgb: Digiboard PC/Xi and PC/Xe series driver (ALPHA QUALITY!)
871# gp:  National Instruments AT-GPIB and AT-GPIB/TNT board
872# asc: GI1904-based hand scanners, e.g. the Trust Amiscan Grey
873# gsc: Genius GS-4500 hand scanner.
874# joy: joystick
875# labpc: National Instrument's Lab-PC and Lab-PC+
876# rc: RISCom/8 multiport card
877# tw: TW-523 power line interface for use with X-10 home control products
878# si: Specialix SI/XIO 4-32 port terminal multiplexor
879# stl: Stallion EasyIO and EasyConnection 8/32 (cd1400 based)
880# stli: Stallion EasyConnection 8/64, ONboard, Brumby (intelligent)
881
882#
883# Notes on APM
884#  The flags takes the following meaning for apm0:
885#    0x0020  Statclock is broken.
886#    0x0011  Limit APM protocol to 1.1 or 1.0
887#    0x0010  Limit APM protocol to 1.0
888#
889#
890# Notes on the spigot:
891#  The video spigot is at 0xad6.  This port address can not be changed.
892#  The irq values may only be 10, 11, or 15
893#  I/O memory is an 8kb region.  Possible values are:
894#    0a0000, 0a2000, ..., 0fffff, f00000, f02000, ..., ffffff
895#    The start address must be on an even boundary.
896#  Add the following option if you want to allow non-root users to be able
897#  to access the spigot.  This option is not secure because it allows users
898#  direct access to the I/O page.
899#  	options SPIGOT_UNSECURE
900#
901
902# Notes on the Digiboard driver:
903#
904# The following flag values have special meanings:
905#	0x01 - alternate layout of pins
906#	0x02 - use the windowed PC/Xe in 64K mode
907
908# Notes on the Specialix SI/XIO driver:
909#  **This is NOT a Specialix supported Driver!**
910#  The host card is memory, not IO mapped.
911#  The Rev 1 host cards use a 64K chunk, on a 32K boundary.
912#  The Rev 2 host cards use a 32K chunk, on a 32K boundary.
913#  The cards can use an IRQ of 11, 12 or 15.
914
915# Notes on the Stallion stl and stli drivers:
916#  See src/i386/isa/README.stl for complete instructions.
917#  This is version 0.0.5alpha, unsupported by Stallion.
918#  The stl driver has a secondary IO port hard coded at 0x280.  You need
919#     to change src/i386/isa/stallion.c if you reconfigure this on the boards.
920#  The "flags" and "iosiz" settings on the stli driver depend on the board:
921#	EasyConnection 8/64 ISA:     flags 23         iosiz 0x1000
922#	EasyConnection 8/64 EISA:    flags 24         iosiz 0x10000
923#	EasyConnection 8/64 MCA:     flags 25         iosiz 0x1000
924#	ONboard ISA:                 flags 4          iosiz 0x10000
925#	ONboard EISA:                flags 7          iosiz 0x10000
926#	ONboard MCA:                 flags 3          iosiz 0x10000
927#	Brumby:                      flags 2          iosiz 0x4000
928#	Stallion:                    flags 1          iosiz 0x10000
929
930device		mcd0	at isa? port 0x300 bio irq 10 vector mcdintr
931# for the Sony CDU31/33A CDROM
932device		scd0	at isa? port 0x230 bio
933# for the SoundBlaster 16 multicd - up to 4 devices
934controller      matcd0  at isa? port 0x230 bio
935device		wt0	at isa? port 0x300 bio irq 5 drq 1 vector wtintr
936device		ctx0	at isa? port 0x230 iomem 0xd0000
937device		spigot0 at isa? port 0xad6 irq 15 iomem 0xee000 vector spigintr
938device		qcam0	at isa? port "IO_LPT3" tty
939device		apm0	at isa?
940device		gp0	at isa? port 0x2c0 tty
941device		gsc0	at isa? port "IO_GSC1" tty drq 3
942device		joy0	at isa? port "IO_GAME"
943device		cy0	at isa? tty irq 10 iomem 0xd4000 iosiz 0x2000 vector cyintr
944device		dgb0	at isa? port 0x220 iomem 0xfc0000 iosiz ? tty
945device		labpc0	at isa? port 0x260 tty irq 5 vector labpcintr
946device          rc0     at isa? port 0x220 tty irq 12 vector rcintr
947# the port and irq for tw0 are fictitious
948device          tw0     at isa? port 0x380 tty irq 11 vector twintr
949device		si0	at isa? iomem 0xd0000 tty irq 12 vector siintr
950device		asc0	at isa? port IO_ASC1 tty drq 3 irq 10 vector ascintr
951device		bqu0	at isa? port 0x150
952device		stl0	at isa? port 0x2a0 tty irq 10 vector stlintr
953device		stli0	at isa? port 0x2a0 tty iomem 0xcc000 flags 23 iosiz 0x1000
954
955#
956# EISA devices:
957#
958# The EISA bus device is eisa0.  It provides auto-detection and
959# configuration support for all devices on the EISA bus.
960#
961# The `ahb' device provides support for the Adaptec 174X adapter.
962#
963# The `ahc' device provides support for the Adaptec 274X and 284X
964# adapters.  The 284X, although a VLB card responds to EISA probes.
965#
966# fea: DEC DEFEA EISA FDDI adapter
967#
968controller	eisa0
969controller	ahb0
970controller	ahc0
971device		fea0
972
973# enable tagged command queuing, which is a major performance win on
974# devices that support it (and controllers with enough SCB's)
975options	AHC_TAGENABLE
976
977# enable SCB paging - See the ahc.4 man page
978options	AHC_SCBPAGING_ENABLE
979
980# The aic7xxx driver will attempt to use memory mapped I/O for all PCI
981# controllers that have it configured only if this option is set. Unfortunately,
982# this doesn't work on some motherboards, which prevents it from being the
983# default.
984options AHC_ALLOW_MEMIO
985
986# By default, only 10 EISA slots are probed, since the slot numbers
987# above clash with the configuration address space of the PCI subsystem,
988# and the EISA probe is not very smart about this.  This is sufficient
989# for most machines, but in particular the HP NetServer LC series comes
990# with an onboard AIC7770 dual-channel SCSI controller on EISA slot #11,
991# thus you need to bump this figure to 12 for them.
992options	"EISA_SLOTS=12"
993
994#
995# PCI devices:
996#
997# The main PCI bus device is `pci'.  It provides auto-detection and
998# configuration support for all devices on the PCI bus, using either
999# configuration mode defined in the PCI specification.
1000#
1001# The `ahc' device provides support for the Adaptec 29/3940(U)(W)
1002# and motherboard based AIC7870/AIC7880 adapters.
1003#
1004# The `ncr' device provides support for the NCR 53C810 and 53C825
1005# self-contained SCSI host adapters.
1006#
1007# The `amd' device provides support for the Tekram DC-390 and 390T
1008# SCSI host adapters, but is expected to work with any AMD 53c974
1009# PCI SCSI chip and the AMD Ethernet+SCSI Combo chip, after some
1010# local patches were applied to the sources (that had originally
1011# been written by Tekram and limited to work with their SCSI cards).
1012#
1013# The `de' device provides support for the Digital Equipment DC21040
1014# self-contained Ethernet adapter.
1015#
1016# The `fxp' device provides support for the Intel EtherExpress Pro/100B
1017# PCI Fast Ethernet adapters.
1018#
1019# The `vx' device provides support for the 3Com 3C590 and 3C595
1020# early support
1021#
1022# The `fpa' device provides support for the Digital DEFPA PCI FDDI
1023# adapter. pseudo-device fddi is also needed.
1024#
1025# The `meteor' device is a PCI video capture board. It can also have the
1026# following options:
1027#   options METEOR_ALLOC_PAGES=xxx	preallocate kernel pages for data entry
1028#	figure (ROWS*COLUMN*BYTES_PER_PIXEL*FRAME+PAGE_SIZE-1)/PAGE_SIZE
1029#   options METEOR_DEALLOC_PAGES	remove all allocated pages on close(2)
1030#   options METEOR_DEALLOC_ABOVE=xxx	remove all allocated pages above the
1031#	specified amount. If this value is below the allocated amount no action
1032#	taken
1033#   option METEOR_SYSTEM_DEFAULT={METEOR_PAL|METEOR_NTSC|METEOR_SECAM}, used
1034#	for initialization of fps routine when a signal is not present.
1035#
1036controller	pci0
1037controller	ahc1
1038controller	ncr0
1039controller	amd0
1040device		de0
1041device		fxp0
1042device		vx0
1043device		fpa0
1044device		meteor0
1045
1046
1047#
1048# PCCARD/PCMCIA
1049#
1050# crd: slot controller
1051# pcic: slots
1052controller	crd0
1053controller	pcic0 at crd?
1054controller	pcic1 at crd?
1055
1056#
1057# Laptop/Notebook options:
1058#
1059# See also:
1060#  apm under `Miscellaneous hardware'
1061# above.
1062
1063# For older notebooks that signal a powerfail condition (external
1064# power supply dropped, or battery state low) by issuing an NMI:
1065
1066options		POWERFAIL_NMI	# make it beep instead of panicing
1067
1068#
1069# An obsolete option to test kern_opt.c.
1070#
1071options		GATEWAY
1072
1073# More undocumented options for linting.
1074
1075options		CLK_CALIBRATION_LOOP
1076options		"CLK_USE_I8254_CALIBRATION"
1077options		"CLK_USE_I586_CALIBRATION"
1078options		COMPAT_LINUX
1079options		DEBUG
1080options		DEVFS_ROOT
1081options		"EXT2FS"
1082options		"I586_CTR_GUPROF"
1083options		"I586_PMC_GUPROF=0x70000"
1084options		"IBCS2"
1085options		LOCKF_DEBUG
1086options		KBD_MAXRETRY=4
1087options		KBD_MAXWAIT=6
1088options		KBD_RESETDELAY=201
1089options		KBDIO_DEBUG=2
1090options		MSGMNB=2049
1091options		MSGMNI=41
1092options		MSGSEG=2049
1093options		MSGSSZ=16
1094options		MSGTQL=41
1095options		NBUF=512
1096options		NMBCLUSTERS=1024
1097options		PSM_ACCEL=1
1098options		PSM_DEBUG=1
1099options		PSM_EMULATION
1100options		"SCSI_2_DEF"
1101options		SCSI_DELAY=8	# Be pessimistic about Joe SCSI device
1102options		SCSI_NCR_DEBUG
1103options		SCSI_NCR_DFLT_TAGS=4
1104options		SCSI_NCR_MAX_SYNC=10000
1105options		SCSI_NCR_MAX_WIDE=1
1106options		SCSI_NCR_MYADDR=7
1107options		SEMMAP=31
1108options		SEMMNI=11
1109options		SEMMNS=61
1110options		SEMMNU=31
1111options		SEMMSL=61
1112options		SEMOPM=101
1113options		SEMUME=11
1114options		SHOW_BUSYBUFS	# List buffers that prevent root unmount
1115options		SHMALL=1025
1116options		"SHMMAX=(SHMMAXPGS*PAGE_SIZE+1)"
1117options		SHMMAXPGS=1025
1118options		SHMMIN=2
1119options		SHMMNI=33
1120options		SHMSEG=9
1121options		SI_DEBUG
1122options		SIMPLELOCK_DEBUG
1123options		SPX_HACK
1124