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