# $NetBSD: GENERIC,v 1.220 2024/06/29 07:12:47 rin 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/vax/conf/std.vax"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.220 $"

# Here are all different supported CPU types listed.
#options        VAX8800         # VAX 8500, 8530, 8550, 8700, 8800
options         VAX8600
options         VAX8200
#options        VAX6400
options         VAX780
options         VAX750
options         VAX630          # MV II
options         VAX650          # MV III, 3300, 3400, 3500, 3600, 3800, 3900
options         VAX660          # VAX 4000/200
options         VAX670          # VAX 4000/300
options         VAX680          # VAX 4000/[45]00
options         VAX410          # VS 2000, VS 3100/m30,m38,m40,m48
options         VAX43           # VS 3100/76
options         VAX46           # VS 4000/60
options         VAX48           # VS 4000 VLC
options         VAX49           # VS 4000/90
options         VAX53           # VAX 4000/10[058], MicroVAX 3100/m96

# Max users on system; this is just a hint
maxusers        8

# Kernel compiled-in symbolic debugger & system call tracer
makeoptions     DEBUG="-g"
options         DDB
options         DDB_HISTORY_SIZE=512    # enable history editing in DDB
options         KTRACE
#options        DIAGNOSTIC
#options        DEBUG
#options        PMAPDEBUG
#options        TRAPDEBUG
#options        LOCKDEBUG

options         SCSIVERBOSE             # Verbose SCSI errors

# Networking options
#options        GATEWAY         # packet forwarding
options         NTP             # NTP kernel support
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        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         CPU_IN_CKSUM    # optimized checksum routine

#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

# All supported filesystem types
file-system     FFS
file-system     LFS
file-system     MFS
file-system     NFS
file-system     FDESC
file-system     KERNFS
file-system     NULLFS
file-system     OVERLAY         # overlay file system
file-system     PROCFS
file-system     UMAPFS
file-system     UNION
file-system     CD9660
file-system     PTYFS           # /dev/pts/N support
file-system     PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
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        LFS_DIRHASH     # LFS version of UFS_DIRHASH - experimental
options         NFSSERVER       # Network File System server
options         NFS_BOOT_BOOTP,NFS_BOOT_DHCP    # Use bootp <> dhcp
options         NFS_BOOT_BOOTPARAM      # Use the Sun way for netbooting.

# WS console uses VT100 terminal emulation
options         WSEMUL_VT100
options         WSDISPLAY_DEFAULTSCREENS=8
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
options         FONT_QVSS8x15

# System V shared memory & semaphores support.
options         SYSVMSG
options         SYSVSEM
options         SYSVSHM

# Old compat stuff; needed to run 4.3BSD Reno programs.
# Note that if COMPAT_ULTRIX is set, you lose compatibility with
# 4.3BSD Reno programs and get Ultrix compatibility instead.
# (They cannot coexist).
include         "conf/compat_netbsd09.config"
options         COMPAT_VAX1K    # Must be present to run pre-1.4 binaries.
options         COMPAT_ULTRIX
#options        NO_INSN_EMULATE # CPU does not lack some hardware instructions.


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

# Kernel(s) to compile
config          netbsd root on ? type ?

mainbus0        at root

cpu*            at mainbus0

# All buses; from the beginning attached to mainbus.
abus0           at mainbus0             # Master bus on VAX 86x0
sbi0            at mainbus0             # SBI, master bus on 11/78x.
cmi0            at mainbus0             # 11/750 internal bus.
bi0             at mainbus0             # VAX 8200
vsbus0          at mainbus0             # All VAXstations
#nmi0           at mainbus0             # VAX 8800
#xmi0           at mainbus0             # VAX 6000
uba0            at mainbus0             # All MicroVAX
ze0             at mainbus0             # KA48, KA49, KA53
le0             at mainbus0             # LANCE ethernet (MV3400)
#shac0          at mainbus0             # DSSI controller

# NMI (internal bus) on VAX 88xx-series.
#cpu*           at nmi0 slot?           # 1-4 KA88 CPUs
#mem*           at nmi0 slot?
#bi*            at nmi0 slot?           # BI bus adapters

# XMI on VAX 6000 (and higher)
#cpu*           at xmi? node?           # 1-? VAX 6000 CPUs
#mem*           at xmi? node?
#bi*            at xmi? node?           # XMI-BI adapter

# Vsbus, the virtual VAXstation bus, and possible devices.
le0             at vsbus0 csr 0x200e0000 # LANCE ethernet
dz0             at vsbus0 csr 0x200a0000 # DC-367 DZ-11 lookalike ctlr
dz0             at vsbus0 csr 0x25000000 # VS4000/90 and 4000/10x serial line
si0             at vsbus0 csr 0x200c0080 # VS2000/3100 SCSI-ctlr
si1             at vsbus0 csr 0x200c0180 # VS2000/3100 SCSI-ctlr
asc0            at vsbus0 csr 0x200c0080 # VS4000/60 (or VLC) SCSI-ctlr
asc0            at vsbus0 csr 0x26000080 # VS4000/90 and 4000/10x SCSI-ctlr
smg0            at vsbus0 csr 0x200f0000 # Small monochrome display ctlr.
gpx0            at vsbus0 csr 0x3c000000 # VS3100 GPX display option
#clr0           at vsbus0 csr 0x30000000 # 4- or 8-bitplans color graphics
spx0            at vsbus0 csr 0x38000000 # Low Cost SPX on VS4000/90.
lcg0            at vsbus0 csr 0x21801000 # VS4000/60 (or VLC) graphics
vsaudio0        at vsbus0 csr 0x200d0000 # VS4000/60 (or VLC) audio
vsaudio0        at vsbus0 csr 0x26800000 # VS4000/90 audio
audio*          at audiobus?

spkr*           at audio?               # PC speaker (synthesized)

tc0             at vsbus0 csr 0x36800000 # VS4000/60 or 90 TC adapter
tcds*           at tc0 slot ? offset ?   # TC dual SCSI controller
asc*            at tcds? chip ?          # PMAZB/C
asc*            at tc? slot ? offset ?   # PMAZ
le*             at tc? slot ? offset ?   # PMAD

hdc0            at vsbus0 csr 0x200c0000 # HDC9224 MFM/floppy ctlr
rd*             at hdc0 drive?          # RD5x disks
#ry*            at hdc0 drive?          # RX floppies


# Devices connected at VAXBI
cpu*            at bi? node?            # KA820/KA825 CPU
mem*            at bi? node?            # Memory subsystems
#uba*           at bi? node?            # DWBUA BI-Unibus adapter
ni*             at bi? node?            # DEBNA/DEBNT ethernet adapter
kdb*            at bi? node?            # KDB50 MSCP disk ctlr

# CMI (VAX 11/750)
mem*            at cmi? tr?             # Memory subsystems
uba*            at cmi? tr?             # Unibus adapters
mba*            at cmi? tr?             # Massbus adapters

# ABUS (VAX 86x0)
sbi*            at abus0                # VAX 86x0 can have up to 2 SBI's.

# SBI (VAX 11/780, VAX 8600)
mem*            at sbi? tr?             # Memory subsystems
uba*            at sbi? tr?             # Unibus adapters
mba*            at sbi? tr?             # Massbus adapters

# Devices on Massbus adapters
hp*             at mba? drive?          # RM/RP disk drives

# Devices on Unibus/Qbus adapters
uda*            at uba? csr 0172150     # UDA50/RQDX?
uda*            at uba? csr 0160334
#il*            at uba? csr 0164000     # NI1010
mtc*            at uba? csr 0174500     # Tape MSCP ctlr
ts0             at uba? csr 0172520     # TS11/TSV05 tape.
#qd0            at uba? csr 0177400     # 4- or 8-bitplans color graphics
#qv0            at uba? csr 0177400     # Monochrome graphics
de*             at uba? csr 0174510     # DELUA/DEUNA
qe*             at uba? csr 0174440     # DEQNA/DELQA
qe*             at uba? csr 0174460     # DEQNA/DELQA
qt*             at uba? csr 0174440     # DELQA-PLUS in Turbo mode
dhu*            at uba? csr 0160440     # DHU-11
#dmf*           at uba? csr 0160340     # DMF-32
dz*             at uba? csr 0160100     # DZ-11
dl*             at uba? csr 0176500     # DL-11
rlc*            at uba? csr 0174400     # RL11/RLV11 controller
rl*             at rlc? drive?          # RL01/RL02 disk drive
rfc0            at uba? csr 0177170     # RX01/02 controller
rf*             at rfc? drive?          # RX01/RX02 floppy disk drive

# MSCP devices
mscpbus*        at uda?
mscpbus*        at mtc?
mscpbus*        at kdb?

ra*             at mscpbus? drive?      # MSCP disk
racd*           at mscpbus? drive?      # MSCP CD-ROM (RRD40)
rx*             at mscpbus? drive?      # MSCP floppy
mt*             at mscpbus? drive?      # MSCP tape

# SCSI devices
scsibus*        at scsi?

sd*             at scsibus? target? lun?
st*             at scsibus? target? lun?
cd*             at scsibus? target? lun?
ch*             at scsibus? target? lun?
ss*             at scsibus? target? lun?
uk*             at scsibus? target? lun?

# VAXstation graphics support
wsdisplay*      at smg0
wsdisplay*      at gpx0
wsdisplay*      at spx0
wsdisplay*      at lcg0
#wsdisplay*     at clr0
#wsdisplay*     at qd0
#wsdisplay*     at qv0
lkkbd0          at dz0 line 0
wskbd*          at lkkbd? console ?
lkms0           at dz0 line 1
wsmouse*        at lkms?

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

pseudo-device   putter                  # for puffs and pud

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

pseudo-device   loop
pseudo-device   pty                     # pseudo-terminals
pseudo-device   bpfilter
pseudo-device   carp                    # Common Address Redundancy Protocol
pseudo-device   npf                     # NPF packet filter
#pseudo-device  sl
pseudo-device   ppp
#pseudo-device  pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   tun
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
pseudo-device   vnd
#options        VND_COMPRESSION         # compressed vnd(4)
pseudo-device   ccd
#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  leds                    # control the leds on vaxstations.
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   drvctl                  # user control of drive subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   wsmux                   # mouse & keyboard multiplexor
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

include "dev/veriexec.config"

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