# $NetBSD: GENERIC,v 1.170 2024/01/29 18:27:10 christos Exp $
#
# GENERIC machine description file
#
# This machine description file is used to generate the default NetBSD
# kernel.  The generic kernel does not include all options, subsystems
# and device drivers, but should be useful for most applications.
#
# The machine description file can be customised for your specific
# machine to reduce the kernel size and improve its performance.
#
# For further information on compiling NetBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

include         "arch/bebox/conf/std.bebox"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.170 $"

maxusers        32

# Standard system options

options         RTC_OFFSET=0    # 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

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options        BUFQ_READPRIO
options         BUFQ_PRIOCSCAN

# Diagnostic/debugging support options
#options        DIAGNOSTIC      # cheap kernel consistency checks
#options        DEBUG           # expensive debugging checks/support
options         DDB             # in-kernel debugger
options         DDB_ONPANIC=1   # see also sysctl(7): `ddb.onpanic'
options         DDB_HISTORY_SIZE=512    # Enable history editing in DDB
#makeoptions    DEBUG="-g"

include         "conf/compat_netbsd09.config"

#options        COMPAT_386BSD_MBRPART   # recognize old partition ID
#options        COMPAT_LINUX    # Linux binary compatibility
#options        COMPAT_OSSAUDIO # Linux binary compatibility

# 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     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     PTYFS           # /dev/pts/N support
file-system     TMPFS           # Efficient memory file-system
#file-system    UDF             # experimental - OSTA UDF CD/DVD file-system
#file-system    HFS             # experimental - Apple HFS+ (read-only)

# File system options
#options        APPLE_UFS       # Apple UFS support in FFS
#options        FFS_EI          # FFS Endian Independent support
#options        FFS_NO_SNAPSHOT # No FFS snapshot support
options         QUOTA           # legacy UFS quotas
options         QUOTA2          # new, in-filesystem UFS quotas
options         UFS_DIRHASH     # UFS Large Directory Hashing
options         UFS_EXTATTR     # Extended attribute support for UFS1
options         WAPBL           # File system journaling support
#options        DISKLABEL_EI    # disklabel Endian Independent 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         PCIVERBOSE      # verbose PCI device autoconfig messages
options         MIIVERBOSE      # verbose PHY autoconfig messages
#options        PCI_CONFIG_DUMP # verbosely dump PCI config space
options         SCSIVERBOSE     # human readable SCSI error messages

#options        NFS_BOOT_BOOTPARAM,NFS_BOOT_BOOTP

# wscons options
# builtin terminal emulations
#options        WSEMUL_SUN              # sun terminal emulation
options         WSEMUL_VT100            # VT100 / VT220 emulation
options         WS_DEFAULT_FG=WSCOL_LIGHT_WHITE
# compatibility to other console drivers
options         WSDISPLAY_COMPAT_USL    # wsconscfg VT handling
options         WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes

config          netbsd  root on ? type ?

mainbus0 at root

cpu*    at mainbus0
pci0    at mainbus0 bus ?

pci*    at ppb? bus ?

ppb*    at pci? dev ? function ?        # PCI-PCI bridges
pchb*   at pci? dev ? function ?        # PCI-Host bridges
pcib*   at pci? dev ? function ?        # PCI-ISA bridges

isa*    at pcib?                        # ISA on PCI-ISA bridge

# Console Devices

# wscons
pckbc0          at isa?                 # pc keyboard controller
pckbd*          at pckbc?               # PC keyboard
pms*            at pckbc?               # PS/2 mouse for wsmouse
#options        PMS_DISABLE_POWERHOOK   # Disable PS/2 reset on resume
#options        PMS_SYNAPTICS_TOUCHPAD  # Enable support for Synaptics Touchpads
genfb*          at pci? dev ? function ?
options         WSFB_FAKE_VGA_FB
vga*            at pci? dev ? function ?
wsdisplay*      at vga? console ?
wskbd*          at pckbd? console ?
wsmouse*        at pms? mux 0

# make sure the console display is always wsdisplay0
wsdisplay0      at wsemuldisplaydev? console 1
wsdisplay*      at wsemuldisplaydev?

com0    at isa? port 0x3f8 irq 4        # standard PC serial ports
com1    at isa? port 0x2f8 irq 3
com2    at isa? port 0x380 irq 22
com3    at isa? port 0x388 irq 23

lpt0    at isa? port 0x378 irq 7        # standard PC parallel ports

mcclock0 at isa? port 0x70              # time-of-day clock
attimer0 at isa?
#pcppi0 at isa?
#spkr*  at pcppi?

wss0    at isa? port 0x82c irq 30 drq 6 drq2 7  # Windows Sound System

# Audio support
audio*  at audiobus?

spkr*   at audio?                       # PC speaker (synthesized)

# MIDI support
#midi*  at pcppi?                       # MIDI interface to the PC speaker

# Joystick driver. Probe is a little strange; add only if you have one.
joy0    at isa? port 0x201

siop*   at pci? dev ? function ?        # NCR 538XX SCSI controllers
scsibus* at siop?

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
#ss*    at scsibus? target ? lun ?      # SCSI scanners
#uk*    at scsibus? target ? lun ?      # SCSI unknown

fdc0    at isa? port 0x3f0 irq 6 drq 2  # standard PC floppy controllers
fd0     at fdc? drive 1
#fd*    at fdc? drive ?

wdc0    at isa? port 0x1f0 irq 14       # ST506, ESDI, and IDE controllers

atabus* at ata?
wd*     at atabus? drive ?

# ATAPI bus support
atapibus* at atapi?

# ATAPI devices
# flags have the same meaning as for IDE drives.
cd*     at atapibus? drive ? flags 0x0000       # ATAPI CD-ROM drives
#sd*    at atapibus? drive ? flags 0x0000       # ATAPI disk drives
#st*    at atapibus? drive ? flags 0x0000       # ATAPI tape drives
#uk*    at atapibus? drive ? flags 0x0000       # ATAPI unknown

# Network devices
ec0     at isa? port 0x250 iomem 0xd8000 irq 9  # 3Com 3c503 Ethernet
ne0     at isa? port 0x300 irq 5        # NE[12]000 ethernet cards
fxp*    at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
ne*     at pci? dev ? function ?        # NE2000-compatible Ethernet
tlp*    at pci? dev ? function ?        # DECchip 21x4x and clones

# MII/PHY support
ukphy*  at mii? phy ?                   # generic unknown PHYs

# TV cards

# Brooktree 848/849/878/879 based TV cards
bktr*   at pci? dev ? function ?        # Brooktree video/audio capture/tuner


# Pseudo-Devices

pseudo-device   crypto                  # /dev/crypto device
                                       # (disabled, requires generic softints)
pseudo-device   swcrypto                # software crypto implementation

# disk/mass storage pseudo-devices
#pseudo-device  bio                     # RAID control device driver
pseudo-device   ccd                     # concatenated/striped disk devices
pseudo-device   cgd                     # cryptographic disk devices
#pseudo-device  raid                    # RAIDframe disk driver
#options        RAID_AUTOCONFIG         # auto-configuration of RAID components
# Options to enable various other RAIDframe RAID types.
#options        RF_INCLUDE_EVENODD=1
#options        RF_INCLUDE_RAID5_RS=1
#options        RF_INCLUDE_PARITYLOGGING=1
#options        RF_INCLUDE_CHAINDECLUSTER=1
#options        RF_INCLUDE_INTERDECLUSTER=1
#options        RF_INCLUDE_PARITY_DECLUSTERING=1
#options        RF_INCLUDE_PARITY_DECLUSTERING_DS=1
pseudo-device   fss                     # file system snapshot device

pseudo-device   md                      # memory disk device
pseudo-device   vnd                     # disk-like interface to files
options         VND_COMPRESSION         # compressed vnd(4)

# network pseudo-devices
pseudo-device   bpfilter                # packet filter
pseudo-device   carp                    # Common Address Redundancy Protocol
pseudo-device   npf                     # NPF packet filter
pseudo-device   loop                    # network loopback
pseudo-device   ppp                     # Point-to-Point Protocol
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   sl                      # Serial Line IP
#pseudo-device  irframetty              # IrDA frame line discipline
pseudo-device   tap                     # virtual Ethernet
pseudo-device   tun                     # network tunneling over tty
#pseudo-device  gre                     # generic L3 over IP tunnel
#pseudo-device  gif                     # IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device  faith                   # IPv[46] tcp relay translation i/f
#pseudo-device  stf                     # 6to4 IPv6 over IPv4 encapsulation
#pseudo-device  vlan                    # IEEE 802.1q encapsulation
#pseudo-device  bridge                  # simple inter-network bridging
#pseudo-device  vether                  # Virtual Ethernet for bridge
#pseudo-device  agr                     # IEEE 802.3ad link aggregation
# srt is EXPERIMENTAL
#pseudo-device  srt                     # source-address-based routing

#
# accept filters
pseudo-device   accf_data               # "dataready" accept filter
pseudo-device   accf_http               # "httpready" accept filter

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
#pseudo-device  sequencer               # MIDI sequencer
#options        RND_COM                 # use "com" randomness as well (BROKEN)
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   lockstat                # lock profiling
#pseudo-device  bcsp                    # BlueCore Serial Protocol
#pseudo-device  btuart                  # Bluetooth HCI UART (H4)
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

# a pseudo device needed for Coda       # also needs CODA (above)
#pseudo-device  vcoda                   # coda minicache <-> venus comm.

# wscons pseudo-devices
pseudo-device   wsmux                   # mouse & keyboard multiplexor
pseudo-device   wsfont

# pseudo audio device driver
#pseudo-device  pad

# userland interface to drivers, including autoconf and properties retrieval
pseudo-device   drvctl

include "dev/veriexec.config"

#options        PAX_MPROTECT=0          # PaX mprotect(2) restrictions
#options        PAX_ASLR=0              # PaX Address Space Layout Randomization

# Pull in optional local configuration - always at end
cinclude        "arch/bebox/conf/GENERIC.local"