# $NetBSD: GENERIC,v 1.27 2023/02/12 14:50:39 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/emips/conf/std.emips"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.27 $"

maxusers        64

options         MIPS1           # R2000/R3000 CPUs
options         NOFPU           # No FPU
options         SOFTFLOAT       # emulate FPU insn

# Support eMIPS-based systems
options         XILINX_ML40X    # Xilinx Ml401/2 dev boards
options         XS_BEE3         # MSR/BeCube BEE3 system

# Standard system options
options         DDB                     # in-kernel debugger
options         DDB_HISTORY_SIZE=100    # enable history editing in DDB
options         DDB_ONPANIC=1           # enter debugger on panic
#options        DIAGNOSTIC              # extra kernel debugging checks
#options        DEBUG                   # extra kernel debugging support
options         KTRACE                  # system call tracing support
#options        SYSTRACE                # system call vetting via systrace(1)

options         SYSVMSG         # System V-like message queues
options         SYSVSEM         # System V-like semaphores
#options        SEMMNI=10       # number of semaphore identifiers
#options        SEMMNS=60       # number of semaphores in system
#options        SEMUME=10       # max number of undo entries per process
#options        SEMMNU=30       # number of undo structures in system
options         SYSVSHM         # System V-like memory sharing
#options        SHMMAXPGS=1024  # 1024 pages is the default

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

# Old 4.4BSD/emips kgdb options
#options        KGDB                    # support for kernel gdb
#options        KGDB_DEVRATE=19200      # kernel gdb port rate (default 9600)
#options        KGDB_DEV="15*256+0"     # device for kernel gdb

options         NTP                     # network time protocol


# File systems
file-system     FFS             # fast filesystem with user and group quotas
file-system     MFS             # memory-based filesystem
file-system     NFS             # Sun NFS-compatible filesystem (client)
file-system     LFS             # Log-based filesystem (still 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 (kernel informational filesystem)
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
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        LFS_DIRHASH     # LFS version of UFS_DIRHASH - experimental
#options        DISKLABEL_EI    # disklabel Endian Independent support
options         NFSSERVER       # Network File System server

# Networking options
options         INET            # Internet protocols
options         INET6           # IPV6
#options        IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#options        GATEWAY         # IP packet forwarding
#options        MROUTING        # Multicast routing support
#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

# NetBSD backwards compatibility
include         "conf/compat_netbsd12.config"
options         COMPAT_386BSD_MBRPART # recognize old partition ID

# Workstation console options
#options        FONT_BOLD8x16
#options        FONT_GALLANT12x22

#options        WSEMUL_VT100
#options        WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
#options        WS_KERNEL_FG=WSCOL_GREEN
#options        WS_KERNEL_BG=WSCOL_BLACK

# Disable kernel security levels.  Needed for X with a PX or PXG.
#options        INSECURE

# emips specific
options         HZ=16           # RTC rate required, uses timecounter

options         NFS_BOOT_DHCP   # superset of BOOTP
options         NFS_BOOT_RWSIZE=1024

config          netbsd          root on ? type ?
config          nfsnetbsd       root on ? type nfs
mainbus0        at root
cpu*            at mainbus0

## Peripheral Bus Support (for devices to attach to)
## ----------------------------------------------------------------------------

# eMIPS systems
ebus0   at      mainbus0
eclock* at      ebus0 addr ?    # clock
dz*     at      ebus0 addr ?    # usart
enic*   at      ebus0 addr ?    # ethernet
ace*    at      ebus0 addr ?    # disk
eflash* at      ebus0 addr ?    # flash memory
icap*   at      ebus0 addr ?    # ICAP interface
evga*   at      ebus0 addr ?    # eVGA graphics
pstwo*  at      ebus0 addr ?    # PS2 mouse and kbd
acns*   at      ebus0 addr ?    # AC97 audio
epio*   at      ebus0 addr ?    # GPIO interface
gpio*   at      epio?
lcd*    at      ebus0 addr ?    # lcd display

#########################################################################
# Pseudo-devices                                                        #
#########################################################################

pseudo-device   loop                    # network loopback
pseudo-device   sl                      # serial-line IP ports
pseudo-device   ppp                     # serial-line IP ports
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   pty                     # pseudo-terminals
pseudo-device   bpfilter                # packet filter ports
#pseudo-device  carp                    # Common Address Redundancy Protocol
pseudo-device   npf                     # NPF packet filter
#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

pseudo-device   vnd                     # virtual disk ick
#options        VND_COMPRESSION         # compressed vnd(4)
pseudo-device   ccd                     # concatenated disks
#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   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

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