#       $NetBSD: GUMSTIX,v 1.111 2024/01/29 18:27:11 christos Exp $
#
#       GUMSTIX -- Gumstix. Inc. gumstix platforms kernel
#

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

#options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary

# estimated number of users

maxusers        32

# CPU options

# For XScale systems
options         CPU_XSCALE_PXA250       # Support the basix/connex motherboards
options         CPU_XSCALE_PXA270       # Support the verdex motherboards
makeoptions     CPUFLAGS="-mcpu=xscale"

# Architecture options
#options        XSCALE_CACHE_WRITE_THROUGH
options         XSCALE_CACHE_READ_WRITE_ALLOCATE

# Gumstix options
options         GUMSTIX
# if not specified 'busheader=' in args from u-boot, use GXIO_DEFAULT_EXPANSION.
options         GUMSTIX_NETBSD_ARGS_BUSHEADER
options         GUMSTIX_NETBSD_ARGS_CONSOLE     # dynamically configure console
                                               # 'console=lcd' or ffuart,stuart

# Standard system options

options         RTC_OFFSET=0    # hardware clock is this many mins. west of GMT
#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/ptm support
file-system     TMPFS           # Efficient memory file-system
#file-system    UDF             # experimental - OSTA UDF CD/DVD file-system
#file-system    HFS             # experimental - Apple HFS+ (read-only)

# 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        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_BOOTP
options         NFS_BOOT_DHCP
#options        NFS_BOOT_BOOTPARAM

# Compatibility options

include         "conf/compat_netbsd16.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        SYSVSHM         # System V-like memory sharing

# Device options

#options        MEMORY_DISK_HOOKS       # boottime setup of ramdisk
#options        MEMORY_DISK_IS_ROOT     # use memory disk as root
#options        MEMORY_DISK_DYNAMIC
#options        MEMORY_DISK_ROOT_SIZE=22528     # Size in blocks

# Miscellaneous kernel options

options         KTRACE          # system call tracing, a la ktrace(1)
options         IRQSTATS        # manage IRQ statistics
options         PCMCIAVERBOSE   # verbose PCMCIA configuration messages
#options        USBVERBOSE      # verbose USB device autoconfig messages
options         MIIVERBOSE      # Verbose MII autoconfuration messages
#options        DDB_KEYCODE=0x40
#options        USERCONF        # userconf(4) support
#options        PIPE_SOCKETPAIR # smaller, but slower pipe(2)
#options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel

# Development and Debugging options

options         DIAGNOSTIC      # internal consistency checks
options         DEBUG
#options        LOCKDEBUG
#options        UVMHIST         # kernhist for uvm/pmap subsystems
#options        VERBOSE_INIT_ARM # verbose bootstraping messages
options         DDB             # in-kernel debugger
#options        DDB_HISTORY_SIZE=100    # Enable history editing in DDB
#options        KGDB
#options        DEBUG_KGDB
makeoptions     DEBUG="-g"      # compile full symbol table
#makeoptions    COPTS="-O2"
makeoptions     COPY_SYMTAB=1
#options        AUDIO_DEBUG=2

config          netbsd          root on ? type ?
config          netbsd-sm0      root on sm0 type nfs
config          netbsd-smsh0    root on smsh0 type nfs

# The main bus device
mainbus0 at root

# The boot cpu
cpu0    at mainbus?

# integrated peripherals
pxaip0  at mainbus?

pxaintc0 at pxaip?                              # interrupt controller
options         PXAGPIO_HAS_GPION_INTRS

pxagpio0 at pxaip?                              # GPIO
gpio* at gpiobus?
pxartc0 at pxaip? addr 0x40900000               # RTC

# cotulla integrated 16550 UARTs
options COM_PXA2X0
com0    at pxaip? addr 0x40100000 intr 22       # Full Function UART
com1    at pxaip? addr 0x40700000 intr 20       # Standard UART (console-st)
com2    at pxaip? addr 0x40200000 intr 21       # Bluetooth UART (old bt or vx)
com3    at pxaip? addr 0x41600000 intr 7        # Hardware UART(console-hw, bt)
options         FFUARTCONSOLE
#options        STUARTCONSOLE
#options        BTUARTCONSOLE
#options        HWUARTCONSOLE
#options        KGDB_DEVNAME="\"ffuart\""       # or stuart or btuart or hwuart
#options        KGDB_DEVRATE=115200

# 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

# AC97 Audio support
pxaacu0 at pxaip? addr 0x40500000 intr 14       # Audiostix, Audiostx2, GPSstix

# Audio support
audio*  at audiobus?

spkr*   at audio?                               # PC speaker (synthesized)

# LCD
lcd0    at pxaip? addr 0x44000000               # consoleLCD-vx,consoleLCD16-vx
wsdisplay* at lcd? console ?

# USB Host/Device Controller
ohci0   at pxaip? addr 0x4c000000 intr 3        # consoleLCD-vx,consoleLCD16-vx
                                               # ALSO NEEDS pxaudc
pxaudc0 at pxaip? addr 0x40600000

# 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?

# gumstix device support
gxio0   at pxaip?
options         GXIO_BLUETOOTH_ON_HWUART        # Bluetooth module on HWUART
#options        GXIO_DEFAULT_EXPANSION="\"netCF\""

# gumstix expansion boards

# SMC 91C111
sm0     at gxio? addr 0x04000300 gpirq ?
#sm0    at gxio? addr 0x04000300 gpirq 36       # etherstix,netMMC,netCF,netDUO
#sm0    at gxio? addr 0x04000300 gpirq 99       # netCF-vx
sm1     at gxio? addr 0x08000300 gpirq 27       # netDUO(2nd NIC)

# SMSC LAN9117
smsh0   at gxio? addr 0x04000300 gpirq 99       # netmicroSD-vx, netpro-vx

# Inter-Integrated Circuit controller
gxiic0  at pxaip? addr 0x40300000
iic*    at gxiic?
#dsrtc* at iic? addr 0x68               # Can mount DS1307 at console, breakout

# integrated PCMCIA/CF controller
pxapcic0 at pxaip? addr 0x20000000              # cfstix, netCF

# PCMCIA bus support
pcmcia* at pxapcic?

# Marvell 88W8385
malo*   at pcmcia? function ?           # wifistix, netwifimicrosd, netpro-vx


# PCMCIA serial interfaces
com*    at pcmcia? function ?           # Modems and serial cards

# PCMCIA IDE controllers
wdc*    at pcmcia? function ?
atabus* at wdc? channel ?
wd*     at atabus? drive ? flags 0x0000

# PCMCIA network interfaces
ne*     at pcmcia? function ?           # NE2000-compatible Ethernet
wi*     at pcmcia? function ?           # Lucent/Intersil WaveLAN/IEEE (802.11)
#xirc*  at pcmcia? function ?           # Xircom CreditCard Ethernet
#xi*    at xirc?

# MII/PHY support
#acphy* at mii? phy ?                   # AMD/Altima AC101 PHYs
sqphy*  at mii? phy ?                   # Seeq 80220/80221/80223 PHYs
ukphy*  at mii? phy ?                   # smsh(4) internal PHY

# 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 LCDs and USB-VGA adaptors
udl*    at uhub? port ?                 # DisplayLink DL-1x0/1x5
wsdisplay* at udl?

# 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

# Bluetooth Controller and Device support

# Bluetooth PCMCIA Controllers
#btbc*  at pcmcia? function ?           # AnyCom BlueCard LSE041/039/139

# Bluetooth USB Controllers
#ubt*   at uhub? port ?
#aubtfwl* at uhub? port ?

# Bluetooth Device Hub
bthub*  at bcsp?
#bthub* at btbc?
bthub*  at btuart?
#bthub* at ubt?

# Bluetooth HID support
bthidev* at bthub?

# Bluetooth Mouse
btms*   at bthidev? reportid ?
wsmouse* at btms? mux 0

# Bluetooth Keyboard
btkbd*  at bthidev? reportid ?
wskbd*  at btkbd? console ? mux 1

# Bluetooth Apple Magic Mouse
btmagic* at bthub?
wsmouse* at btmagic? mux 0

# Bluetooth Audio support
btsco*  at bthub?

# Pseudo-Devices

# disk/mass storage pseudo-devices
#pseudo-device  bio                     # RAID control device driver
#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 (ramdisk)
pseudo-device   vnd                     # disk-like interface to files
options         VND_COMPRESSION         # compressed vnd(4)
pseudo-device   putter                  # for puffs and pud

# network pseudo-devices
pseudo-device   bpfilter                # Berkeley packet filter
#pseudo-device  carp                    # Common Address Redundancy Protocol
pseudo-device   npf                     # NPF packet filter
pseudo-device   loop                    # network loopback
pseudo-device   ppp                     # Point-to-Point Protocol
#pseudo-device  pppoe                   # PPP over Ethernet (RFC 2516)
#options        PPPOE_SERVER            # Enable PPPoE server via link0
#pseudo-device  sl                      # Serial Line IP
#pseudo-device  irframetty              # IrDA frame line discipline
pseudo-device   tap                     # virtual Ethernet
#pseudo-device  tun                     # network tunneling over tty
#pseudo-device  gre                     # generic L3 over IP tunnel
#pseudo-device  gif                     # IPv[46] over IPv[46] tunnel (RFC 1933)
#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

# miscellaneous pseudo-devices
pseudo-device   pty                     # pseudo-terminals
#pseudo-device  sequencer               # MIDI sequencer
options         RND_COM
pseudo-device   clockctl                # user control of clock subsystem
pseudo-device   ksyms                   # /dev/ksyms
pseudo-device   bcsp                    # BlueCore Serial Protocol
pseudo-device   btuart                  # Bluetooth HCI UART (H4)
                                       # connect with Ericsson Bluetooth Module
                                       #  or Infineon SingleStone (PBA31307)
                                       #  or Infineon UniStone (PBA31308)

# 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

# data mover pseudo-devices
pseudo-device   swdmover                # software dmover(9) back-end
pseudo-device   dmoverio                # /dev/dmover dmover(9) interface

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

# Veriexec
# include "dev/veriexec.config"

#options        PAX_MPROTECT=0          # PaX mprotect(2) restrictions
#options        PAX_ASLR=0              # PaX Address Space Layout Randomization