#       $NetBSD: GENERIC_PS2TINY,v 1.82 2024/01/29 18:27:13 christos Exp $
#
#       GENERIC-style kernel config for IBM PS/2 with MCA bus. It only contains
#       IBM PS/2 related stuff and has been generally trimmed down somewhat,
#       so that the kernel is small enough to be usable for 4MB machines. This
#       configuration is also used for INSTALL_PS2 kernels.
#
#       BEWARE:
#        MCA support in NetBSD is still experimental at this
#        stage and should be used with caution.

include "arch/i386/conf/std.i386"

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

maxusers        16              # estimated number of users

# CPU-related options.
options         USER_LDT        # user-settable LDT; used by WINE

# delay between "rebooting ..." message and hardware reset, in milliseconds
#options        CPURESET_DELAY=2000

# This option allows you to force a serial console at the specified
# I/O address.   see console(4) for details.
#options        CONSDEVNAME="\"com\"",CONADDR=0x2f8,CONSPEED=57600
#       you don't want the option below ON iff you are using the
#       serial console option of the new boot strap code.
#options        CONS_OVERRIDE   # Always use above! independent of boot info

# The following options override the memory sizes passed in from the boot
# block.  Use them *only* if the boot block is unable to determine the correct
# values.  Note that the BIOS may *correctly* report less than 640k of base
# memory if the extended BIOS data area is located at the top of base memory
# (as is the case on most recent systems).
#options        REALBASEMEM=639         # size of base memory (in KB)
#options        REALEXTMEM=15360        # size of extended memory (in KB)

# Standard system options

options         INSECURE        # disable kernel security levels - X needs this

options         RTC_OFFSET=-600 # hardware clock is this many mins. west of GMT
options         NTP             # NTP phase/frequency locked loop

#options        KTRACE          # system call tracing via ktrace(1)

options         SYSVMSG         # System V-like message queues
options         SYSVSEM         # System V-like semaphores
options         SYSVSHM         # System V-like memory sharing

options         USERCONF        # userconf(4) support
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Diagnostic/debugging support options
#options        DIAGNOSTIC      # inexpensive kernel consistency checks
#options        DEBUG           # expensive debugging checks/support
options         DDB             # in-kernel debugger
pseudo-device   ksyms
#options        DDB_ONPANIC=1   # see also sysctl(7): `ddb.onpanic'
options         DDB_HISTORY_SIZE=512    # enable history editing in DDB
#options        KGDB            # remote debugger
#options        KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x3f8,KGDB_DEVRATE=9600
#makeoptions    DEBUG="-g"      # compile full symbol table
makeoptions     COPTS="-Os"     # generates smaller code than -O2, -O1
makeoptions     USE_SSP="no"

# File systems
file-system     FFS             # UFS
#file-system    EXT2FS          # second extended file system (linux)
#file-system    LFS             # log-structured file system
#file-system    MFS             # memory file system
file-system     NFS             # Network File System client
#file-system    NTFS            # Windows/NT file system (experimental)
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     MSDOSFS         # MS-DOS file system
#file-system    FDESC           # /dev/fd
file-system     KERNFS          # /kern
#file-system    NULLFS          # loopback file system
#file-system    OVERLAY         # overlay file system
#file-system    PROCFS          # /proc
#file-system    UMAPFS          # NULLFS + uid and gid remapping
#file-system    UNION           # union file system
#file-system    CODA            # Coda File System; also needs vcoda (below)

# File system options
options         QUOTA           # UFS quotas
#options        DISKLABEL_EI    # disklabel Endian Independent support
#options        FFS_EI          # FFS Endian Independent support
options         WAPBL           # File system journaling support
options         FFS_NO_SNAPSHOT # No FFS snapshot support
#options        NFSSERVER       # Network File System server
# Networking options
#options        GATEWAY         # packet forwarding
options         INET            # IP + ICMP + TCP + UDP
options         INET6           # IPv6
#options        IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#options        MROUTING        # IP multicast routing
#options        PIM             # Protocol Independent Multicast
#options        NETATALK        # AppleTalk networking protocols
#options        PPP_BSDCOMP     # BSD-Compress compression support for PPP
#options        PPP_DEFLATE     # Deflate compression support for PPP
#options        PPP_FILTER      # Active filter support for PPP (requires bpf)
#options        TCP_DEBUG       # Record last TCP_NDEBUG packets with SO_DEBUG

#options        ALTQ            # Manipulate network interfaces' output queues
#options        ALTQ_BLUE       # Stochastic Fair Blue
#options        ALTQ_CBQ        # Class-Based Queueing
#options        ALTQ_CDNR       # Diffserv Traffic Conditioner
#options        ALTQ_FIFOQ      # First-In First-Out Queue
#options        ALTQ_FLOWVALVE  # RED/flow-valve (red-penalty-box)
#options        ALTQ_HFSC       # Hierarchical Fair Service Curve
#options        ALTQ_LOCALQ     # Local queueing discipline
#options        ALTQ_PRIQ       # Priority Queueing
#options        ALTQ_RED        # Random Early Detection
#options        ALTQ_RIO        # RED with IN/OUT
#options        ALTQ_WFQ        # Weighted Fair Queueing

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
#options        EISAVERBOSE     # verbose EISA device autoconfig messages
#options        MIIVERBOSE      # verbose PHY autoconfig messages
#options        PCIVERBOSE      # verbose PCI device autoconfig messages
#options        PCI_CONFIG_DUMP # verbosely dump PCI config space
#options        PCMCIAVERBOSE   # verbose PCMCIA configuration messages
#options        SCSIVERBOSE     # human readable SCSI error messages
#options        USBVERBOSE      # verbose USB device autoconfig messages
#options        PNPBIOSVERBOSE  # verbose PnP BIOS messages
#options        PNPBIOSDEBUG    # more fulsome PnP BIOS debugging messages
options         MCAVERBOSE      # verbose MCA device autoconfig messages

options         NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM

# Kernel root file system and dump configuration.
config          netbsd root on ? type ?
#config         netbsd root on ? type nfs
#config         netbsd root on ed0a type ffs

#
# Device Configuration
#

mca0    at mainbus0
isa0    at mainbus0

# wscons
pckbc0          at isa?                 # PC keyboard controller
options         PCKBCDEBUG
#pcconskbd*     at pckbc?
#pms*           at pckbc?               # PS/2 mouse for wsmouse
#wsmouse*       at pms?
pckbd*          at pckbc?               # PC keyboard
wskbd*          at pckbd? console ?
vga0            at isa?
wsdisplay*      at vga? console ?

options         WSEMUL_VT100    # VT100 / VT220 emulation
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
options         WS_KERNEL_FG=WSCOL_GREEN
options         WSDISPLAY_DEFAULTSCREENS=4

com0    at isa? port 0x3f8 irq 4        # "SERIAL_!"
lpt0    at isa? port 0x3bc irq 7        # "PARALLEL_1"
fdc0    at isa? port 0x3f0 irq 6 drq 2  # standard PC floppy controllers
fd*     at fdc? drive ?                 # the drives themselves

# MCA serial interfaces
com*    at mca? slot ?                  # 16x50s on comm boards

# MCA network devices
elmc*   at mca? slot ?                  # 3Com EtherLink/MC (3c523)
ep*     at mca? slot ?                  # 3Com EtherLink III (3c529)
we*     at mca? slot ?                  # WD/SMC Ethernet
ate*    at mca? slot ?                  # Allied Telesis AT1720
ne*     at mca? slot ?                  # Novell NE/2 and clones
tra*    at mca? slot ?                  # Tiara LANCard/E and clones
le*     at mca? slot ?                  # SKNET Personal/MC2+

# MCA ESDI controllers & disks
edc*    at mca? slot ?                  # IBM ESDI Disk Controllers
ed*     at edc? drive ?

# MCA SCSI controllers
aha*    at mca? slot ?                  # Adaptec AHA-1640
esp*    at mca? slot ?                  # NCR 53C90

# SCSI bus support
scsibus* at scsi?

# SCSI devices
sd*     at scsibus? target ? lun ?      # SCSI disk drives
#st*    at scsibus? target ? lun ?      # SCSI tape drives
cd*     at scsibus? target ? lun ?      # SCSI CD-ROM drives
#ch*    at scsibus? target ? lun ?      # SCSI autochangers
#ses*   at scsibus? target ? lun ?      # SCSI Enclosure Services devices
#ss*    at scsibus? target ? lun ?      # SCSI scanners
#uk*    at scsibus? target ? lun ?      # SCSI unknown

# network pseudo-devices
pseudo-device   bpfilter                # Berkeley packet filter
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   bridge                  # simple inter-network bridging
pseudo-device   loop                    # network loopback

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
pseudo-device   md                      # memory disk device (ramdisk)
# rnd works; RND_COM does not on port i386 yet.
#options        RND_COM                 # use "com" randomness as well (BROKEN)
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   fss                     # file system snapshot device