#
# GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks
#
# For more information read the handbook part System Administration ->
# Configuring the FreeBSD Kernel -> The Configuration File.
# The handbook is available in /usr/share/doc/handbook or online as
# latest version from the FreeBSD World Wide Web server
# <URL:http://www.FreeBSD.ORG/>
#
# An exhaustive list of options and more detailed explanations of the
# device lines is present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $Id: GENERIC,v 1.143.2.12 1999/05/14 15:12:26 jkh Exp $

machine "i386"
#cpu "I386_CPU"
#cpu "I486_CPU"
cpu "I586_CPU"
#cpu "I686_CPU"
ident MYKERNEL
maxusers 32

#options MATH_EMULATE #Support for x87 emulation
options INET #InterNETworking
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options MFS #Memory Filesystem
options MFS_ROOT #MFS usable as root device, "MFS" req'ed
#options NFS #Network Filesystem
#options NFS_ROOT #NFS usable as root device, "NFS" req'ed
options MSDOSFS #MSDOS Filesystem
options "CD9660" #ISO 9660 Filesystem
options "CD9660_ROOT" #CD-ROM usable as root. "CD9660" req'ed
options PROCFS #Process filesystem
options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15000 #Be pessimistic about Joe SCSI device
options UCONSOLE #Allow users to grab the console
options FAILSAFE #Be conservative
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor

config kernel root on wd0

# To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/O
# Optionally these may need tweaked, (defaults shown):
#options NCPU=2 # number of CPUs
#options NBUS=4 # number of busses
#options NAPIC=1 # number of IO APICs
#options NINTR=24 # number of INTs

controller isa0
controller pnp0
controller eisa0
controller pci0

controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2
disk fd0 at fdc0 drive 0
#disk fd1 at fdc0 drive 1

options "CMD640" # work around CMD640 chip deficiency
controller wdc0 at isa? port "IO_WD1" bio irq 14
disk wd0 at wdc0 drive 0
#disk wd1 at wdc0 drive 1

controller wdc1 at isa? port "IO_WD2" bio irq 15
#disk wd2 at wdc1 drive 0
#disk wd3 at wdc1 drive 1

options ATAPI #Enable ATAPI support for IDE bus
options ATAPI_STATIC #Don't do it as an LKM
device acd0 #IDE CD-ROM
device wfd0 #IDE Floppy (e.g. LS-120)

# A single entry for any of these controllers (ncr, ahb, ahc) is
# sufficient for any number of installed devices.
#controller ncr0
#controller ahb0
#controller ahc0
#controller isp0

# This controller offers a number of configuration options, too many to
# document here - see the LINT file in this directory and look up the
# dpt0 entry there for much fuller documentation on this.
#controller dpt0

#controller adv0 at isa? port ? cam irq ?
#controller adw0
#controller bt0 at isa? port ? cam irq ?
#controller aha0 at isa? port ? cam irq ?

controller scbus0

#device da0

#device sa0

device pass0

device cd0 #Only need one of these, the code dynamically grows

#device wt0 at isa? port 0x300 bio irq 5 drq 1
#device mcd0 at isa? port 0x300 bio irq 10

#controller matcd0 at isa? port 0x230 bio

#device scd0 at isa? port 0x230 bio

# atkbdc0 controlls both the keyboard and the PS/2 mouse
controller atkbdc0 at isa? port IO_KBD tty
device atkbd0 at isa? tty irq 1
device psm0 at isa? tty irq 12

device vga0 at isa? port ? conflicts

# splash screen/screen saver
pseudo-device splash

# syscons is the default console driver, resembling an SCO console
device sc0 at isa? tty
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device vt0 at isa? tty
#options XSERVER # support for X server
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-std

device npx0 at isa? port IO_NPX irq 13

#
# Laptop support (see LINT for more options)
#
device apm0 at isa? disable flags 0x31 # Advanced Power Management

# PCCARD (PCMCIA) support
#controller card0
#device pcic0 at card?
#device pcic1 at card?

device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4
device sio1 at isa? port "IO_COM2" tty irq 3
#device sio2 at isa? disable port "IO_COM3" tty irq 5
#device sio3 at isa? disable port "IO_COM4" tty irq 9

# Parallel port
device ppc0 at isa? port? flags 0x40 net irq 7
controller ppbus0
device lpt0 at ppbus?
device plip0 at ppbus?
device ppi0 at ppbus?
#controller vpo0 at ppbus?

#
# The following Ethernet NICs are all PCI devices.
#
#device ax0 # ASIX AX88140A
#device de0 # DEC/Intel DC21x4x (``Tulip'')
#device fxp0 # Intel EtherExpress PRO/100B (82557, 82558)
#device mx0 # Macronix 98713/98715/98725 (``PMAC'')
#device pn0 # Lite-On 82c168/82c169 (``PNIC'')
#device rl0 # RealTek 8129/8139
#device tl0 # Texas Instruments ThunderLAN
#device tx0 # SMC 9432TX (83c170 ``EPIC'')
#device vr0 # VIA Rhine, Rhine II
#device vx0 # 3Com 3c590, 3c595 (``Vortex'')
#device wb0 # Winbond W89C840F
#device xl0 # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Order is important here due to intrusive probes, do *not* alphabetize
# this list of network interfaces until the probes have been fixed.
# Right now it appears that the ie0 must be probed before ep0. See
# revision 1.20 of this file.

device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
#device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000
#device ep0 at isa? port 0x300 net irq 10
#device ex0 at isa? port? net irq?
device fe0 at isa? port 0x300 net irq ?
#device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
#device lnc0 at isa? port 0x280 net irq 10 drq 0
#device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
#device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
#device cs0 at isa? port 0x300 net irq ?

pseudo-device loop
pseudo-device ether
pseudo-device sl 1
pseudo-device ppp 1
pseudo-device tun 4
pseudo-device pty 16
pseudo-device gzip # Exec gzipped a.out's

# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options KTRACE #kernel tracing

# This provides support for System V shared memory and message queues.
#
options SYSVSHM
options SYSVMSG
options SYSVSEM

# The `bpfilter' pseudo-device enables the Berkeley Packet Filter. Be
# aware of the legal and administrative consequences of enabling this
# option. The number of devices determines the maximum number of
# simultaneous BPF clients programs runnable.
pseudo-device bpfilter 4 #Berkeley packet filter