# $NetBSD: GENERIC,v 1.243 2025/03/27 12:22:44 riastradh 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/sparc64/conf/std.sparc64"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.243 $"

maxusers        64

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


# Options for variants of the Sun SPARC architecture.
options         SUN4U           # sun4u - UltraSPARC
options         SUN4V           # sun4v - UltraSPARC T1/T2+/T3/T4/T5
#options        BLINK           # blink the system LED

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

## UVM options.
#options        UVM_PAGE_TRKOWN
#options        UVMHIST
#options        UVMHIST_PRINT   # Loud!

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

## 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.
# we enable DDB in GENERIC for now.
options         DDB                     # kernel dynamic debugger
options         DDB_HISTORY_SIZE=100    # enable history editing in DDB
options         DDB_VERBOSE_HELP        # enable verbose online help
#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.
# options       KGDB
# options       KGDB_DEVNAME="\"sabtty1\""      # kgdb device name
# options       KGDB_DEVRATE=38400              # baud rate (defaults to 9600)


## 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
options         PCIVERBOSE
options         MIIVERBOSE      # verbose PHY autoconfig messages
#options        PCI_CONFIG_DUMP # verbosely dump PCI config space

## `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_netbsd09.config"
options         COMPAT_SUNOS    # SunOS 4.x binary compatibility
options         COMPAT_NETBSD32 # NetBSD/sparc binary compatibility -- 64-bit only
options         EXEC_AOUT       # execve(2) support for a.out binaries
options         EXEC_ELF32      # Exec module for SunOS 5.x binaries.

# Wedge support
options         DKWEDGE_AUTODISCOVER    # Automatically add dk(4) instances
options         DKWEDGE_METHOD_GPT      # Supports GPT partitions as wedges
#options        DKWEDGE_METHOD_BSDLABEL # Support disklabel entries as wedges
#options        DKWEDGE_METHOD_MBR      # Support MBR partitions as wedges
#options        DKWEDGE_METHOD_APPLE    # Support Apple partitions as wedges
#options        DKWEDGE_METHOD_RDB      # Support RDB partitions as wedges
#options        DKWEDGE_METHOD_TOS      # Support Atari "TOS" partitions as wedges

## File systems.
include "conf/filesystems.config"

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

## Network protocol support.  In most environments, INET is required.
options         INET            # IP (Internet Protocol) v4
options         INET6           # IPV6
#options        IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#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

#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


#### Main bus and CPUs .. all systems.
mainbus0 at root
options         MULTIPROCESSOR          # include multiprocessor support
cpu*            at mainbus0             # declare additional CPUs

#### Bus types found on SPARC systems.

sbus*   at mainbus0                             # SBus-based systems
psycho* at mainbus0                             # PCI-based systems
schizo* at mainbus?
pyro*   at mainbus?
vpci*   at mainbus0
central* at mainbus?
fhc*    at mainbus?
pci*    at psycho?
pci*    at schizo?
pci*    at pyro?
pci*    at vpci?
pci*    at ppb?
ppb*    at pci?
fhc*    at central?
ebus*   at mainbus0                             # ebus devices
ebus*   at pci?                                 # ebus devices
# XXX 'puc's aren't really bridges, but there's no better place for them here
puc*    at pci? dev ? function ?                # PCI "universal" comm. cards
vbus0   at mainbus0
cbus*   at vbus?

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

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

## Auxiliary system registers -- We use the OBP for power management
auxio*  at ebus?                                # auxio registers
auxio*  at sbus? slot ? offset ?                # auxio registers

# We also need:
bpp*    at sbus? slot ? offset ?                # parallel port
lpt*    at ebus?                                # parallel port

## Mostek clock found on sbus on Ultra-1,2 systems
## and found on ebus on Ultra-5 and other systems.
clock*  at sbus? slot ? offset ?
clock*  at fhc?
clock*  at ebus?

## DS1287 compatible clock found on ebus on Netra X1 and other systems.
rtc*    at ebus?

## Timer chip found on 4/300, sun4c, sun4m and (some) sun4u systems.
timer*  at mainbus0                             # sun4c

## found in schizo-based systems
jbusi2c*        at mainbus0
iic*    at jbusi2c?

# Virtual devices for sun4v systems.
vrtc0   at vbus?
vdsk*   at cbus?
vnet*   at cbus?

#### Serial port configuration

## Zilog 8530 serial chips.  Each has two-channels.
## zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
zs*     at sbus? slot ? offset ?
zs*     at fhc?
zstty*  at zs? channel ?                        # ttys
kbd0    at zstty?
ms0     at zstty?

## PCI machines have serial ports:
##      Siemens SAB82532 controller: ttya and ttyb (`su'; sab)
##      Part of NS PC87332VLJ Super I/O controller: kbd/mouse (`se'; com)

## The SAB82532 controller has two serial ports
sab*    at ebus?                                # ttya/ttyb
sabtty* at sab? channel ?

## Part of a PC87332VLJ
com*    at ebus?                                # `com' driver for `su'
kbd0    at com?                                 # keyboard
ms0     at com?                                 # mouse

## Tadpole SPARCle PS/2 keyboard and mouse
pckbc*          at ebus?                # PC keyboard controller
options         HAVE_TADPMU             # include support for Tadpole Viper PMU
pckbd*          at pckbc?               # PC keyboard
pms*            at pckbc?               # PS/2 mouse for wsmouse
options         PMS_SYNAPTICS_TOUCHPAD  # Enable support for Synaptics Touchpads
wskbd*          at pckbd? console ?
wsmouse*        at pms? mux 0

## Tadpole SPARCle SD card
wb*             at ebus?                # Winbond W83L518D SD/MMC reader
sdmmc*          at wb?
ld*             at sdmmc?

## Magma Serial/Parallel driver (not tested)
#magma* at sbus? slot ? offset ?
#mtty*  at magma?
#mbpp*  at magma?

## SUNW,spif Serial/Parallel driver
spif*   at sbus? slot ? offset ?
stty*   at spif?
sbpp*   at spif?

## PCI serial interfaces
com*    at puc? port ?                  # 16x50s on "universal" comm boards
cy*     at pci? dev ? function ?        # Cyclades Cyclom-Y serial boards
cz*     at pci? dev ? function ?        # Cyclades-Z multi-port serial boards

# PCI cryptographic devices
hifn*   at pci? dev ? function ?        # Hifn 7755/7811/795x
ubsec*  at pci? dev ? function ?        # Broadcom 5501/5601/580x/582x


#### 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]
##      bits 16-23: disable tagged queuing for target [bit-16]

## sun4u on-board SCSI, and FSBE/S SBus SCSI cards, an NCR53c94 or
## equivalent behind an LSI Logic DMA controller

dma*    at sbus? slot ? offset ?                # SBus
esp*    at dma?                                 # SBus

esp*    at sbus? slot ? offset ?
isp*    at sbus? slot ? offset ?
isp*    at pci? dev ? function ?        # Qlogic ISP [12]0x0 SCSI/FibreChannel
siop*   at pci?                         # 53C8xx ("glm" compatible)
esiop*  at pci?                         # 53C875 and newer ("glm" compatible)

# PCI SCSI controllers
#       UT marks untested.
adv*    at pci? dev ? function ?        # AdvanSys 1200[A,B], 9xx[U,UA] SCSI UT
adw*    at pci? dev ? function ?        # AdvanSys 9x0UW[D], 3940U[2,3]W SCSI UT
ahc*    at pci? dev ? function ?        # Adaptec [23]94x, aic78x0 SCSI
bha*    at pci? dev ? function ?        # BusLogic 9xx SCSI UT
dpt*    at pci? dev ? function ?        # DPT SmartCache/SmartRAID UT
iha*    at pci? dev ? function ?        # Initio INIC-940/950 SCSI
mpt*    at pci? dev ? function ?        # LSILogic 9x9 and 53c1030
njs*    at pci? dev ? function ?        # Workbit NinjaSCSI-32
pcscp*  at pci? dev ? function ?        # AMD 53c974 PCscsi-PCI SCSI
trm*    at pci? dev ? function ?        # Tekram DC-395U/UW/F, DC-315/U SCSI

scsibus* at scsi?

## 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
ses*    at scsibus? target ? lun ?              # SCSI SES/SAF-TE devices
uk*     at scsibus? target ? lun ?              # unknown SCSI

# IDE and related devices
# PCI IDE controllers - see pciide(4) for supported hardware.
# The 0x0001 flag force the driver to use DMA, even if the driver doesn't know
# how to set up DMA modes for this chip. This may work, or may cause
# a machine hang with some controllers.
pciide* at pci? dev ? function ? flags 0x0000   # GENERIC pciide driver
acardide* at pci? dev ? function ?      # Acard IDE controllers
aceride* at pci? dev ? function ?       # Acer Lab IDE controllers
artsata* at pci? dev ? function ?       # Intel i31244 SATA controller
cmdide* at pci? dev ? function ?        # CMD tech IDE controllers
cypide* at pci? dev ? function ?        # Cypress IDE controllers
hptide* at pci? dev ? function ?        # Triones/HighPoint IDE controllers
optiide* at pci? dev ? function ?       # Opti IDE controllers
pdcide* at pci? dev ? function ?        # Promise IDE controllers
pdcsata* at pci? dev ? function ?       # Promise SATA150 controllers
satalink* at pci? dev ? function ?      # SiI SATALink controllers
siisata* at pci? dev ? function ?       # SiI SteelVine controllers
siside* at pci? dev ? function ?        # SiS IDE controllers
slide*  at pci? dev ? function ?        # Symphony Labs IDE controllers
viaide* at pci? dev ? function ?        # VIA/AMD/Nvidia IDE controllers

# ATA (IDE) bus support
atabus* at ata?
atapibus* at atapi?

# IDE drives
# Flags are used only with controllers that support DMA operations
# and mode settings (e.g. some pciide controllers)
# The lowest order four bits (rightmost digit) of the flags define the PIO
# mode to use, the next set of four bits the DMA mode and the third set the
# UltraDMA mode. For each set of four bits, the 3 lower bits define the mode
# to use, and the last bit must be 1 for this setting to be used.
# For DMA and UDMA, 0xf (1111) means 'disable'.
# 0x0fac means 'use PIO mode 4, DMA mode 2, disable UltraDMA'.
# (0xc=1100, 0xa=1010, 0xf=1111)
# 0x0000 means "use whatever the drive claims to support".
wd*     at atabus? drive ? flags 0x0000

cd*     at atapibus? drive ? flags 0x0000       # ATAPI CD-ROM drives
sd*     at atapibus? drive ? flags 0x0000       # ATAPI disk drives
uk*     at atapibus? drive ? flags 0x0000       # ATAPI unknown

# RAID controllers and devices (untested)
cac*    at pci? dev ? function ?        # Compaq PCI array controllers
mlx*    at pci? dev ? function ?        # Mylex DAC960 & DEC SWXCR family
twe*    at pci? dev ? function ?        # 3ware Escalade RAID controllers

ld*     at cac? unit ?                  # logical disk devices
ld*     at twe? unit ?
ld*     at mlx? unit ?

# Virtio devices
virtio* at pci? dev ? function ?        # Virtio PCI device

include "dev/virtio/virtio.config"
no vio9p*       at virtio?      # PAGE_SIZE != VIRTIO_PAGE_SIZE
no viomb*       at virtio?      # PAGE_SIZE != VIRTIO_PAGE_SIZE

## Floppy controller and drive found on SPARCstations.

# need share with the sparc, and everyone else.  needs to use auxio.
# actually, the ebus version has (will have) direct access to its AUXIO
# register space (it is mapped in to fdthree not auxio).
fdc0    at sbus? slot ? offset ?                # SUNW,fdtwo
#fdc0   at ebus?                                # fdthree, EXPERIMENTAL
fd*     at fdc0                                 # the drive itself

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

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

pseudo-device   vnd
#options        VND_COMPRESSION         # compressed vnd(4)

## Concatenated and striped disks; with this, you can create a software-based
## disk array similar to a "RAID 0" setup.  See ccd(4).

pseudo-device   ccd

## Cryptographic disk devices.  See cgd(4).

pseudo-device   cgd

## RAIDframe disk driver: software RAID driver.  See raid(4).

pseudo-device   raid
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


## 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 sbus? slot ? offset ?        # sun4m on-board
le0             at ledma0                       # sun4m on-board
le*             at sbus? slot ? offset ?        # SBus
ledma*          at sbus? slot ? offset ?        # SBus
le*             at ledma?                       # SBus
lebuffer0       at sbus? slot ? offset ?        # SBus
le0             at lebuffer?                    # SBus
lebuffer*       at sbus? slot ? offset ?        # SBus
le*             at lebuffer?                    # SBus

## Happy Meal Ethernet
hme*            at sbus? slot ? offset ?
hme*            at pci? dev ? function ?        # network "hme" compatible

## qec/be, qec/hme
qec*            at sbus? slot ? offset ?
be*             at qec?
qe*             at qec?

# PCI network interfaces
#       UT marks untested.
an*     at pci? dev ? function ?        # Aironet PC4500/PC4800 (802.11) UT
ath*    at pci? dev ? function ?        # Atheros 5210/5211/5212 802.11 UT
bge*    at pci? dev ? function ?        # Broadcom 570x gigabit Ethernet
bnx*    at pci? dev ? function ?        # Broadcom NetXtreme II Ethernet
cas*    at pci? dev ? function ?        # Sun Cassini/Cassini+ Ethernet
# XXX causes ICE
#ep*    at pci? dev ? function ?        # 3Com 3c59x
epic*   at pci? dev ? function ?        # SMC EPIC/100 Ethernet
ex*     at pci? dev ? function ?        # 3Com 90x[B]
fxp*    at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
gem*    at pci? dev ? function ?        # Apple GMAC and Sun ERI gigabit enet
gem*    at sbus? slot ? offset ?
gsip*   at pci? dev ? function ?        # National Semiconductor DP83820 GigE
ixg*    at pci? dev ? function ?        # Intel 8259x 10 gigabit
mskc*   at pci? dev ? function ?        # Marvell Yukon 2 Gigabit Ethernet
msk*    at mskc?                        # Marvell Yukon 2 Gigabit Ethernet
ne*     at pci? dev ? function ?        # NE2000-compatible Ethernet UT
ntwoc*  at pci? dev ? function ?        # Riscom/N2 PCI Sync Serial UT
# XXX cause uncorrectable DMA error
#pcn*   at pci? dev ? function ?        # PCnet-PCI Ethernet
ral*    at pci? dev ? function ?        # ralink wifi UT
re*     at pci? dev ? function ?        # Realtek 8139C+/8169/8169S/8110S
rtk*    at pci? dev ? function ?        # Realtek 8129/8139
sip*    at pci? dev ? function ?        # SiS 900 Ethernet
skc*    at pci? dev ? function ?        # SysKonnect SK9821 Gigabit Ethernet
sk*     at skc?                         # SysKonnect SK9821 Gigabit Ethernet
ti*     at pci? dev ? function ?        # Alteon ACEnic gigabit Ethernet UT
tl*     at pci? dev ? function ?        # ThunderLAN-based Ethernet
tlp*    at pci? dev ? function ?        # DECchip 21x4x and clones
vge*    at pci? dev ? function ?        # VIA VT612X Gigabit Ethernet
vr*     at pci? dev ? function ?        # VIA Rhine Fast Ethernet
wi*     at pci? dev ? function ?        # Lucent/Intersil WaveLAN/IEEE
wm*     at pci? dev ? function ?        # Intel 8254x gigabit

# MII/PHY support
acphy*  at mii? phy ?                   # Altima AC101 and AMD Am79c874 PHYs
bmtphy* at mii? phy ?                   # Broadcom BCM5201 and BCM5202 PHYs
brgphy* at mii? phy ?                   # Broadcom BCM5400-family PHYs
ciphy*  at mii? phy ?                   # Cicada CS8201 Gig-E PHYs
dmphy*  at mii? phy ?                   # Davicom DM9101 PHYs
exphy*  at mii? phy ?                   # 3Com internal PHYs
gentbi* at mii? phy ?                   # Generic Ten-Bit 1000BASE-[CLS]X PHYs
gphyter* at mii? phy ?                  # NS83861 Gig-E PHY
icsphy* at mii? phy ?                   # Integrated Circuit Systems ICS189x
igphy*  at mii? phy ?                   # Intel IGP01E1000
ikphy*  at mii? phy ?                   # Intel 82563 PHYs
inphy*  at mii? phy ?                   # Intel 82555 PHYs
iophy*  at mii? phy ?                   # Intel 82553 PHYs
lxtphy* at mii? phy ?                   # Level One LXT-970 PHYs
makphy* at mii? phy ?                   # Marvell Semiconductor 88E1000 PHYs
nsphy*  at mii? phy ?                   # NS83840 PHYs
nsphyter* at mii? phy ?                 # NS83843 PHYs
qsphy*  at mii? phy ?                   # Quality Semiconductor QS6612 PHYs
rgephy* at mii? phy ?                   # Realtek 8169S/8110S internal PHYs
rlphy*  at mii? phy ?                   # Realtek 8139/8201L PHYs
sqphy*  at mii? phy ?                   # Seeq 80220/80221/80223 PHYs
tlphy*  at mii? phy ?                   # ThunderLAN PHYs
tqphy*  at mii? phy ?                   # TDK Semiconductor PHYs
ukphy*  at mii? phy ?                   # generic unknown PHYs

# PCI USB controllers
ehci*   at pci? dev ? function ?        # Enhanced Host Controller
ohci*   at pci? dev ? function ?        # Open Host Controller
uhci*   at pci? dev ? function ?        # Universal Host Controller (Intel)

# USB bus support
usb*    at ehci?
usb*    at ohci?
usb*    at uhci?
#usb*   at slhci?

# USB device drivers
include "dev/usb/usbdevices.config"

# Firewire support
fwohci* at pci? dev ? function ?        # IEEE1394 Open Host Controller
ieee1394if* at fwohci?
fwip*   at ieee1394if?                  # IP over IEEE1394
sbp*    at ieee1394if? euihi ? euilo ?

## Loopback network interface; required
pseudo-device   loop

## SLIP and CSLIP interfaces, for IP over a serial line.
pseudo-device   sl

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

## PPP over Ethernet (RFC 2516)
pseudo-device   pppoe

## 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
pseudo-device   tap                     # virtual Ethernet

## 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   carp                    # Common Address Redundancy Protocol

## IEEE 802.1q encapsulation
pseudo-device   vlan

## Simple inter-network traffic bridging
pseudo-device   bridge
pseudo-device   vether                  # Virtual Ethernet for bridge
pseudo-device   agr                     # IEEE 802.3ad link aggregation

pseudo-device   npf                     # NPF packet filter

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


#### CardBus and PCMCIA devices

# PCI CardBus bridge support
#cbb*   at pci? dev ? function ?
#cardslot* at cbb?

# CardBus bus support
#cardbus* at cardslot?
#pcmcia* at cardslot?

## SBus to PCMCIA bridge
#nell*  at sbus? slot ? offset ?                # PCMCIA bridge
#pcmcia* at nell?

## CardBus cards; UT marks untested.

# CardBus serial interfaces
#com*   at cardbus? function ?  # Modems and serial cards UT

# CardBus SCSI controllers
#adv*   at cardbus? function ?  # AdvanSys 1200[A,B], 9xx[U,UA] SCSI UT
#ahc*   at cardbus? function ?  # Adaptec ADP-1480 UT
#njs*   at cardbus? function ?  # Workbit NinjaSCSI-32

# CardBus IDE controllers
#njata* at cardbus? function ? flags 0x01       # Workbit NinjaATA-32

# CardBus network interfaces
#ath*   at cardbus? function ?  # Atheros 5210/5211/5212 802.11
#athn*  at cardbus? function ?  # Atheros AR9k (802.11a/g/n) UT
#atw*   at cardbus? function ?  # ADMtek ADM8211 (802.11) UT
#bwi*   at cardbus? function ?  # Broadcom BCM43xx wireless
#ex*    at cardbus? function ?  # 3Com 3C575TX
#fxp*   at cardbus? function ?  # Intel i8255x UT
#ral*   at cardbus? function ?  # Ralink Technology RT25x0 802.11a/b/g UT
#re*    at cardbus? function ?  # Realtek 8139C+/8169/8169S/8110S UT
#rtk*   at cardbus? function ?  # Realtek 8129/8139 UT
#rtw*   at cardbus? function ?  # Realtek 8180L (802.11) UT
#tlp*   at cardbus? function ?  # DECchip 21143

# CardBus USB controllers
#ehci*  at cardbus? function ?  # Enhanced Host Controller
#ohci*  at cardbus? function ?  # Open Host Controller
#uhci*  at cardbus? function ?  # Universal Host Controller (Intel) UT

# CardBus IEEE1394 controllers
#fwohci* at cardbus? function ? # IEEE1394 Open Host Controller UT

## PCMCIA cards; UT marks untested.

# PCMCIA serial interfaces
#com*   at pcmcia? function ?           # Modems and serial cards

#pcmcom* at pcmcia? function ?          # PCMCIA multi-port serial cards UT
#com*   at pcmcom? slave ?              # ...and the slave devices

# PCMCIA SCSI controllers
#aic*   at pcmcia? function ?           # Adaptec APA-1460 SCSI UT
#esp*   at pcmcia? function ?           # Qlogic ESP406/FAS408 SCSI UT
#spc*   at pcmcia? function ?           # Fujitsu MB87030/MB89352 SCSI

# PCMCIA IDE controllers
#wdc*   at pcmcia? function ?

# PCMCIA network interfaces
#an*    at pcmcia? function ?           # Aironet PC4500/PC4800 (802.11) UT
#awi*   at pcmcia? function ?           # BayStack 650/660 (802.11FH/DS) UT
#cnw*   at pcmcia? function ?           # Xircom/Netwave AirSurfer UT
#cs*    at pcmcia? function ?           # CS89xx Ethernet UT
#ep*    at pcmcia? function ?           # 3Com 3c589 and 3c562 Ethernet
#mbe*   at pcmcia? function ?           # MB8696x based Ethernet UT
#ne*    at pcmcia? function ?           # NE2000-compatible Ethernet
#ray*   at pcmcia? function ?           # Raytheon Raylink (802.11) UT
#sm*    at pcmcia? function ?           # Megahertz Ethernet UT
#wi*    at pcmcia? function ?           # Lucent/Intersil WaveLan IEEE (802.11)
#xirc*  at pcmcia? function ?           # Xircom CreditCard Ethernet UT
#com*   at xirc?
#xi*    at xirc?
#mhzc*  at pcmcia? function ?           # Megahertz Ethernet/Modem combo cards
#com*   at mhzc?
#sm*    at mhzc?

# PCMCIA USB controllers
#slhci* at pcmcia? function ?           # ScanLogic SL811HS UT

#### Bluetooth Controller and Device support

## Bluetooth PCMCIA Controllers
#bt3c* at pcmcia? function ?            # 3Com 3CRWB6096-A
#btbc* at pcmcia? function ?            # AnyCom BlueCard LSE041/039/139

## Bluetooth USB Controllers
ubt* at uhub? port ?
aubtfwl* at uhub? port ?

## Bluetooth Device Hub
#bthub* at bcsp?
#bthub* at bt3c?
#bthub* at btbc?
#bthub* at btuart?
bthub* at ubt?

## Bluetooth HID support
bthidev* at bthub?

## Bluetooth Mouse
btms* at bthidev? reportid ?
wsmouse* at btms? mux 0

## Bluetooth Keyboard
btkbd* at bthidev? reportid ?
wskbd* at btkbd? console ? mux 1

## Bluetooth Apple Magic Mouse
btmagic* at bthub?
wsmouse* at btmagic? mux 0

## Bluetooth Audio support
btsco* at bthub?

#### Audio and video devices

## /dev/audio support (`audiocs' plus `audio')
##
audiocs*        at sbus? slot ? offset ?        # SUNW,CS4231
audiocs*        at ebus?                        # SUNW,CS4231 in U5/U10
autri*          at pci? dev ? function ?        # Blade 100 'sound'
auacer*         at pci? dev ? function ?        # Ultra45

audio*          at audiobus?

spkr*           at audio?                       # PC speaker (synthesized)

midi*           at midibus?


## Sun "bwtwo" black and white framebuffer
bwtwo0          at sbus? slot ? offset ?
bwtwo*          at sbus? slot ? offset ?

## Sun "cgthree" Sbus color framebuffer
cgthree0        at sbus? slot ? offset ?
cgthree*        at sbus? slot ? offset ?

## Sun "cgsix" accelerated color framebuffer.
cgsix*          at sbus? slot ? offset ?

## Southland Media Systems (now Quantum 3D) MGX
mgx*            at sbus? slot ? offset ?

## Sun FFB
ffb*            at mainbus0
upa*            at mainbus?
ffb*            at upa?

## Sun XVR-1000
gfb*            at mainbus0

# On board vga on U5/U10 etc.
machfb*         at pci?

# Sun XVR-100
radeonfb*       at pci?

# Sun PGX32 / TechSource Raptor GFX 8P
pm2fb*          at pci?

# 3Dlabs Wildcat based boards like XVR-500, 1200 etc.
wcfb*           at pci?

# generic PCI framebuffers
genfb*          at pci?
genfb*          at sbus? slot ? offset ?

# make sure the console display is always wsdisplay0
wsdisplay0      at wsemuldisplaydev? console 1
wsdisplay*      at wsemuldisplaydev?

# wsmouse for sun ms
wsmouse*        at ms0

# wskbd for sun kbd
wskbd0          at kbd0

# various options for wscons - we try to look as much like a standard
# sun console as possible
#options        WSEMUL_SUN              # sun terminal emulation
options         WSEMUL_VT100            # allow us to be wsvt25
options         WS_DEFAULT_FG=WSCOL_BLACK
options         WS_DEFAULT_BG=WSCOL_LIGHT_WHITE
options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some more ioctls
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
options         WSDISPLAY_DEFAULTSCREENS=4
options         FONT_GALLANT12x22               # PROM font look-alike
options         FONT_DROID_SANS_MONO12x22       # antialiased font

#### Other device configuration

psm*            at ebus?                # Ultrabook IIi microcontroller
pcfiic*         at ebus?                # various environmental monitoring
iic*            at pcfiic?
lom*            at ebus?                # LOMlite lights out management

# Netra X1 / T1 style environmental monitoring
alipm*          at pci?
iic*            at alipm?

spdmem*         at iic? addr?
admtemp*        at iic? addr?
adm1026hm*      at iic? addr?
ecadc*          at iic? addr?   # envctrl/envctrltwo on E250/E450
lmtemp*         at iic? addr?
tda*            at iic? addr?   # fan control on SB1000/2000
dbcool*         at iic? addr?   # SB25000
seeprom*        at iic? addr?   # i2c-at24c64 fru's
pcagpio*        at iic? addr?   # V210/V240 GPIO's
pcf8574io*      at iic? addr?   # E250 GPIO's

### Other pseudo-devices

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

## 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   wsmux                   # mouse & keyboard multiplexor
pseudo-device   wsfont
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   fss                     # file system snapshot device
#pseudo-device  bcsp                    # BlueCore Serial Protocol
#pseudo-device  btuart                  # Bluetooth HCI UART (H4)
pseudo-device   lockstat                # lock profiling
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

# drvctl - needed to show device dictionary via drvctl(8)
pseudo-device   drvctl

include "dev/veriexec.config"

options         PAX_ASLR_DEBUG=1        # PaX ASLR debug
options         PAX_SEGVGUARD=0         # PaX Segmentation fault guard
# XXX: there is no PLT format for sparc64 that cooperates with
# MPROTECT, so disable it for now
# options       PAX_MPROTECT=0          # PaX mprotect(2) restrictions
# options       PAX_MPROTECT_DEBUG=1    # PaX mprotect debug
options         PAX_ASLR=1              # PaX Address Space Layout Randomization

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