NOTES revision 5096
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.114 1994/12/11 23:52:18 bde 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.  You must also specify
15# at least one CPU (the one you intend to run on); deleting the
16# specification for CPUs you don't need to use may make parts of the
17# system run faster
18#
19machine		"i386"
20cpu		"I386_CPU"
21cpu		"I486_CPU"
22cpu		"I586_CPU"		# a/k/a Pentium(tm)
23
24# 
25# This is the ``identification'' of the kernel.  Usually this should
26# be the same as the name of your kernel.
27#
28ident		LINT
29
30#
31# The `maxusers' parameter controls the static sizing of a number of
32# internal system tables by a complicated formula defined in param.c.
33#
34maxusers	10
35
36#
37# Under some circumstances it is necessary to make the default max
38# number of proccesses per user and open files per user more than the
39# defaults on bootup.  (an example is a large news server in which
40# the uid, news, can sometimes need > 100 simultaneous processes running)
41options		"CHILD_MAX=128"
42options		"OPEN_MAX=128"
43
44#
45# A math emulator is mandatory if you wish to run on hardware which
46# does not have a floating-point processor.  Pick either the original,
47# bogus (but freely-distributable) math emulator, or a much more
48# fully-featured but GPL-licensed emulator taken from Linux.
49#
50options		MATH_EMULATE		#Support for x87 emulation
51#options        GPL_MATH_EMULATE        #Support for x87 emualtion via
52                                        #new math emulator 
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#  - The kernel can swap on wd0b and sd0b, defaulting to the former
59#  - Crash dumps will be written to wd0b, if possible
60#
61config		kernel	root on wd0 swap on wd0 and sd0 dumps on wd0
62
63
64#####################################################################
65# COMPATIBILITY OPTIONS                                             
66
67#
68# Implement system calls compatible with 4.3BSD and older versions of
69# FreeBSD.
70#
71options		"COMPAT_43"
72
73#
74# Allow user-mode programs to manipulat their local descriptor tables.
75# This option is required for the WINE Windows(tm) emulator, and is
76# not used by anything else (that we know of).
77#
78options		USER_LDT		#allow user-level control of i386 ldt
79
80#
81# These three options provide support for System V Interface
82# Definition-style interprocess communication, in the form of shared
83# memory, semaphores, and message queues, respectively.
84#
85options		SYSVSHM
86options		SYSVSEM
87options		SYSVMSG
88
89
90#####################################################################
91# DEBUGGING OPTIONS
92
93#
94# This line enables the kernel debugger, DDB, and the line following
95# allocates extra space for a copy of the debugger symbol table which
96# is stored in the initialized data area of the kernel.  If you change
97# the latter option, remove db_aout.o before compiling.
98#
99options		DODUMP			#We dump core-image on panic
100options		DDB			#Kernel debugger
101options		"SYMTAB_SPACE=159100"	#This kernel needs LOTS of symtable
102
103# 
104# KTRACE enables the system-call tracing facility ktrace(2).
105#
106options		KTRACE			#kernel tracing
107
108#
109# The DIAGNOSTIC option is used in a number of source files to enable
110# extra sanity checking of internal structures.  This support is not
111# enabled by default because of the extra time it would take to check
112# for these conditions, which can only occur as a result of
113# programming errors.
114#
115options		DIAGNOSTIC
116
117
118#####################################################################
119# NETWORKING OPTIONS
120
121#
122# Protocol families:
123#  Only the INET (Internet) family is officially supported in FreeBSD.
124#  Source code for the NS (Xerox Network Service), ISO (OSI), and
125#  CCITT (X.25) families is provided for amusement value, although we
126#  try to ensure that it actually compiles.
127#
128options		INET			#Internet communications protocols
129options		ISO
130options		CCITT			#X.25 network layer
131options		NS			#Xerox NS communications protocols
132options		TPIP			#ISO TP class 4 over IP
133options		TPCONS			#ISO TP class 0 over X.25
134
135#
136# Network interfaces:
137#  The `loop' pseudo-device is mandatory when networking is enabled.
138#  The `ether' pseudo-device provides generic code to handle
139#  Ethernets; it is mandatory when a Ethernet device driver is
140#  configured.
141#  The `sppp' pseudo-device serves a similar role for certain types
142#  of synchronous PPP links (like `cx').
143#  The `sl' pseudo-device implements the Serial Line IP (SLIP) service.
144#  The `ppp' pseudo-device implements the Point-to-Point Protocol.
145#  The `bpfilter' pseudo-device enables the Berkeley Packet Filter.  Be
146#  aware of the legal and administrative consequences of enabling this
147#  option.  The number of devices determines the maximum number of
148#  simultaneous BPF clients programs runnable.
149#
150pseudo-device	ether			#Generic Ethernet
151pseudo-device	sppp			#Generic Synchronous PPP
152pseudo-device	loop			#Network loop back device
153pseudo-device	sl	2		#Serial Line IP
154pseudo-device	ppp	2		#Point-to-point protocol
155pseudo-device	bpfilter	4	#Berkeley packet filter
156
157options		NSIP			#XNS over IP
158options		EON			#ISO CLNP over IP
159options		LLC			#X.25 link layer for Ethernets
160options		HDLC			#X.25 link layer for serial lines
161
162#
163# Internet family options:
164#
165# TCP_COMPAT_42 causes the TCP code to emulate certain bugs present in
166# 4.2BSD.  This option should not be used unless you have a 4.2BSD
167# machine and TCP connections fail.
168#
169# GATEWAY allows the machine to forward packets, and also configures
170# larger static sizes of a number of system tables.
171#
172# MROUTING enables the kernel multicast packet forwarder, which works
173# with mrouted(8).
174#
175# IPFIREWALL enables support for IP firewall construction, in
176# conjunction with the `ipfw' program.  IPFIREWALL_VERBOSE does
177# the obvious thing.
178#
179# ARP_PROXYALL enables global proxy ARP.  Beware!  This can burn
180# your house down!  See netinet/if_ether.c for the gory details.
181# (Eventually there will be a better management interface.)
182#
183options		"TCP_COMPAT_42"		#emulate 4.2BSD TCP bugs
184options		GATEWAY			#internetwork gateway
185options		MROUTING		# Multicast routing
186options         IPFIREWALL              #firewall
187options         IPFIREWALL_VERBOSE      #print information about
188					# dropped packets
189options		ARP_PROXYALL		# global proxy ARP
190
191
192#####################################################################
193# FILESYSTEM OPTIONS
194
195#
196# Only the root, /usr, and /tmp filesystems need be statically
197# compiled; everything else will be automatically loaded at mount
198# time.  (Exception: the UFS family---FFS, MFS, and LFS---cannot
199# currently be demand-loaded.)  Some people still prefer to statically
200# compile other filesystems as well.
201#
202# NB: The LFS, PORTAL, and UNION filesystems are known to be buggy,
203# and WILL panic your system if you attempt to do anything with them.
204# They are included here as an incentive for some enterprising soul to
205# sit down and fix them.
206#
207
208# One of these is mandatory:
209options		FFS			#Fast filesystem
210options		NFS			#Network File System
211
212# The rest are optional:
213options		"CD9660"		#ISO 9660 filesystem
214options		FDESC			#File descriptor filesystem
215options		KERNFS			#Kernel filesystem
216options		LFS			#Log filesystem
217options		MFS			#Memory File System
218options		MSDOSFS			#MS DOS File System
219options		NULLFS			#NULL filesystem
220options		PORTAL			#Portal filesystem
221options		PROCFS			#Process filesystem
222options		UMAPFS			#UID map filesystem
223options		UNION			#Union filesystem
224
225#
226# Disk quotas are supported when this option is enabled.  If you
227# change the value of this option, you must do a `make clean' in your
228# kernel compile directory in order to get a working kernel.
229#
230options		QUOTA			#enable disk quotas
231
232
233#####################################################################
234# SCSI DEVICE CONFIGURATION
235
236#
237# The SCSI subsystem consists of the `base' SCSI code, a number of
238# high-level SCSI device drivers, and the low-level host-adapter
239# device drivers.  The host adapters are listed in the ISA and PCI
240# device configuration sections below.
241#
242# Note that, unlike most similar systems, the FreeBSD SCSI system
243# does not wire a particular device unit number to any specific
244# SCSI bus unit number.  Rather, unit numbers are assigned in the
245# order that the devices are found on the SCSI bus.  (This means that
246# if you remove a disk drive, you may have to rewrite your /etc/fstab
247# file.)  It is expected that this will change for FreeBSD 2.1.
248#
249controller	scbus0	#base SCSI code
250device		ch0	#SCSI media changers
251device		sd0	#SCSI disks
252device		sd1
253device		sd2
254device		sd3
255device		st0	#SCSI tapes
256device		st1
257device		uk0			#unknown scsi devices
258
259#
260# The `cd' (SCSI read-only removable disk) driver is special in that
261# the code dynamically allocates more units as they are required, with
262# no limit (other than memory) to the number available.
263device		cd0	#SCSI CD-ROMs
264
265
266#####################################################################
267# MISCELLANEOUS DEVICES AND OPTIONS
268
269#
270# Of these, only the `log' device is truly mandatory.  The `pty'
271# device usually turns out to be ``effectively mandatory'', as it is
272# required for `telnetd', `rlogind', `screen', `emacs', and `xterm',
273# among others.
274#
275pseudo-device	pty	4	#Pseudo ttys
276pseudo-device	speaker		#Play IBM BASIC-style noises out your speaker
277pseudo-device	log		#Kernel syslog interface (/dev/klog)
278pseudo-device	gzip		#Exec gzipped a.out's
279
280pseudo-device	vn	4	#Vnode driver (turns a file into a device)
281
282
283#####################################################################
284# HARDWARE DEVICE CONFIGURATION
285
286# ISA and EISA devices:
287# Currently there is no separate support for EISA.  There should be.
288# Micro Channel is not supported at all.
289
290#
291# Mandatory ISA devices: isa, sc, npx
292#
293controller	isa0
294
295#
296# Options for `isa':
297#
298# ALLOW_CONFLICT_DRQ suppresses the DMA conflict checks.  This option is
299# not known to be good for anything.
300#
301# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
302# that the PS/2 mouse driver doesn't conflict with the console driver.
303#
304# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
305# that multiple devices can share the same IRQ, provided that the
306# hardware supports it (it usually doesn't).
307#
308# ALLOW_CONFLICT_MEMADDR suppresses the memory address conflict checks.
309# This option is not known to be good for anything.
310#
311# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
312# interrupt controller.  This saves about 1.25 usec for each interrupt.
313# No problems are known to be caused by this option.
314#
315# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
316# interrupt controller.  This saves about 1.25 usec for each interrupt.
317# Automatic EOI is documented not to work for for the slave with the
318# original i8259A, but it works for some clones and some integrated
319# versions.
320#
321# BOUNCE_BUFFERS provides support for ISA DMA on machines with more
322# than 16 megabytes of memory.  It doesn't hurt on other machines.
323# Some broken EISA and VLB hardware may need this, too.
324#
325# DISKSLICE provides support for slicing up a disk into virtual disks.
326# It isn't really ISA-specific, but the on-disk slice table is currently
327# required to be a DOS partition table.
328#
329# DUMMY_NOPS disables extra delays for some bus operations.  The delays
330# are mostly for older systems and aren't used consistently.  Probably
331# works OK on most EISA bus machines.
332#
333# TUNE_1542 enables the automatic ISA bus speed selection for the
334# Adaptec 1542 boards. Does not work for all boards, use it with caution.
335#
336#options	ALLOW_CONFLICT_DRQ
337#options	ALLOW_CONFLICT_IOADDR
338#options	ALLOW_CONFLICT_IRQ
339#options	ALLOW_CONFLICT_MEMADDR
340options		"AUTO_EOI_1"
341#options	"AUTO_EOI_2"
342options		BOUNCE_BUFFERS
343options		DISKSLICE
344#options	DUMMY_NOPS
345#options	TUNE_1542
346
347device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
348
349#
350# Options for `sc':
351#
352# NCONS specifies the number of virtual consoles.  Specification of
353# this value is mandatory.  Due to a compiler bug, when compiling with
354# GCC 2.6.0 this option must be a power of two.
355#
356# FAT_CURSOR specifies the use of a large block cursor rather than the
357# hardware default underline.
358#
359# HARDFONTS allows the driver to load an ISO-8859-1 font to replace
360# the default font in your display adapter's memory.
361#
362# UCONSOLE enables code to let any user get output intended for the
363# console.
364#
365options		"NCONS=8"
366options		"FAT_CURSOR"
367options		HARDFONTS
368options		UCONSOLE
369
370device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr
371
372#
373# Optional ISA and EISA devices:
374#
375
376#
377# SCSI host adapters: `aha', `ahb', `aic', `bt', `pas'
378#
379# aha: Adaptec 154x
380# ahb: Adaptec 174x
381# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
382# bt: Most Buslogic controllers
383# pas: ProAudioSpectrum cards using the NCR 5380 (slow!)
384# uha: UltraStore 14F and 34F
385# sea: Seagate ST01/02 8 bit controller (slow!)
386#
387# Note that the order is important in order for Buslogic cards to be
388# probed correctly.
389#
390
391controller	bt0	at isa? port "IO_BT0" bio irq ? vector btintr
392controller	ahb0	at isa? bio irq ? vector ahbintr
393controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
394controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
395
396controller      aic0    at isa? port 0x340 bio irq 11 vector aicintr
397controller	pas0	at isa? port 0x1f88
398controller	pas1	at isa? port 0x1f84
399controller	pas2	at isa? port 0x1f8c
400controller	pas3	at isa? port 0x1e88
401
402controller	sea0	at isa? bio irq 5 iomem 0xdc000 iosiz 0x2000 vector seaintr
403
404#
405# ST-506, ESDI, and IDE hard disks: `wdc' and `wd'
406#
407# NB: ``Enhanced IDE'' is NOT supported at this time.
408#
409controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
410disk		wd0	at wdc0 drive 0
411disk		wd1	at wdc0 drive 1
412controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
413disk		wd2	at wdc1 drive 0
414disk		wd3	at wdc1 drive 1
415
416#
417# Standard floppy disk controllers and floppy tapes: `fdc', `fd', and `ft'
418#
419controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
420disk		fd0	at fdc0 drive 0
421disk		fd1	at fdc0 drive 1
422tape		ft0	at fdc0 drive 2
423
424#
425# Options for `fd':
426#
427# FDSEEKWAIT selects a non-default head-settle time (i.e., the time to
428# wait after a seek is performed).  The default value (1/32 s) is
429# usually sufficient.  The units are inverse seconds, so a value of 16
430# here means to wait 1/16th of a second; you should choose a power of
431# two.
432#
433options	FDSEEKWAIT="16"
434
435#
436# Other standard PC hardware: `lpt', `mse', `psm', `sio'
437#
438# lpt: printer port
439# mse: Logitech and ATI InPort bus mouse ports
440# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
441# sio: serial ports (see sio(4))
442
443device		lpt0	at isa? port "IO_LPT3" tty irq 7 vector lptintr
444device		mse0	at isa? port 0x23c tty irq 5 vector mseintr
445device		psm0	at isa? port "IO_KBD" tty irq 12 vector psmintr
446device		sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
447
448# Options for sio:
449options		COMCONSOLE		#prefer serial console to video console
450options		COM_MULTIPORT		#code for some cards with shared IRQs
451options		DSI_SOFT_MODEM		#code for DSI Softmodems
452
453#
454# Network interfaces: `cx', `ed', `el', `ep', `ie', `is', `le', `lnc'
455#
456# cx: Cronyx/Sigma multiport sync/async (with Cisco or PPP framing)
457# ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
458# el: 3Com 3C501 (slow!)
459# ep: 3Com 3C509 (buggy)
460# ie: AT&T StarLAN 10 and EN100; 3Com 3C507; unknown NI5210
461# is: Isolan AT 4141-0; Isolink 4110; Novell NE2100
462# le: Digital Equipment EtherWorks 2 and EtherWorks 3 (DEPCA, DE100,
463#     DE101, DE200, DE201, DE202, DE203, DE204, DE205, DE422)
464# lnc: unknown LANCE-based
465# ze: PCMCIA ethernet controller.
466#
467
468device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr
469device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
470device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
471device is0 at isa? port 0x280 net irq 10 drq 7 vector isintr
472device ep0 at isa? port 0x300 net irq 10 vector epintr
473device el0 at isa? port 0x300 net irq 9 vector elintr
474device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
475device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
476#device lnc0 at isa? XXX FILL ME IN
477
478#
479# Audio drivers: `snd', `pca'
480#
481# snd: Voxware sound drivers for various cards (see file `sound.doc')
482# pca: PCM audio through your PC speaker
483#
484# Someday, Voxware configuration will be done properly.
485#
486device snd5 at isa? port 0x330 irq 6 vector mpuintr
487device snd4 at isa? port 0x220 irq 15 drq 6 vector gusintr
488device snd3 at isa? port 0x388 irq 10 drq 6 vector pasintr
489device snd2 at isa? port 0x220 irq 7 drq 1 vector sbintr
490device snd6 at isa? port 0x220 irq 7 drq 5 vector sbintr
491device snd7 at isa? port 0x300
492device snd1 at isa? port 0x388
493
494device pca0 at isa? tty
495
496#
497# Miscellaneous hardware: `mcd', `wt', `ctx', `apm'
498#
499# mcd: Mitsumi CD-ROM
500# wt: Wangtek and Archive QIC-02/QIC-36 tape drives
501# ctx: Cortex-I frame grabber
502# apm: Laptop Advanced Power Management (experimental)
503#
504
505device		mcd0	at isa? port 0x300 bio irq 10 vector mcdintr
506device		wt0	at isa? port 0x300 bio irq 5 drq 1 vector wtintr
507device		ctx0	at isa? port 0x230 iomem 0xd0000
508
509# NB: both lines are required
510device		apm0	at isa?
511options		APM
512
513#
514# PCI devices:
515#
516# The main PCI bus device is `pci'.  It provides auto-detection and
517# configuration support for all devices on the PCI bus, using either
518# configuration mode defined in the PCI specification.
519#
520# The `ncr' device provides support for the NCR 53C810 and 53C825
521# self-contained SCSI host adapters.
522#
523# The `de' device provides support for the Digital Equipment DC21040
524# self-contained Ethernet adapter.
525#
526# The PROBE_VERBOSE option enables a long listing of chip set registers
527# for supported PCI chip sets (currently only intel Saturn and Mercury).
528# 
529controller	pci0
530device		ncr0
531device		de0
532options		PROBE_VERBOSE
533