# $NetBSD: RAMDISK,v 1.61 2021/08/30 18:59:57 christos Exp $

# RAMDISK: Root/swap on ramdisk
# This kernel is used to:
#       format the disk (not yet implemented)
#       partition the disk (disklabel)
#       install the miniroot in the swap partition

# GENERIC Sun2 (2/120, 2/170, 2/50, ...)
# Supports root on: ie0, sd*, ...

include "arch/sun2/conf/std.sun2"

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

makeoptions     COPTS="-Os -ffunction-sections -fdata-sections" # optimize for size
makeoptions     EXTRA_LINKFLAGS="--gc-sections"
makeoptions     KERNLDSCRIPT="${SUN2}/conf/kern.ldscript"

# Machines to be supported by this kernel
#options        FPU_EMULATE

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

# 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        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

# 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=0x0C00 # 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
#include        "conf/compat_netbsd10.config"
#options        COMPAT_SUNOS    # can run SunOS 4.1.1 executables
#options        COMPAT_AOUT_M68K # support for NetBSD a.out executables
#options        EXEC_AOUT       # support for a.out executables
#options                COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.

# Filesystem options
file-system     FFS             # Berkeley Fast Filesystem
#file-system    NFS             # Sun NFS client support
#file-system    CD9660          # ISO 9660 + Rock Ridge 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

#options        NFSSERVER       # nfs server support
#options        QUOTA           # legacy UFS quotas
#options        QUOTA2          # new, in-filesystem UFS quotas
#options        FFS_EI          # FFS Endian Independent support
#options        NFS_V2_ONLY     # Exclude NFS3 code to save space
options         FFS_NO_SNAPSHOT # No FFS snapshot support

# 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

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

# Enable the hooks used for initializing the root memory-disk.
options         MEMORY_DISK_HOOKS
options         MEMORY_DISK_IS_ROOT     # force root on memory disk
options         MEMORY_DISK_SERVER=0    # no userspace memory disk support
options         MEMORY_DISK_ROOT_SIZE=1200      # size of memory disk, in blocks
options         MEMORY_DISK_RBFLAGS=RB_SINGLE   # boot in single-user mode

config          netbsd root on ? type ffs

#### Main bus.
mainbus0 at root

#### Bus types.

obio0   at mainbus?             # all Sun-2
obmem0  at mainbus?             # all Sun-2
mbmem0  at mainbus?             # 2/120, 2/170
mbio0   at mainbus?             # 2/120, 2/170
sun68kvme0      at mainbus?     # 2/50, 2/130, 2/160
vme0    at sun68kvme0           # mi VME attachment

#### Standard system devices.

## The AM9513 clock chip.
clock0  at obio0 addr 0x002800  # 2/120, 2/170
clock0  at obio0 addr 0x7f2800  # 2/50, 2/130, 2/160

## The MM58167 time-of-day chip.
tod0    at obio0 addr 0x003800  # 2/120, 2/170
tod0    at vme0 addr 0x200800   # 2/50, 2/130, 2/160

#### Serial port configuration.

## Zilog 8530 serial chips.  Each has two channels.
## zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
## zs0 is REQUIRED to use KGDB.
zs0     at obio0 addr 0x002000  # 2/120, 2/170
zs0     at obio0 addr 0x7f2000  # 2/50
zs1     at obmem0 addr 0x780000 # 2/120, 2/170
zs1     at obio0 addr 0x7f1800  # 2/50
#zs2    at mbmem0 addr 0x080800 # 2/120, 2/170 (first sc SCSI)
#zs3    at mbmem0 addr 0x081000 # 2/120, 2/170 (first sc SCSI)
#zs4    at mbmem0 addr 0x084800 # 2/120, 2/170 (second sc SCSI)
#zs5    at mbmem0 addr 0x085000 # 2/120, 2/170 (second sc SCSI)
zstty*  at zs? channel ?        # ttya
kbd0    at zstty?               # keyboard
#ms0    at zstty?               # mouse

#### Disk controllers and disks.

## PAL+logic-based "Sun SCSI 2" Multibus/VME SCSI controller.
## This driver has several flags which may be enabled using
## the "flags" directive.  Valid flags are:
##
## 0x0ff                Set (1<<target) to disable parity checking
## 0x100                Set this bit to disable DMA interrupts (poll)
## 0x200                Set this bit to disable DMA entirely (use PIO)
##
## For example: "flags 0x10f" would disable DMA interrupts,
## and disable parity for targets 0-3

sc0     at mbmem0 addr 0x80000 ipl 2 flags 0xff
sc0     at vme0 addr 0x200000 irq 2 vect 0x40 flags 0xff
sc1     at mbmem0 addr 0x84000 ipl 2 flags 0xff

## NCR5380-based "Sun SCSI 3" VME SCSI controller.
## This driver has several flags which may be enabled by OR'ing
## the values and using the "flags" directive.
## Valid flags are:
##
##      0x01            Use DMA (may be polled)
##      0x02            Use DMA completion interrupts
##      0x04            Allow disconnect/reselect
##
## E.g. the following would enable DMA, interrupts, and reselect:
## si0  at vme0 addr 0x200000 ipl 3 vect 0x40 flags 0x07
##
## By default, DMA is enabled in the driver.

si0     at vme0 addr 0x200000 irq 2 vect 0x40

## These entries find devices on all SCSI busses and assign
## unit numbers dynamically.
scsibus* at sc?
scsibus* at si?
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
#ses*   at scsibus? target ? lun ?              # SCSI SES/SAF-TE
#uk*    at scsibus? target ? lun ?              # unknown SCSI

# support old SCSI devices that don't understand the INQUIRY command
options         SCSI_OLD_NOINQUIRY

## Xylogics 450 or 451 Multibus/VME SMD disk controllers and disks.
#xyc0   at mbio0 addr 0xee40 ipl 2
xyc0    at vme0 addr 0xee40 irq 2 vect 0x48
#xyc1   at mbio0 addr 0xee48 ipl 2
xyc1    at vme0 addr 0xee48 irq 2 vect 0x49
xy*     at xyc? drive ?

## Memory-disk device.
pseudo-device   md

#### Network interfaces.

## Intel Ethernet (onboard, or Multibus/VME)
ie0     at obio0 addr 0x7f0800 ipl 3            # 2/50
ie0     at mbmem0 addr 0x88000 ipl 3
ie1     at mbmem0 addr 0x8c000 ipl 3
## VME: the first [addr,len] pair specifies the device registers;
##      the second pair specifies the on-board memory buffer
ie1     at vme0 addr 0xe88000,0xe00000 len -1,0x40000 irq 3 vect 0x75

## 3Com Ethernet (Multibus only)
ec0     at mbmem0 addr 0xe0000 ipl 3
ec1     at mbmem0 addr 0xe2000 ipl 3
# limit NFS R/W size for poor ec(4) interfaces
options         NFS_RSIZE=1024,NFS_WSIZE=1024

## Frame buffers.

## Sun "bwtwo" black and white framebuffer.
#bwtwo0 at obmem0 addr 0x700000 # 2/120, 2/170
#bwtwo0 at obio0 addr 0x0       # 2/50

## PROM console driver -- if all else fails
pcons0  at mainbus0                     # PROM console

#### Miscellaneous.
pseudo-device   loop                    # network loopback
#pseudo-device  bpfilter                # packet filter
#pseudo-device  sl                      # CSLIP
#pseudo-device  ppp                     # PPP
#pseudo-device  tun                     # network tunneling over tty
#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   pty                     # pseudo-terminals
#pseudo-device  vnd                     # paging to files
#pseudo-device  ccd                     # concatenated disks
#pseudo-device  raid                    # RAIDframe disk driver
#options        RAID_AUTOCONFIG         # auto-configuration of RAID components
#pseudo-device  fss                     # file system snapshot device