# $NetBSD: GENERIC3X,v 1.141 2022/08/17 19:13:05 tsutsui Exp $

# GENERIC Sun3X (3/80, 3/470)
# Supports root on: ie0, le0, sd*, ...

include         "arch/sun3/conf/std.sun3x"

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC3X-$Revision: 1.141 $"

makeoptions     COPTS="-Os -fno-unwind-tables -fno-omit-frame-pointer"
       # Bootloader has size limit (~2MB). -fno-omit-frame-pointer is
       # necessary for backtraces in DDB.

# Machines to be supported by this kernel
#options        FPU_EMULATE     # XXX - Ever needed?
#options        HAVE_IOCACHE    # XXX - Not yet supported.

# Needs to be set per system.  i.e change these as you see fit
maxusers        4

# Standard system options
options         KTRACE          # system call tracing
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        INSECURE        # disable kernel security level
#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

# Which kernel debugger?  Uncomment either this:
options         DDB
# ... or these for KGDB (gdb remote target)
#makeoptions    DEBUG="-g"      # debugging symbols for gdb
#options        KGDB
#options        KGDB_DEV=0x0C01 # ttya=0C00 ttyb=0C01

# Other debugging options
#options        DDB_HISTORY_SIZE=100    # enable history editing in DDB
#options        DEBUG           # kernel debugging code
#options        DIAGNOSTIC      # extra kernel sanity checking
#options        PMAP_DEBUG
#options        SCSIDEBUG
#options        SCSIVERBOSE             # Verbose SCSI errors

# Compatibility options
# Originally in NetBSD 1.0, but limited to 6.0 for size.
#include        "conf/compat_netbsd10.config"
include         "conf/compat_netbsd60.config"
#options        COMPAT_AOUT_M68K # support for NetBSD a.out executables
#options        COMPAT_LINUX    # can run Linux/m68k executables
#options        COMPAT_OSSAUDIO # can run Linux/m68k executables
#options        EXEC_AOUT       # support for a.out executables
#options        COMPAT_SUNOS    # can run SunOS 4.1.1 executables

# File systems
file-system     FFS             # Berkeley Fast Filesystem
file-system     NFS             # Sun NFS client support
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     MSDOSFS         # MS-DOS FAT 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    UNION           # union file system
file-system     MFS             # memory-based filesystem
file-system     PTYFS           # /dev/pts/N support
# Disabled as 20KB larger than MFS.
#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            # IP protocol stack support
#options        INET6           # IPV6
#options        IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#options        GATEWAY         # IP packet forwarding
#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

# Work-around for root on slow servers (insurance...)
options         NFS_BOOT_RWSIZE=1024
options         NFS_BOOT_BOOTPARAM

config          netbsd root on ? type ?

# On-board I/O space (required)
include "arch/sun3/conf/obio.sun3x"

# On-board memory (optional)
# See frame-buffers
obmem0 at mainbus?

# VME bus support (optional)
# One unit for each address space
vme0 at mainbus? # A16/D16
vme1 at mainbus? # A16/D32
vme2 at mainbus? # A24/D16
vme3 at mainbus? # A24/D32
vme4 at mainbus? # A32/D16
vme5 at mainbus? # A32/D32

#
# Serial ports
#
zstty0  at zsc1 channel 0       # ttya
zstty1  at zsc1 channel 1       # ttyb

kbd0    at zsc0 channel 0       # keyboard
ms0     at zsc0 channel 1       # mouse

#
# Network devices
#

# Intel Ethernet (onboard, or VME)
ie0 at obio0 addr 0x65000000 ipl 3
ie1 at vme2 addr 0xe88000 ipl 3 vect 0x75

# Lance Ethernet (only onboard)
le0 at obio0 addr 0x65002000 ipl 3

#
# Disk and tape devices
#

# Emulex SCSI (3/80 only)
# Both `dma' and `esp' are needed.
# The following flags may be set for the NCR53c94 based esp driver:
#       bits 0-7:  disable disconnect/reselect for the corresponding target
#       bits 8-15: disable synchronous negotiation for target [bit-8]
#
dma0 at obio0 addr 0x66001000 ipl 2
esp0 at obio0 addr 0x66000000 ipl 2 flags 0x000000

# Floppy drive
fdc0 at obio0 addr 0x6e000000 ipl 6 vect 0x40
fd0     at fdc0 # First (and only) floppy drive.

# Sun3 "si" SCSI controller (NCR 5380)
# 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 vme2 addr 0x200000 ipl 2 vect 0x40
si1 at vme2 addr 0x204000 ipl 2 vect 0x41

# Xylogics 450/451 controllers (VME A16/D16)
xyc0 at vme0 addr 0xee40 ipl 2 vect 0x48
xyc1 at vme0 addr 0xee48 ipl 2 vect 0x49
xy* at xyc? drive ?

# Xylogics 7053 controllers (VME A16/D32)
xdc0 at vme1 addr 0xee80 ipl 2 vect 0x44
xdc1 at vme1 addr 0xee90 ipl 2 vect 0x45
xd* at xdc? drive ?

# Xylogics 472 tape controllers?

#
# Frame buffer devices
#

# P4 Monochrome frame buffer.
bwtwo0  at obmem0 addr 0x50300000
# The bw2 driver can also run on a cg4 overlay plane,
# and the 0x40 flag means "CG overlay plane" mode.
# The low 4 bits of the flags (if set) are matched
# against the same bits of the machine type ID code.
bwtwo0  at obmem0 addr 0x50300000 flags 0x42    # 3/80 (P4 cgfour overlay)

# P4 8-bit color frame buffer
cgfour0 at obmem0 addr 0x50300000

# P4 accelerated 8-bit color frame buffer
# cgsix0 at obmem0 addr 0x50000000

# P4 24-bit color frame buffer
# cgeight0 at obmem0 addr 0x50300000

# Sun-3 color board, or CG5 8-bit frame buffer (VME A24/D16).
# This driver is going to need work in its mmap function.
# cgtwo0 at vme2 addr 0x400000 ipl 4 vect 0xA8

# Support for the CG9 24-bit frame buffer (VME A32/D32).
# cgnine0 at vme5 addr 0x08000000 ipl 4 vect 0xAA

#
# SCSI infrastructure
#
scsibus* at scsi?

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

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

# Memory-disk drivers
pseudo-device   md

# Misc.
pseudo-device   loop                    # network loopback
pseudo-device   bpfilter                # packet filter
#pseudo-device  carp                    # Common Address Redundancy Protocol
pseudo-device   sl                      # CSLIP
pseudo-device   ppp                     # PPP
#pseudo-device  pppoe                   # PPP over Ethernet (RFC 2516)
#pseudo-device  tun                     # network tunneling over tty
#pseudo-device  tap                     # virtual Ethernet
#pseudo-device  gre                     # generic L3 over IP tunnel
#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   pty                     # pseudo-terminals
pseudo-device   vnd                     # paging to files
#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

# Veriexec
# include "dev/veriexec.config"