# $NetBSD: GENERIC,v 1.141 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/news68k/conf/std.news68k"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.141 $"

makeoptions     COPTS="-O2 -fno-reorder-blocks -fno-omit-frame-pointer"
       # See share/mk/sys.mk. -fno-omit-frame-pointer is necessary for
       # backtraces in DDB.

maxusers        8

options         news1200                # news1200 support
options         news1700                # news1[4567]00 support
options         CPU_SINGLE              # Will IOP be supported eventually?
#options        FPU_EMULATE

# Standard system options
options         NTP                     # NTP phase/frequency locked loop
options         KTRACE                  # system call tracing support
options         SYSVMSG                 # System V message queues
options         SYSVSEM                 # System V semaphores
options         SYSVSHM                 # System V shared memory

options         MODULAR                 # new style module(7) framework
options         MODULAR_DEFAULT_AUTOLOAD

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        DIAGNOSTIC              # extra kernel sanity checking
#options        DEBUG                   # extra kernel debugging support
options         DDB                     # kernel dynamic debugger
#options        DDB_HISTORY_SIZE=100    # enable history editing in DDB
#options        DDB_ONPANIC=1           # see also sysctl(7): `ddb.onpanic'
options         SCSIVERBOSE             # Verbose SCSI errors
#options        SCSIDEBUG               # extra SCSI debugging support
#makeoptions    DEBUG="-g"              # compile full symbol table

# Compatibility options
include         "conf/compat_netbsd12.config"
options         COMPAT_AOUT_M68K        # compatibility with NetBSD/m68k a.out

options         COMPAT_SUNOS            # binary compatibility with SunOS
#options        COMPAT_LINUX            # binary compatibllity with Linux/m68k
#options        COMPAT_OSSAUDIO         # binary compatibllity with Linux/m68k

# File systems
file-system     FFS             # Berkeley Fast Filesystem
#file-system    LFS             # log-structured file system
file-system     NFS             # Sun NFS-compatible filesystem client
file-system     MFS             # memory-based filesystem
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     MSDOSFS         # MS-DOS FAT file system
file-system     KERNFS          # /kern
file-system     PROCFS          # /proc
file-system     FDESC           # /dev/fd/*
file-system     NULLFS          # loopback file system
#file-system    OVERLAY         # overlay file system
#file-system    PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
#file-system    UMAPFS          # NULLFS + uid and gid remapping
#file-system    UNION           # union file system
#file-system    CODA            # Coda File System; also needs vcode (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         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        # 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

options         NFS_BOOT_BOOTPARAM
options         NFS_BOOT_DHCP

config  netbsd root on ? type ?
#config netbsd root on ? type nfs

#
# device declarations
#

mainbus0 at root

# NEWS HYPER-BUS
hb0     at mainbus0 systype NEWS1700
hb1     at mainbus0 systype NEWS1200

# interval timer
timer0  at hb0 addr 0xe1000000 ipl 6                    # news1700
timer0  at hb1 addr 0xe1140000 ipl 6                    # news1200

# MK48T02 TOD clock
mkclock0 at hb0 addr 0xe0d80000                         # news1700
mkclock0 at hb1 addr 0xe1420000                         # news1200

# onboard LANCE ethernet
le0     at hb0 addr 0xe0f00000 ipl 4                    # news1700
le0     at hb1 addr 0xe1a40000 ipl 4                    # news1200

# keyboard/mouse
kbc0    at hb0 addr 0xe0d00000 ipl 5                    # news1700
kb0     at kbc0                                         # news1700
ms0     at kbc0                                         # news1700

kb0     at hb1 addr 0xe1240000 ipl 5                    # news1200
ms0     at hb1 addr 0xe1280000 ipl 5                    # news1200

wskbd*  at kb?
wsmouse* at ms?

# onboard z8530 SCC
zsc0    at hb0 addr 0xe0d40000 ipl 5 vect 64 flags 0x0  # news1700
zsc0    at hb1 addr 0xe1780000 ipl 5 vect 64 flags 0x1  # news1200
zstty0  at zsc0 channel 0
zstty1  at zsc0 channel 1

# Frame buffer devices; not yet
#fb0    at hb0 addr 0xf0700000                  # NWB225
#fb1    at hb0 addr 0xf0f00000                  # NWB512

# onboard uPD72067 FDC; not yet
#fdc0   at hb0 addr 0xe0c80000 ipl 3
#fd*    at fdc0

# onboard CXD1180 SCSI controller
#
# This driver has several flags which may be enabled using
# the "flags" directive.  Valid flags are:
#
# 0x000ff       Set (1<<target) to disable disconnect/reselect
# 0x0ff00       Set (1<<(target+8)) to disable parity checking
# 0x10000       Set this bit to disable DMA interrupts (poll)
# 0x20000       Set this bit to disable DMA entirely (use PIO)
#
# For example: "flags 0x1000f" would disable DMA interrupts,
# and disable disconnect/reselect for targets 0-3
#
si0     at hb0 addr 0xe0cc0000 ipl 4 flags 0x0
scsibus* at si0

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

# PROM console support
#romcons0 at mainbus0

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

# Misc.
pseudo-device   loop                    # loopback interface; required
pseudo-device   pty                     # pseudo-terminals
pseudo-device   md                      # memory disk device
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 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   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   npf                     # NPF packet filter
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  vcoda                   # coda minicache <-> venus comm.
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   putter                  # for puffs and pud
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

include "dev/veriexec.config"

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