# $NetBSD: GENERIC,v 1.202 2024/09/03 19:51:02 andvar 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/prep/conf/std.prep"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.202 $"

maxusers        32

# Platform support

options         PIC_OPENPIC     # OpenPIC support (7043-140)
options         PIC_PREPIVR

# 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_HISTORY_SIZE=100    # Enable history editing in DDB
#makeoptions    DEBUG="-g"

# Compatibility options
include         "conf/compat_netbsd13.config"
#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    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     PTYFS           # /dev/pts/N support
file-system     TMPFS           # Efficient memory file-system
#file-system    UDF             # experimental - OSTA UDF CD/DVD file-system

# File system options
#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        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        RESIDUAL_DATA_DUMP      # verbosely dump residual data
#options        NVRAM_DUMP      # verbosely dump contents of nvram.
                               # Warning: output may not be ascii!

#options        NFS_BOOT_BOOTP
options         NFS_BOOT_BOOTPARAM
options         NFS_BOOT_DHCP

#
# wscons options
#
# builtin terminal emulations
options         WSEMUL_VT100            # VT100 / VT220 emulation
# different kernel output - see dev/wscons/wsdisplayvar.h
options         WS_KERNEL_FG=WSCOL_GREEN
#options        WS_KERNEL_BG=WSCOL_BLACK
# compatibility to other console drivers
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
# see dev/pckbport/wskbdmap_mfii.c for implemented layouts
#options        PCKBD_LAYOUT="(KB_DE | KB_NODEAD)"
# allocate a number of virtual screens at autoconfiguration time
#options        WSDISPLAY_DEFAULTSCREENS=4
# use a large software cursor that doesn't blink
options         PCDISPLAY_SOFTCURSOR

# Kernel root file system and dump configuration.
config  netbsd  root on ? type ?
#config netbsd  root on tlp0 type nfs
#config netbsd  root on pcn0 type nfs


#
# Device configuration
#

mainbus0 at root
cpu0    at mainbus0


# Basic Bus Support

# PCI bus support
pci0    at mainbus0 bus ?
pci*    at pchb? bus ?
pci*    at ppb? bus ?

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

# EISA bus support
eisa*   at pceb?

# ISA bus support
isa*    at pcib?                        # ISA on PCI-ISA bridge
isa*    at pceb?

# PCMCIA bus support
pcmcia* at pcic? controller ? socket ?

# ISA PCMCIA controllers
pcic0   at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000

#options        PCIC_ISA_INTR_ALLOC_MASK=0x4a00 # free irq 9,11,14
#options        PCIC_ISA_ALLOC_IOBASE=0x0400
#options        PCIC_ISA_ALLOC_IOSIZE=0x0100

# ISA Plug-and-Play bus support
#isapnp0        at isa?

# PnPbus bus support (required)
pnpbus0 at mainbus0

# Console Devices

# wscons
pckbc0          at isa?                 # pc keyboard controller
pckbd*          at pckbc?               # PC keyboard
pms*            at pckbc?               # PS/2 mouse for wsmouse
vga*            at pci?
wsdisplay*      at vga? console ?
wskbd*          at pckbd? console ?
wsmouse*        at pms? mux 0

attimer0        at isa?                 # AT Timer
pcppi0  at isa?                         # PC prog. periph. interface
isabeep0 at pcppi?                      # "keyboard" beep

#mcclock0 at isa? port 0x70             # mc146818 and compatible
mcclock* at pnpbus?                     # mc146818 and compatible
mkclock* at pnpbus?                     # mk48t18 and compatible

nvram*  at pnpbus?

# Cryptographic Devices

# PCI cryptographic devices
#hifn*  at pci? dev ? function ?        # Hifn 7755/7811/795x
#ubsec* at pci? dev ? function ?        # Broadcom 5501/5601/580x/582x


# Serial Devices

# ISA serial interfaces
com0    at isa? port 0x3f8 irq 4        # standard PC serial ports
com1    at isa? port 0x2f8 irq 3

# PCMCIA serial interfaces
com*    at pcmcia? function ?           # Modems and serial cards

#pcmcom* at pcmcia? function ?          # PCMCIA multi-port serial cards
#com*   at pcmcom? slave ?              # ...and the slave devices


# Parallel Printer Interfaces

# ISA parallel printer interfaces
lpt0    at isa? port 0x3bc irq 7        # standard PC parallel ports


# SCSI Controllers and Devices

# PCI SCSI controllers
#adw*   at pci? dev ? function ?        # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI
ahc*    at pci? dev ? function ?        # Adaptec [23]94x, aic78x0 SCSI
#iha*   at pci? dev ? function ?        # Initio INIC-940/950 SCSI
#pcscp* at pci? dev ? function ?        # AMD 53c974 PCscsi-PCI SCSI
siop*   at pci? dev ? function ?        # Symbios 53c8xx SCSI
esiop*  at pci? dev ? function ?        # Symbios 53c875 SCSI and newer

# PCMCIA SCSI controllers
aic*    at pcmcia? function ?           # Adaptec APA-1460 SCSI
spc*    at pcmcia? function ?           # Fujitsu MB87030/MB89352 SCSI

# SCSI bus support
#scsibus* at adw?
scsibus* at ahc?
scsibus* at aic?
#scsibus* at iha?
#scsibus* at pcscp?
scsibus* at siop?
scsibus* at spc?
scsibus* at esiop?

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

# IDE and related devices

# IDE controller found on most Power Personal machines
wdc*    at pnpbus?

# PCI IDE controllers
pciide*         at pci? dev ? function ? flags 0x0000
hptide*         at pci? dev ? function ?
slide*          at pci? dev ? function ?

fdc0 at pnpbus? # standard ISA floppy controller
fd0 at fdc0 drive ?

# ISA Plug-and-Play IDE controllers
#wdc*   at isapnp?

# PCMCIA IDE controllers
wdc*    at pcmcia? function ?

# ATA (IDE) bus support
atabus* at ata?

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
wd*     at atabus? drive ? flags 0x0000

# 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
uk*     at atapibus? drive ? flags 0x0000       # ATAPI unknown

# Miscellaneous mass storage devices

# Network Interfaces

# PCI network interfaces
ep*     at pci? dev ? function ?        # 3Com 3c59x
ex*     at pci? dev ? function ?        # 3Com 3c90x[BC]
fxp*    at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
ne*     at pci? dev ? function ?        # NE2000-compatible Ethernet
pcn*    at pci? dev ? function ?        # AMD PCnet-PCI Ethernet
rtk*    at pci? dev ? function ?        # Realtek 8129/8139
sip*    at pci? dev ? function ?        # SiS 900/DP83815 Ethernet
tlp*    at pci? dev ? function ?        # DECchip 21x4x and clones
vr*     at pci? dev ? function ?        # VIA Rhine Fast Ethernet

# pnpbus network interfaces
we*     at pnpbus?                      # WD/SMC Ethernet

# ISA network interfaces
#ep*    at isa? port ? irq ?            # 3Com 3c509 Ethernet
#ne0    at isa? port 0x280 irq 9        # NE2000-compatible Ethernet
#ne1    at isa? port 0x300 irq 10
#we0    at isa? port 0x280 iomem 0xd0000 irq 9  # WD/SMC Ethernet
we1     at isa? port 0x300 iomem 0xe8000 irq 11

# ISA Plug-and-Play network interfaces
#ep*    at isapnp?                      # 3Com 3c509 Ethernet
#ne*    at isapnp?                      # NE2000-compatible Ethernet

# PCMCIA network interfaces
ep*     at pcmcia? function ?           # 3Com 3c589 and 3c562 Ethernet
ne*     at pcmcia? function ?           # NE2000-compatible Ethernet

# MII/PHY support
dmphy*  at mii? phy ?                   # Davicom DM9101 PHYs
exphy*  at mii? phy ?                   # 3Com internal PHYs
icsphy* at mii? phy ?                   # Integrated Circuit Systems ICS189x
inphy*  at mii? phy ?                   # Intel 82555 PHYs
iophy*  at mii? phy ?                   # Intel 82553 PHYs
lxtphy* at mii? phy ?                   # Level One LXT-970 PHYs
nsphy*  at mii? phy ?                   # NS83840 PHYs
nsphyter* at mii? phy ?                 # NS83843 PHYs
qsphy*  at mii? phy ?                   # Quality Semiconductor QS6612 PHYs
rgephy* at mii? phy ?                   # Realtek 8169S/8110S/8211 PHYs
rlphy*  at mii? phy ?                   # Realtek 8139/8201L PHYs
sqphy*  at mii? phy ?                   # Seeq 80220/80221/80223 PHYs
tlphy*  at mii? phy ?                   # ThunderLAN PHYs
tqphy*  at mii? phy ?                   # TDK Semiconductor PHYs
ukphy*  at mii? phy ?                   # generic unknown PHYs


# USB Controller and Devices

# PCI USB controllers
#uhci*  at pci? dev ? function ?        # Universal Host Controller (Intel)
#ohci*  at pci? dev ? function ?        # Open Host Controller

# PCMCIA USB controllers
#slhci* at pcmcia? function ?           # ScanLogic SL811HS

# USB bus support
#usb*   at uhci?
#usb*   at ohci?
#usb*   at slhci?

# USB Hubs
#uhub*  at usb?
#uhub*  at uhub? port ?

# USB HID device
#uhidev*        at uhub? port ? configuration ? interface ?

# USB Mice
#ums*   at uhidev? reportid ?
#wsmouse* at ums? mux 0

# USB Keyboards
#ukbd*  at uhidev? reportid ?
#wskbd* at ukbd? console ? mux 1

# USB serial adapter
#ucycom*        at uhidev? reportid ?

# USB Generic HID devices
#uhid*  at uhidev? reportid ?

# USB Printer
#ulpt*  at uhub? port ? configuration ? interface ?

# USB Modem
#umodem* at uhub? port ? configuration ?
#ucom*  at umodem?

# Option N.V. Wireless WAN modems
#uhso*  at uhub? port ? configuration ?

# USB Mass Storage
#umass* at uhub? port ? configuration ? interface ?
#scsibus* at umass? channel ?
#atapibus* at umass?

# USB audio
#uaudio* at uhub? port ? configuration ?

# USB Ethernet adapters
#aue*   at uhub? port ?         # ADMtek AN986 Pegasus based adapters
#axe*   at uhub? port ?         # ASIX AX88172 based adapters
#cue*   at uhub? port ?         # CATC USB-EL1201A based adapters
#kue*   at uhub? port ?         # Kawasaki LSI KL5KUSB101B based adapters
#mue*   at uhub? port ?         # Microchip LAN75xx/LAN78xx based adapters
#ure*   at uhub? port ?         # Realtek RTL8152/RTL8153 based adapters
#url*   at uhub? port ?         # Realtek RTL8150L based adapters
#udav*  at uhub? port ?         # Davicom DM9601 based adapters

# Prolific PL2301/PL2302 host-to-host adapter
#upl*   at uhub? port ?

# Serial adapters
#uftdi* at uhub? port ?         # FTDI FT8U100AX serial adapter
#ucom*  at uftdi? portno ?

#umct*  at uhub? port ?         # MCT USB-RS232 serial adapter
#ucom*  at umct? portno ?

#uplcom* at uhub? port ?        # I/O DATA USB-RSAQ2 serial adapter
#ucom*  at uplcom? portno ?

#uvscom* at uhub? port ?        # SUNTAC Slipper U VS-10U serial adapter
#ucom*  at uvscom? portno ?

# USB Handspring Visor
#uvisor* at uhub? port ?
#ucom*  at uvisor?

# Kyocera AIR-EDGE PHONE
#ukyopon* at uhub? port ?
#ucom*  at ukyopon? portno ?

# USB Generic driver
#ugen*  at uhub? port ?

# Audio device

# ISA Plug-and-Play audio devices
#wss*   at isapnp?                      # CS4232
#wss0    at isa? port 0x530 irq 5 drq 1 drq2 0

# Audio support
#audio* at uaudio?
#audio* at audiocs?

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

# The spkr driver provides a simple tone interface to the built in speaker.
#spkr*  at pcppi?               # PC speaker
#spkr*  at audio?               # PC speaker (synthesized)


# Joysticks

# ISA Plug-and-Play joysticks
#joy*   at isapnp?                      # Game ports (usually on audio cards)

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

# Pseudo-Devices

pseudo-device   crypto          # /dev/crypto device
pseudo-device   swcrypto        # software crypto implementation

# disk/mass storage pseudo-devices
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 (ramdisk)
pseudo-device   vnd                     # disk-like interface to files
#options        VND_COMPRESSION         # compressed vnd(4)

# network pseudo-devices
pseudo-device   loop                    # network loopback
pseudo-device   bpfilter                # Berkeley packet filter
pseudo-device   carp                    # Common Address Redundancy Protocol
pseudo-device   npf                     # NPF packet filter
pseudo-device   ppp                     # Point-to-Point Protocol
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
#pseudo-device  sl                      # Serial Line IP
pseudo-device   tun                     # network tunneling over tty
pseudo-device   tap                     # virtual Ethernet
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

#
# 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
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms
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

include "dev/veriexec.config"

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