summaryrefslogtreecommitdiff
path: root/sys/doc/options.texi
diff options
context:
space:
mode:
Diffstat (limited to 'sys/doc/options.texi')
-rw-r--r--sys/doc/options.texi1074
1 files changed, 1074 insertions, 0 deletions
diff --git a/sys/doc/options.texi b/sys/doc/options.texi
new file mode 100644
index 000000000000..7df30b8b442b
--- /dev/null
+++ b/sys/doc/options.texi
@@ -0,0 +1,1074 @@
+\input texinfo @c -*- texinfo -*-
+@c -----------------------------------------------------------------------
+@c Thus spoke the elders in days long gone by:
+@c How to edit: use an existing entry as template, keep the file sorted
+@c using the most keyword-ish thing. When done, make sure /usr/gnu/bin
+@c is in your path, run "make" and THEN "cvs commit".
+@c -----------------------------------------------------------------------
+@c %**start of header
+@setfilename options.info
+@settitle Configuration Options for FreeBSD
+@c @setchapternewpage odd
+@c function index is option/pseudo/device names; concept is everything
+@c else
+@syncodeindex fn cp
+@finalout
+@c %**end of header
+
+@ifinfo
+$Id: options.texi,v 1.11 1994/06/28 06:10:40 jkh Exp $
+
+This file documents the configuration options available in the FreeBSD
+operating system.
+
+@display
+Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved.
+
+Redistribution and use in source and printed forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice and this list of conditions.
+2. Redistributions in printed form must reproduce the above copyright
+ notice, this list of conditions and the following notice of
+ authorship.
+
+Trademarks are property of their respective owners.
+@end display
+@end ifinfo
+
+@titlepage
+@title Configuration Options in FreeBSD
+@subtitle for FreeBSD 1.1.5
+@author Garrett A. Wollman
+@author FreeBSD Project
+
+@page
+@vskip 0pt plus 1filll
+
+i386, i387, and i486 are trademarks of Intel Corporation. SunOS is a
+registered trademark and NFS is a trademark of Sun Microsystems, Inc.
+Ultrix is a registered trademark of Digital Equipment Corporation.
+Xerox is a registered trademark and XNS is a trademark of Xerox
+Corporation. VESA is a trademark of the Video Electronics Standards
+Association. System V is a registered trademark of Novell Corporation.
+All other trademarks are property of their respective owners. FreeBSD
+is nobody's trademark, and damn proud of it.
+
+Copyright @copyright{} 1993, 1994, Garrett A. Wollman. All rights reserved.
+
+Redistribution and use in source and printed forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+@enumerate
+@item
+Redistributions of source code must retain the above copyright
+notice and this list of conditions.
+
+@item
+Redistributions in printed form must reproduce the above copyright
+notice, this list of conditions and the preceding notice of
+authorship.
+@end enumerate
+@end titlepage
+
+@node Top, Subsystems, (dir), (dir)
+@top FreeBSD Configuration Options
+
+This document describes kernel configuration options relevant to the
+FreeBSD operating system between versions 1.1 and 1.2. It is intended
+for readers who already have a general understanding of the process of
+configuring a BSD kernel and wish to get a general overview of the
+meaning of various configuration options. This document covers
+configurable options and pseudo-devices; it is intended that devices may
+be added at a later date.
+
+@menu
+* Subsystems:: Controlling subsystems.
+* Performance:: Performance enhancement.
+* Devices:: Device-control options.
+* Internals:: Non-user-serviceable parts.
+
+* Index:: General Index.
+@end menu
+
+@node Subsystems, Performance, Top, Top
+@c node,next,prev,up
+
+@chapter Options for Subsystems
+
+This chapter discusses options controlling the inclusion of various
+subsystems in FreeBSD. These include things like filesystems,
+networking modules, and whatnot. Remember that options containing
+underscores must be quoted.
+
+@table @code
+@item pseudo-device bpfilter @var{number}
+@findex bpfilter
+@cindex Berkeley packet filter
+@cindex Network interfaces
+The @samp{bpfilter} pseudo-device is the Berkeley Packet Filter,
+developed by Lawrence Berkeley Labs and based on an earlier packet
+filter from Stanford. See the @samp{bpf} manual page for more details.
+The @var{number} given is the maximum number of simultaneous users
+permitted. (NB: in previous version of BPF, the @var{number} had to be
+greater than the number of interfaces; this space is now dynamically
+allocated so this requirement is no longer present.)
+
+@item options CCITT
+@findex CCITT
+@cindex X.25
+@cindex Networking domains
+The @samp{CCITT} option enables support for the ITU-T X.25(1980)
+network-layer protocol. Nobody we know has a direct X.25 connection to
+anything, so this code has never been tested.
+
+This option will likely be removed in a future release of FreeBSD.
+
+@item options "COMPAT_42"
+@findex COMPAT_42
+@cindex UDP Checksums
+@cindex Checksums, UDP
+@cindex 4.2 Compatibility
+@cindex Compatibility options
+This option is used to disable UDP checksumming. Under ordinary
+circumstances it should never ever ever be defined; however, if you are
+stuck trying to communicate with an old 4.2BSD machine, or one running
+something derived from 4.2 like SunOS 3.5 or Ultrix 2.0, this may be
+necessary in order to successfully receive UDP packets.
+
+This option will be replaced by run-time configuration in a future
+release of FreeBSD.
+
+@item options "COMPAT_43"
+@findex COMPAT_43
+@cindex 4.3 Compatibility
+@cindex Compatibility options
+This option controls a whole host of features, mostly relating to
+system-call compatibilty with 4.3BSD. At the present time, it should
+not be turned off, as many utilities and library routines still depend
+on these obsolescent system calls being present. At some future date,
+this will probably be split up into two separate options, one for binary
+compatibility and one for the old but useful system calls.
+
+@item options "COMPAT_102"
+@findex COMPAT_102
+@cindex FreeBSD 1.0.2 compatibility
+@cindex 1.0.2 Compatibility
+@cindex Compatibility options
+This option, which is not yet implemented, will control whether certain
+entry points which were system calls in FreeBSD 1.0.2 but have been
+replaced with library routines, are supported in the kernel for
+backwards compatiblity.
+
+@item options "DIRECTED_BROADCAST"
+@findex DIRECTED_BROADCAST
+@cindex IP
+@cindex UDP
+If this option is enabled, the kernel will support sending IP broadcast
+packets to subnets other than the one that the machine is on, and when
+forwarding will accept such packets. That is to say, if your host lives
+on subnets @samp{132.198.3} and @samp{132.198.4}, and the
+@samp{132.198.3} side receives a packet addressed to
+@samp{132.198.4.255}, it will forward the packet as a broadcast on that
+subnet.
+
+This option will likely be replaced by run-time configuration in a
+future release of FreeBSD.
+
+@item options "DISKLABEL_UNPROTECTED"
+@findex DISKLABEL_UNPROTECTED
+@cindex disk
+@cindex disklabel
+@cindex rawdisk
+This options disables the checks which normally protects the disklabel from
+being overwritten. This allows dd of=/dev/rwd0d if=file bs=8k to restore
+an diskimage.
+
+@item pseudo-device ether
+@findex ether
+@cindex Ethernet
+@cindex Network interfaces
+This pseudo-device provides link-layer support for Ethernet device
+drivers. It is mandatory for all systems which include Ethernet or
+Ethernet-like devices, such as @samp{ed}, @samp{ie}, and @samp{is}.
+This code is due for a redesign.
+
+@item options EON
+@itemx pseudo-device eon
+@findex EON
+@cindex ISO 8473 CLNP
+@cindex Network interfaces
+The @samp{eon} network interface supports the ISO 8473
+Connectionless-Mode Network Protocol, tunnelled through IP version 4.
+@samp{eon} interfaces are created automatically once initially
+configured by adding ISO routes with IP destinations. At present, both
+the pseudo-device and option declaration are necessary.
+
+This option will likely be removed in a future release of FreeBSD.
+
+@item options FIFO
+@findex FIFO
+@cindex Named pipes
+This option enables support for System V-- and POSIX-style named pipes
+or fifos.
+
+@item options GATEWAY
+@itemx options IPFORWARDING=@var{value}
+@itemx options IPSENDREDIRECTS=@var{value}
+@findex GATEWAY
+@findex IPFORWARDING
+@findex IPSENDREDIRECTS
+@cindex ICMP
+@cindex IP
+@cindex Network parameters
+These three options control whether FreeBSD's IP forwarding functions
+are enabled. Technically speaking, because FreeBSD does not meet the
+standards set out in the ``Router Requirements'' document (RFC 1009),
+these should not be enabled, but sometimes it is necessary to enable
+this function. The @samp{GATEWAY} option turns on @samp{IPFORWARDING},
+and also controls the sizing of certain system tables. The
+@samp{IPFORWARDING} option controls the initial value of the
+@samp{ipforwarding} kernel variable (default 1 if @samp{GATEWAY}
+defined, 0 otherwise), which controls whether packets are acutally
+forwarded or not; @var{value} should be either @samp{0} or @samp{1}.
+@samp{IPSENDREDIRECTS} controls the initial value of the
+@samp{ipsendredirects} variable (default is one, but should be changed
+to zero); its @var{value} should also be either @samp{0} or @samp{1}.
+
+This option will be replaced by run-time configuration in a future
+release of FreeBSD.
+
+@item options INET
+@findex INET
+@cindex IP
+@cindex TCP
+@cindex UDP
+@cindex ICMP
+@cindex Networking domains
+This option controls the inclusion of the Internet protocol suite,
+including IP version 4, TCP, UDP, and ICMP. Support for IP multicast,
+IP next generation, and IGMP will be provided at a future date. It is
+not recommended to even attempt to generate a system with this option
+turned off, as many parts of the system depend on Internet networking in
+important and subtle ways.
+
+@item options ISO
+@itemx options TPIP
+@findex ISO
+@findex TPIP
+@cindex ISO 8473 CLNP
+@cindex ISO TP4
+@cindex ISO TP0
+@cindex ISO 9542 ESIS
+@cindex IEEE 802.2 LLC
+@cindex Networking domains
+These options control the inclusion of ISO OSI networking protocols.
+The TPIP option includes just enough support to run ISO Transport
+Protocol class 4 over IP, supporing the @samp{SOCK_SEQPACKET}
+abstraction. The ISO option includes support for CLNP, TP class 0,
+ISO 9542 ESIS, and IEEE 802.2 logical link control class 0 (for CLNP
+only).
+
+This option will likely be removed in a future release of FreeBSD.
+
+@item options ISOFS
+@findex ISOFS
+@cindex ISO 9660 filesystem
+@cindex CD-ROM
+@cindex Rock Ridge filesystem
+@cindex Filesystems
+The @samp{ISOFS} option enables kernel support for the ISO 9660 CD-ROM
+filesystem, including RockRidge extensions.
+
+@item options "ISO_X25ESIS"
+@findex ISO_X25ESIS
+@cindex ISO 9542 ESIS
+@cindex X.25
+This option controls whether ISO 9542 ESIS is run over ITU-T X.25 link
+layers. This requires the @samp{CCITT} option to be enabled as well.
+
+This option will likely be removed in a future release of FreeBSD.
+
+@item options KTRACE
+@findex KTRACE
+@cindex Kernel tracing
+This option enables the tracing of several classes of internal kernel
+events. See the @samp{ktrace} command for more details. Recommended.
+
+@item pseudo-device log
+@findex log
+@cindex Kernel message logging
+The @samp{log} pseudo-device provides kernel support to send kernel
+messages to @samp{syslog}. It is mandatory.
+
+@item pseudo-device loop
+@findex loop
+@cindex Network interfaces
+The @samp{loop} pseudo-device provides the trivial network interface.
+It is required when any networking options are enabled.
+
+@item options MACHVMCOMPAT
+@findex MACHVMCOMPAT
+@cindex Mach virtual memory
+This option enables a Mach-compatible interface to the virtual memory
+subsystem, supporting system calls @samp{vm_allocate},
+@samp{vm_deallocate}, @samp{vm_inherit}, and @samp{vm_protect}.
+(Given the nature of the VM system, it is impossible to support a
+Mach-style @samp{vm_region} call, and in every case the `map' argument
+is ignored and replaced with the calling process's own map.)
+
+@item options MFS
+@findex MFS
+@cindex Memory filesystem
+@cindex Filesystems
+This option enables support for the memory filesystem, an in-core
+filesystem which lives in the swap area. Using MFS as a @file{/tmp}
+filesystem can dramatically increase the speed of
+temporary-space-intensive operations such as compilations. See the
+@samp{mount_mfs} manual page for more details.
+
+@item options MULTICAST
+@findex MULTICAST
+@cindex Multicast IP
+@cindex Networking
+Enable multicast support for things like vat, nv, etc.
+
+
+@item options MROUTING
+@findex MROUTING
+@cindex Multicast Routing
+@cindex Networking
+Enable multicast routing support (generally goes hand-in-hand with the
+above). See also mrouted(1).
+
+@item options NFS
+@findex NFS
+@cindex Network File System
+@cindex Filesystems
+The @samp{NFS} option enables support for Sun's Network File System.
+(Also called ``Nightmare'' or ``Not a''@dots{}.) This presently includes
+both client-- and server-side kernelized NFS support; it may in the
+future be broken into separate options. This NFS implmentation comes to
+BSD courtesy of Rick Macklem of the University of Guelph, and is not
+derived from Sun licensed source code. As a result, there are sometimes
+interoperability problems where the published specification is vague,
+and this option supports several new and useful features compared to
+Sun's. See the @samp{mount} manual page for more details.
+
+@item options NS
+@itemx options NSIP
+@findex NS
+@findex NSIP
+@cindex Xerox Network System
+@cindex XNS IDP
+@cindex XNS SPP
+@cindex Network interfaces
+@samp{NS} controls the inclusion of support for the Xerox Network
+Service protocol family. At the present time, it is not known whether
+this code even works; testers are welcome. The @samp{NSIP} option
+enables encapsulation of XNS IDP over IP.
+
+These options will likely be removed in a future release of FreeBSD.
+
+@item options "PANIC_REBOOT_WAIT_TIME=@var{time}"
+@findex PANIC_REBOOT_WAIT_TIME
+@cindex Kernel panics
+This option controls how long the system waits after a panic before it
+reboots. If a @var{time} of zero is specified, it reboots immediately;
+otherwise, @var{time} is the number of seconds to wait before rebooting.
+If, during the waiting period, a key is hit on the console, the
+countdown stops and the system will wait for the user to copy down the
+panic message and hit another key before rebooting.
+
+@item options PCFS
+@findex PCFS
+@cindex MS-DOS filesystem
+@cindex Filesystems
+This option controls support for mounting MS-DOS disks and disk
+partitions under FreeBSD. The @samp{pcfs} manual page is presently very
+bogus.
+
+@item pseudo-device ppp @var{number}
+@findex ppp
+@cindex Point-To-Point Protocol
+@cindex Network interfaces
+The @samp{ppp} pseudo-device provides support for the Internet
+Point-to-Point protocol (RFC 1351 @i{et seq}), implemented as a line
+discipline over standard serial links. @var{number} should be the
+number of simultaneous PPP interfaces which will be configured.
+
+@item pseudo-device pty @var{number}
+@findex pty
+@cindex Pseudo-terminals
+This pseudo-device provides support for pseudo-ttys, which are required
+for @samp{rlogin}, @samp{telnet}, and @samp{xterm} to operate correctly;
+@var{number} should be set to the total number of these programs you
+expect to have running at any given time. Because pty's are not as yet
+dynamically allocated, and the underlying structures are large, it is
+best to keep this value as small as feasible, until this deficiency is
+remedied.
+
+@item options QUOTA
+@findex QUOTA
+@cindex Disk quotas
+@cindex Filesystems
+The @samp{QUOTA} option enables support for disk quotas. Note that NFS
+quota support is not available.
+
+@item pseudo-device sl @var{number}
+@findex sl
+@cindex Serial Line Internet Protocol
+@cindex SLIP
+@cindex CSLIP
+@cindex IP
+@cindex Network interfaces
+This pseudo-device provides support for the Serial Line Internet
+Protocol (RFC 1055), implemented as a line discipline over standard
+serial links. It includes support for Van Jacobson header compression.
+@var{number} should be the number of simultaneous SLIP interfaces which
+will be configured. See also the @samp{slattach} manual page.
+
+@item options SYSVSHM
+@item options SYSVSEM
+@item options SYSVMSG
+@itemx options SHMMAXPGS=@var{value}
+@findex SYSVSHM
+@findex SYSVSEM
+@findex SYSVMSG
+@findex SHMMAXPGS
+@cindex System V shared memory
+@cindex System V semaphores
+@cindex System V message queues
+@cindex System V IPC
+@cindex Shared memory, System V
+@cindex Semaphores, System V
+@cindex Message queues, System V
+@cindex IPC, System V
+The @samp{SYSVSHM} option enables kernel-side emulation of System
+V-compatible shared memory. The @samp{SHMMAXPGS} option (default 64
+pages or 256K) determines the maximum amount of shared memory available
+under this mechanism. The @samp{SYSVSEM} option provides emulation of
+System V-compatible semaphores, and likewise @samp{SYSVMSG} for message
+queues.
+
+@item options "TCP_COMPAT_42"
+@findex TCP_COMPAT_42
+@cindex 4.2 Compatibility
+@cindex Compatibility options
+@cindex TCP
+This option controls the perpetuation of several bugs inherited from the
+4.2BSD implementation of TCP. It should only be defined in the
+circumstances outlined for @samp{COMPAT_42}, above.
+
+This option will likely be replaced by run-time configuration in a
+future release of FreeBSD.
+
+@item pseudo-device tun
+@findex tun
+@cindex Network interfaces
+The @samp{tun} driver provides a network interface which is attached to
+a character device. In this way, a user-mode program can grab packets
+out of the networking system, fiddle with them or move them around, and
+pass stuff packets back up into the kernel. It is not known if this
+device either compiles or operates correctly, although it was believed
+to do both at some time in the past.
+
+@item options UCONSOLE
+@findex UCONSOLE
+@cindex Console redirection
+This option allows any old user to grab kernel output away from the
+console and send it to the tty of their choice. It presents an
+incredile security hole for some systems, but is necessary in order to
+allow programs like @samp{xconsole} to operate.
+
+@item options XSERVER
+@findex XSERVER
+@cindex X Window System
+This obsolescent option enables support in the @samp{pc} console
+driver for certain operations required by the XFree86 server.
+@end table
+
+@node Performance, Devices, Subsystems, Top
+@c node,next,prev,up
+
+@chapter Performace and Debugging Options
+
+The following options are provided for system performace optimization.
+Note that kernel profiling is supported via the @samp{-p} option to the
+@samp{config} command; for more information see the @samp{config} manual
+page.
+
+@table @code
+@item psuedo-device ddb
+@findex ddb
+@cindex Kernel debugger
+@cindex Debugger, kernel
+This option enables the @samp{ddb} debugger, taken from Mach. See the
+@samp{ddb} and @samp{dbsym} manual pages for more information on the use
+of this debugger.
+
+@item options DIAGNOSTIC
+@itemx options NAMEI_DIAGNOSTIC
+@itemx options PARANOID
+@findex DIAGNOSTIC
+@findex NAMEI_DIAGNOSTIC
+@findex PARANOID
+@cindex Debugging options
+These debugging options reduce performace. They are intended to enable
+certain internal consistency checks which are not supposed to fail
+during correct operation, and so are normally disabled for performace
+reasons.
+
+@item options FASTLINKS
+@findex FASTLINKS
+@cindex Symbolic links
+@cindex Filesystems
+The @samp{FASTLINKS} option enables the creation of symbolic links whose
+target names reside entirely within the i-node of the link, when
+possible. This results in faster access for those links which are short
+enough (in practice, most of them). All kernels can read such links,
+but only @samp{FASTLINKS} kernels will create them, for compatibility
+with older kernels lacking such support.
+
+@item options ICMPPRINTFS
+@findex ICMPPRINTFS
+@cindex Debugging options
+@cindex ICMP
+This option is defined to allow debugging of ICMP (@dfn{Internet Control
+Message Protocol}) packets in the kernel. When defined and the
+@samp{icmpprintfs} kernel variable (default false) is set to true, ICMP
+packets will be printed out to the console when received. Note that it
+is probably better to use @samp{tcpdump} for this kind of debugging.
+
+@item options KGDB
+@findex KGDB
+@cindex Kernel debugger
+@cindex Debugger, kernel
+@cindex Remote debugging
+The @samp{KGDB} option enables certain bits of kernel code which will
+eventually be able to talk to a remote copy of the @samp{gdb} debugger
+over a serial connection. The present code does not work, but users are
+invited to hack on it and contribute the changes back to the FreeBSD
+team.
+
+@item options MAXMEM=@var{size}
+@findex MAXMEM
+The @samp{MAXMEM} option controls how much memory the kernel will
+recognize on bootup, specified in kilobytes. This may be useful for
+dealing with certain broken attachment busses (or the adapters thereon)
+which are unable to deal with memory beyond a certain address.
+
+@item options SUBNETSARELOCAL
+@findex SUBNETSARELOCAL
+@cindex TCP
+@cindex Network parameters
+This option controls whether the TCP system believes that machines on
+other subnets of your network are considered to be ``local'' to your
+host. For most systems, this option should be on (the default); if you
+are directly connected to a class A network, however, then it may need
+to be turned off. (This is true of networks like the MILNET.)
+
+@item options "SYMTAB_SPACE=@var{value}"
+@findex SYMTAB_SPACE
+@cindex Debugger, kernel
+@cindex Kernel debugger
+This obsolescent option controls the amount of space that will be
+statically allocated in the debugger source code to hold the kernel
+symbol table that @samp{dbsym} sticks there. Eventually this will be
+dynamically allocated at load time. The default @var{value} is 63000
+bytes.
+
+@item options "UPDATE_INTERVAL=@var{value}"
+@findex UPDATE_INTERVAL
+@cindex Update process
+This option controls the wait time between successive @samp{sync}
+operations run by the @samp{update} system process (pid 3). This option
+will be replaced by run-time configuration in a future release of
+FreeBSD.
+
+@item options DUMMY_NOPS
+@findex DUMMY_NOPS
+@cindex Fast i/o bus operations
+This option controls the use of real Nops for bus operations.
+This might break on older systems so should be used with care.
+
+@end table
+
+@node Devices, Internals, Performance, Top
+
+@chapter Device Options
+
+There are different device selections available depending on the type of
+bus present in your computer. We will cover generic FreeBSD devices,
+ISA-bus devices, and EISA-bus devices. A separate section describes the
+devices available in the SCSI subsystem.
+
+@menu
+* Generic:: Devices available in all FreeBSD systems.
+* ISA:: Devices specific to the ISA bus.
+* EISA:: Devices specific to the EISA bus.
+* MCA:: No support for Micro Channel, yet.
+* PCI:: No support for PCI, yet.
+* SCSI:: The SCSI subsystem.
+@end menu
+
+@node Generic, ISA,, Devices
+@section Generic Devices and Options
+
+The following devices and options are available in all FreeBSD
+configurations. In addition to these devices, a selection of ISA
+devices (@pxref{ISA}) is required in order to generate a workable
+system.
+
+@table @code
+@item machine "i386"
+@findex i386
+This mandatory declaration informs the @samp{config} program that you
+are using an i386 or compatible CPU, and enables the selection of all
+the other devices listed here.
+
+@item cpu "I386_CPU"
+@itemx cpu "I486_CPU"
+@findex I386_CPU
+@findex I486_CPU
+These two options control which specific CPUs will be supported by the
+generated kernel. If the kernel detects that it is not running on a CPU
+for which support was enabled, it will panic quickly upon startup. If
+you do not expect to need to run your kernel on an i386 or similar CPU,
+leaving out that support can increase virtual memory system performance.
+
+@item options "MATH_EMULATE"
+@findex MATH_EMULATE
+@cindex Floating-point emulator
+@cindex i387
+When this option is defined, the math coprocessor emulator is compiled
+into the kernel. When it is not defined and the coprocessor is absent,
+programs which use floating-point operations are automatically killed.
+
+@item device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
+@findex npx
+@cindex i386
+The @samp{npx} device provides support for the i387 numeric coprocessor
+and the floating-point portions of the i486 CPU. This will eventually
+be fixed to not require ISA to be configured.
+
+@item pseudo-device speaker
+@findex speaker
+The @samp{speaker} pseudo-device provides support for rudimentary access
+to the PC's speaker via @file{/dev/spkr}. It provides a
+character-device interface which interprets @samp{PLAY} strings similar
+to IBM PC Advanced BASIC, as well as an @samp{ioctl} interface with more
+fine-grained control. See the @samp{spkr} manual page for more
+information.
+@end table
+
+@node ISA, EISA, Generic, Devices
+@section ISA-bus Devices and Options
+
+The following options are specific to ISA-bus devices and systems.
+Since the EISA bus is backwards-compatible with the ISA bus, all these
+options also apply to EISA systems. The same goes for VESA Local Bus
+(VL-Bus) systems.
+
+@table @code
+@item controller isa0
+@findex isa
+This @strong{mandatory} declaration must precede any other devices
+listed in this section. It provides the basic support for the ISA-bus
+glue logic, including DMA and autoconfiguration.
+
+@item controller aha0 at isa? port "IO_AHA0" bio irq 11 drq 5 vector ahaintr
+@item options "TUNE_1542"
+@findex aha
+@findex TUNE_1542
+@cindex Adaptec 154x
+@cindex SCSI host adaptors
+The @samp{aha} device supports the Adaptec 154x series of SCSI
+controllers, and attempts to support other vendors' controllers which
+claim compatibility with the Adaptec 1542, such as the BusLogic 545.
+This device is included in the @samp{GENERICAH} distribution kernel.
+The @samp{scbus} device (@pxref{SCSI}) is a prerequisite for this
+device.
+
+Some older versions of this code would attempt to set the controller's
+bus access speed to the fastest possible without losing data; we have
+found that this makes the driver unusable for some users. If you wish
+to enable this optimization, or if you suspect that your SCSI transfers
+are running slower than they should, then you can use the @samp{TUNE_1542}
+option to enable bus-timing detection.
+
+@item controller bt0 at isa? port "IO_BT0" bio irq 12 vector btintr
+@findex bt
+@cindex Bustek 742
+@cindex SCSI host adaptors
+This device supports the Bustek 742 SCSI controller. It is included in
+the @samp{GENERICBT} distribution kernel; the @samp{scbus} device
+(@pxref{SCSI}) is a prerequisite.
+
+@item options ALLOW_CONFLICT_IOADDR
+@findex ALLOW_CONFLICT_IOADDR
+@cindex Allow IO Address Conflict
+@cindex ISA device management
+Allow devices on the ISA bus to share conflicting IO address spaces.
+This is generally an error, though things like PS/2 mouse drivers which
+are implemented seperately from the keyboard driver will require this
+option to be set. Note that this is almost always sub-optimal, and the
+current PS/2 mouse driver will, in fact, frequently fight with the
+keyboard if you try to use them concurrently. Needing this option
+enabled is a sure sign that you need to consider a different design for
+your driver.
+
+@item options ALLOW_CONFLICT_IRQ
+@findex ALLOW_CONFLICT_IRQ
+@cindex Allow IRQ Conflict
+@cindex ISA device management
+
+Allow devices on the ISA bus to share conflicting IRQ's. This is often
+necessary for multiport serial cards which have several devices at the
+same IRQ. Enable this only with caution!
+
+@item options COM_MULTIPORT
+@findex COM_MULTIPORT
+@cindex Multi-port serial boards
+@cindex Serial ports
+This option enables support in the @samp{sio} serial driver for certain
+multi-port serial boards.
+
+@item device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
+@itemx device ed1 at isa? port 0x300 net irq 5 iomem 0xd8000 vector edintr
+@findex ed
+@cindex Western Digital 80x3
+@cindex 3Com 3C503
+@cindex Novel NE1000/NE2000
+@cindex Network interfaces
+@cindex Ethernet
+The @samp{ed} network interface driver provides support for the Western
+Digital/SMC 80x3 series, the 3Com 3c503, and Novell NE1000 and NE2000
+series of Ethernet controllers. It automatically detects differences
+among the various versions of these controllers and adapts
+appropriately. The @samp{ed1} line shown is for the Novell boards; the
+@samp{ed0} line is appropriate for all other supported controllers.
+(The Novell controllers cannot be configured to use port 0x280.)
+
+@item controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
+@itemx disk fd0 at fdc0 drive 0
+@itemx disk fd1 at fdc0 drive 1
+@itemx tape ft0 at fdc0 drive 2
+@findex fd
+@findex ft
+@cindex Floppy disk
+@cindex Floppy tape
+@cindex QIC-80
+@cindex Tape drives
+@cindex Cartridge tape drives
+@cindex Quarter-Inch-Cartridge (QIC) tape drives
+@cindex Disk drives
+The @samp{fdc} driver provides support for the standard PC floppy-disk
+controller. The @samp{fd} sub-driver supports 3.5-- and 5.25-inch
+floppy disks in the standard 360KB, 720KB, 1200KB, 1440KB, and 2880KB
+formats, as well as a number of other formats not supported by DOS. The
+@samp{ft} driver is available for QIC-80 ``floppy tape'' support.
+The drivers support formatting of both tapes and disks. This driver is
+substantially improved from that shipped in previous releases of
+FreeBSD.
+
+@item device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector ieintr
+@findex ie
+@cindex AT&T EN100
+@cindex AT&T StarLAN 10
+@cindex Network interfaces
+@cindex Ethernet
+@cindex StarLAN
+This network interface driver provides support for the AT&T StarLAN 10
+and EN100 family of controllers. Note that the configuration specified
+here is not the default configuration, but one which attempts to deal
+with the conflicts that arise in more modern systems. (It is expected
+that this driver will be expanded in the future to support other similar
+cards in the manner of @samp{ed}.)
+
+@item device is0 at isa? port 0x280 net irq 10 drq 7 vector isintr
+@findex is
+@cindex Isolan 4141-0
+@cindex Isolink 4110
+@cindex Ethernet
+@cindex Network interfaces
+The @samp{is} network interface driver supports the Isolan 4141-0 and
+Isolink 4110 Ethernet controllers.
+
+@c @item device ix0 at isa? port 0x320 net irq 10 iomem 0xd0000 iosiz 32768 \
+@c @itemx vector ixintr
+@c @findex ix
+@c @cindex Intel EtherEXPRESS
+@c @cindex Ethernet
+@c @cindex Network interfaces
+@c This device is known to exist, but is not presently in the FreeBSD
+@c source tree. When it is made available, this information will be
+@c updated.
+
+@item device lpt0 at isa? port "IO_LPT1" tty
+@itemx device lpt0 at isa? port "IO_LPT1" tty irq 7 vector lptintr
+@itemx device lpt0 at isa? port ? tty irq 7 vector lptintr
+@itemx device lpt0 at isa? port ? tty
+@findex lpa
+@findex lpt
+@cindex Parallel printers
+
+The @samp{lpt} driver provides support for the parallel printer driver
+accessed as @file{/dev/lpt@var{N}} (@var{N}=0, 1, @dots{}). The current
+version of this driver provides support for either polled or
+interrupt-driven ports, a unification of the @samp{lpt} and @samp{lpa}
+drivers from FreeBSD 1.1.
+
+The first and second examples show explicit selection of a port address.
+If the port is not specified, as in the third and fourth examples, the
+driver defaults to whatever address the BIOS printer driver would have
+used. The second and third examples select interrupt-driven I/O; if
+polled mode is specified, as in the first and fourth examples, it is
+impossible to enable interrupt-driven access at run time.
+
+If you receive ``ISA strayintr 7'' messages correlated with the use of
+the polled mode of @samp{lpt}, chances are that your controller supports
+interrupt-driven operation, and you should switch to that mode.
+
+
+@item device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr
+@findex mcd
+@cindex Mitsumi CD-ROM
+@cindex CD-ROM
+This device provides support for the Mitsumi non-SCSI CD-ROM drive.
+Performance is known to be quite slow.
+
+@c mse, anyone?
+
+@item device pc0 at isa? port "IO_KBD" tty irq 1 vector pcrint
+@itemx device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
+@itemx options NCONS=@var{value}
+@itemx options COMCONSOLE
+@findex pc
+@findex sc
+@findex NCONS
+@findex COMCONSOLE
+@cindex Console devices
+@cindex pccons
+@cindex Syscons
+@cindex Virtual consoles
+@cindex X Window System
+The @samp{pc} and @samp{sc} devices provide support for the system
+display and keyboard, which is the default console. There might
+actually be documentation somewhere for both of these. The @samp{sc}
+device requires the @samp{NCONS} option to be defined to some value; it
+represents the number of virtual consoles to be provided by the driver;
+a reasonable value is 8. One of @samp{pc} or @samp{sc} is presently
+required unless @samp{COMCONSOLE} is enabled, in which case a serial
+port is made into the console.
+
+@item device psm0 at isa? port "IO_KBD" tty irq 12 vector psmintr
+@findex psm
+@cindex PS/2 mouse
+@cindex Mouse
+This driver provides support for the IBM-style PS/2 mouse now popular
+on many PCs. This driver shares an address with the console driver
+and therefore requires that the option @samp{ALLOW_CONFLICT_IOADDR}
+also be set. It is also important that the console driver
+(@samp{pc} or @samp{sc}) *preceed* this driver in your kernel configuration
+file in order to get priority. All in all, this driver is a hack and
+should really be integrated into the console driver itself, evidence of
+which can be easily seen when trying to use the mouse and keyboard at the
+same time in X (try it). Volunteers willing to clean this up and do it
+properly are most welcome!
+
+@c sb, anyone?
+
+@item device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
+@itemx device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
+@itemx device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
+@itemx device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr
+@findex sio
+@cindex Serial ports
+@cindex National 8250/16450/16550
+@cindex Bi-directional serial ports
+@cindex Multi-port serial boards
+The @samp{sio} driver provides support for high-speed serial
+communications using the standard 8250, 16450, and 16550 UART chips. It
+provides a standard tty interface for these devices as
+@file{/dev/tty@var{unit}}, and, when enabled with the @samp{comcontrol}
+program, a call-out capability as @file{/dev/cua@var{unit}} (@var{unit}
+is two digits, zero-padded in both cases). Certain multi-port systems
+are also supported.
+
+@item device uha0 at isa? port "IO_UHA0" bio irq 14 drq 5 vector uhaintr
+@findex uha
+@cindex Ultrastor 14F
+@cindex Ultrastor 34F
+@cindex SCSI host adaptors
+This device supports the Ultrastor 14F and related SCSI controllers. It
+is included in the @samp{GENERICBT} distribution kernel, and requires
+@samp{scbus} (@pxref{SCSI}) as a prerequisite. The Ultrastor 24F is not
+supported.
+
+@item controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
+@itemx disk wd0 at wdc0 drive 0
+@itemx disk wd1 at wdc0 drive 1
+@findex wd
+@cindex Western Digital WD100x
+@cindex ST-506 hard disks
+@cindex RLL hard disks
+@cindex ESDI hard disks
+@cindex IDE hard disks
+@cindex Disk drives
+The @samp{wd} device supports standard ST-506, RLL, ESDI, and IDE hard
+disks, as controlled by the Western Digital WD100x series of controllers
+(and compatible hardware). This version is substantially improved from
+that provided in FreeBSD 1.0.
+
+@item device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr
+@findex wt
+@cindex Archive QIC-02
+@cindex Wangtek QIC-02
+@cindex Cartridge tape drives
+@cindex QIC-02
+@cindex QIC-36
+@cindex Tape drives
+@cindex Quarter-Inch-Cartridge (QIC) tape drives
+This driver supports Archive QIC-02 and Wangtek QIC-02 and QIC-36
+cartridge tape controllers.
+
+@item device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
+@findex ze
+@cindex Ethernet
+@cindex Network Interfaces
+@cindex PCMCIA
+@cindex PCMCIA Ethernet Cards
+This driver supports certain PCMCIA ethernet cards. It was originally
+written for the IBM Credit Card Adapter and has also been tested
+with the National Semi `InfoMover' PCMCIA card.
+@end table
+
+@node EISA, MCA, ISA, Devices
+@section EISA-bus Devices and Options
+
+There is presently only one EISA-specific device driver.
+
+@table @code
+@item controller ahb0 at isa? bio irq 11 vector ahbintr
+@findex ahb
+@cindex Adaptec 174x
+@cindex SCSI host adaptors
+The @samp{ahb} driver provides support for the Adaptec AHA-174x series
+of SCSI controllers. This controller is included in the
+@samp{GENERICAH} distribution kernel, and requires the @samp{scbus}
+driver (@pxref{SCSI}) as a prerequisite.
+@end table
+
+@node MCA, PCI, EISA, Devices
+@section Micro Channel Devices and Options
+
+@cindex Micro Channel Architecture
+We don't support Micro Channel right now. Anyone interested in working
+on Micro Channel support should send mail to
+@samp{FreeBSD-Questions@@freefall.cdrom.com} for information on how to
+help.
+
+@node PCI, SCSI, MCA, Devices
+@section PCI Devices and Options
+
+@cindex PCI
+We don't support PCI, either. Anyone interested in working on PCI
+support should send mail to @samp{FreeBSD-Questions@@freefall.cdrom.com}
+for information on how to help.
+
+@node SCSI,, PCI, Devices
+@section The SCSI Subsystem
+
+The SCSI subsystem consists of a set of adaptor-specific driver
+routines, which were described in the previous sections, and the generic
+SCSI device drivers, which handle the standardized interactions with
+devices on the SCSI bus.
+
+@c devices: cd, ch, scbus, sd, sg, st
+
+@table @code
+@item device cd0
+@findex cd
+@cindex CD-ROM
+@cindex SCSI devices
+The @samp{cd} device provides support for CD-ROM drives. Only one
+@samp{cd} device need be configured, as the driver automatically
+allocates units for each CD-ROM drive found. Playing of audio CDs is
+also supported, on drives which support it, through @code{ioctl} calls.
+Support for retrieval of CD audio over the SCSI bus is not presently
+available.
+
+@item device ch0
+@findex ch
+@cindex Media changers
+@cindex SCSI devices
+The @samp{ch} driver supports SCSI media changers; this may include
+tape, removable disk, and CD changers. One @samp{ch} device should be
+configured for each changer you expect to support.
+
+@item device scbus0
+@findex scbus
+@cindex SCSI bus management
+This driver forms the core of the SCSI subsystem. It provides the
+device-independent routines that manage SCSI transactions, keep track of
+attached devices, and act as glue between SCSI-device-specific drivers
+and system-specific host adaptors. This device is @emph{mandatory} for
+all SCSI systems.
+
+@item device sd0
+@findex sd
+@cindex SCSI devices
+@cindex Disk drives
+The @samp{sd} driver provides access to non-removable SCSI disks. One
+@samp{sd} device should be defined for each disk you expect to have
+simultaneously connected to the system.
+
+@c @item device sg0
+@c @findex sg
+@c @cindex SCSI devices
+@c @cindex Generic SCSI
+@c @cindex Unsupported SCSI devices
+@c This driver provides support for development of user-mode drivers and
+@c other programs which access the SCSI bus directly. One @samp{sg} device
+@c should be defined for each @emph{host adaptor} you have installed in
+@c your system.
+
+@item device st0
+@findex st
+@cindex SCSI devices
+@cindex Tape drives
+@cindex Quarter-Inch-Cartridge (QIC) tape drives
+The @samp{st} driver supports generic SCSI tape drives. One @samp{st}
+device should be defined for each tape drive you wish to access. See
+the @samp{st} manual page for information about how to manipulate the
+parameters of this device.
+
+@item device uk0
+@findex uk
+@cindex SCSI devices
+@cindex Unknown SCSI devices
+The @samp{uk} driver provides an attachment point for all otherwise
+unrecognized SCSI devices. You can't actually do anything with such a
+device, except perhaps send it an inquiry command using the @samp{scsi}
+program (q.v.).
+@end table
+
+@node Internals, Index, Devices, Top
+
+@chapter Internal Use Only
+
+Eventually, this chapter will document some of the kernel manifest
+constants which are not defines, but which can be tweaked in various
+header files.
+
+@node Index,, Internals, Top
+@appendix General Index
+
+Items in @code{typewriter} font are option or device names.
+
+@printindex cp
+
+@bye