#       $NetBSD: TADPOLE3GX,v 1.79 2025/02/24 21:32:26 andvar Exp $

include "arch/sparc/conf/std.sparc"

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

# all supported SPARCbooks have V8 CPUs
makeoptions             CCPUOPTS="-mcpu=v8 -mtune=v8"

maxusers        32

## System kernel configuration.  See options(4) for more detail.


# Options for variants of the Sun SPARC architecture.
# We currently support three architecture types; at least one is required.
options         SUN4M           # sun4m - SS10, SS20, Classic, etc.

## System options specific to the sparc machine type

# Blink the power LED on some machines to indicate the system load.
#options        BLINK

# wsdisplay options
#options        WSEMUL_SUN
options         WSEMUL_VT100
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
options         WSDISPLAY_CUSTOM_OUTPUT         # wsconsctl(8)

# black on white, kernel output in green
options         WS_DEFAULT_FG=WSCOL_BLACK
options         WS_DEFAULT_BG=WSCOL_LIGHT_WHITE
options         WS_KERNEL_FG=WSCOL_GREEN
options         WS_KERNEL_BG=WSCOL_LIGHT_WHITE

options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling

options         WSDISPLAY_DEFAULTSCREENS=1

options         SPARCBOOK_CMD           # enable screen switching with lAlt-Fn
#options        FONT_GALLANT12x22       # the console font
options         FONT_BOLD8x16           # a somewhat smaller font

#### System options that are the same for all ports

## Root device configuration: change the ?'s if you are going to use a
## nonstandard root partition (other than where the kernel is booted from)
## and/or nonstandard root type (not ffs or nfs).  Normally this can be
## automagically determined at boot time.

config          netbsd  root on ? type ?

## System call tracing (see ktrace(1)).
options         KTRACE

## System V compatible IPC subsystem.  (msgctl(2), semctl(2), and shmctl(2))
options         SYSVMSG         # System V message queues
options         SYSVSEM         # System V semaphores
options         SYSVSHM         # System V shared memory

options         USERCONF        # userconf(4) support
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

## NFS boot options; tries DHCP/BOOTP then BOOTPARAM
options         NFS_BOOT_BOOTPARAM
#options        NFS_BOOT_BOOTP
options         NFS_BOOT_DHCP

#### Debugging options

## The DDB in-kernel debugger runs at panic (unless DDB_ONPANIC=0), or at
## serial console break or keyboard reset, where the PROM would normally
## intercept.  DDB_HISTORY_SIZE adds up/down arrow command history.
options         DDB                     # kernel dynamic debugger
pseudo-device   ksyms
options         DDB_HISTORY_SIZE=100    # enable history editing in DDB
#options        DDB_ONPANIC=1           # see also sysctl(7): `ddb.onpanic'

## You may also use gdb, on another computer connected to this machine over
## a serial port.  Both KGDB_DEV and KGDB_DEVRATE should be specified;
## KGDB_DEV is a dev_t encoded device number of the serial port to use.
## (0xc01 = ttya, 0xc02 = ttyb.)
#options        KGDB                    # support for kernel gdb
#options        KGDB_DEV=0xc01          # kgdb device number (this is `ttyb')
#options        KGDB_DEVRATE=38400      # baud rate


## Compile the kernel with debugging symbols (`netbsd.gdb' is the debug file),
## such that gdb(1) can be used on a kernel coredump.

makeoptions     DEBUG="-g"


## Adds code to the kernel that does internal consistency checks, and will
## cause the kernel to panic if corruption of internal data structures
## is detected.
#options        DIAGNOSTIC      # extra kernel sanity checking

## Enable (possibly expensive) debugging code that may also display messages
## on the system console
#options        DEBUG
#options        LOCKDEBUG
#options        SYSCALL_DEBUG

## Make SCSI error messages more verbose when explaining their meanings.
options         SCSIVERBOSE

## `INSECURE' turns off the kernel security level (securelevel = 0 always).
## This allows writing to /dev/mem, loading kernel modules while multi-user,
## and other insecurities good only for development work.  Do not use this
## option on a production machine.
options         INSECURE

## `FDSCRIPTS' allows non-readable but executable scripts by providing a
## pre-opened opaque file to the script interpreter.  `SETUIDSCRIPTS',
## which implies FDSCRIPTS, allows scripts to be set-user-id using the same
## opaque file mechanism.  Perl calls this "secure setuid scripts."

#options        FDSCRIPTS
#options        SETUIDSCRIPTS

## Options for compatibility with previous releases foreign system binaries.
## In the cases of COMPAT_SUNOS, you may need to set up additional user-level
## utilities or system configuration files. See compat_sunos(8).

include         "conf/compat_netbsd10.config"
options         COMPAT_SUNOS    # SunOS 4.x binary compatibility

## File systems.  You probably need at least one of FFS or NFS.
file-system     FFS             # Berkeley Fast Filesystem
file-system     NFS             # Sun NFS-compatible filesystem client
file-system     KERNFS          # kernel data-structure filesystem
#file-system    NULLFS          # NULL layered filesystem
file-system     MFS             # memory-based filesystem
#file-system    FDESC           # user file descriptor filesystem
#file-system    UMAPFS          # uid/gid remapping filesystem
#file-system    LFS             # Log-based filesystem (still experimental)
file-system     PROCFS          # /proc
file-system     CD9660          # ISO 9660 + Rock Ridge file system
#file-system    UNION           # union file system
file-system     MSDOSFS         # MS-DOS FAT filesystem(s).
file-system     PTYFS           # /dev/pts/N support

## File system options.
options         NFSSERVER       # Sun NFS-compatible filesystem server
options         QUOTA           # legacy UFS quotas
options         QUOTA2          # new, in-filesystem UFS quotas
#options        FFS_EI          # FFS Endian Independent support
#options        FFS_NO_SNAPSHOT # No FFS snapshot support
options         UFS_EXTATTR     # Extended attribute support for UFS1

## Network protocol support.  In most environments, INET is required.
options         INET            # IP (Internet Protocol) v4
#options        GATEWAY         # packet forwarding ("router switch")
#options        MROUTING        # packet forwarding of multicast packets
#options        PIM             # Protocol Independent Multicast
#options        NETATALK        # AppleTalk (over Ethernet) protocol
options         NTP             # Network Time Protocol in-kernel support
#options        PPS_SYNC        # Add serial line synchronization for NTP
options         PPP_BSDCOMP     # Add BSD compression to ppp device
options         PPP_DEFLATE     # Add deflate (libz) compression to ppp device
options         PPP_FILTER      # Add active filters for ppp (via bpf)
#options        TCP_DEBUG       # Record last TCP_NDEBUG packets with SO_DEBUG


#### Main bus and CPU .. all systems.
mainbus0 at root
cpu0    at mainbus0

#### Bus types found on SPARC systems.

obio0   at mainbus0                             # sun4 and sun4m
iommu0  at mainbus0                             # sun4m
sbus0   at iommu0                               # sun4m

## SBus to PCMCIA bridge
tslot*  at sbus? slot ? offset ?                # PCMCIA bridge (tadpole 3gx)
pcmcia* at tslot?

#### Standard system devices -- all required for a given architecture

## Auxiliary system registers on sun4c and sun4m
auxreg0 at obio0                                # sun4m

## Additional auxiliary system registers on Sparcbook
auxiotwo0       at obio0                                # sun4m

## Clock control on SPARCbook - used to put the CPU to sleep when idle
clkctrl0 at obio0

## Mostek clock found on 4/300, sun4c, and sun4m systems.
## The Mostek clock NVRAM is the "eeprom" on sun4/300 systems.
clock0  at obio0                                # sun4m

## Timer chip found on 4/300, sun4c, and sun4m systems.
timer0  at obio0                                # sun4m

#### Serial port configuration

## Zilog 8530 serial chips.  Each has two-channels.
## zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
zs0     at obio0                                        # sun4m
zstty0  at zs0 channel 0        # ttya
zstty1  at zs0 channel 1        # ttyb

zs1     at obio0                                        # sun4m
zstty*  at zs1 channel ?        # mouse/keyboard

kbd0    at zstty?
ms0     at zstty?

wskbd*          at kbd? console ?
wsmouse*        at ms?

## Tadpole 3GX/3XL have a builtin modem that emulates a NS16450.
com*    at obio0                                        # sun4m (tadpole)

## PCMCIA serial interfaces
com*    at pcmcia?
pcmcom* at pcmcia?
com*    at pcmcom?

#### Disk controllers and disks

#

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

## sun4/300, sun4c, sun4m on-board SCSI, and FSBE/S SBus SCSI cards.
## Both `dma' and `esp' are needed in all cases.
## Two kinds of additional SBus SCSI interfaces are available.  One uses
## "esp at sbus" like the sun4c on-board; the other uses "esp at dma".

## sun4/300 SCSI - an NCR53c94 or equivalent behind
## an LSI Logic DMA controller

dma0    at sbus0 slot ? offset ?                        # sun4c/sun4m
esp0    at dma0 flags 0x0000                            # sun4m

scsibus* at esp?

## PCMCIA SCSI controllers
#aic*   at pcmcia?
#scsibus* at aic?

## These entries find devices on all SCSI busses and assign
## unit numbers dynamically.
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

## PCMCIA IDE controllers
wdc*    at pcmcia?

atabus* at ata?
wd*             at atabus? drive ? flags 0x0000

## A disk-like interface to files.  Can be used to create floppy, CD,
## miniroot images, etc.

pseudo-device   vnd

## Memory disk device, used on boot floppies with compressed
## kernel-plus-root-disk images.

#pseudo-device  md


#### Network interfaces

## LANCE Ethernet - an AMD 7990 LANCE behind specialized DMA glue
## Three flavors of additional SBus ethernets are available.  One attaches
## directly like the sun4c on-board, one uses the ledma device like the
## sun4m on-board, and one uses the lebuffer device.

ledma0          at sbus0 slot ? offset ?                # sun4m on-board
le0             at ledma0                               # sun4m on-board

# PCMCIA ethernet devices
ep*     at pcmcia?
#mbe*   at pcmcia?
#ne*    at pcmcia?
#sm*    at pcmcia?

wi*     at pcmcia?

## Loopback network interface; required
pseudo-device   loop

## PPP, the successor to SLIP.  See pppd(8).
pseudo-device   ppp

## Network "tunnel" device, allowing protocol stacks to run in the userland.
## This is used by the third-party user-mode "ppp" program, and others.
pseudo-device   tun

## Generic L3 over IP tunnel
#pseudo-device  gre                     # generic L3 over IP tunnel

## Berkeley Packet Filter, required to run RARPD.  A generic C-language
## interface that allows selective examining of incoming packets.
pseudo-device   bpfilter

pseudo-device   npf                     # NPF packet filter


#### Audio and video devices

## /dev/audio support

#options        DBRI_DEBUG      # noisy debug output from the dbri driver
dbri0           at sbus0 slot ? offset ?                # SUNW,DBRI[s3|e]
audio*          at audiobus?

spkr*           at audio?               # PC speaker (synthesized)

# Tadpole 3GX/3GS (P9100 -- P Nine One Zero Zero -> pnozz)
pnozz0 at sbus? slot ? offset ?
#options        PNOZZ_EMUL_CG3          # emulate a CG3 for Xsun instead of
                                       # running natively

wsdisplay*      at wsemuldisplaydev? console ?

#### Other device configuration

# Tadpole microcontroller
tctrl0 at obio0

## Pseudo ttys, required for network logins and programs like screen.

pseudo-device   pty                     # pseudo-ttys (for network, etc.)

## Random device, used to implement /dev/random (a source of random noise),
## and generate randomness for some kernel formulae.


pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   drvctl                  # user control of drive subsystem
#pseudo-device  fss                     # file system snapshot device

pseudo-device   wsmux                   # mouse and keyboard multiplexor
pseudo-device   wsfont