#       $NetBSD: CPMBR1400,v 1.37 2024/01/29 18:27:11 christos Exp $

include         "arch/evbmips/conf/std.rasoc"

makeoptions     COPY_SYMTAB=1           # size for embedded symbol table

#options        RALINK_CONSOLE_EARLY
options         RT3883
#options        SLICKROCK
options         RALINK_ETH_NUM_SW_PARTITIONS=5
options         CONSPEED=57600
#options        SYSCALL_DEBUG
no makeoptions  NEED_UBOOTIMAGE
makeoptions     NEED_UBOOTIMAGE="bsentry"

maxusers        8

# Size reduction options
#options        VNODE_OP_NOINLINE
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
#options        SOSEND_NO_LOAN

# Standard system options

options         INSECURE        # disable kernel security levels - X needs this

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 via ktrace(1)

#options        SYSVMSG         # System V-like message queues
#options        SYSVSEM         # System V-like semaphores
#options        SYSVSHM         # System V-like memory sharing
#options        SHMMAXPGS=2048  # 2048 pages is the default

#options        NMBCLUSTERS=1024
#options        MCLSHIFT=12 # 4k mbuf clusters (increases pool max's to 4k as well)

#options        USERCONF        # userconf(4) support
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Diagnostic/debugging support options
options         DIAGNOSTIC      # expensive kernel consistency checks
#options        LOCKDEBUG
#options        KSTACK_CHECK_MAGIC
#options        DEBUG           # expensive debugging checks/support
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        DDB_COMMANDONENTER="w/b 0x90000128 0 ; bt"      # disable watchdog & drop history on enter
#options        KGDB            # remote debugger
#options        KGDB_DEVNAME="\"com\"",KGDB_DEVADDR=0x2f8,KGDB_DEVRATE=9600
#makeoptions    DEBUG="-g2"     # compile full symbol table
#makeoptions    COPTS="-Os"     # Optimise for space.

#makeoptions PROF="-p"          # build profiling in
#options        GPROF

# Compatibility options
include         "conf/compat_netbsd50.config"
#options        COMPAT_386BSD_MBRPART # recognize old partition ID

#options        COMPAT_LINUX    # binary compatibility with Linux
#options        COMPAT_OSSAUDIO # binary compatibility with Linux

# 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    FDESC           # /dev/fd
file-system     KERNFS          # /kern
#file-system    NULLFS          # loopback file system
#file-system    PORTAL          # portal filesystem (still experimental)
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 options
#options        FFS_EI          # FFS Endian Independent support
options         FFS_NO_SNAPSHOT # No FFS snapshot support
#options        QUOTA           # legacy UFS quotas
#options        UFS_DIRHASH     # UFS Large Directory Hashing
#options        UFS_EXTATTR     # Extended attribute support for UFS1
#options        DISKLABEL_EI    # disklabel Endian Independent support
#options        NFSSERVER       # Network File System server

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

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

# JIT compiler for bpfilter
#options        SLJIT
#options        BPFJIT

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

# Options for necessary to use MD
#options        MEMORY_DISK_HOOKS
#options        MEMORY_DISK_IS_ROOT             # force root on memory disk
#options        MEMORY_DISK_SERVER=0            # no userspace memory disk support
#options        MEMORY_DISK_ROOT_SIZE=8192      # embed the FS into the system for now
#options        MEMORY_RBFLAGS=0                # keep the kernel from forcing single user mode

# Options for NFS root boot
options         NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM,NFS_BOOT_BOOTSTATIC
#options        NFS_BOOTSTATIC_MYIP="\"192.168.0.1\""
#options        NFS_BOOTSTATIC_GWIP="\"192.168.0.1\""
#options        NFS_BOOTSTATIC_MASK="\"255.255.255.0\""
#options        NFS_BOOTSTATIC_SERVADDR="\"192.168.0.5\""
#options        NFS_BOOTSTATIC_SERVER="\"192.168.0.5:/home/andersen/nfs/mbr1400\""

# Need more mbufs for IPsec VPN
#options        NMBCLUSTERS=4096

# rt3052 dev board root on embedded NFS mount disk
config          netbsd root on ? type ?
config          netbsd-sd0a root on sd0a type ffs dumps none
config          netbsd-reth0 root on reth0 type nfs dumps none

mainbus0        at root
cpu0            at mainbus?
com0            at mainbus?
reth*           at mainbus?
rwdog0          at mainbus?
options         RA_WDOG_DEFAULT_PERIOD=-30
#options        RA_WDOG_DEFAULT_MODE=WDOG_MODE_DISARMED
options         RA_WDOG_DEFAULT_MODE=WDOG_MODE_KTICKLE

# USB support on rusb0
ehci*           at mainbus?
usb*            at ehci?

# USB support on rusb0
ohci*           at mainbus?
usb*            at ohci?

# GPIO support
rgpio0          at mainbus?
gpio*           at rgpio?

# I2C support
ri2c0           at mainbus?
iic*            at ri2c?

# NOR Flash
#options        NOR_VERBOSE
cfi0            at mainbus0
nor0            at cfi0
flash0          at nor0 offset 0x00000000 size 0x00040000
flash1          at nor0 offset 0x00040000 size 0x00020000
flash2          at nor0 offset 0x00060000 size 0x00020000
flash3          at nor0 offset 0x00080000 size 0x00120000       # kernel
flash4          at nor0 offset 0x001a0000 size 0x006e0000       # filesystem
flash5          at nor0 offset 0x00880000 size 0x01760000       # upgrade
flash6          at nor0 offset 0x01fe0000 size 0x00020000

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

# USB Mass Storage
umass*          at uhub? port ?
scsibus*        at scsi?
sd*             at scsibus? target ? lun ?

# USB Ethernet adapters
#aue*           at uhub? port ?         # ADMtek AN986 Pegasus based adapters
#axe*           at uhub? port ?         # ASIX AX88172 10/100 based adapters

# USB Generic driver
ugen*           at uhub? port ?

# PHY Support
ukphy*          at mii? phy ?           # generic unknown PHYs
#arphy*         at mii? phy ?           # Atheros AR8316 switch

# Pseudo-Devices

# disk/mass storage pseudo-devices

# network pseudo-devices
pseudo-device   bpfilter                # Berkeley packet filter
pseudo-device   carp                    # Common Address Redundancy Protocol
pseudo-device   bridge                  # simple inter-network bridging
pseudo-device   vether                  # Virtual Ethernet for bridge
pseudo-device   loop                    # network loopback
pseudo-device   tap                     # virtual Ethernet
pseudo-device   npf                     # NPF packet filter
pseudo-device   pppoe                   # PPPoE protocol
pseudo-device   vlan                    # 802.1q

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

include "dev/veriexec.config"