This commit was manufactured by cvs2svn to create tag 'FreeBSD-release/1.1'.
[unix-history] / sys / i386 / doc / options.texi
CommitLineData
49d50d3a
GW
1\input texinfo @c -*- texinfo -*-
2@c %**start of header
3@setfilename options.info
4@settitle Configuration Options for FreeBSD
5@c @setchapternewpage odd
6@c function index is option/pseudo/device names; concept is everything
7@c else
8@syncodeindex fn cp
9@finalout
10@c %**end of header
11
12@ifinfo
c2714ef5 13$Id: options.texi,v 1.5 1994/02/27 18:57:47 wollman Exp $
49d50d3a
GW
14
15This file documents the configuration options available in the FreeBSD
16operating system.
17
18@display
c2714ef5 19Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved.
49d50d3a
GW
20
21Redistribution and use in source and printed forms, with or without
22modification, are permitted provided that the following conditions
23are met:
241. Redistributions of source code must retain the above copyright
25 notice and this list of conditions.
262. Redistributions in printed form must reproduce the above copyright
27 notice, this list of conditions and the following notice of
28 authorship.
29
30Trademarks are property of their respective owners.
31@end display
32@end ifinfo
33
34@titlepage
35@title Configuration Options in FreeBSD
c2714ef5 36@subtitle for FreeBSD 1.1
49d50d3a
GW
37@author Garrett A. Wollman
38@author FreeBSD Project
39
40@page
41@vskip 0pt plus 1filll
42
43i386, i387, and i486 are trademarks of Intel Corporation. SunOS is a
44registered trademark and NFS is a trademark of Sun Microsystems, Inc.
45Ultrix is a registered trademark of Digital Equipment Corporation.
46Xerox is a registered trademark and XNS is a trademark of Xerox
47Corporation. VESA is a trademark of the Video Electronics Standards
c2714ef5 48Association. System V is a registered trademark of Novell Corporation.
49All other trademarks are property of their respective owners. FreeBSD
50is nobody's trademark, and damn proud of it.
49d50d3a 51
c2714ef5 52Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved.
49d50d3a
GW
53
54Redistribution and use in source and printed forms, with or without
55modification, are permitted provided that the following conditions
56are met:
57
58@enumerate
59@item
60Redistributions of source code must retain the above copyright
61notice and this list of conditions.
62
63@item
64Redistributions in printed form must reproduce the above copyright
65notice, this list of conditions and the preceding notice of
66authorship.
67@end enumerate
68@end titlepage
69
70@node Top, Subsystems, (dir), (dir)
71@top FreeBSD Configuration Options
72
73This document describes kernel configuration options relevant to the
c2714ef5 74FreeBSD operating system version 1.1. It is intended for readers who
49d50d3a
GW
75already have a general understanding of the process of configuring a BSD
76kernel and wish to get a general overview of the meaning of various
77configuration options. This document covers configurable options and
78pseudo-devices; it is intended that devices may be added at a later
79date.
80
81@menu
82* Subsystems:: Controlling subsystems.
83* Performance:: Performance enhancement.
84* Devices:: Device-control options.
85* Internals:: Non-user-serviceable parts.
86
87* Index:: General Index.
88@end menu
89
90@node Subsystems, Performance, Top, Top
91@c node,next,prev,up
92
93@chapter Options for Subsystems
94
95This chapter discusses options controlling the inclusion of various
96subsystems in FreeBSD. These include things like filesystems,
97networking modules, and whatnot. Remember that options containing
98underscores must be quoted.
99
100@table @code
101@item pseudo-device bpfilter @var{number}
102@findex bpfilter
103@cindex Berkeley packet filter
104@cindex Network interfaces
105The @samp{bpfilter} pseudo-device is the Berkeley Packet Filter,
106developed by Lawrence Berkeley Labs and based on an earlier packet
107filter from Stanford. See the @samp{bpf} manual page for more details.
108The @var{number} given is the maximum number of simultaneous users
109permitted. (NB: in previous version of BPF, the @var{number} had to be
110greater than the number of interfaces; this space is now dynamically
111allocated so this requirement is no longer present.)
112
49d50d3a
GW
113@item options CCITT
114@findex CCITT
115@cindex X.25
116@cindex Networking domains
117The @samp{CCITT} option enables support for the ITU-T X.25(1980)
118network-layer protocol. Nobody we know has a direct X.25 connection to
119anything, so this code has never been tested.
120
121@item options "COMPAT_42"
122@findex COMPAT_42
123@cindex UDP Checksums
124@cindex Checksums, UDP
125@cindex 4.2 Compatibility
126@cindex Compatibility options
127This option is used to disable UDP checksumming. Under ordinary
128circumstances it should never ever ever be defined; however, if you are
129stuck trying to communicate with an old 4.2BSD machine, or one running
130something derived from 4.2 like SunOS 3.5 or Ultrix 2.0, this may be
131necessary in order to successfully receive UDP packets.
132
133@item options "COMPAT_43"
134@findex COMPAT_43
135@cindex 4.3 Compatibility
136@cindex Compatibility options
137This option controls a whole host of features, mostly relating to
138system-call compatibilty with 4.3BSD. At the present time, it should
139not be turned off, as many utilities and library routines still depend
140on these obsolescent system calls being present. At some future date,
141this will probably be split up into two separate options, one for binary
142compatibility and one for the old but useful system calls.
143
144@item options "DIRECTED_BROADCAST"
145@findex DIRECTED_BROADCAST
146@cindex IP
147@cindex UDP
148If this option is enabled, the kernel will support sending IP broadcast
149packets to subnets other than the one that the machine is on, and when
150forwarding will accept such packets. That is to say, if your host lives
151on subnets @samp{132.198.3} and @samp{132.198.4}, and the
152@samp{132.198.3} side receives a packet addressed to
153@samp{132.198.4.255}, it will forward the packet as a broadcast on that
154subnet.
155
156@item pseudo-device ether
157@findex ether
158@cindex Ethernet
159@cindex Network interfaces
160This pseudo-device provides link-layer support for Ethernet device
161drivers. It is mandatory for all systems which include Ethernet or
162Ethernet-like devices, such as @samp{ed}, @samp{ie}, and @samp{is}.
c2714ef5 163This code is due for a redesign.
49d50d3a
GW
164
165@item options EON
166@itemx pseudo-device eon
167@findex EON
168@cindex ISO 8473 CLNP
169@cindex Network interfaces
170The @samp{eon} network interface supports the ISO 8473
171Connectionless-Mode Network Protocol, tunnelled through IP version 4.
172@samp{eon} interfaces are created automatically once initially
173configured by adding ISO routes with IP destinations. At present, both
174the pseudo-device and option declaration are necessary.
175
176@item options FIFO
177@findex FIFO
178@cindex Named pipes
179This option enables support for System V-- and POSIX-style named pipes
180or fifos.
181
182@item options GATEWAY
183@itemx options IPFORWARDING=@var{value}
184@itemx options IPSENDREDIRECTS=@var{value}
185@findex GATEWAY
186@findex IPFORWARDING
187@findex IPSENDREDIRECTS
188@cindex ICMP
189@cindex IP
190@cindex Network parameters
191These three options control whether FreeBSD's IP forwarding functions
192are enabled. Technically speaking, because FreeBSD does not meet the
193standards set out in the ``Router Requirements'' document (RFC 1009),
194these should not be enabled, but sometimes it is necessary to enable
195this function. The @samp{GATEWAY} option turns on @samp{IPFORWARDING},
196and also controls the sizing of certain system tables. The
197@samp{IPFORWARDING} option controls the initial value of the
198@samp{ipforwarding} kernel variable (default 1 if @samp{GATEWAY}
199defined, 0 otherwise), which controls whether packets are acutally
200forwarded or not; @var{value} should be either @samp{0} or @samp{1}.
201@samp{IPSENDREDIRECTS} controls the initial value of the
202@samp{ipsendredirects} variable (default is one, but should be changed
203to zero); its @var{value} should also be either @samp{0} or @samp{1}.
204
205@item options INET
206@findex INET
207@cindex IP
208@cindex TCP
209@cindex UDP
210@cindex ICMP
211@cindex Networking domains
212This option controls the inclusion of the Internet protocol suite,
213including IP version 4, TCP, UDP, and ICMP. Support for IP multicast,
214IP next generation, and IGMP will be provided at a future date. It is
215not recommended to even attempt to generate a system with this option
216turned off, as many parts of the system depend on Internet networking in
217important and subtle ways.
218
219@item options ISO
220@itemx options TPIP
221@findex ISO
222@findex TPIP
223@cindex ISO 8473 CLNP
224@cindex ISO TP4
225@cindex ISO TP0
226@cindex ISO 9542 ESIS
227@cindex IEEE 802.2 LLC
228@cindex Networking domains
229These options control the inclusion of ISO OSI networking protocols.
230The TPIP option includes just enough support to run ISO Transport
231Protocol class 4 over IP, supporing the @samp{SOCK_SEQPACKET}
232abstraction. The ISO option includes support for CLNP, TP class 0,
233ISO 9542 ESIS, and IEEE 802.2 logical link control class 0 (for CLNP only).
234
235@item options ISOFS
236@findex ISOFS
237@cindex ISO 9660 filesystem
238@cindex CD-ROM
239@cindex Rock Ridge filesystem
240@cindex Filesystems
241The @samp{ISOFS} option enables kernel support for the ISO 9660 CD-ROM
242filesystem, including RockRidge extensions.
243
244@item options "ISO_X25ESIS"
245@findex ISO_X25ESIS
246@cindex ISO 9542 ESIS
247@cindex X.25
248This option controls whether ISO 9542 ESIS is run over ITU-T X.25 link
249layers. This requires the @samp{CCITT} option to be enabled as well.
250
251@item options KTRACE
252@findex KTRACE
253@cindex Kernel tracing
254This option enables the tracing of several classes of internal kernel
255events. See the @samp{ktrace} command for more details.
256
257@item pseudo-device log
258@findex log
259@cindex Kernel message logging
260The @samp{log} pseudo-device provides kernel support to send kernel
261messages to @samp{syslog}. It is mandatory.
262
263@item pseudo-device loop
264@findex loop
265@cindex Network interfaces
266The @samp{loop} pseudo-device provides the trivial network interface.
267It is required when any networking options are enabled.
268
269@item options MACHVMCOMPAT
270@findex MACHVMCOMPAT
271@cindex Mach virtual memory
272This option enables a Mach-compatible interface to the virtual memory
273subsystem, supporting system calls @samp{vm_allocate},
274@samp{vm_deallocate}, @samp{vm_inherit}, and @samp{vm_protect}.
275(Given the nature of the VM system, it is impossible to support a
276Mach-style @samp{vm_region} call, and in every case the `map' argument
277is ignored and replaced with the calling process's own map.)
278
279@item options MFS
280@findex MFS
281@cindex Memory filesystem
282@cindex Filesystems
283This option enables support for the memory filesystem, an in-core
284filesystem which lives in the swap area. Using MFS as a @file{/tmp}
285filesystem can dramatically increase the speed of
286temporary-space-intensive operations such as compilations. See the
196ecb54 287@samp{mount_mfs} manual page for more details.
49d50d3a
GW
288
289@item options NFS
290@findex NFS
291@cindex Network File System
292@cindex Filesystems
293The @samp{NFS} option enables support for Sun's Network File System.
294(Also called ``Nightmare'' or ``Not a''@dots{}.) This presently includes
295both client-- and server-side kernelized NFS support; it may in the
296future be broken into separate options. This NFS implmentation comes to
297BSD courtesy of Rick Macklem of the University of Guelph, and is not
298derived from Sun licensed source code. As a result, there are sometimes
299interoperability problems where the published specification is vague,
300and this option supports several new and useful features compared to
301Sun's. See the @samp{mount} manual page for more details.
302
303@item options NS
304@itemx options NSIP
305@findex NS
306@findex NSIP
307@cindex Xerox Network System
308@cindex XNS IDP
309@cindex XNS SPP
310@cindex Network interfaces
311@samp{NS} controls the inclusion of support for the Xerox Network
312Service protocol family. At the present time, it is not known whether
313this code even works; testers are welcome. The @samp{NSIP} option
314enables encapsulation of XNS IDP over IP.
315
316@item options PANICDELAY
317@itemx options PANICWAIT
318@findex PANICDELAY
319@findex PANICWAIT
320@cindex Kernel panics
321These options control whether the system waits after a panic. This is
322necessary on some systems which do not support crash dumps, so that the
323actual panic message can be read. The @samp{PANICDELAY} option inserts
324a delay of twenty seconds before self-destructing; the @samp{PANICWAIT}
325option instead waits for a key to be pressed on the console.
326
327@item options PCFS
328@findex PCFS
329@cindex MS-DOS filesystem
330@cindex Filesystems
331This option controls support for mounting MS-DOS disks and disk
332partitions under FreeBSD. The @samp{pcfs} manual page is presently very
333bogus.
334
335@item pseudo-device ppp @var{number}
336@findex ppp
337@cindex Point-To-Point Protocol
338@cindex Network interfaces
339The @samp{ppp} pseudo-device provides support for the Internet
340Point-to-Point protocol (RFC 1351 @i{et seq}), implemented as a line
341discipline over standard serial links. @var{number} should be the
342number of simultaneous PPP interfaces which will be configured.
343
344@item pseudo-device pty @var{number}
345@findex pty
346@cindex Pseudo-terminals
347This pseudo-device provides support for pseudo-ttys, which are required
348for @samp{rlogin}, @samp{telnet}, and @samp{xterm} to operate correctly;
349@var{number} should be set to the total number of these programs you
350expect to have running at any given time. Because pty's are not as yet
351dynamically allocated, and the underlying structures are large, it is
352best to keep this value as small as feasible, until this deficiency is
353remedied.
354
355@item options QUOTA
356@findex QUOTA
357@cindex Disk quotas
358@cindex Filesystems
359The @samp{QUOTA} option enables support for disk quotas. Note that NFS
360quota support is not available.
361
362@item pseudo-device sl @var{number}
363@findex sl
364@cindex Serial Line Internet Protocol
365@cindex SLIP
366@cindex CSLIP
367@cindex IP
368@cindex Network interfaces
369This pseudo-device provides support for the Serial Line Internet
370Protocol (RFC 1055), implemented as a line discipline over standard
371serial links. It includes support for Van Jacobson header compression.
372@var{number} should be the number of simultaneous SLIP interfaces which
373will be configured. See also the @samp{slattach} manual page.
374
375@item options SYSVSHM
c2714ef5 376@item options SYSVSEM
377@item options SYSVMSG
49d50d3a
GW
378@itemx options SHMMAXPGS=@var{value}
379@findex SYSVSHM
c2714ef5 380@findex SYSVSEM
381@findex SYSVMSG
49d50d3a
GW
382@findex SHMMAXPGS
383@cindex System V shared memory
c2714ef5 384@cindex System V semaphores
385@cindex System V message queues
386@cindex System V IPC
387@cindex Shared memory, System V
388@cindex Semaphores, System V
389@cindex Message queues, System V
390@cindex IPC, System V
49d50d3a
GW
391The @samp{SYSVSHM} option enables kernel-side emulation of System
392V-compatible shared memory. The @samp{SHMMAXPGS} option (default 64
393pages or 256K) determines the maximum amount of shared memory available
c2714ef5 394under this mechanism. The @samp{SYSVSEM} option provides emulation of
395System V-compatible semaphores, and likewise @samp{SYSVMSG} for message
396queues.
49d50d3a
GW
397
398@item options RMP
399@findex RMP
400@cindex Remote maintenance protocol
401@cindex Networking domains
402This option should control the inclusion of support for HP's remote
403maintenance protocol, but the source code is not included in FreeBSD at
404present, so enabling it will not result in any good.
405
406@item pseudo-device tb
407@findex tb
408@cindex Tablet line discipline
409The @samp{tb} pseudo-device provides support for the `tablet' line
410discipline. Nobody on the FreeBSD team actually has one of the tablets
411in question, so we have no idea if this actually works or not. It may
412not even compile.
413
414@item options "TCP_COMPAT_42"
415@findex TCP_COMPAT_42
416@cindex 4.2 Compatibility
417@cindex Compatibility options
418@cindex TCP
419This option controls the perpetuation of several bugs inherited from the
4204.2BSD implementation of TCP. It should only be defined in the
421circumstances outlined for @samp{COMPAT_42}, above.
422
423@item pseudo-device tun
424@findex tun
425@cindex Network interfaces
426The @samp{tun} driver provides a network interface which is attached to
427a character device. In this way, a user-mode program can grab packets
428out of the networking system, fiddle with them or move them around, and
429pass stuff packets back up into the kernel. It is not known if this
430device either compiles or operates correctly, although it was believed
431to do both at some time in the past.
432
433@item options UCONSOLE
434@findex UCONSOLE
435@cindex Console redirection
436This option allows any old user to grab kernel output away from the
437console and send it to the tty of their choice. It presents an
438incredile security hole for some systems, but is necessary in order to
439allow programs like @samp{xconsole} to operate. (The alternative,
440making @samp{xconsole} set-uid root, opens the exact same security
441hole.)
442
443@item options XE
444@findex XE
445@cindex X.25
446@cindex IEEE 802.2 LLC
447@cindex Network interfaces
448@cindex Ethernet
449This option should control the inclusion of support for running X.25
450over IEEE 802.2 LLC class 2, but that code was not included in the
451Networking/2 release, so enabling it will disable kernel compilation.
452Requires @samp{CCITT}.
453
454@item options XSERVER
455@findex XSERVER
456@cindex X Window System
457This obsolescent option enables support in the @samp{pc} console
458driver for certain operations required by the XFree86 server.
459@end table
460
461@node Performance, Devices, Subsystems, Top
462@c node,next,prev,up
463
464@chapter Performace and Debugging Options
465
466The following options are provided for system performace optimization.
467Note that kernel profiling is supported via the @samp{-p} option to the
468@samp{config} command; for more information see the @samp{config} manual
469page.
470
471@table @code
472@item psuedo-device ddb
473@findex ddb
474@cindex Kernel debugger
475@cindex Debugger, kernel
476This option enables the @samp{ddb} debugger, taken from Mach. See the
477@samp{ddb} and @samp{dbsym} manual pages for more information on the use
478of this debugger.
479
480@item options DIAGNOSTIC
49d50d3a
GW
481@itemx options NAMEI_DIAGNOSTIC
482@itemx options PARANOID
483@findex DIAGNOSTIC
49d50d3a
GW
484@findex NAMEI_DIAGNOSTIC
485@findex PARANOID
486@cindex Debugging options
487These debugging options reduce performace. They are intended to enable
488certain internal consistency checks which are not supposed to fail
489during correct operation, and so are normally disabled for performace
490reasons.
491
492@item options FASTLINKS
493@findex FASTLINKS
494@cindex Symbolic links
495@cindex Filesystems
496The @samp{FASTLINKS} option enables the creation of symbolic links whose
497target names reside entirely within the i-node of the link, when
498possible. This results in faster access for those links which are short
499enough (in practice, most of them). All kernels can read such links,
500but only @samp{FASTLINKS} kernels will create them, for compatibility
501with older kernels lacking such support.
502
503@item options ICMPPRINTFS
504@findex ICMPPRINTFS
505@cindex Debugging options
506@cindex ICMP
507This option is defined to allow debugging of ICMP (@dfn{Internet Control
508Message Protocol}) packets in the kernel. When defined and the
509@samp{icmpprintfs} kernel variable (default false) is set to true, ICMP
510packets will be printed out to the console when received. Note that it
511is probably better to use @samp{tcpdump} for this kind of debugging.
512
513@item options KGDB
514@findex KGDB
515@cindex Kernel debugger
516@cindex Debugger, kernel
517@cindex Remote debugging
518The @samp{KGDB} option enables certain bits of kernel code which will
519eventually be able to talk to a remote copy of the @samp{gdb} debugger
520over a serial connection. The present code does not work, but users are
521invited to hack on it and contribute the changes back to the FreeBSD
522team.
523
524@item options MCLSHIFT=@var{value}
525@findex MCLSHIFT
526@cindex Network parameters
527This option controls the number of bytes in an mbuf cluster, which is
528one of the basic units through which network data is managed. It is
529equal to the log base two of @samp{MCLBYTES}, the size of an mbuf
530cluster, and defaults to eleven (for an @samp{MCLBYTES} of 2048). It
531will likely eventually be bumped up to twelve (4096), so that the
532network code can take advantage of page flipping to reduce the numer of
533copies necessary.
534
535@item options SUBNETSARELOCAL
536@findex SUBNETSARELOCAL
537@cindex TCP
538@cindex Network parameters
539This option controls whether the TCP system believes that machines on
540other subnets of your network are considered to be ``local'' to your
541host. For most systems, this option should be on (the default); if you
542are directly connected to a class A network, however, then it may need
543to be turned off. (This is true of networks like the MILNET.)
544
545@item options "SYMTAB_SPACE=@var{value}"
546@findex SYMTAB_SPACE
547@cindex Debugger, kernel
548@cindex Kernel debugger
549This obsolescent option controls the amount of space that will be
550statically allocated in the debugger source code to hold the kernel
551symbol table that @samp{dbsym} sticks there. Eventually this will be
552dynamically allocated at load time. The default @var{value} is 63000
553bytes.
554@end table
555
556@node Devices, Internals, Performance, Top
557
558@chapter Device Options
559
560There are different device selections available depending on the type of
561bus present in your computer. We will cover generic FreeBSD devices,
562ISA-bus devices, and EISA-bus devices. A separate section describes the
563devices available in the SCSI subsystem.
564
565@menu
566* Generic:: Devices available in all FreeBSD systems.
567* ISA:: Devices specific to the ISA bus.
568* EISA:: Devices specific to the EISA bus.
569* MCA:: No support for Micro Channel, yet.
570* PCI:: No support for PCI, yet.
571* SCSI:: The SCSI subsystem.
572@end menu
573
574@node Generic, ISA,, Devices
575@section Generic Devices and Options
576
577The following devices and options are available in all FreeBSD
578configurations. In addition to these devices, a selection of ISA
579devices (@pxref{ISA}) is required in order to generate a workable
580system.
581
582@table @code
583@item machine "i386"
584@findex i386
585This mandatory declaration informs the @samp{config} program that you
586are using an i386 or compatible CPU, and enables the selection of all
587the other devices listed here.
588
589@item cpu "I386_CPU"
590@itemx cpu "I486_CPU"
591@findex I386_CPU
592@findex I486_CPU
593These two options control which specific CPUs will be supported by the
594generated kernel. If the kernel detects that it is not running on a CPU
595for which support was enabled, it will panic quickly upon startup. If
596you do not expect to need to run your kernel on an i386 or similar CPU,
597leaving out that support can increase virtual memory system performance.
598
599@item options "MATH_EMULATE"
600@findex MATH_EMULATE
601@cindex Floating-point emulator
602@cindex i387
603When this option is defined, the math coprocessor emulator is compiled
604into the kernel. When it is not defined and the coprocessor is absent,
605programs which use floating-point operations are automatically killed.
606
607@item device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
608@findex npx
609@cindex i386
610The @samp{npx} device provides support for the i387 numeric coprocessor
611and the floating-point portions of the i486 CPU. This will eventually
612be fixed to not require ISA to be configured.
613
614@item pseudo-device speaker
615@findex speaker
616The @samp{speaker} pseudo-device provides support for rudimentary access
617to the PC's speaker via @file{/dev/spkr}. It provides a
618character-device interface which interprets @samp{PLAY} strings similar
619to IBM PC Advanced BASIC, as well as an @samp{ioctl} interface with more
620fine-grained control. See the @samp{spkr} manual page for more
621information.
622@end table
623
624@node ISA, EISA, Generic, Devices
625@section ISA-bus Devices and Options
626
627The following options are specific to ISA-bus devices and systems.
628Since the EISA bus is backwards-compatible with the ISA bus, all these
629options also apply to EISA systems. The same goes for VESA Local Bus
630(VL-Bus) systems.
631
632@table @code
633@item controller isa0
634@findex isa
635This @strong{mandatory} declaration must precede any other devices
636listed in this section. It provides the basic support for the ISA-bus
637glue logic, including DMA and autoconfiguration.
638
639@item controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr
640@findex aha
641@cindex Adaptec 154x
642@cindex SCSI host adaptors
643The @samp{aha} device supports the Adaptec 154x series of SCSI
644controllers, and attempts to support other vendors' controllers which
645claim compatibility with the Adaptec 1542, such as the BusLogic 545.
646This device is included in the @samp{GENERICAH} distribution kernel.
647The @samp{scbus} device (@pxref{SCSI}) is a prerequisite for this
648device.
649
650@item controller bt0 at isa? port "IO_BT0" bio irq 12 vector btintr
651@findex bt
652@cindex Bustek 742
653@cindex SCSI host adaptors
654This device supports the Bustek 742 SCSI controller. It is included in
655the @samp{GENERICBT} distribution kernel; the @samp{scbus} device
656(@pxref{SCSI}) is a prerequisite.
657
658@item options COM_BIDIR
659@findex COM_BIDIR
660@cindex Bi-directional serial ports
661@cindex Serial ports
662This option enables bi-directional support in the @samp{sio} serial
663driver. This option is slated for removal, at which time bi-directional
664support will always be enabled. See the @samp{comcontrol} manual page
665for more information.
666
667@item options COM_MULTIPORT
668@findex COM_MULTIPORT
669@cindex Multi-port serial boards
670@cindex Serial ports
671This option enables support in the @samp{sio} serial driver for certain
672multi-port serial boards.
673
674@item device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
675@itemx device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr
676@findex ed
677@cindex Western Digital 80x3
678@cindex 3Com 3C503
679@cindex Novel NE1000/NE2000
680@cindex Network interfaces
681@cindex Ethernet
682The @samp{ed} network interface driver provides support for the Western
683Digital/SMC 80x3 series, the 3Com 3c503, and Novell NE1000 and NE2000
684series of Ethernet controllers. It automatically detects differences
685among the various versions of these controllers and adapts
686appropriately. The @samp{ed1} line shown is for the Novell boards; the
687@samp{ed0} line is appropriate for all other supported controllers.
688(The Novell controllers cannot be configured to use port 0x280.)
689
c2714ef5 690@item controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
691@itemx disk fd0 at fdc0 drive 0
692@itemx disk fd1 at fdc0 drive 1
693@itemx tape ft0 at fdc0 drive 2
49d50d3a 694@findex fd
c2714ef5 695@findex ft
49d50d3a 696@cindex Floppy disk
c2714ef5 697@cindex Floppy tape
698@cindex QIC-80
699@cindex Tape drives
700@cindex Cartridge tape drives
701@cindex Quarter-Inch-Cartridge (QIC) tape drives
49d50d3a 702@cindex Disk drives
c2714ef5 703The @samp{fdc} driver provides support for the standard PC floppy-disk
704controller. The @samp{fd} sub-driver supports 3.5-- and 5.25-inch
705floppy disks in the standard 360KB, 720KB, 1200KB, 1440KB, and 2880KB
706formats, as well as a number of other formats not supported by DOS. The
707@samp{ft} driver is available for QIC-80 ``floppy tape'' support.
708The drivers support formatting of both tapes and disks. This driver is
709substantially improved from that shipped in previous releases of
710FreeBSD.
49d50d3a
GW
711
712@item device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
713@findex ie
714@cindex AT&T EN100
715@cindex AT&T StarLAN 10
716@cindex Network interfaces
717@cindex Ethernet
718@cindex StarLAN
719This network interface driver provides support for the AT&T StarLAN 10
720and EN100 family of controllers. Note that the configuration specified
721here is not the default configuration, but one which attempts to deal
722with the conflicts that arise in more modern systems. (It is expected
723that this driver will be expanded in the future to support other similar
724cards in the manner of @samp{ed}.)
725
726@item device is0 at isa? port 0x280 net irq 10 drq 7 vector isintr
727@findex is
728@cindex Isolan 4141-0
729@cindex Isolink 4110
730@cindex Ethernet
731@cindex Network interfaces
732The @samp{is} network interface driver supports the Isolan 4141-0 and
733Isolink 4110 Ethernet controllers.
734
735@c @item device ix0 at isa? port 0x320 net irq 10 iomem 0xd0000 iosiz 32768 \
736@c @itemx vector ixintr
737@c @findex ix
738@c @cindex Intel EtherEXPRESS
739@c @cindex Ethernet
740@c @cindex Network interfaces
741@c This device is known to exist, but is not presently in the FreeBSD
742@c source tree. When it is made available, this information will be
743@c updated.
744
745@item device lpa0 at isa? port "IO_LPT1" tty
746@itemx device lpt0 at isa? port "IO_LPT1" tty irq 7 vector lptintr
747@findex lpa
748@findex lpt
749@cindex Parallel printers
750The @samp{lpa} device provides support for the parallel printer driver
751accessed as @file{/dev/lp}. The @samp{lpt} driver provides the same
752functionality, but only works with those printer controllers which
753support interrupt-driven operations. If you receive @samp{ISA strayintr
7547} messages correlated with the use of the @samp{lpa} driver, chances
755are that your controller supports interrupt-driven operation, and you
756should switch to the @samp{lpt} driver.
757
c2714ef5 758The @samp{lpa} driver is obsolete, and will be removed in release 1.2,
759to be replaced by special flags to the @samp{lpt} driver.
760
49d50d3a
GW
761@item device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr
762@findex mcd
763@cindex Mitsumi CD-ROM
764@cindex CD-ROM
c2714ef5 765This device provides support for the Mitsumi non-SCSI CD-ROM drive.
766Performance is known to be quite slow.
49d50d3a
GW
767
768@c mse, anyone?
769
770@item device pc0 at isa? port "IO_KBD" tty irq 1 vector pcrint
771@itemx device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
772@itemx options NCONS=@var{value}
773@itemx options COMCONSOLE
774@findex pc
775@findex sc
776@findex NCONS
777@findex COMCONSOLE
778@cindex Console devices
779@cindex pccons
780@cindex Syscons
781@cindex Virtual consoles
782@cindex X Window System
783The @samp{pc} and @samp{sc} devices provide support for the system
784display and keyboard, which is the default console. There might
785actually be documentation somewhere for both of these. The @samp{sc}
786device requires the @samp{NCONS} option to be defined to some value; it
787represents the number of virtual consoles to be provided by the driver;
788a reasonable value is 8. One of @samp{pc} or @samp{sc} is presently
789required unless @samp{COMSONSOLE} is enabled, in which case a serial
790port is made into the console.
791
792@c sb, anyone?
793
794@item device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
795@itemx device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
796@itemx device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
797@itemx device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
798@findex sio
799@cindex Serial ports
800@cindex National 8250/16450/16550
801@cindex Bi-directional serial ports
802@cindex Multi-port serial boards
803The @samp{sio} driver provides support for high-speed serial
804communications using the standard 8250, 16450, and 16550 UART chips. It
805provides a standard tty interface for these devices as
806@file{/dev/tty@var{unit}}, and, when enabled with the @samp{comcontrol}
807program, a call-out capability as @file{/dev/cua@var{unit}} (@var{unit}
808is two digits, zero-padded in both cases). Certain multi-port systems
809are also supported.
810
811@item device uha0 at isa? port "IO_UHA0" bio irq 14 drq 5 vector uhaintr
812@findex uha
813@cindex Ultrastor 14F
c2714ef5 814@cindex Ultrastor 34F
49d50d3a
GW
815@cindex SCSI host adaptors
816This device supports the Ultrastor 14F and related SCSI controllers. It
817is included in the @samp{GENERICBT} distribution kernel, and requires
c2714ef5 818@samp{scbus} (@pxref{SCSI}) as a prerequisite. The Ultrastor 24F is not
819supported.
49d50d3a 820
c2714ef5 821@item controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
822@itemx disk wd0 at wdc0 drive 0
823@itemx disk wd1 at wdc0 drive 1
49d50d3a
GW
824@findex wd
825@cindex Western Digital WD100x
826@cindex ST-506 hard disks
827@cindex RLL hard disks
828@cindex ESDI hard disks
829@cindex IDE hard disks
830@cindex Disk drives
831The @samp{wd} device supports standard ST-506, RLL, ESDI, and IDE hard
832disks, as controlled by the Western Digital WD100x series of controllers
c2714ef5 833(and compatible hardware). This version is substantially improved from
834that provided in FreeBSD 1.0.
49d50d3a
GW
835
836@item device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr
837@findex wt
838@cindex Archive QIC-02
839@cindex Wangtek QIC-02
840@cindex Cartridge tape drives
c2714ef5 841@cindex QIC-02
842@cindex QIC-36
49d50d3a
GW
843@cindex Tape drives
844@cindex Quarter-Inch-Cartridge (QIC) tape drives
845This driver supports Archive QIC-02 and Wangtek QIC-02 and QIC-36
846cartridge tape controllers.
847@end table
848
849@node EISA, MCA, ISA, Devices
850@section EISA-bus Devices and Options
851
852There is presently only one EISA-specific device driver.
853
854@table @code
855@item controller ahb0 at isa? bio irq 11 vector ahbintr
856@findex ahb
857@cindex Adaptec 174x
858@cindex SCSI host adaptors
859The @samp{ahb} driver provides support for the Adaptec AHA-174x series
860of SCSI controllers. This controller is included in the
861@samp{GENERICAH} distribution kernel, and requires the @samp{scbus}
862driver (@pxref{SCSI}) as a prerequisite.
863@end table
864
865@node MCA, PCI, EISA, Devices
866@section Micro Channel Devices and Options
867
868@cindex Micro Channel Architecture
869We don't support Micro Channel right now. Anyone interested in working
870on Micro Channel support should send mail to
871@samp{FreeBSD-Questions@@freefall.cdrom.com} for information on how to
872help.
873
874@node PCI, SCSI, MCA, Devices
875@section PCI Devices and Options
876
877@cindex PCI
878We don't support PCI, either. Anyone interested in working on PCI
879support should send mail to @samp{FreeBSD-Questions@@freefall.cdrom.com}
880for information on how to help.
881
882@node SCSI,, PCI, Devices
883@section The SCSI Subsystem
884
885The SCSI subsystem consists of a set of adaptor-specific driver
886routines, which were described in the previous sections, and the generic
887SCSI device drivers, which handle the standardized interactions with
888devices on the SCSI bus.
889
49d50d3a
GW
890@c devices: cd, ch, scbus, sd, sg, st
891
892@table @code
893@item device cd0
894@findex cd
895@cindex CD-ROM
896@cindex SCSI devices
897The @samp{cd} device provides support for CD-ROM drives. Only one
898@samp{cd} device need be configured, as the driver automatically
899allocates units for each CD-ROM drive found. Playing of audio CDs is
900also supported, on drives which support it, through @code{ioctl} calls.
901Support for retrieval of CD audio over the SCSI bus is not presently
902available.
903
904@item device ch0
905@findex ch
906@cindex Media changers
907@cindex SCSI devices
908The @samp{ch} driver supports SCSI media changers; this may include
909tape, removable disk, and CD changers. One @samp{ch} device should be
910configured for each changer you expect to support.
911
912@item device scbus0
913@findex scbus
914@cindex SCSI bus management
915This driver forms the core of the SCSI subsystem. It provides the
916device-independent routines that manage SCSI transactions, keep track of
917attached devices, and act as glue between SCSI-device-specific drivers
918and system-specific host adaptors. This device is @emph{mandatory} for
919all SCSI systems.
920
49d50d3a
GW
921@item device sd0
922@findex sd
923@cindex SCSI devices
924@cindex Disk drives
925The @samp{sd} driver provides access to non-removable SCSI disks. One
926@samp{sd} device should be defined for each disk you expect to have
927simultaneously connected to the system.
928
c2714ef5 929@c @item device sg0
930@c @findex sg
931@c @cindex SCSI devices
932@c @cindex Generic SCSI
933@c @cindex Unsupported SCSI devices
934@c This driver provides support for development of user-mode drivers and
935@c other programs which access the SCSI bus directly. One @samp{sg} device
936@c should be defined for each @emph{host adaptor} you have installed in
937@c your system.
49d50d3a
GW
938
939@item device st0
940@findex st
941@cindex SCSI devices
942@cindex Tape drives
943@cindex Quarter-Inch-Cartridge (QIC) tape drives
944The @samp{st} driver supports generic SCSI tape drives. One @samp{st}
945device should be defined for each tape drive you wish to access. See
946the @samp{st} manual page for information about how to manipulate the
947parameters of this device.
c2714ef5 948
949@item device uk0
950@findex uk
951@cindex SCSI devices
952@cindex Unknown SCSI devices
953The @samp{uk} driver provides an attachment point for all otherwise
954unrecognized SCSI devices. You can't actually do anything with such a
955device, except perhaps send it an inquiry command using the @samp{scsi}
956program (q.v.).
49d50d3a
GW
957@end table
958
959@node Internals, Index, Devices, Top
960
961@chapter Internal Use Only
962
963Eventually, this chapter will document some of the kernel manifest
964constants which are not defines, but which can be tweaked in various
965header files.
966
967@node Index,, Internals, Top
968@appendix General Index
969
970Items in @code{typewriter} font are option or device names.
971
972@printindex cp
973
974@bye