#       $NetBSD: GENERIC,v 1.97 2024/04/02 22:56:51 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/zaurus/conf/std.zaurus"

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

maxusers        32                      # estimated number of users

# CPU options

# For XScale systems
options         CPU_XSCALE_PXA250       # Support the XScale PXA25x core
options         CPU_XSCALE_PXA270       # Support the XScale PXA27x core
makeoptions     CPUFLAGS="-mcpu=xscale"

# Architecture options
options         XSCALE_CACHE_READ_WRITE_ALLOCATE
options         PXAGPIO_HAS_GPION_INTRS

# in-kernel bootloader, see kloader(4)
options         KLOADER
#options        KLOADER_KERNEL_PATH="\"/netbsd\""
#options        KLOADER_DEBUG

# Standard system options
options         INSECURE        # disable kernel security levels

options         RTC_OFFSET=0    # hardware clock is this many mins. west of GMT
#options        HZ=512          # clock interrupt generates every 1/HZ sec
#options        NTP             # NTP phase/frequency locked loop

# 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    NTFS            # Windows/NT file system (experimental)
file-system     CD9660          # ISO 9660 + Rock Ridge file system
file-system     MSDOSFS         # MS-DOS 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    CODA            # Coda File System; also needs vcoda (below)
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        DISKLABEL_EI    # disklabel Endian Independent support
#options        NFSSERVER       # Network File System server

# Networking options
#options        GATEWAY         # packet forwarding
options         INET            # IP + ICMP + TCP + UDP
options         INET6           # IPv6

# Compatibility options
include         "conf/compat_netbsd13.config"
options         COMPAT_NETBSD32 # allow running arm (e.g. non-earm) 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

# Shared memory options

options         SYSVMSG         # System V-like message queues
options         SYSVSEM         # System V-like semaphores
options         SYSVSHM         # System V-like memory sharing

# Loadable kernel module support
#options        MODULAR         # new style module(7) framework
#options        MODULAR_DEFAULT_AUTOLOAD

# Device options

# Miscellaneous kernel options
#options        KTRACE          # system call tracing via ktrace(1)
#options        SCSIVERBOSE     # Verbose SCSI errors
#options        MIIVERBOSE      # Verbose MII autoconfuration messages
#options        USBVERBOSE      # verbose USB device autoconfig messages
#options        USERCONF        # userconf(4) support
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

#
# wscons options
#
# builtin terminal emulations
options         WSEMUL_VT100
# allocate a number of virtual screens at autoconfiguration time
#options        WSDISPLAY_DEFAULTSCREENS=2

# customization of console and kernel output - see dev/wscons/wsdisplayvar.h
#options        WSDISPLAY_CUSTOM_OUTPUT # color customization from wsconsctl(8)
#options        WS_DEFAULT_FG=WSCOL_WHITE
#options        WS_DEFAULT_BG=WSCOL_BLACK
#options        WS_DEFAULT_COLATTR="(0)"
#options        WS_DEFAULT_MONOATTR="(0)"
options         WS_KERNEL_FG=WSCOL_GREEN
#options        WS_KERNEL_BG=WSCOL_BLACK
#options        WS_KERNEL_COLATTR=""
#options        WS_KERNEL_MONOATTR=""

# compatibility to other console drivers
options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_USL            # wsconscfg VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes

# Development and Debugging options

options         DIAGNOSTIC              # internal consistency checks
#options        DEBUG
#options        VERBOSE_INIT_ARM        # verbose bootstraping messages
options         DDB                     # in-kernel debugger
options         DDB_HISTORY_SIZE=100    # Enable history editing in DDB
#options        KGDB
#makeoptions    DEBUG="-g"              # compile full symbol table


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


# The main bus device
mainbus0 at root

# The boot cpu
cpu0 at mainbus?

# integrated peripherals
pxaip0 at mainbus?

pxaintc0 at pxaip?                              # interrupt controller
pxagpio0 at pxaip?                              # GPIO
pxartc0 at pxaip? addr 0x40900000 size 0x10     # RTC

# DMAC support
pxadmac0 at pxaip? addr 0x40000000 intr 25
options         PXA2X0_DMAC_DMOVER_CONCURRENCY=4 # Enable dmover(9) backend
#options        PXA2X0_DMAC_FIXED_PRIORITY      # Don't want multiple priority

# I2C support
ziic0 at pxaip?
iic0 at ziic?

# Power management
zapm0 at pxaip?         # power management
apmdev0 at zapm0        # APM

# PCMCIA/CF socket and GPIO controllers
scoop0 at pxaip?
scoop1 at pxaip?

# alternate GPIO controller for SL-C1000
ioexp0 at iic? addr 0x18

# ADC, touchpad, backlight
zssp0 at pxaip?

# touchpad
ztp0 at zssp?
wsmouse* at ztp? mux 0

# keyboard
zkbd0 at pxaip?
wskbd* at zkbd? mux 1

# remote controller
zrc0 at pxaip?
wskbd* at zrc? mux 1

# LCD
lcd0 at pxaip?                          # PXA2x0 integrated LCD Controller
options         PXA2X0_LCD_WRITETHROUGH
wsdisplay* at lcd? console ?
w100lcd0 at pxaip?                      # ATI Imageon100 LCDcontroller
wsdisplay* at w100lcd? console ?
lcdctl0 at zssp0

# WM8750 Audio
zaudio0 at iic? addr 0x1b
audio* at zaudio?
#options        ZAUDIO_VOLUME_STRIDE=8

# Audio support
audio* at audiobus?

spkr* at audio?         # PC speaker (synthesized)

# integrated 16550 UARTs
options         COM_PXA2X0
#options        FFUARTCONSOLE
com0 at pxaip?  addr 0x40100000 intr 22 # Full Function UART
com1 at pxaip?  addr 0x40200000 intr 21 # Bluetooth UART
com2 at pxaip?  addr 0x40700000 intr 20 # Standard UART (for IrDA)

# integrated PCMCIA/CF controller
pxapcic0 at pxaip?

# PCMCIA bus support
pcmcia* at pxapcic?

# PCMCIA (CF) devices
com* at pcmcia?         # PCMCIA modems/serial ports
wi* at pcmcia?          # WaveLAN IEEE 802.11DS
ne* at pcmcia?          # PCMCIA based NE2000 ethernet
wdc* at pcmcia?         # hard disk controller

atabus* at wdc? channel ?

# IDE hard drives
wd* at atabus? drive ? flags 0x0000


# USB Controller and Devices
zusb* at pxaip?
#pxaudc0 at pxaip? addr 0x40600000      # USB Device Controller
ohci0 at pxaip? addr 0x4c000000 intr 3  # USB Host Controller

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

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

# USB Hubs
uhub* at usb?
uhub* at uhub? port ?

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

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

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

# USB Generic HID devices
uhid* at uhidev? reportid ?

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

# SCSI bus support
scsibus* at scsi?

# SCSI devices
sd*     at scsibus? target ? lun ?      # SCSI disk drives
cd*     at scsibus? target ? lun ?      # SCSI CD-ROM drives
uk*     at scsibus? target ? lun ?      # SCSI unknown

# ATAPI bus support
atapibus* at atapi?

# ATAPI devices
cd*     at atapibus? drive ?            # ATAPI CD-ROM drives
#sd*    at atapibus? drive ?            # ATAPI disk drives
#st*    at atapibus? drive ?            # ATAPI tape drives
#uk*    at atapibus? drive ?            # ATAPI unknown

# USB audio
#uaudio* at uhub? port ? configuration ?

# USB Ethernet adapters
aue*    at uhub? port ?         # ADMtek AN986 Pegasus based adapters
axe*    at uhub? port ?         # ASIX AX88172 based adapters
#axen*  at uhub? port ?         # ASIX AX88178a/AX88179 based adapters
cdce*   at uhub? port ?         # CDC, Ethernet Networking Control Model
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
#urndis*        at uhub? port ? # Microsoft RNDIS specification
#usmsc* at uhub? port ?         # SMSC95xx based adapters

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

# USB Generic driver
ugen*   at uhub? port ?

# MII/PHY support
acphy*  at mii? phy ?                   # DAltima 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
dmphy*  at mii? phy ?                   # Davicom DM9101 PHYs
exphy*  at mii? phy ?                   # 3Com internal 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
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/8211 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


# integrated MMC/SD controller
pxamci0 at pxaip? addr 0x41100000 size 0x48
sdmmc* at pxamci?
#options        PXAMCI_DEBUG
#options        SDMMC_DEBUG
#options        SDMMC_DUMP_CSD

ld* at sdmmc?                           # MMC/SD/SDHC card

# Pseudo-Devices

# disk/mass storage pseudo-devices
pseudo-device   md                      # memory disk device (ramdisk)
pseudo-device   vnd                     # disk-like interface to files
options         VND_COMPRESSION         # compressed vnd(4)

# network pseudo-devices
pseudo-device   bpfilter                # Berkeley packet filter
pseudo-device   loop                    # network loopback

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

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
#pseudo-device  sequencer               # MIDI sequencer
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   drvctl                  # user control of drive subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   putter                  # for puffs and pud
pseudo-device   swwdog                  # software watchdog timer -- swwdog(4)

# a pseudo device needed for Coda       # also needs CODA (above)
#pseudo-device  vcoda                   # coda minicache <-> venus comm.

# wscons pseudo-devices
pseudo-device   wsmux                   # mouse & keyboard multiplexor
pseudo-device   wsfont

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