# $NetBSD: GENERIC,v 1.181 2024/04/02 22:56:50 charlotte 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/ofppc/conf/std.ofppc"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.181 $"

maxusers        32

options         PIC_OPENPIC
options         PIC_DISTOPENPIC
options         PIC_I8259
#options        PIC_PREPIVR

# various hacks due to bugs in Openfirmware implementation
options         FIRMWORKSBUGS

# Standard system options
options         INSECURE        # disable kernel security checks
#options        NTP             # NTP phase/frequency locked loop
options         KTRACE          # system call tracing via ktrace(1)

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
options         RDB_PART        # Rigid Disk Block partition support

# Alternate buffer queue strategies for better responsiveness under high
# disk I/O load.
#options        BUFQ_READPRIO
options         BUFQ_PRIOCSCAN

# Diagnostic/debugging support options
#options        DIAGNOSTIC      # cheap kernel consistency checks
#options        DEBUG           # expensive debugging checks/support
options         DDB             # in-kernel debugger
options         DDB_HISTORY_SIZE=512    # enable history editing in DDB
options         DDB_VERBOSE_HELP
options         TRAP_PANICWAIT
options         MSGBUFSIZE=32768

makeoptions     DEBUG="-g"      # compile full symbol table

# Compatibility option
include         "conf/compat_netbsd09.config"
options         COMPAT_386BSD_MBRPART # recognize old partition ID
#options        COMPAT_LINUX    # Linux binary compatibility
#options        COMPAT_OSSAUDIO # Linux binary compatibility

# 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
file-system     FFS             # UFS
file-system     EXT2FS          # second extended file system (linux)
file-system     LFS             # log-structured file system
file-system     MFS             # memory file system
file-system     NFS             # Network file System client
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     MSDOSFS         # MS-DOS file system
file-system     ADOSFS          # AmigaDOS 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     PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
file-system     PROCFS          # /proc
file-system     UMAPFS          # NULLFS + uid and gid remapping
file-system     UNION           # union file system
file-system     NTFS            # Windows NT file system
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         LFS_DIRHASH     # LFS version of UFS_DIRHASH - experimental
options         NFSSERVER       # Network File System server

options         NFS_BOOT_DHCP   # Support DHCP NFS root

# Networking options
#options        GATEWAY         # packet forwarding
options         INET            # IP + ICMP + TCP + UDP
options         INET6           # IPV6
#options        IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#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

# These options enable verbose messages for several subsystems.
# Warning, these may compile large string tables into the kernel!
options         MIIVERBOSE      # verbose PHY autoconfig messages
options         PCIVERBOSE      # verbose PCI device autoconfig messages
#options        PCI_CONFIG_DUMP # verbosely dump PCI config space
options         SCSIVERBOSE     # human readable SCSI error messages
options         USBVERBOSE      # verbose USB device autoconfig messages

options         WSEMUL_VT100
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
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        FONT_GALLANT12x22
options         FONT_BOLD8x16

# Kernel root file system and dump configuration
config          netbsd  root on ? type ?

#
# Device configuration
#

mainbus*        at root

# CPUs
cpu*            at mainbus?

# Generic OpenFirmware console support
rtas*           at mainbus?

gt*             at mainbus?                     # Marvell MV64361 Discovery II
mvgbec*         at gt? offset ?                 # Gigabit Ethernet
mvgbe0          at mvgbec? port 1 irq 9

# PCI root nodes
ofwpci*         at mainbus?
pci*            at ofwpci? bus ?
gtpci*          at gt? unit ?
pci*            at gtpci? bus ?

# PCI bridges
pchb*           at pci? dev ? function ?
ppb*            at pci? dev ? function ?
pcib*           at pci? dev ? function ?

# ISA bus support
isa*            at pcib?

# Console Devices
genfb*          at pci? dev ? function ?
#radeonfb*      at pci? dev ? function ?
#voodoofb*      at pci? dev ? function ?        # 3Dfx Voodoo3
tdvfb*          at pci? dev ? function ?        # 3Dfx Voodoo1/Voodoo2
#options        TDVFB_CONSOLE
pckbc0          at isa?                 # pc keyboard controller
pckbd*          at pckbc?               # PC keyboard
pms*            at pckbc?               # PS/2 mouse for wsmouse
#wscons stuff
wskbd*          at pckbd? console ?
wsmouse*        at pms? mux 0
# make sure the console display is always wsdisplay0 XXX Why?
wsdisplay0      at wsemuldisplaydev? console 1
wsdisplay*      at wsemuldisplaydev?

attimer0        at isa?                 # AT Timer
pcppi0          at isa?                 # PC prog. periph. interface
# FIX ISABEEP LATER

# VIA VT82C686A/VT8231 Hardware Monitor and Power Management Timer
viaenv*         at pci? dev ? function ?

# Serial Devices
# ISA serial interfaces
com0    at isa? port 0x3f8 irq 4        # standard PC serial ports
com1    at isa? port 0x2f8 irq 3

# Parallel Printer Interfaces
# ISA parallel printer interfaces
lpt0            at isa? port 0x3bc irq 7        # standard PC parallel ports

# ISA floppy
fdc0            at isa? port 0x3f0 irq 6 drq 2  # standard PC floppy controllers
fd*             at fdc? drive ?                 # the drives themselves

# SCSI Controllers and Devices
siop*           at pci? dev ? function ?        # Symbios 53c8xx SCSI
esiop*          at pci? dev ? function ?        # Symbios 53c875 SCSI and newer

# SCSI bus support
scsibus*        at siop?
scsibus*        at esiop?
scsibus*        at umass?
scsibus*        at sbp?

# SCSI devices
sd*             at scsibus? target ? lun ?      # SCSI disk drives
st*             at scsibus? target ? lun ?      # SCSI tape drives
cd*             at scsibus? target ? lun ?      # SCSI CD-ROM drives
#ch*            at scsibus? target ? lun ?      # SCSI autochangers
#ss*            at scsibus? target ? lun ?      # SCSI scanners
#uk*            at scsibus? target ? lun ?      # SCSI unknown

# IDE and related devices
# PCI IDE controllers
pciide*         at pci? dev ? function ? flags 0x0000
viaide*         at pci? dev ? function ?        # VIA/AMD/Nvidia IDE controllers
siisata*        at pci? dev ? function ?

# ATA (IDE) bus support
atabus0         at viaide0 channel 0
atabus1         at viaide0 channel 1
atabus*         at ata?

# 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".
wd0     at atabus0 drive 0 flags 0x0000
wd*     at atabus? drive ? flags 0x0000

# ATAPI bus support
atapibus*       at atapi?

# ATAPI devices
# flags have the same meaning as for IDE drives.
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

# Network Interfaces
ep*     at pci? dev ? function ?        # 3Com 3c59x
ex*     at pci? dev ? function ?        # 3Com 3c90x[BC]
fxp*    at pci? dev ? function ?        # Intel EtherExpress PRO 10+/100B
ne*     at pci? dev ? function ?        # NE2000-compatible Ethernet
pcn*    at pci? dev ? function ?        # AMD PCnet-PCI Ethernet
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/DP83815 Ethernet
tlp*    at pci? dev ? function ?        # DECchip 21x4x and clones
vr*     at pci? dev ? function ?        # VIA Rhine Fast Ethernet

# MII/PHY support
acphy*  at mii? phy ?                   # Altima AC101 and AMD Am79c874 PHYs
amhphy* at mii? phy ?                   # AMD 79c901 Ethernet 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
glxtphy* at mii? phy ?                  # Level One LXT-1000 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
pnaphy* at mii? phy ?                   # generic HomePNA 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
urlphy* at mii? phy ?                   # Realtek RTL8150L internal PHYs

# PCI USB controllers
uhci*   at pci? dev ? function ?        # USB Universal Host Controller
ohci*   at pci? dev ? function ?        # USB Open Host Controller
ehci*   at pci? dev ? function ?        # USB Enhanced Host Controller
options USB_FRAG_DMA_WORKAROUND         # Workaround panic in usb_allocmem()

usb*    at uhci?                        # USB bus support
usb*    at ohci?                        # USB bus support
usb*    at ehci?                        # USB bus support
uhub*   at usb?                         # USB Hubs
uhub*   at uhub? port ?

# USB Mass Storage
umass*  at uhub? port ? configuration ? interface ?

uhidev* at uhub? port ? configuration ? interface ?     # USB HID device

ums*    at uhidev? reportid ?                           # USB Mice
wsmouse* at ums? mux 0

ukbd*   at uhidev? reportid ?                           # USB Keyboards
wskbd*  at ukbd? console ? mux 1

ucycom* at uhidev? reportid ?                           # USB serial adapter
uhid*   at uhidev? reportid ?                           # USB Generic HID

ulpt*   at uhub? port ? configuration ? interface ?     # USB Printer
umodem* at uhub? port ? configuration ?                 # USB Modem
ucom*   at umodem?
uhso*   at uhub? port ? configuration ?                 # Option N.V. Wireless WAN modems
#uaudio*        at uhub? port ? configuration ?                 # USB audio

# D-Link DSB-R100 USB FM radio tuner
#udsbr* at uhub? port ?
#radio* at udsbr?

# USB Ethernet adapters
#aue*   at uhub? port ?         # ADMtek AN986 Pegasus based adapters
#axe*   at uhub? port ?         # ASIX AX88172 based adapters
#cue*   at uhub? port ?         # CATC USB-EL1201A based adapters
#kue*   at uhub? port ?         # Kawasaki LSI KL5KUSB101B based adapters
#mue*   at uhub? port ?         # Microchip LAN75xx/LAN78xx based adapters
#udav*  at uhub? port ?         # Davicom DM9601 based adapters
#ure*   at uhub? port ?         # Realtek RTL8152/RTL8153 based adapters
#url*   at uhub? port ?         # Realtek RTL8150L based adapters

#ukyopon* at uhub? port ?                               # Kyocera AIR-EDGE PHONE
#ucom*  at ukyopon? portno ?

ugen*   at uhub? port ? configuration ? interface ?     # USB Generic driver

# USB 802.11 adapters
#atu*   at uhub? port ?         # Atmel at76c50x 802.11b
#ural*  at uhub? port ?         # Ralink Technology RT2500USB 802.11a/b/g
#zyd*   at uhub? port ?         # Zydas ZD1211

# PCI IEEE1394 controllers
fwohci* at pci? dev ? function ?        # IEEE1394 Open Host Controller

ieee1394if* at fwohci?
fwip*   at ieee1394if?                  # IP over IEEE1394
sbp*    at ieee1394if? euihi ? euilo ?

# Audio Devices

# PCI audio devices
auvia*  at pci? dev ? function ?        # VIA VT82C686A integrated AC'97 Audio

# Audio support
audio*  at audiobus?

spkr*   at audio?               # PC speaker (synthesized)


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

pseudo-device   vnd                     # disk-like interface to files
#options        VND_COMPRESSION         # compressed vnd(4)
pseudo-device   ccd                     # concatenated/striped disk devices
#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   md                      # memory disk device
pseudo-device   loop                    # network loopback
pseudo-device   bpfilter                # packet filter
pseudo-device   carp                    # Common Address Redundancy Protocol
pseudo-device   npf                     # NPF packet filter
pseudo-device   ppp                     # Point-to-Point Protocol
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   sl                      # Serial Line IP
pseudo-device   tun                     # network tunneling over tty
pseudo-device   tap                     # virtual Ethernet
#pseudo-device  gre                     # generic L3 over IP tunnel
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   clockctl                # user control of clock subsystem
pseudo-device   openfirm                # /dev/openfirm
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   wsmux                   # mouse and keyboard multiplexor
pseudo-device   putter                  # for puffs and pud
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

# userland interface to drivers, including autoconf and properties retrieval
pseudo-device   drvctl

include "dev/veriexec.config"

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