#	$NetBSD: NETWALKER,v 1.29 2014/08/03 09:18:16 martin Exp $
#
#	NETWALKER -- http://www.sharp.co.jp/netwalker/
#

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

#options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary

# 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_CORTEXA8	# Support the ARM-v7a core
options 	IMX51
options 	PMAPCOUNTERS

# Architecture options

# 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	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)
file-system	TMPFS		# memory file system
#file-system	UMAPFS		# NULLFS + uid and gid remapping
#file-system	UNION		# union file system
file-system	PTYFS		# /dev/pts/N support

# File system options
#options 	QUOTA		# legacy UFS quotas
#options 	QUOTA2		# new, in-filesystem UFS quotas
#options 	FFS_EI		# FFS Endian Independent support
#options 	NFSSERVER
options 	WAPBL		# File system journaling support
#options 	FFS_NO_SNAPSHOT	# No FFS snapshot support

# 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
#options	DEBUG_NFS_BOOT_DHCP

# Compatibility options

options		COMPAT_NETBSD32	# allow running arm (e.g. non-earm) binaries
#options 	COMPAT_43	# 4.3BSD compatibility.
options 	COMPAT_60	# NetBSD 6.0 compatibility.
#options 	COMPAT_50	# NetBSD 5.0 compatibility.
#options 	COMPAT_40	# NetBSD 4.0 compatibility.
#options 	COMPAT_30	# NetBSD 3.0 compatibility.
#options 	COMPAT_20	# NetBSD 2.0 compatibility.
#options 	COMPAT_16	# NetBSD 1.6 compatibility.
#options 	COMPAT_15	# NetBSD 1.5 compatibility.
#options 	COMPAT_14	# NetBSD 1.4 compatibility.
#options 	COMPAT_13	# NetBSD 1.3 compatibility.
#options 	COMPAT_12	# NetBSD 1.2 compatibility.
#options 	COMPAT_11	# NetBSD 1.1 compatibility.
#options 	COMPAT_10	# NetBSD 1.0 compatibility.
#options 	COMPAT_09	# NetBSD 0.9 compatibility.
#options 	TCP_COMPAT_42	# 4.2BSD TCP/IP bug compat. Not recommended.

options 	COMPAT_OSSAUDIO	# OSS (Voxware) audio driver compatibility
#options 	COMPAT_LINUX	# binary compatibility with Linux
options		COMPAT_BSDPTY	# /dev/[pt]ty?? ptys.

# 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

# Console options.    also need IMXUARTCONSOLE
options 	CONSDEVNAME="\"imxuart\"",CONADDR=0x73fbc000
options 	CONSPEED=115200	# Console speed

# kgdb
#options	KGDB
#options 	KGDB_DEVNAME="\"imxuart\""
#options 	KGDB_DEVADDR=0x73fbc000
#options 	KGDB_DEVRATE=115200

# Miscellaneous kernel options
options 	KTRACE		# system call tracing, a la ktrace(1)
options 	IRQSTATS	# manage IRQ statistics
#options 	KMEMSTATS	# kernel memory statistics
options 	PCMCIAVERBOSE	# verbose PCMCIA configuration messages
options 	USBVERBOSE	# verbose USB device autoconfig messages
#options 	SCSIVERBOSE	# Verbose SCSI errors
options 	MIIVERBOSE	# Verbose MII autoconfuration messages
#options 	PCI_CONFIG_DUMP	# verbosely dump PCI config space
#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
options 	NO_POWERSAVE	# uncomment this to run under ICE

# Development and Debugging options
#options 	PERFCTRS	# performance counters
#options 	DIAGNOSTIC	# internal consistency checks
#options 	DEBUG
#options 	KMEMSTATS	# kernel memory statistics (vmstat -m)
options 	DDB		# in-kernel debugger
options 	DDB_ONPANIC=1	# see also sysctl(7): `ddb.onpanic'
options 	DDB_HISTORY_SIZE=100	# Enable history editing in DDB
options 	DDB_VERBOSE_HELP
#options 	LOCKDEBUG
#options 	PMAP_DEBUG	# Enable pmap_debug_level code
#options 	IPKDB		# remote kernel debugging
#options 	VERBOSE_INIT_ARM # verbose bootstraping messages
makeoptions	DEBUG="-g"	# compile full symbol table
#makeoptions	COPTS="-O2"
#options 	SYSCALL_STATS	# per syscall counts
#options 	SYSCALL_TIMES 	# per syscall times
#options 	SYSCALL_TIMES_HASCOUNTER	# use 'broken' rdtsc (soekris)
#options 	SCSIPI_DEBUG
#options	SCSIPI_DEBUG_TYPE=SCSIPI_BUSTYPE_SCSI
#options	SCSIPI_DEBUG_TARGET=0
#options	SCSIPI_DEBUG_LUN=0

# 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
#  pmapdebug=<n>	If PMAP_DEBUG, set pmap_debug_level to <n>
#  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\""
#options		BOOT_ARGS="\"pmapdebug=1\""

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

# The main bus device
mainbus0	at root

# The boot cpu
cpu0		at mainbus?

# Devices
# On-chip
# On-chip bus
axi0		at mainbus?

# Interrupt Cotroller
tzic0		at axi? addr 0xe0000000 size 0x4000 irqbase 0

# Serial
imxuart0	at axi? addr 0x73fbc000 irq 31		# UART1
#imxuart1	at axi? addr 0x73fc0000 irq 32
#imxuart2	at axi? addr 0x7000c000 irq 33
#options	IMXUARTCONSOLE

# Clock Control
imxccm0		at axi? addr 0x73fd4000
options		IMX51_CKIL_FREQ=32768
#options	IMXCCMDEBUG

# Enhanced Periodic Interrupt Timer
imxclock0	at axi? addr 0x73fac000 size 0x4000 irq 40
imxclock1	at axi? addr 0x73fb0000 size 0x4000 irq 41

# IOMUX
imxiomux0	at axi? addr 0x73fa8000

# WatchDog
imxwdog0	at axi? addr 0x73f98000 irq 58 flags 0

# GPIO
imxgpio0	at axi? addr 0x73f84000 irqbase 128 irq 50
imxgpio1	at axi? addr 0x73f88000 irqbase 160 irq 52
imxgpio2	at axi? addr 0x73f8c000 irqbase 192 irq 54
imxgpio3	at axi? addr 0x73f90000 irqbase 224 irq 56
gpio*		at imxgpio?
options		IMX_GPIO_INTR_SPLIT

# I2C
#imxi2c0	at axi? addr 0x83fc8000 irq 62
#imxi2c1	at axi? addr 0x83fc4000 irq 63

# IIC
#iic*	   at imxi2c?

# SPI bus
imxspi0		at axi? addr 0x70010000 irq 36 flags 1
#imxspi1	at axi? addr 0x83fac000 irq 37 flags 1
#imxspi2	at axi? addr 0x83fc0000 irq 38 flags 0
spi0		at imxspi0 # eCSPI1
#spi1		at imxspi1 # eCSPI2
#spi2		at imxspi2 # CSPI1
options		IMXSPINSLAVES=3
#options	IMXSPI_DEBUG=10

# Optical Joystick
oj6sh0		at spi0 slave 2
#options	OJ6SH_DEBUG=4
options		OJ6SH_UP_X_LEFT_Y
wsmouse*	at oj6sh? mux 0

mousebtn0	at gpio1 offset 22 mask 0x03 # intr 182, 183
#options	MOUSEBTN_POLLING
wsmouse*	at mousebtn? mux 0

pwrbtn0		at gpio1 offset 21 mask 0x01 # intr 181
lidsw0		at gpio3 offset 12 mask 0x01 # intr 236
imxpwm0		at axi? addr 0x73FB4000 irq 61

# SPI NOR-Flash
#spiflash0	at spiflashbus?
#m25p0		at spi0 slave 1

# SD/MMC
sdhc0    	at axi? addr 0x70004000 irq 1	     # eSDHC1
#sdhc1   	at axi? addr 0x70008000 irq 2	     # eSDHC2
sdmmc*		at sdhc?
ld*		at sdmmc?			# MMC/SD card
#options 	SDHC_DEBUG
#options 	SDMMC_DEBUG

# USB
imxusbc0  at axi?  addr 0x73f80000
ehci0	  at imxusbc0	unit 0	irq 18 # OTG
ehci1	  at imxusbc0	unit 1	irq 14 # Host1
#ehci2	  at imxusbc0	unit 2	irq 16 # Host2
#ehci3	  at imxusbc0	unit 3	irq 17 # Host3

usb*		at ehci?

# USB device drivers
include "dev/usb/usbdevices.config"

ukphy*		at mii? phy ?

# IPUv3 LCD Controller
ipu0		at axi?
wsdisplay0	at wsemuldisplaydev? console ?
wsdisplay*	at wsemuldisplaydev?
#options	IPUV3_DEBUG=1
#options	LCD_DEBUG
options 	IMXIPUCONSOLE

# various options for wscons - we try to look as much like a standard
# sun console as possible
options 	WSEMUL_VT100		# sun terminal emulation
options 	WS_DEFAULT_FG=WSCOL_WHITE
options 	WS_DEFAULT_BG=WSCOL_BLACK
options		WS_KERNEL_FG=WSCOL_GREEN
options		WS_KERNEL_BG=WSCOL_BLACK
options 	WSDISPLAY_COMPAT_PCVT		# emulate some ioctls
options 	WSDISPLAY_COMPAT_USL		# wsconscfg VT handling
options 	WSDISPLAY_COMPAT_RAWKBD		# can get raw scancodes
options 	WSDISPLAY_DEFAULTSCREENS=4

# Pseudo-Devices

pseudo-device	crypto			# /dev/crypto device
pseudo-device	swcrypto		# software crypto implementation

# disk/mass storage pseudo-devices
#pseudo-device	md			# memory disk device (ramdisk)
pseudo-device	vnd			# disk-like interface to files
#pseudo-device	fss			# file system snapshot device
pseudo-device	putter			# for puffs and pud

# network pseudo-devices
pseudo-device	bpfilter		# Berkeley packet filter
#pseudo-device	ipfilter		# IP filter (firewall) and NAT
pseudo-device	loop			# network loopback
#pseudo-device	ppp			# Point-to-Point Protocol

# miscellaneous pseudo-devices
pseudo-device	pty			# pseudo-terminals
pseudo-device	clockctl		# NTP clockctl
pseudo-device	ksyms			# /dev/ksyms
pseudo-device	lockstat		# lock profiling

# 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

# local configuration
cinclude "arch/evbarm/conf/NETWALKER.local"
