xref: /freebsd/sys/conf/NOTES (revision 417ed37975261df51f61d13e179ad04d8f4839c7)
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.122 1994/12/26 17:33:52 ats 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=163834"	#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#  The `disc' pseudo-device implements a minimal network interface,
150#  which throws away all packets sent and never receives any.  It is
151#  included for testing purposes.
152#
153pseudo-device	ether			#Generic Ethernet
154pseudo-device	sppp			#Generic Synchronous PPP
155pseudo-device	loop			#Network loopback device
156pseudo-device	sl	2		#Serial Line IP
157pseudo-device	ppp	2		#Point-to-point protocol
158pseudo-device	bpfilter	4	#Berkeley packet filter
159pseudo-device	disc			#Discard device
160
161options		NSIP			#XNS over IP
162options		EON			#ISO CLNP over IP
163options		LLC			#X.25 link layer for Ethernets
164options		HDLC			#X.25 link layer for serial lines
165
166#
167# Internet family options:
168#
169# TCP_COMPAT_42 causes the TCP code to emulate certain bugs present in
170# 4.2BSD.  This option should not be used unless you have a 4.2BSD
171# machine and TCP connections fail.
172#
173# GATEWAY allows the machine to forward packets, and also configures
174# larger static sizes of a number of system tables.
175#
176# MROUTING enables the kernel multicast packet forwarder, which works
177# with mrouted(8).
178#
179# IPFIREWALL enables support for IP firewall construction, in
180# conjunction with the `ipfw' program.  IPFIREWALL_VERBOSE does
181# the obvious thing.
182#
183# ARP_PROXYALL enables global proxy ARP.  Beware!  This can burn
184# your house down!  See netinet/if_ether.c for the gory details.
185# (Eventually there will be a better management interface.)
186#
187options		"TCP_COMPAT_42"		#emulate 4.2BSD TCP bugs
188options		GATEWAY			#internetwork gateway
189options		MROUTING		# Multicast routing
190options         IPFIREWALL              #firewall
191options         IPFIREWALL_VERBOSE      #print information about
192					# dropped packets
193options		ARP_PROXYALL		# global proxy ARP
194
195
196#####################################################################
197# FILESYSTEM OPTIONS
198
199#
200# Only the root, /usr, and /tmp filesystems need be statically
201# compiled; everything else will be automatically loaded at mount
202# time.  (Exception: the UFS family---FFS, MFS, and LFS---cannot
203# currently be demand-loaded.)  Some people still prefer to statically
204# compile other filesystems as well.
205#
206# NB: The LFS, PORTAL, and UNION filesystems are known to be buggy,
207# and WILL panic your system if you attempt to do anything with them.
208# They are included here as an incentive for some enterprising soul to
209# sit down and fix them.
210#
211
212# One of these is mandatory:
213options		FFS			#Fast filesystem
214options		NFS			#Network File System
215
216# The rest are optional:
217options		"CD9660"		#ISO 9660 filesystem
218options		FDESC			#File descriptor filesystem
219options		KERNFS			#Kernel filesystem
220options		LFS			#Log filesystem
221options		MFS			#Memory File System
222options		MSDOSFS			#MS DOS File System
223options		NULLFS			#NULL filesystem
224options		PORTAL			#Portal filesystem
225options		PROCFS			#Process filesystem
226options		UMAPFS			#UID map filesystem
227options		UNION			#Union filesystem
228
229#
230# Disk quotas are supported when this option is enabled.  If you
231# change the value of this option, you must do a `make clean' in your
232# kernel compile directory in order to get a working kernel.
233#
234options		QUOTA			#enable disk quotas
235
236
237#####################################################################
238# SCSI DEVICE CONFIGURATION
239
240#
241# The SCSI subsystem consists of the `base' SCSI code, a number of
242# high-level SCSI device drivers, and the low-level host-adapter
243# device drivers.  The host adapters are listed in the ISA and PCI
244# device configuration sections below.
245#
246# Note that, unlike most similar systems, the FreeBSD SCSI system
247# does not wire a particular device unit number to any specific
248# SCSI bus unit number.  Rather, unit numbers are assigned in the
249# order that the devices are found on the SCSI bus.  (This means that
250# if you remove a disk drive, you may have to rewrite your /etc/fstab
251# file.)  It is expected that this will change for FreeBSD 2.1.
252#
253controller	scbus0	#base SCSI code
254device		ch0	#SCSI media changers
255device		sd0	#SCSI disks
256device		st0	#SCSI tapes
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
279pseudo-device	vn		#Vnode driver (turns a file into a device)
280
281
282#####################################################################
283# HARDWARE DEVICE CONFIGURATION
284
285# ISA and EISA devices:
286# Currently there is no separate support for EISA.  There should be.
287# Micro Channel is not supported at all.
288
289#
290# Mandatory ISA devices: isa, sc, npx
291#
292controller	isa0
293
294#
295# Options for `isa':
296#
297# ALLOW_CONFLICT_DRQ suppresses the DMA conflict checks.  This option is
298# not known to be good for anything.
299#
300# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
301# that the PS/2 mouse driver doesn't conflict with the console driver.
302#
303# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
304# that multiple devices can share the same IRQ, provided that the
305# hardware supports it (it usually doesn't).
306#
307# ALLOW_CONFLICT_MEMADDR suppresses the memory address conflict checks.
308# This option is not known to be good for anything.
309#
310# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
311# interrupt controller.  This saves about 1.25 usec for each interrupt.
312# No problems are known to be caused by this option.
313#
314# AUTO_EOI_2 enables the `automatic EOI' feature for the slave 8259A
315# interrupt controller.  This saves about 1.25 usec for each interrupt.
316# Automatic EOI is documented not to work for for the slave with the
317# original i8259A, but it works for some clones and some integrated
318# versions.
319#
320# BOUNCE_BUFFERS provides support for ISA DMA on machines with more
321# than 16 megabytes of memory.  It doesn't hurt on other machines.
322# Some broken EISA and VLB hardware may need this, too.
323#
324# DISKSLICE provides support for slicing up a disk into virtual disks.
325# It isn't really ISA-specific, but the on-disk slice table is currently
326# required to be a DOS partition table.
327#
328# DUMMY_NOPS disables extra delays for some bus operations.  The delays
329# are mostly for older systems and aren't used consistently.  Probably
330# works OK on most EISA bus machines.
331#
332# TUNE_1542 enables the automatic ISA bus speed selection for the
333# Adaptec 1542 boards. Does not work for all boards, use it with caution.
334#
335#options	ALLOW_CONFLICT_DRQ
336#options	ALLOW_CONFLICT_IOADDR
337#options	ALLOW_CONFLICT_IRQ
338#options	ALLOW_CONFLICT_MEMADDR
339options		"AUTO_EOI_1"
340#options	"AUTO_EOI_2"
341options		BOUNCE_BUFFERS
342options		DISKSLICE
343#options	DUMMY_NOPS
344#options	TUNE_1542
345
346device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr
347
348#
349# Options for `sc':
350#
351# NCONS specifies the number of virtual consoles.  Specification of
352# this value is mandatory.  Due to a compiler bug, when compiling with
353# GCC 2.6.0 this option must be a power of two.
354#
355# FAT_CURSOR specifies the use of a large block cursor rather than the
356# hardware default underline.
357#
358# HARDFONTS allows the driver to load an ISO-8859-1 font to replace
359# the default font in your display adapter's memory.
360#
361# UCONSOLE enables code to let any user get output intended for the
362# console.
363#
364options		"NCONS=8"
365options		"FAT_CURSOR"
366options		HARDFONTS
367options		UCONSOLE
368
369device		npx0	at isa? port "IO_NPX" irq 13 vector npxintr
370
371#
372# Optional ISA and EISA devices:
373#
374
375#
376# SCSI host adapters: `aha', `ahb', `aic', `bt', `pas'
377#
378# aha: Adaptec 154x
379# ahb: Adaptec 174x
380# ahc: Adaptec 274x
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	ahc0	at isa? bio irq ? vector ahcintr # port??? iomem?
393controller	ahb0	at isa? bio irq ? vector ahbintr
394controller	aha0	at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
395controller	uha0	at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
396
397controller      aic0    at isa? port 0x340 bio irq 11 vector aicintr
398controller	pas0	at isa? port 0x1f88
399controller	pas1	at isa? port 0x1f84
400controller	pas2	at isa? port 0x1f8c
401controller	pas3	at isa? port 0x1e88
402
403controller	sea0	at isa? bio irq 5 iomem 0xdc000 iosiz 0x2000 vector seaintr
404
405#
406# ST-506, ESDI, and IDE hard disks: `wdc' and `wd'
407#
408# NB: ``Enhanced IDE'' is NOT supported at this time.
409#
410controller	wdc0	at isa? port "IO_WD1" bio irq 14 vector wdintr
411disk		wd0	at wdc0 drive 0
412disk		wd1	at wdc0 drive 1
413controller	wdc1	at isa? port "IO_WD2" bio irq 15 vector wdintr
414disk		wd2	at wdc1 drive 0
415disk		wd3	at wdc1 drive 1
416
417#
418# Standard floppy disk controllers and floppy tapes: `fdc', `fd', and `ft'
419#
420controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
421disk		fd0	at fdc0 drive 0
422disk		fd1	at fdc0 drive 1
423tape		ft0	at fdc0 drive 2
424
425#
426# Options for `fd':
427#
428# FDSEEKWAIT selects a non-default head-settle time (i.e., the time to
429# wait after a seek is performed).  The default value (1/32 s) is
430# usually sufficient.  The units are inverse seconds, so a value of 16
431# here means to wait 1/16th of a second; you should choose a power of
432# two.
433#
434options	FDSEEKWAIT="16"
435
436#
437# Other standard PC hardware: `lpt', `mse', `psm', `sio', etc.
438#
439# lpt: printer port
440# mse: Logitech and ATI InPort bus mouse ports
441# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
442# sio: serial ports (see sio(4))
443# gp:  National Instruments AT-GPIB and AT-GPIB/TNT board
444# gsc: Genius GS-4500 hand scanner.
445
446device		lpt0	at isa? port "IO_LPT3" tty irq 7 vector lptintr
447device		mse0	at isa? port 0x23c tty irq 5 vector mseintr
448device		psm0	at isa? port "IO_KBD" tty irq 12 vector psmintr
449device		sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
450device		gp0	at isa? port 0x2c0 tty
451device		gsc0	at isa? port "IO_GSC1" tty drq 3
452
453# Options for sio:
454options		COMCONSOLE		#prefer serial console to video console
455options		COM_MULTIPORT		#code for some cards with shared IRQs
456options		DSI_SOFT_MODEM		#code for DSI Softmodems
457
458#
459# Network interfaces: `cx', `ed', `el', `ep', `ie', `is', `le', `lnc'
460#
461# cx: Cronyx/Sigma multiport sync/async (with Cisco or PPP framing)
462# ed: Western Digital and SMC 80xx; Novell NE1000 and NE2000; 3Com 3C503
463# el: 3Com 3C501 (slow!)
464# ep: 3Com 3C509 (buggy)
465# ie: AT&T StarLAN 10 and EN100; 3Com 3C507; unknown NI5210
466# is: Isolan AT 4141-0; Isolink 4110; Novell NE2100
467# le: Digital Equipment EtherWorks 2 and EtherWorks 3 (DEPCA, DE100,
468#     DE101, DE200, DE201, DE202, DE203, DE204, DE205, DE422)
469# lnc: unknown LANCE-based
470# ze: PCMCIA ethernet controller.
471#
472
473device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr
474device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
475device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
476device is0 at isa? port 0x280 net irq 10 drq 7 vector isintr
477device ep0 at isa? port 0x300 net irq 10 vector epintr
478device el0 at isa? port 0x300 net irq 9 vector elintr
479device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
480device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
481#device lnc0 at isa? XXX FILL ME IN
482
483#
484# Audio drivers: `snd', `pca'
485#
486# snd: Voxware sound drivers for various cards (see file `sound.doc')
487# pca: PCM audio through your PC speaker
488#
489# Someday, Voxware configuration will be done properly.
490#
491device snd5 at isa? port 0x330 irq 6 vector mpuintr
492device snd4 at isa? port 0x220 irq 15 drq 6 vector gusintr
493device snd3 at isa? port 0x388 irq 10 drq 6 vector pasintr
494device snd2 at isa? port 0x220 irq 7 drq 1 vector sbintr
495device snd6 at isa? port 0x220 irq 7 drq 5 vector sbintr
496device snd7 at isa? port 0x300
497device snd1 at isa? port 0x388
498
499device pca0 at isa? tty
500
501#
502# Miscellaneous hardware: `mcd', `wt', `ctx', `apm'
503#
504# mcd: Mitsumi CD-ROM
505# scd: Sony CD-ROM
506# pcd: Panasonic CD-ROM
507# wt: Wangtek and Archive QIC-02/QIC-36 tape drives
508# ctx: Cortex-I frame grabber
509# apm: Laptop Advanced Power Management (experimental)
510#
511
512device		mcd0	at isa? port 0x300 bio irq 10 vector mcdintr
513# for the soundblaster 16 multicd
514device		scd0	at isa? port 0x230 bio
515# for the soundblaster 16 multicd
516device		pcd0	at isa? port 0x220 bio
517device		wt0	at isa? port 0x300 bio irq 5 drq 1 vector wtintr
518device		ctx0	at isa? port 0x230 iomem 0xd0000
519
520# NB: both lines are required
521device		apm0	at isa?
522options		APM
523
524#
525# PCI devices:
526#
527# The main PCI bus device is `pci'.  It provides auto-detection and
528# configuration support for all devices on the PCI bus, using either
529# configuration mode defined in the PCI specification.
530#
531# The `ncr' device provides support for the NCR 53C810 and 53C825
532# self-contained SCSI host adapters.
533#
534# The `de' device provides support for the Digital Equipment DC21040
535# self-contained Ethernet adapter.
536#
537# The PROBE_VERBOSE option enables a long listing of chip set registers
538# for supported PCI chip sets (currently only intel Saturn and Mercury).
539#
540controller	pci0
541device		ncr0
542device		de0
543options		PROBE_VERBOSE
544