# $NetBSD: GENERIC,v 1.46 2024/01/29 18:27:10 christos 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/amigappc/conf/std.amigappc"

options         INCLUDE_CONFIG_FILE     # embed config file in kernel binary

#ident          "GENERIC-$Revision: 1.46 $"

maxusers        8

#
# Mainboards to support (in addition to Amiga)
#
options         BB060STUPIDROM  # You need this, if you have a non-DraCo
                               # MC68060 with an OS ROM up to (at least)
                               # V40 (OS3.1) and want to boot with the
                               # bootblock.
                               # You do not need this if you have a DraCo,
                               # have no 68060 or NEVER use the bootblock
options         P5PPC68KBOARD   # Phase5 PPC/68K board support

#
# Standard system options
#
options         INSECURE        # disable kernel security levels
options         RTC_OFFSET=0    # hardware clock is this many mins. west of GMT
options         NTP             # NTP phase/frequency locked loop

options         KTRACE          # system call tracing support
options         SCSIVERBOSE     # human readable SCSI error messages
options         USERCONF        # userconf(4) support
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Support for System V IPC facilities.
options         SYSVSHM         # System V-like shared memory
options         SYSVMSG         # System V-like messages
options         SYSVSEM         # System V-like semaphores

# 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      # Extra kernel sanity checks
#options        DEBUG           # Enable misc. kernel debugging code
#options        DEBUG_KERNEL_START
options         DDB             # in-kernel debugger
#options        DDB_ONPANIC=1   # see also sysctl(7): `ddb.onpanic'
options         DDB_HISTORY_SIZE=512    # Enable history editing in DDB
#options        SCSIDEBUG       # Add SCSI debugging statements
#options        SERCONSOLE      # console via Amiga serial port
#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

#
# 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     PROCFS          # /proc
file-system     UMAPFS          # NULLFS + uid and gid remapping
file-system     UNION           # union 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

#
# Networking options
#
#options        GATEWAY         # Packet forwarding
options         INET            # IP networking support (Required)
options         INET6           # IPV6
#options        IPSEC           # IP security
#options        IPSEC_DEBUG     # debug for IP security
#options        MROUTING        # 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

#
# Amiga specific options
#
options         RETINACONSOLE   # enable code to allow retina to be console
options         ULOWELLCONSOLE  # enable code to allow a2410 to be console
options         CL5426CONSOLE   # Cirrus console
options         CV64CONSOLE     # CyberVision console
options         TSENGCONSOLE    # Tseng console
options         CV3DCONSOLE     # CyberVision 64/3D console

options         GRF_ECS         # Enhanced Chip Set
options         GRF_NTSC        # NTSC
options         GRF_PAL         # PAL
options         GRF_A2024       # Support for the A2024
options         GRF_AGA         # AGA Chip Set
options         GRF_AGA_VGA     # AGA VGAONLY timing
options         GRF_SUPER72     # AGA Super-72
#options        KFONT_8X11      # 8x11 font

# select a font for the console according to the character set and keymap
# you want to use
options        KFONT_CONS_ISO8859_1
#options         KFONT_CONS_ISO8859_2

# This is how you would tell the kernel the A2410 oscillator frequencies:
# The used frequencies are the defaults, and do not need option setting
#options        ULOWELL_OSC1=36000000
#options        ULOWELL_OSC2=66667000

# This is how you specify the blitting speed, higher values may speed up blits
# a little bit.  If you raise this value too much some trash may appear.
# the commented version is the default.
#options        RH_MEMCLK=61000000
# this option enables the 64 bit sprite which does not work
# for quite a few people.  E.g. The cursor sprite will turn to a block
# when moved to the top of the screen in X.
#options        RH_64BIT_SPRITE
# enables fast scroll code appears to now work on 040 systems.
#options        RETINA_SPEED_HACK
# enables the Hardwarecursor which does not work on some systems.
#options        RH_HARDWARECURSOR

#
# Device configuration
#
mainbus0        at root
cpu0            at mainbus0
kbd0            at mainbus0             # Amiga keyboard
zbus0           at mainbus0             # ZorroII/III expansion bus
ser0            at mainbus0             # Amiga onboard serial
par0            at mainbus0             # Amiga onboard parallel
ms*             at mainbus0             # Amiga mice
fdc0            at mainbus0             # Amiga FDC
fd*             at fdc0 unit ?          # floppy disks on the later
a34kbbc0        at mainbus0             # A3000/A4000 battery backed clock
aucc*           at mainbus0             # Amiga CC audio
audio*          at aucc?

spkr*           at audio?               # PC speaker (synthesized)

# wscons aware interface to amiga custom chips.
# If you enable it enable also wskbd.
#amidisplaycc0  at mainbus0             # wscons interface to custom chips
#wsdisplay0     at amidisplaycc0 console ?
#options        WSEMUL_VT100
#options        WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
#options        FONT_VT220L8x10
#options        FONT_VT220ISO8x16
#
# Keyboard device. Optionally can attach a wskbd.
# wskbd works together with a wsdisplay so enable them both if you will.
# Don't enable wskbd if you use ite.
#
# XXX in std.amiga: kbd0 at mainbus0
#wskbd0         at kbd0 console ?
#wsmouse*       at ms?

#
# Graphics devices
#
grfcc0          at mainbus0             # custom chips
grfrt0          at zbus0                # retina II
grfrh0          at zbus0                # retina III
grfcl*          at zbus0                # Picasso II/Piccolo/Spectrum
grful0          at zbus0                # A2410
grfcv0          at zbus0                # CyberVision 64
grfet*          at zbus0                # Tseng (oMniBus, Domino, Merlin)
grfcv3d0        at zbus0                # CyberVision 64/3D

grf0            at grfcc0
grf1            at grfrt0
grf2            at grfrh0
grf3            at grfcl?
grf4            at grful0
grf5            at grfcv0
grf6            at grfet?
grf7            at grfcv3d0
ite0            at grf0                 # terminal emulators for grfs
ite1            at grf1                 # terminal emulators for grfs
ite2            at grf2                 # terminal emulators for grfs
ite3            at grf3                 # terminal emulators for grfs
ite4            at grf4                 # terminal emulators for grfs
ite5            at grf5                 # terminal emulators for grfs
ite6            at grf6                 # terminal emulators for grfs
ite7            at grf7                 # terminal emulators for grfs

# Needs wscons
#mntva*          at zbus?                # MNTMN VA2000
#options         MNTVA_CONSOLE

#
# Zorro-II, Zorro-III devices (sans graphics)
#
repulse*        at zbus0                # ALiENDESiGN Repulse
audio*          at repulse?

toccata*        at zbus0                # MacroSystem GmbH Toccata
audio*          at toccata?

# Ethernet cards:
le*             at zbus0                # A2065, Ameristar, Ariadne
ne*             at zbus0                # AriadneII, X-surf
ed*             at zbus0                # Hydra, ASDG LanRover
es*             at zbus0                # CEI A4066 EthernetPLUS
qn*             at zbus0                # Quicknet

# Arcnet
bah*            at zbus0                # C=/Ameristar A2060 / 560

# Greater Valley Product Bus
gvpbus*         at zbus0

# scsi stuff, all possible
gtsc0           at gvpbus?              # GVP series II scsi
scsibus*        at gtsc0
ahsc0           at mainbus0             # A3000 scsi
scsibus*        at ahsc0
atzsc0          at zbus0                # A2091 scsi
scsibus*        at atzsc0
wstsc0          at zbus0                # Wordsync II scsi
scsibus*        at wstsc0
ivsc0           at zbus0                # IVS scsi
scsibus*        at ivsc0
mlhsc0          at zbus0                # Hacker scsi
scsibus*        at mlhsc0
otgsc0          at zbus0                # 12 gauge scsi
scsibus*        at otgsc0
zssc0           at zbus0                # Zeus scsi
scsibus*        at zssc0
mgnsc0          at zbus0                # Magnum scsi
scsibus*        at mgnsc0
wesc0           at zbus0                # Warp Engine scsi
scsibus*        at wesc0
bppcsc0         at zbus0                # BlizzardPPC 603e+ scsi
scsibus*        at bppcsc0
afsc0           at zbus0                # A4091 scsi
scsibus*        at afsc0
aftsc0          at mainbus0             # A4000T scsi
scsibus*        at aftsc0
flsc0           at zbus0                # FastlaneZ3 scsi
scsibus*        at flsc0
bzsc0           at zbus0                # Blizzard 1230 I,II scsi
scsibus*        at bzsc0
bzivsc0         at zbus0                # Blizzard 12x0 IV scsi
scsibus*        at bzivsc0
bztzsc0         at zbus0                # Blizzard 2060 scsi
scsibus*        at bztzsc0
cbsc0           at zbus0                # CyberSCSI I
scsibus*        at cbsc0
cbiisc0         at zbus0                # CyberSCSI II
scsibus*        at cbiisc0
cbiiisc0        at zbus0                # Cyberstorm mk.III/Cyberstorm PPC SCSI
scsibus*        at cbiiisc0
empsc0          at zbus0                # Emplant scsi
scsibus*        at empsc0

wdc0            at mainbus0             # A4000 & A1200 IDE bus
wdc*            at zbus0                # Buddha / Catweasel

atabus*         at wdc? channel ?       # ATA bus
wd*             at atabus? drive ?      #  + drives
atapibus*       at atabus?              # ATAPI bus
cd*             at atapibus? drive ?    # ATAPI CD-ROM drives
sd*             at atapibus? drive ?    # ATAPI disk drives

pccard0         at mainbus0
pcmcia*         at pccard0
com*            at pcmcia? function ?   # Modems and serial cards
pcmcom*         at pcmcia? function ?   # PCMCIA multi-port serial cards
aic*            at pcmcia? function ?   # Adaptec APA-1460 SCSI
wdc*            at pcmcia? function ?
awi*            at pcmcia? function ?   # BayStack 650 (802.11FH)
ep*             at pcmcia? function ?   # 3Com 3c589 and 3c562 Ethernet
mbe*            at pcmcia? function ?   # MB8696x based Ethernet
ne*             at pcmcia? function ?   # NE2000-compatible Ethernet
sm*             at pcmcia? function ?   # Megahertz Ethernet
mhzc*           at pcmcia? function ?   # Megahertz Ethernet/Modem combo cards
com*            at mhzc?
sm*             at mhzc?

# each hard drive from low target to high
# will configure to the next available sd unit number
sd*             at scsibus? target ? lun ?      # scsi disks
st*             at scsibus? target ? lun ?      # scsi tapes
cd*             at scsibus? target ? lun ?      # scsi cds
ch*             at scsibus? target ? lun ?      # scsi autochangers
ss*             at scsibus? target ? lun ?      # scsi scanner
uk*             at scsibus? target ? lun ?      # scsi unknown

msc0            at zbus0                # A2232 MSC multiport serial.
mfc0            at zbus0                # MultiFaceCard I/O board
mfcs0           at mfc0 unit 0          # MFC serial
mfcs1           at mfc0 unit 1          # MFC serial
#mfcp0          at mfc0 unit 0          # MFC parallel [not available yet]
#mfc1           at zbus0                # MultiFaceCard 2nd I/O board
#mfcs2          at mfc1 unit 0
#mfcs3          at mfc1 unit 1
#mfcp1          at mfc1 unit 0

hyper*          at zbus?                # zbus HyperCom3/3+/4/4+
#hyper*         at mainbus0             # not yet: HyperCom1 + HyperCom3
com*            at hyper? port ?        # Hypercom3/4 serial ports
lpt*            at hyper? port ?        # Hypercom3+/4+ parallel port

#options        IOBZCLOCK=22118400      # default, uncomment the next line
#options        IOBZCLOCK=24000000      # if needed.

iobl*           at zbus?                # zbus IOBlix
com*            at iobl? port ?         # IOBlix serial ports
lpt*            at iobl? port ?         # IOBlix parallel ports


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

pseudo-device   loop                    # loopback network interface
pseudo-device   sl                      # SLIP network interfaces
pseudo-device   ppp                     # PPP network interfaces
pseudo-device   pppoe                   # PPP over Ethernet (RFC 2516)
pseudo-device   tun                     # network tunnel line discipline
pseudo-device   tap                     # virtual Ethernet
#pseudo-device  gre                     # generic L3 over IP tunnel
pseudo-device   bpfilter                # Berkeley packet filter
pseudo-device   carp                    # Common Address Redundancy Protocol
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   fss                     # file system snapshot device

pseudo-device   view            4       # views (needed for grfcc)
pseudo-device   pty                     # pseudo-terminals
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   drvctl                  # user control of drive subsystem

#pseudo-device  wsfont                  # wsfont(4) dynamic font loading support
#pseudo-device  wsmux                   # mouse & keyboard multiplexor

pseudo-device   vnd                     # vnode pseudo-disks
#options        VND_COMPRESSION         # compressed vnd(4)
pseudo-device   ccd                     # concatenated 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

#options        RND_COM                 # use "com" randomness as well (BROKEN)

pseudo-device   ksyms                   # /dev/ksyms (kernel symbols)
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

include "dev/veriexec.config"

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

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