NOTES revision 4221
193208Smurray#
293208Smurray# LINT -- config file for checking all the sources, tries to pull in
393208Smurray#	as much of the source tree as it can.
493208Smurray#
593208Smurray#	This kernel is NOT MEANT to be runnable!
693208Smurray#
793208Smurray#	$Id: LINT,v 1.105 1994/11/03 15:51:37 jkh Exp $
893208Smurray#
993208Smurray
1093208Smurray#
1193208Smurray# This directive is mandatory; it defines the architecture to be
1293208Smurray# configured for; in this case, the 386 family.  You must also specify
1393208Smurray# at least one CPU (the one you intend to run on); deleting the
1493208Smurray# specification for CPUs you don't need to use may make parts of the
1593208Smurray# system run faster
1693208Smurray#
1793208Smurraymachine		"i386"
1893208Smurraycpu		"I386_CPU"
1993208Smurraycpu		"I486_CPU"
2093208Smurraycpu		"I586_CPU"		# a/k/a Pentium(tm)
2193208Smurray
2293208Smurray# 
2393208Smurray# This is the ``identification'' of the kernel.  Usually this should
2493208Smurray# be the same as the name of your kernel.
2593208Smurray#
2693208Smurrayident		LINT
2793208Smurray
2893208Smurray#
2993208Smurray# The `maxusers' parameter controls the static sizing of a number of
3093208Smurray# internal system tables by a complicated formula defined in param.c.
3193208Smurray#
3293208Smurraymaxusers	10
3393208Smurray
34113764Smurray#
35113764Smurray# A math emulator is mandatory if you wish to run on hardware which
3693208Smurray# does not have a floating-point processor.  Pick either the original,
3793208Smurray# bogus (but freely-distributable) math emulator, or a much more
3893208Smurray# fully-featured but GPL-licensed emulator taken from Linux.
3993208Smurray#
4093208Smurrayoptions		MATH_EMULATE		#Support for x87 emulation
4193208Smurray#options        GPL_MATH_EMULATE        #Support for x87 emualtion via
4293208Smurray                                        #new math emulator 
4393208Smurray
4493208Smurray#
4593208Smurray# This directive defines a number of things:
4693208Smurray#  - The compiled kernel is to be called `kernel'
4793208Smurray#  - The root filesystem might be on partition wd0a
4893208Smurray#  - The kernel can swap on wd0b and sd0b, defaulting to the former
4993208Smurray#  - Crash dumps will be written to wd0b, if possible
5093208Smurray#
5193208Smurrayconfig		kernel	root on wd0 swap on wd0 and sd0 dumps on wd0
5293208Smurray
5393208Smurray
5493208Smurray#####################################################################
55113764Smurray# COMPATIBILITY OPTIONS                                             
5693208Smurray
5793208Smurray#
58113764Smurray# Implement system calls compatible with 4.3BSD and older versions of
5993208Smurray# FreeBSD.
6093208Smurray#
6193208Smurrayoptions		"COMPAT_43"
6293208Smurray
6393208Smurray#
6493208Smurray# Allow user-mode programs to manipulat their local descriptor tables.
6593208Smurray# This option is required for the WINE Windows(tm) emulator, and is
6693208Smurray# not used by anything else (that we know of).
6793208Smurray#
6893208Smurrayoptions		USER_LDT		#allow user-level control of i386 ldt
6993208Smurray
7093208Smurray#
7193208Smurray# These three options provide support for System V Interface
7293208Smurray# Definition-style interprocess communication, in the form of shared
7393208Smurray# memory, semaphores, and message queues, respectively.
74113764Smurray#
7593208Smurrayoptions		SYSVSHM
7693208Smurrayoptions		SYSVSEM
7793208Smurrayoptions		SYSVMSG
7893208Smurray
79113764Smurray
8093208Smurray#####################################################################
8193208Smurray# DEBUGGING OPTIONS
8293208Smurray
8393208Smurray#
8493208Smurray# This line enables the kernel debugger, DDB, and the line following
8593208Smurray# allocates extra space for a copy of the debugger symbol table which
8693208Smurray# is stored in the initialized data area of the kernel.  If you change
8793208Smurray# the latter option, remove db_aout.o before compiling.
8893208Smurray#
8993208Smurrayoptions		DODUMP			#We dump core-image on panic
9093208Smurrayoptions		DDB			#Kernel debugger
9193208Smurrayoptions		"SYMTAB_SPACE=113498"	#This kernel needs LOTS of symtable
9293208Smurray
9393208Smurray# 
9493208Smurray# KTRACE enables the system-call tracing facility ktrace(2).
9593208Smurray#
9693208Smurrayoptions		KTRACE			#kernel tracing
9793208Smurray
9893208Smurray#
9993208Smurray# The DIAGNOSTIC option is used in a number of source files to enable
10093208Smurray# extra sanity checking of internal structures.  This support is not
10193208Smurray# enabled by default because of the extra time it would take to check
10293208Smurray# for these conditions, which can only occur as a result of
10393208Smurray# programming errors.
10493208Smurray#
10593208Smurrayoptions		DIAGNOSTIC
10693208Smurray
10793208Smurray
10893208Smurray#####################################################################
10993208Smurray# NETWORKING OPTIONS
11093208Smurray
11193208Smurray#
11293208Smurray# Protocol families:
11393208Smurray#  Only the INET (Internet) family is officially supported in FreeBSD.
11493208Smurray#  Source code for the NS (Xerox Network Service), ISO (OSI), and
11593208Smurray#  CCITT (X.25) families is provided for amusement value, although we
11693208Smurray#  try to ensure that it actually compiles.
11793208Smurray#
11893208Smurrayoptions		INET			#Internet communications protocols
11993208Smurrayoptions		ISO
12093208Smurrayoptions		CCITT			#X.25 network layer
12193208Smurrayoptions		NS			#Xerox NS communications protocols
12293208Smurrayoptions		TPIP			#ISO TP class 4 over IP
12393208Smurrayoptions		TPCONS			#ISO TP class 0 over X.25
12493208Smurray
12593208Smurray#
12693208Smurray# Network interfaces:
12793208Smurray#  The `loop' pseudo-device is mandatory when networking is enabled.
12893208Smurray#  The `ether' pseudo-device provides generic code to handle
12993208Smurray#  Ethernets; it is mandatory when a Ethernet device driver is
13093208Smurray#  configured.
13193208Smurray#  The `sl' pseudo-device implements the Serial Line IP (SLIP) service.
13293208Smurray#  The `ppp' pseudo-device implements the Point-to-Point Protocol.
13393208Smurray#  The `bpfilter' pseudo-device enables the Berkeley Packet Filter.  Be
13493208Smurray#  aware of the legal and administrative consequences of enabling this
13593208Smurray#  option.  The number of devices determines the maximum number of
13693208Smurray#  simultaneous BPF clients programs runnable.
13793208Smurray#
13893208Smurraypseudo-device	ether			#Generic Ethernet
13993208Smurraypseudo-device	loop			#Network loop back device
14093208Smurraypseudo-device	sl	2		#Serial Line IP
14193208Smurraypseudo-device	ppp	2		#Point-to-point protocol
14293208Smurraypseudo-device	bpfilter	4	#Berkeley packet filter
14393208Smurray
14493208Smurrayoptions		NSIP			#XNS over IP
14593208Smurrayoptions		EON			#ISO CLNP over IP
14693208Smurrayoptions		LLC			#X.25 link layer for Ethernets
14793208Smurrayoptions		HDLC			#X.25 link layer for serial lines
14893208Smurray
149113764Smurray#
150# Internet family options:
151#
152# TCP_COMPAT_42 causes the TCP code to emulate certain bugs present in
153# 4.2BSD.  This option should not be used unless you have a 4.2BSD
154# machine and TCP connections fail.
155#
156# GATEWAY allows the machine to forward packets, and also configures
157# larger static sizes of a number of system tables.
158#
159# MROUTING enables the kernel multicast packet forwarder, which works
160# with mrouted(8).
161#
162# IPFIREWALL enables support for IP firewall construction, in
163# conjunction with the `ipfw' program.  IPFIREWALL_VERBOSE does
164# the obvious thing.
165#
166# ARP_PROXYALL enables global proxy ARP.  Beware!  This can burn
167# your house down!  See netinet/if_ether.c for the gory details.
168# (Eventually there will be a better management interface.)
169#
170options		"TCP_COMPAT_42"		#emulate 4.2BSD TCP bugs
171options		GATEWAY			#internetwork gateway
172options		MROUTING		# Multicast routing
173options         IPFIREWALL              #firewall
174options         IPFIREWALL_VERBOSE      #print information about
175					# dropped packets
176options		ARP_PROXYALL		# global proxy ARP
177
178
179#####################################################################
180# FILESYSTEM OPTIONS
181
182#
183# Only the root, /usr, and /tmp filesystems need be statically
184# compiled; everything else will be automatically loaded at mount
185# time.  (Exception: the UFS family---FFS, MFS, and LFS---cannot
186# currently be demand-loaded.)  Some people still prefer to statically
187# compile other filesystems as well.
188#
189# NB: The LFS, PORTAL, and UNION filesystems are known to be buggy,
190# and WILL panic your system if you attempt to do anything with them.
191# They are included here as an incentive for some enterprising soul to
192# sit down and fix them.
193#
194
195# One of these is mandatory:
196options		FFS			#Fast filesystem
197options		NFS			#Network File System
198
199# The rest are optional:
200options		"CD9660"		#ISO 9660 filesystem
201options		FDESC			#File descriptor filesystem
202options		KERNFS			#Kernel filesystem
203options		LFS			#Log filesystem
204options		MFS			#Memory File System
205options		MSDOSFS			#MS DOS File System
206options		NULLFS			#NULL filesystem
207options		PORTAL			#Portal filesystem
208options		PROCFS			#Process filesystem
209options		UMAPFS			#UID map filesystem
210options		UNION			#Union filesystem
211
212#
213# Disk quotas are supported when this option is enabled.  If you
214# change the value of this option, you must do a `make clean' in your
215# kernel compile directory in order to get a working kernel.
216#
217options		QUOTA			#enable disk quotas
218
219
220#####################################################################
221# SCSI DEVICE CONFIGURATION
222
223#
224# The SCSI subsystem consists of the `base' SCSI code, a number of
225# high-level SCSI device drivers, and the low-level host-adapter
226# device drivers.  The host adapters are listed in the ISA and PCI
227# device configuration sections below.
228#
229# Note that, unlike most similar systems, the FreeBSD SCSI system
230# does not wire a particular device unit number to any specific
231# SCSI bus unit number.  Rather, unit numbers are assigned in the
232# order that the devices are found on the SCSI bus.  (This means that
233# if you remove a disk drive, you may have to rewrite your /etc/fstab
234# file.)  It is expected that this will change for FreeBSD 2.1.
235#
236controller	scbus0	#base SCSI code
237device		ch0	#SCSI media changers
238device		sd0	#SCSI disks
239device		sd1
240device		sd2
241device		sd3
242device		st0	#SCSI tapes
243device		st1
244device		uk0			#unknown scsi devices
245
246#
247# The `cd' (SCSI read-only removable disk) driver is special in that
248# the code dynamically allocates more units as they are required, with
249# no limit (other than memory) to the number available.
250device		cd0	#SCSI CD-ROMs
251
252
253#####################################################################
254# MISCELLANEOUS DEVICES AND OPTIONS
255
256#
257# Of these, only the `log' device is truly mandatory.  The `pty'
258# device usually turns out to be ``effectively mandatory'', as it is
259# required for `telnetd', `rlogind', `screen', `emacs', and `xterm',
260# among others.
261#
262pseudo-device	pty	4	#Pseudo ttys
263pseudo-device	speaker		#Play IBM BASIC-style noises out your speaker
264pseudo-device	log		#Kernel syslog interface (/dev/klog)
265pseudo-device	gzip		#Exec gzipped a.out's
266
267
268#####################################################################
269# HARDWARE DEVICE CONFIGURATION
270
271# ISA and EISA devices:
272# Currently there is no separate support for EISA.  There should be.
273# Micro Channel is not supported at all.
274
275#
276# Mandatory ISA devices: isa, sc, npx
277#
278controller	isa0
279
280#
281# Options for `isa':
282#
283# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
284# that the PS/2 mouse driver doesn't conflict with the console driver.
285#
286# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
287# that multiple devices can share the same IRQ, provided that the
288# hardware supports it (it usually doesn't).
289#
290# BOUNCE_BUFFERS provides support for ISA DMA on machines with more
291# than 16 megabytes of memory.  It doesn't hurt on other machines.
292# Some broken EISA and VLB hardware may need this, too.
293#options	ALLOW_CONFLICT_IOADDR
294#options	ALLOW_CONFLICT_IRQ
295options		BOUNCE_BUFFERS
296
297device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
298
299#
300# Options for `sc':
301#
302# NCONS specifies the number of virtual consoles.  Specification of
303# this value is mandatory.  Due to a compiler bug, when compiling with
304# GCC 2.6.0 this option must be a power of two.
305#
306# FAT_CURSOR specifies the use of a large block cursor rather than the
307# hardware default underline.
308#
309# HARDFONTS allows the driver to load an ISO-8859-1 font to replace
310# the default font in your display adapter's memory.
311#
312# UCONSOLE enables code to let any user get output intended for the
313# console.
314#
315options		"NCONS=8"
316options		"FAT_CURSOR"
317options		HARDFONTS
318options		UCONSOLE
319
320device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr
321
322#
323# Optional ISA and EISA devices:
324#
325
326#
327# SCSI host adapters: `aha', `ahb', `aic', `bt', `pas'
328#
329# aha: Adaptec 154x
330# ahb: Adaptec 174x
331# aic: Adaptec 152x and sound cards using the Adaptec AIC-6360 (slow!)
332# bt: Most Buslogic controllers
333# pas: ProAudioSpectrum cards using the NCR 5380 (slow!)
334# uha: UltraStore 14F and 34F
335# sea: Seagate ST01/02 8 bit controller (slow!)
336#
337# Note that the order is important in order for Buslogic cards to be
338# probed correctly.
339#
340
341controller	bt0	at isa? port "IO_BT0" bio irq ? vector btintr
342controller	ahb0	at isa? bio irq ? vector ahbintr
343controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
344controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
345
346controller      aic0    at isa? port 0x340 bio irq 11 vector aicintr
347controller	pas0	at isa? port 0x1f88
348controller	pas1	at isa? port 0x1f84
349controller	pas2	at isa? port 0x1f8c
350controller	pas3	at isa? port 0x1e88
351
352controller	sea0	at isa? bio irq 5 iomem 0xdc000 iosiz 0x2000 vector seaintr
353
354#
355# ST-506, ESDI, and IDE hard disks: `wdc' and `wd'
356#
357# NB: ``Enhanced IDE'' is NOT supported at this time.
358#
359controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
360disk		wd0	at wdc0 drive 0
361disk		wd1	at wdc0 drive 1
362controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
363disk		wd2	at wdc1 drive 0
364disk		wd3	at wdc1 drive 1
365
366#
367# Standard floppy disk controllers and floppy tapes: `fdc', `fd', and `ft'
368#
369controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
370disk		fd0	at fdc0 drive 0
371disk		fd1	at fdc0 drive 1
372tape		ft0	at fdc0 drive 2
373
374#
375# Options for `fd':
376#
377# FDSEEKWAIT selects a non-default head-settle time (i.e., the time to
378# wait after a seek is performed).  The default value (1/32 s) is
379# usually sufficient.  The units are inverse seconds, so a value of 16
380# here means to wait 1/16th of a second; you should choose a power of
381# two.
382#
383options	FDSEEKWAIT="16"
384
385#
386# Other standard PC hardware: `lpt', `mse', `psm', `sio'
387#
388# lpt: printer port
389# mse: Logitech and ATI InPort bus mouse ports
390# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
391# sio: serial ports (see sio(4))
392
393device		lpt0	at isa? port "IO_LPT3" tty irq 7 vector lptintr
394device		mse0	at isa? port 0x23c tty irq 5 vector mseintr
395device		psm0	at isa? port "IO_KBD" tty irq 12 vector psmintr
396device		sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
397
398# Options for sio:
399options		DSI_SOFT_MODEM		#code for DSI Softmodems
400
401#
402# Network interfaces: `ed', `el', `ep', `ie', `is', `le', `lnc'
403#
404# ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
405# el: 3Com 3C501 (slow!)
406# ep: 3Com 3C509 (buggy)
407# ie: AT&T StarLAN 10 and EN100; 3Com 3C507; unknown NI5210
408# is: Isolan AT 4141-0; Isolink 4110; Novell NE2100
409# le: Digital Equipment EtherWorks 2 and EtherWorks 3 (DEPCA, DE100,
410#     DE101, DE200, DE201, DE202, DE203, DE204, DE205, DE422)
411# lnc: unknown LANCE-based
412#
413
414device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
415device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
416device is0 at isa? port 0x280 net irq 10 drq 7 vector isintr
417device ep0 at isa? port 0x300 net irq 10 vector epintr
418device el0 at isa? port 0x300 net irq 9 vector elintr
419device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
420#device lnc0 at isa? XXX FILL ME IN
421
422#
423# Audio drivers: `snd', `pca'
424#
425# snd: Voxware sound drivers for various cards (see file `sound.doc')
426# pca: PCM audio through your PC speaker
427#
428# Someday, Voxware configuration will be done properly.
429#
430device snd5 at isa? port 0x330 irq 6 vector mpuintr
431device snd4 at isa? port 0x220 irq 15 drq 6 vector gusintr
432device snd3 at isa? port 0x388 irq 10 drq 6 vector pasintr
433device snd2 at isa? port 0x220 irq 7 drq 1 vector sbintr
434device snd6 at isa? port 0x220 irq 7 drq 5 vector sbintr
435device snd7 at isa? port 0x300
436device snd1 at isa? port 0x388
437
438device pca0 at isa? tty
439
440#
441# Miscellaneous hardware: `mcd', `wt', `ctx', `apm'
442#
443# mcd: Mitsumi CD-ROM
444# wt: Wangtek and Archive QIC-02/QIC-36 tape drives
445# ctx: Cortex-I frame grabber
446# apm: Laptop Advanced Power Management (experimental)
447#
448
449device		mcd0	at isa? port 0x300 bio irq 10 vector mcdintr
450device		wt0	at isa? port 0x300 bio irq 5 drq 1 vector wtintr
451device		ctx0	at isa? port 0x230 iomem 0xd0000
452
453# NB: both lines are required
454device		apm0	at isa?
455options		APM
456
457#
458# PCI devices:
459#
460# The main PCI bus device is `pci'.  It provides auto-detection and
461# configuration support for all devices on the PCI bus, using either
462# configuration mode defined in the PCI specification.
463#
464# The `ncr' device provides support for the NCR 53C810 and 53C825
465# self-contained SCSI host adapters.
466#
467# The `de' device provides support for the Digital Equipment DC21040
468# self-contained Ethernet adapter.
469#
470controller	pci0
471device		ncr0
472device		de0
473