NOTES revision 6517
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.144 1995/02/17 02:22:36 phk 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# Enable the kernel debugger.
95#
96options		DDB
97
98#
99# Enable dumping of the kernel image to swap for panics.  This is not
100# the default because writing to misconfigured swap may wipe out file
101# systems.
102#
103options		DODUMP
104
105# 
106# KTRACE enables the system-call tracing facility ktrace(2).
107#
108options		KTRACE			#kernel tracing
109
110#
111# The DIAGNOSTIC option is used in a number of source files to enable
112# extra sanity checking of internal structures.  This support is not
113# enabled by default because of the extra time it would take to check
114# for these conditions, which can only occur as a result of
115# programming errors.
116#
117options		DIAGNOSTIC
118
119#
120# Allow ordinary users to take the console - this is useful for X.
121options		UCONSOLE
122
123
124#####################################################################
125# NETWORKING OPTIONS
126
127#
128# Protocol families:
129#  Only the INET (Internet) family is officially supported in FreeBSD.
130#  Source code for the NS (Xerox Network Service), ISO (OSI), and
131#  CCITT (X.25) families is provided for amusement value, although we
132#  try to ensure that it actually compiles.
133#
134options		INET			#Internet communications protocols
135options		ISO
136options		CCITT			#X.25 network layer
137options		NS			#Xerox NS communications protocols
138options		TPIP			#ISO TP class 4 over IP
139options		TPCONS			#ISO TP class 0 over X.25
140
141#
142# Network interfaces:
143#  The `loop' pseudo-device is mandatory when networking is enabled.
144#  The `ether' pseudo-device provides generic code to handle
145#  Ethernets; it is mandatory when a Ethernet device driver is
146#  configured.
147#  The `sppp' pseudo-device serves a similar role for certain types
148#  of synchronous PPP links (like `cx').
149#  The `sl' pseudo-device implements the Serial Line IP (SLIP) service.
150#  The `ppp' pseudo-device implements the Point-to-Point Protocol.
151#  The `bpfilter' pseudo-device enables the Berkeley Packet Filter.  Be
152#  aware of the legal and administrative consequences of enabling this
153#  option.  The number of devices determines the maximum number of
154#  simultaneous BPF clients programs runnable.
155#  The `disc' pseudo-device implements a minimal network interface,
156#  which throws away all packets sent and never receives any.  It is
157#  included for testing purposes.
158#  The `tun' pseudo-device implements the User Process PPP (iijppp)
159#
160pseudo-device	ether			#Generic Ethernet
161pseudo-device	sppp			#Generic Synchronous PPP
162pseudo-device	loop			#Network loopback device
163pseudo-device	sl	2		#Serial Line IP
164pseudo-device	ppp	2		#Point-to-point protocol
165pseudo-device	bpfilter	4	#Berkeley packet filter
166pseudo-device	disc			#Discard device
167pseudo-device	tun	1		#Tunnel driver(user process ppp)
168
169options		NSIP			#XNS over IP
170options		EON			#ISO CLNP over IP
171options		LLC			#X.25 link layer for Ethernets
172options		HDLC			#X.25 link layer for serial lines
173
174#
175# Internet family options:
176#
177# TCP_COMPAT_42 causes the TCP code to emulate certain bugs present in
178# 4.2BSD.  This option should not be used unless you have a 4.2BSD
179# machine and TCP connections fail.
180#
181# GATEWAY allows the machine to forward packets, and also configures
182# larger static sizes of a number of system tables.
183#
184# MROUTING enables the kernel multicast packet forwarder, which works
185# with mrouted(8).
186#
187# IPFIREWALL enables support for IP firewall construction, in
188# conjunction with the `ipfw' program.  IPFIREWALL_VERBOSE does
189# the obvious thing.
190#
191# ARP_PROXYALL enables global proxy ARP.  Beware!  This can burn
192# your house down!  See netinet/if_ether.c for the gory details.
193# (Eventually there will be a better management interface.)
194#
195options		"TCP_COMPAT_42"		#emulate 4.2BSD TCP bugs
196options		GATEWAY			#internetwork gateway
197options		MROUTING		# Multicast routing
198options         IPFIREWALL              #firewall
199options         IPFIREWALL_VERBOSE      #print information about
200					# dropped packets
201options		ARP_PROXYALL		# global proxy ARP
202
203
204#####################################################################
205# FILESYSTEM OPTIONS
206
207#
208# Only the root, /usr, and /tmp filesystems need be statically
209# compiled; everything else will be automatically loaded at mount
210# time.  (Exception: the UFS family---FFS, MFS, and LFS---cannot
211# currently be demand-loaded.)  Some people still prefer to statically
212# compile other filesystems as well.
213#
214# NB: The LFS, PORTAL, and UNION filesystems are known to be buggy,
215# and WILL panic your system if you attempt to do anything with them.
216# They are included here as an incentive for some enterprising soul to
217# sit down and fix them.
218#
219
220# One of these is mandatory:
221options		FFS			#Fast filesystem
222options		NFS			#Network File System
223
224# The rest are optional:
225options		"CD9660"		#ISO 9660 filesystem
226options		FDESC			#File descriptor filesystem
227options		KERNFS			#Kernel filesystem
228options		LFS			#Log filesystem
229options		MFS			#Memory File System
230options		MSDOSFS			#MS DOS File System
231options		NULLFS			#NULL filesystem
232options		PORTAL			#Portal filesystem
233options		PROCFS			#Process filesystem
234options		UMAPFS			#UID map filesystem
235options		UNION			#Union filesystem
236
237#
238# Disk quotas are supported when this option is enabled.  If you
239# change the value of this option, you must do a `make clean' in your
240# kernel compile directory in order to get a working kernel.
241#
242options		QUOTA			#enable disk quotas
243
244
245#####################################################################
246# SCSI DEVICE CONFIGURATION
247
248#
249# The SCSI subsystem consists of the `base' SCSI code, a number of
250# high-level SCSI device drivers, and the low-level host-adapter
251# device drivers.  The host adapters are listed in the ISA and PCI
252# device configuration sections below.
253#
254# Note that, unlike most similar systems, the FreeBSD SCSI system
255# does not wire a particular device unit number to any specific
256# SCSI bus unit number.  Rather, unit numbers are assigned in the
257# order that the devices are found on the SCSI bus.  (This means that
258# if you remove a disk drive, you may have to rewrite your /etc/fstab
259# file.)  It is expected that this will change for FreeBSD 2.1.
260#
261controller	scbus0	#base SCSI code
262device		ch0	#SCSI media changers
263device		sd0	#SCSI disks
264device		st0	#SCSI tapes
265device		uk0			#unknown scsi devices
266
267#
268# The `cd' (SCSI read-only removable disk) driver is special in that
269# the code dynamically allocates more units as they are required, with
270# no limit (other than memory) to the number available.
271device		cd0	#SCSI CD-ROMs
272
273
274#####################################################################
275# MISCELLANEOUS DEVICES AND OPTIONS
276
277#
278# Of these, only the `log' device is truly mandatory.  The `pty'
279# device usually turns out to be ``effectively mandatory'', as it is
280# required for `telnetd', `rlogind', `screen', `emacs', and `xterm',
281# among others.
282#
283pseudo-device	pty	16	#Pseudo ttys - can go as high as 64
284pseudo-device	speaker		#Play IBM BASIC-style noises out your speaker
285pseudo-device	log		#Kernel syslog interface (/dev/klog)
286pseudo-device	gzip		#Exec gzipped a.out's
287pseudo-device	vn		#Vnode driver (turns a file into a device)
288pseudo-device	snp	3	#Snoop device - to look at pty/vty/etc..
289
290
291#####################################################################
292# HARDWARE DEVICE CONFIGURATION
293
294# ISA and EISA devices:
295# Currently there is no separate support for EISA.  There should be.
296# Micro Channel is not supported at all.
297
298#
299# Mandatory ISA devices: isa, sc, npx
300#
301controller	isa0
302
303#
304# Options for `isa':
305#
306# ALLOW_CONFLICT_DRQ suppresses the DMA conflict checks.  This option is
307# not known to be good for anything.
308#
309# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
310# that the PS/2 mouse driver doesn't conflict with the console driver.
311#
312# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
313# that multiple devices can share the same IRQ, provided that the
314# hardware supports it (it usually doesn't).
315#
316# ALLOW_CONFLICT_MEMADDR suppresses the memory address conflict checks.
317# This option is not known to be good for anything.
318#
319# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
320# interrupt controller.  This saves about 1.25 usec for each interrupt.
321# No problems are known to be caused by this option.
322#
323# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
324# interrupt controller.  This saves about 1.25 usec for each interrupt.
325# Automatic EOI is documented not to work for for the slave with the
326# original i8259A, but it works for some clones and some integrated
327# versions.
328#
329# BOUNCE_BUFFERS provides support for ISA DMA on machines with more
330# than 16 megabytes of memory.  It doesn't hurt on other machines.
331# Some broken EISA and VLB hardware may need this, too.
332#
333# DISKSLICE provides support for slicing up a disk into virtual disks.
334# It isn't really ISA-specific, but the on-disk slice table is currently
335# required to be a DOS partition table.
336#
337# DUMMY_NOPS disables extra delays for some bus operations.  The delays
338# are mostly for older systems and aren't used consistently.  Probably
339# works OK on most EISA bus machines.
340#
341# TUNE_1542 enables the automatic ISA bus speed selection for the
342# Adaptec 1542 boards. Does not work for all boards, use it with caution.
343#
344#options	ALLOW_CONFLICT_DRQ
345#options	ALLOW_CONFLICT_IOADDR
346#options	ALLOW_CONFLICT_IRQ
347#options	ALLOW_CONFLICT_MEMADDR
348options		"AUTO_EOI_1"
349#options	"AUTO_EOI_2"
350options		BOUNCE_BUFFERS
351options		DISKSLICE
352#options	DUMMY_NOPS
353#options	TUNE_1542
354
355# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
356#device		vt0	at isa? port "IO_KBD" tty irq 1 vector pcrint
357#options		"PCVT_FREEBSD=210"	# pcvt running on FreeBSD 2.1
358
359# The syscons console driver (sco color console compatible) - default.
360device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
361
362#
363# Options for `sc':
364#
365# HARDFONTS allows the driver to load an ISO-8859-1 font to replace
366# the default font in your display adapter's memory.
367#
368options		HARDFONTS
369#
370# MAXCONS is maximum number of virtual consoles, no more than 16
371# default value: 12
372#
373options         "MAXCONS=16"
374
375device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr
376
377#
378# Optional ISA and EISA devices:
379#
380
381#
382# SCSI host adapters: `aha', `ahb', `aic', `bt', `nca'
383#
384# aha: Adaptec 154x
385# ahb: Adaptec 174x
386# ahc: Adaptec 274x
387# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
388# bt: Most Buslogic controllers
389# nca: ProAudioSpectrum cards using the NCR 5380 or Trantor T130
390# uha: UltraStore 14F and 34F
391# sea: Seagate ST01/02 8 bit controller (slow!)
392# wds: Western Digital WD7000 controller (no scatter/gather!).
393#
394# Note that the order is important in order for Buslogic cards to be
395# probed correctly.
396#
397
398controller	bt0	at isa? port "IO_BT0" bio irq ? vector btintr
399controller	ahc0	at isa? bio irq ? vector ahcintr # port??? iomem?
400controller	ahb0	at isa? bio irq ? vector ahbintr
401controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
402controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
403
404controller      aic0    at isa? port 0x340 bio irq 11 vector aicintr
405controller	nca0	at isa? port 0x1f88 bio irq 10 vector ncaintr
406controller	nca1	at isa? port 0x1f84
407controller	nca2	at isa? port 0x1f8c
408controller	nca3	at isa? port 0x1e88
409controller	nca4	at isa? port 0x350 bio irq 5 vector ncaintr
410
411controller	sea0	at isa? bio irq 5 iomem 0xdc000 iosiz 0x2000 vector seaintr
412controller	wds0	at isa? port 0x350 bio irq 15 drq 6 vector wdsintr
413
414#
415# ST-506, ESDI, and IDE hard disks: `wdc' and `wd'
416#
417# NB: ``Enhanced IDE'' is NOT supported at this time.
418#
419controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
420disk		wd0	at wdc0 drive 0
421disk		wd1	at wdc0 drive 1
422controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
423disk		wd2	at wdc1 drive 0
424disk		wd3	at wdc1 drive 1
425
426#
427# Standard floppy disk controllers and floppy tapes: `fdc', `fd', and `ft'
428#
429controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
430disk		fd0	at fdc0 drive 0
431disk		fd1	at fdc0 drive 1
432tape		ft0	at fdc0 drive 2
433
434#
435# Options for `fd':
436#
437# FDSEEKWAIT selects a non-default head-settle time (i.e., the time to
438# wait after a seek is performed).  The default value (1/32 s) is
439# usually sufficient.  The units are inverse seconds, so a value of 16
440# here means to wait 1/16th of a second; you should choose a power of
441# two.
442#
443options	FDSEEKWAIT="16"
444
445#
446# Other standard PC hardware: `lpt', `mse', `psm', `sio', etc.
447#
448# lpt: printer port
449# mse: Logitech and ATI InPort bus mouse ports
450# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
451# sio: serial ports (see sio(4))
452# cy: Cyclades high-speed serial driver (ALPHA QUALITY!)
453# gp:  National Instruments AT-GPIB and AT-GPIB/TNT board
454# gsc: Genius GS-4500 hand scanner.
455# joy: joystick
456
457device		lpt0	at isa? port "IO_LPT3" tty irq 7 vector lptintr
458device		mse0	at isa? port 0x23c tty irq 5 vector mseintr
459device		psm0	at isa? port "IO_KBD" tty irq 12 vector psmintr
460device		sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
461device		gp0	at isa? port 0x2c0 tty
462device		gsc0	at isa? port "IO_GSC1" tty drq 3
463device		joy0	at isa? port "IO_GAME"
464device		cy0	at isa? tty irq 10 iomem 0xd4000 vector cyintr
465
466# Options for sio:
467options		COMCONSOLE		#prefer serial console to video console
468options		COM_MULTIPORT		#code for some cards with shared IRQs
469options		DSI_SOFT_MODEM		#code for DSI Softmodems
470
471#
472# Network interfaces: `cx', `ed', `el', `ep', `ie', `is', `le', `lnc'
473#
474# cx: Cronyx/Sigma multiport sync/async (with Cisco or PPP framing)
475# ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
476# el: 3Com 3C501 (slow!)
477# ep: 3Com 3C509 (buggy)
478# ie: AT&T StarLAN 10 and EN100; 3Com 3C507; unknown NI5210
479# le: Digital Equipment EtherWorks 2 and EtherWorks 3 (DEPCA, DE100,
480#     DE101, DE200, DE201, DE202, DE203, DE204, DE205, DE422)
481# lnc: Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)
482# ze: IBM/National Semiconductor PCMCIA ethernet controller.
483# zp: 3Com PCMCIA Etherlink III (It does not require shared memory for
484#     send/receive operation, but it needs 'iomem' to read/write the
485#     attribute memory)
486#
487
488device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr
489device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
490device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
491device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr
492device ep0 at isa? port 0x300 net irq 10 vector epintr
493device el0 at isa? port 0x300 net irq 9 vector elintr
494device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
495device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
496device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr
497
498
499# ISDN drivers - `isdn'.
500#
501# Uncomment one (and only one) of the following 4 drivers for the appropriate
502# ISDN device you have.  For more information on what's considered appropriate
503# for your given set of circumstances, please read
504# /usr/src/gnu/usr.sbin/docs/INSTALL.  It's a bit sparse at present, but it's
505# the best we have right now.  The snic driver is also disabled at present,
506# waiting for someone to upgrade the driver to 2.0 (it's in /sys/gnu/scsi/).
507#
508device nic0 at isa? port "IO_COM3" iomem 0xe0000 tty irq 9 vector nicintr
509device nnic0 at isa? port 0x150 iomem 0xe0000 tty irq 12 vector nnicintr
510# This one is also temporarily ill - needs an isa_device structure!!
511#controller tel0 at isa? iomem 0xe0000 tty irq 9 vector telintr
512# Don't turn this on unless you're also prepared to fix it! :)
513#device snic0
514
515# These are non-optional for ISDN
516pseudo-device   isdn
517pseudo-device   ii      4
518pseudo-device   ity     4
519pseudo-device   itel    2       
520pseudo-device   ispy    1       
521
522
523#
524# Audio drivers: `snd', `pca'
525#
526# snd: Voxware sound drivers for various cards (see file `sound.doc')
527# pca: PCM audio through your PC speaker
528#
529# Someday, Voxware configuration will be done properly.
530#
531device snd5 at isa? port 0x330 irq 6 vector mpuintr
532device snd4 at isa? port 0x220 irq 15 drq 6 vector gusintr
533device snd3 at isa? port 0x388 irq 10 drq 6 vector pasintr
534device snd2 at isa? port 0x220 irq 7 drq 1 vector sbintr
535device snd6 at isa? port 0x220 irq 7 drq 5 vector sbintr
536device snd7 at isa? port 0x300
537device snd1 at isa? port 0x388
538
539device pca0 at isa? tty
540
541#
542# Miscellaneous hardware: `mcd', `wt', `ctx', `apm'
543#
544# mcd: Mitsumi CD-ROM
545# scd: Sony CD-ROM
546# pcd: Panasonic CD-ROM
547# wt: Wangtek and Archive QIC-02/QIC-36 tape drives
548# ctx: Cortex-I frame grabber
549# apm: Laptop Advanced Power Management (experimental)
550# spigot: The Creative Labs Video Spigot video-aquisition board
551#
552# Notes on the spigot:
553#  The video spigot is at 0xad6.  This port address can not be changed.
554#  The irq values may only be 10, 11, or 15
555#  I/O memory is an 8kb region.  Possible values are:
556#    0a0000, 0a2000, ..., 0fffff, f00000, f02000, ..., ffffff
557#  Note that the start address must be on an even boundary.
558
559device		mcd0	at isa? port 0x300 bio irq 10 vector mcdintr
560# for the soundblaster 16 multicd
561device		scd0	at isa? port 0x230 bio
562# for the soundblaster 16 multicd
563#device		pcd0	at isa? port 0x220 bio
564device		wt0	at isa? port 0x300 bio irq 5 drq 1 vector wtintr
565device		ctx0	at isa? port 0x230 iomem 0xd0000
566device		spigot0 at isa? port 0xad6 irq 15 iomem 0xee000 vector spigintr
567device		apm0	at isa?
568
569#
570# PCI devices:
571#
572# The main PCI bus device is `pci'.  It provides auto-detection and
573# configuration support for all devices on the PCI bus, using either
574# configuration mode defined in the PCI specification.
575#
576# The `ncr' device provides support for the NCR 53C810 and 53C825
577# self-contained SCSI host adapters.
578#
579# The `de' device provides support for the Digital Equipment DC21040
580# self-contained Ethernet adapter.
581#
582# The PROBE_VERBOSE option enables a long listing of chip set registers
583# for supported PCI chip sets (currently only intel Saturn and Mercury).
584# 
585controller	pci0
586device		ncr0
587device		de0
588options		PROBE_VERBOSE
589