#
#       $NetBSD: ARMADAXP,v 1.29 2022/08/07 02:52:25 simonb Exp $
#
#       ARMADA XP DEV BOARD
#

include         "arch/evbarm/conf/std.armadaxp"

# estimated number of users

maxusers        32

# Standard system options

options         RTC_OFFSET=0    # hardware clock is this many mins. west of GMT
#options        NTP             # NTP phase/frequency locked loop

# CPU options
options         CPU_PJ4B

# Architecture options
options         ARMADAXP
options         L2CACHE_ENABLE
#options        AURORA_IO_CACHE_COHERENCY
options         AURORA_L2_PT_WALK

options         __HAVE_MM_MD_DIRECT_MAPPED_PHYS
#options        VERBOSE_INIT_ARM
#options        MVSOC_CONSOLE_EARLY

# File systems
file-system     FFS             # UFS
#file-system    LFS             # log-structured file system
file-system     MFS             # memory file system
file-system     NFS             # Network file system
#file-system    ADOSFS          # AmigaDOS-compatible file system
#file-system    EXT2FS          # second extended file system (linux)
#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    PROCFS          # /proc
#file-system    UMAPFS          # NULLFS + uid and gid remapping
#file-system    UNION           # union file system
file-system     TMPFS           # memory file system
file-system     PTYFS           # /dev/pts/N support
file-system     PUFFS           # Pass-to-Userspace Framework 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
#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
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         NFS_BOOT_DHCP

#options        NFS_BOOT_BOOTP
#options        NFS_BOOT_DHCP
#options        NFS_BOOT_BOOTSTATIC
#options        NFS_BOOTSTATIC_MYIP="\"192.168.1.4\""
#options        NFS_BOOTSTATIC_GWIP="\"192.168.1.1\""
#options        NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
#options        NFS_BOOTSTATIC_SERVADDR="\"192.168.1.1\""
#options        NFS_BOOTSTATIC_SERVER="\"192.168.1.1:/nfs/sdp2430\""

#options        NFS_BOOT_RWSIZE=1024

# Compatibility options
include         "conf/compat_netbsd50.config"
options         COMPAT_NETBSD32 # allow running arm (e.g. non-earm) binaries

# Shared memory options
options         SYSVMSG         # System V-like message queues
options         SYSVSEM         # System V-like semaphores
#options        SEMMNI=10       # number of semaphore identifiers
#options        SEMMNS=60       # number of semaphores in system
#options        SEMUME=10       # max number of undo entries per process
#options        SEMMNU=30       # number of undo structures in system
options         SYSVSHM         # System V-like memory sharing

# Device options
#options        MEMORY_DISK_HOOKS               # boottime setup of ramdisk
#options        MEMORY_DISK_ROOT_SIZE=8192      # Size in blocks
#options        MEMORY_DISK_DYNAMIC
#options        MINIROOTSIZE=1000               # Size in blocks
#options        MEMORY_DISK_IS_ROOT             # use memory disk as root

# Miscellaneous kernel options
options         KTRACE          # system call tracing, a la ktrace(1)
#options        SCSIVERBOSE     # Verbose SCSI errors
#options        MIIVERBOSE      # Verbose MII autoconfuration messages
#options        DDB_KEYCODE=0x40
#options        USERCONF        # userconf(4) support
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)

# Development and Debugging options
options         LOCKDEBUG
options         DIAGNOSTIC              # internal consistency checks
#options        DEBUG
#options        UVMHIST         # kernhist for uvm/pmap subsystems
#options        PMAPCOUNTERS
#options        VERBOSE_INIT_ARM        # verbose bootstraping messages
options         DDB                     # in-kernel debugger
options         DDB_ONPANIC=1
options         DDB_HISTORY_SIZE=100    # Enable history editing in DDB
options         DDB_KEYCODE=0x1d        # Enter ddb on ^]
#options        KGDB
options         KGDB_DEVADDR=0xd0012000
makeoptions     DEBUG="-g"              # compile full symbol table
makeoptions     COPY_SYMTAB=1

## USB Debugging options
#options        USB_DEBUG
#options        EHCI_DEBUG
#options        OHCI_DEBUG
#options        UHUB_DEBUG

# Valid options for BOOT_ARGS:
#  single               Boot to single user only
#  kdb                  Give control to kernel debugger
#  ask                  Ask for file name to reboot from
#  memorydisk=<n>       Set memorydisk size to <n> KB
#  quiet                Show aprint_naive output
#  verbose              Show aprint_normal and aprint_verbose output
#options                BOOT_ARGS="\"verbose kdb\""
#options                BOOT_ARGS="\"pmapdebug=1\""

config          netbsd          root on ? type ?
#config         netbsd          root on sd0c  type ffs
#config         netbsd          root on wd0a  type ffs
#config         netbsd          root on re1  type nfs

# The main bus device
mainbus0        at root

# The boot cpu
cpu0            at mainbus?

# Specify the memory size in bytes.
options         MEMSIZE=0x80000000

# Marvell SoC Bus
mvsoc0          at mainbus?
options         MVSOC_INTERREGS_PBASE=0xd0000000

# On-chip Timers
mvsoctmr*       at mvsoc? offset ? irq ?

# On-chip UART Interface
com*            at mvsoc?
#options        COM_DEBUG
options         CONSADDR=0xd0012000
options         CONSPEED=115200
options         CONSFREQ=250000000

# On-chip Two-Wire Serial Interface (TWSI)
gttwsi*         at mvsoc? offset ? irq ?
iic*            at gttwsi?

# Serial Peripheral Interface (SPI)
mvspi*          at mvsoc? offset ? irq ?
spi*            at mvspi?

spiflash0       at spiflashbus?
m25p0           at spi? slave 0

# TWSI SDRAM Serial Presence Detect
spdmem0         at iic? addr 0x56

# On-chip Cryptographic Engines and Security Accelerator (S/W chaining)
mvcesa*         at mvsoc? offset ? irq ?

# On-chip Cryptographic Engines and Security Accelerator (H/W chaining)
#mvxpsec*       at mvsoc? offset ? irq ?
#options        MVXPSEC_DEBUG=MVXPSEC_DEBUG_ALL

# On-chip USB 2.0 Interface
ehci*           at mvsoc? offset ? irq ?

# USB bus support
usb*            at ehci?

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

# USB Mass Storage
umass*          at uhub? port ? configuration ? interface ?
scsibus*        at scsi?
sd*             at scsibus? target ? lun ?      # SCSI disk drives

# USB Generic driver
ugen*           at uhub? port ?

# USB Network interface
udav*           at uhub? port ?

mvsdio*         at mvsoc? offset ? irq ?
sdmmc*          at mvsdio?

ld*             at sdmmc?

# On-chip Serial-ATA II Host Controller (SATAHC)
mvsata*         at mvsoc? offset ? irq ?
#options        MVSATA_WITHOUTDMA

# ATA (IDE) bus support
atabus*         at ata?
#options        ATADEBUG

# ATAPI bus support
atapibus*       at atapi?

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

# ATAPI devices
# flags have the same meaning as for IDE drives.
sd*             at atapibus? drive ? flags 0x0000       # ATAPI disk drives
uk*             at atapibus? drive ? flags 0x0000       # ATAPI unknown

# On-chip Gigabit Ethernet Controller Interface (backward compatible mode)
mvgbec*         at mvsoc? offset ?
mvgbe*          at mvgbec? port ? irq ?

# On-chip Gigabit Ethernet Controller Interface (counter mode)
#mvxpbm*        at mvsoc? offset ?
#mvxpe*         at mvsoc? irq ?
#options        MVXPE_EVENT_COUNTERS
#options        MVXPE_DEBUG=0

# On-chip RTC
mvsocrtc*       at mvsoc? offset ? irq ?

# On-chip PCI Express Interface
mvpex*          at mvsoc? offset ? irq ?

# PCI bus support
options         PCI_NETBSD_CONFIGURE
#options        PCI_CONFIG_DUMP # verbosely dump PCI config space
pci*            at mvpex?
pchb*           at pci? dev ? function ?        # PCI-Host bridges

# PCI Serial-ATA Host Controller
mvsata*         at pci? dev ? function ?

# PCI Ethernet
wm*             at pci? dev ? function ?        # Intel 8254x gigabit
re*             at pci? dev ? function ?

acphy*          at mii? phy ?           # Altima AC101 10/100 PHY
amhphy*         at mii? phy ?           # AMD 79c901 PHY (10BASE-T part)
bmtphy*         at mii? phy ?           # Broadcom BCM5201/5202 PHYs
brgphy*         at mii? phy ?           # Broadcom BCM5400/5401 Gig-E 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-X PHYs
glxtphy*        at mii? phy ?           # Level One LXT-1000 Gig-E PHYs
gphyter*        at mii? phy ?           # NatSemi DP83861 Gig-E PHYs
icsphy*         at mii? phy ?           # Integrated Circuit Systems ICS1890 PHYs
igphy*          at mii? phy ?           # Intel IGP01E1000, i82566 10/100/1000
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 ?           # Marvel 88E1000 Gig-E PHYs
nsphy*          at mii? phy ?           # NatSemi DP83840 PHYs
nsphyter*       at mii? phy ?           # NatSemi DP83843/DP83815 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/80225 PHYs
tlphy*          at mii? phy ?           # ThunderLAN internal PHYs
tqphy*          at mii? phy ?           # TSC Semiconductor 78Q2120 PHYs
ukphy*          at mii? phy ?           # Generic/unknown PHYs
urlphy*         at mii? phy ?           # Realtek RTL8150L internal PHYs

# PCI USB devices
xhci*           at pci? dev ? function ?
usb*            at xhci?

# Pseudo-Devices
# disk/mass storage pseudo-devices
#pseudo-device  md                      # memory disk device (ramdisk)
pseudo-device   vnd                     # pseudo disks (see vnconfig)
#pseudo-device  fss                     # file system snapshot device

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

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
#options        RND_COM
#pseudo-device  clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms