# $NetBSD: GENERIC,v 1.100 2023/02/12 14:50:40 abs 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/mipsco/conf/std.mipsco"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

maxusers        16

options         MIPS1                   # R2000/R3000 support

# Standard system options
options         KTRACE                  # system call tracing support
options         SYSVMSG                 # System V message queues
options         SYSVSEM                 # System V semaphores
options         SYSVSHM                 # System V shared memory
#options        NTP                     # network time protocol
options         HZ=25
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

# Debugging options
options         DDB                     # kernel dynamic debugger
options         DDB_HISTORY_SIZE=100    # enable history editing in DDB
#options        DEBUG                   # extra kernel debugging support
#options        DIAGNOSTIC              # extra kernel sanity checking
options         SCSIVERBOSE             # Verbose SCSI errors

#options        KGDB                    # Remote kernel debug using gdb
#options        KGDB_DEV=0x0100         # KGDB port (this is serial0)
#options        KGDB_DEVRATE=19200      # KGDB Baud Rate (default=19200)
#makeoptions    DEBUG="-g"              # Build kernel with debug symbols

# Compatibility options
include         "conf/compat_netbsd13.config"

#options        EXEC_AOUT               # exec a.out binaries
#options        EXEC_ECOFF              # exec ecoff binaries

# File systems
file-system     FFS             # Berkeley Fast Filesystem
file-system     NFS             # Sun NFS-compatible filesystem client
file-system     KERNFS          # kernel data-structure filesystem
#file-system    NULLFS          # NULL layered filesystem
#file-system    MFS             # memory-based filesystem
#file-system    FDESC           # user file descriptor filesystem
#file-system    UMAPFS          # uid/gid remapping filesystem
#file-system    LFS             # Log-based filesystem (still experimental)
file-system     PROCFS          # /proc
file-system     CD9660          # ISO 9660 + Rock Ridge file system
#file-system    UNION           # union file system
#file-system    MSDOSFS         # MS-DOS FAT filesystem(s).
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         NFSSERVER       # Network File System server

# Networking options
options         INET            # Internet protocols
#options        GATEWAY         # IP packet forwarding
#options        MROUTING        # packet forwarding of multicast packets
#options        PIM             # Protocol Independent Multicast
#options        NETATALK        # AppleTalk (over Ethernet) protocol
#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

config          netbsd  root on ? type ?

mainbus0 at root

cpu0    at mainbus0
obio0   at mainbus0

mkclock0 at obio0 addr 0xbd000000       # MK48T02 realtime clock

rambo0  at obio0 addr 0xbc000000        # RAMBO DMA & timer asic

le0     at obio0 addr 0xba000000        # onboard LANCE ethernet

# Not currently implemented
#kb0    at obio0 addr 0xbfd00000        # keyboard
#fb0    at obio0 addr 0x88000000        # framebuffer

fd0     at obio0 addr 0xbe000000        # i82072 floppy disk controller

zsc0    at obio0 addr 0xbb000000        # Base address for Z8530 SCC
zstty0  at zsc0 channel 0               # tty00
zstty1  at zsc0 channel 1               # tty01

asc0    at obio0 addr 0xb8000000        # onboard NCR 53c94 SCSI controller

scsibus0 at asc0

sd*     at scsibus? target ? lun ?      # SCSI disks
st*     at scsibus? target ? lun ?      # SCSI tapes
cd*     at scsibus? target ? lun ?      # SCSI CD-ROMs
ch*     at scsibus? target ? lun ?      # SCSI changer devices

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

pseudo-device   loop                    # loopback interface; required
pseudo-device   pty                     # pseudo-terminals
#pseudo-device  sl                      # SLIP interfaces
#pseudo-device  ppp                     # PPP interfaces
#pseudo-device  pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   tun                     # Network "tunnel" device
pseudo-device   tap                     # virtual Ethernet
#pseudo-device  gre                     # generic L3 over IP tunnel
pseudo-device   bpfilter                # Berkeley Packet Filter
pseudo-device   carp                    # Common Address Redundancy Protocol
#pseudo-device  vnd                     # disk-like interface to files
#options        VND_COMPRESSION         # compressed vnd(4)
#pseudo-device  ccd                     # concatenated and striped disks
#pseudo-device  cgd                     # cryptographic disks
#pseudo-device  raid                    # RAIDframe disk driver
# 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  npf                     # NPF packet filter
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
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

# random number generator pseudo-device
#options        RND_COM                 # use "com" randomness as well (BROKEN)
pseudo-device   ksyms                   # /dev/ksyms

include "dev/veriexec.config"

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