# Kernel configuration to test compile all the atmel bits with one
# configuration.  This kernel will not (presently) boot.  Do not copy
# it to create your own custom config file.
#
# $FreeBSD$

ident		ATMEL

include "../at91/std.atmel"

# Typical values for most SoCs and board configurations.  Will not work for
# at91sam9g45 or on some boards with non u-boot boot loaders.
makeoptions	KERNPHYSADDR=0x20000000
makeoptions	KERNVIRTADDR=0xc0000000
options 	KERNPHYSADDR=0x20000000
options 	KERNVIRTADDR=0xc0000000

makeoptions	MODULES_OVERRIDE=""

# list all boards here, but not just yet (no multiboard in mainline).
options 	ARM_MANY_BOARD
device		at91_board_bwct
device		at91_board_ethernut5
device		at91_board_hl200
device		at91_board_hl201
device		at91_board_kb920x
device		at91_board_qila9g20
device		at91_board_sam9260ek
device		at91_board_sam9g20ek
device		at91_board_sam9x25ek
device		at91_board_sn9g45
device		at91_board_tsc4370

#makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

options 	SCHED_4BSD		# 4BSD scheduler
#options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	INET6			# IPv6 communications protocols
options 	SCTP			# Stream Control Transmission Protocol
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	MD_ROOT			# MD is a potential root device
options 	NFSCL			# New Network Filesystem Client
options 	NFSD			# New Network Filesystem Server
options 	NFSLOCKD		# Network Lock Manager
options 	NFS_ROOT		# NFS usable as /, requires NFSCL
options 	TMPFS			# Efficient memory filesystem
options 	MSDOSFS			# MSDOS Filesystem
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_PART_BSD		# BSD partition scheme
options 	GEOM_PART_MBR		# MBR partition scheme
options 	GEOM_PART_GPT		# GUID Partition Tables.
options 	GEOM_LABEL		# Provides labelization
options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
options 	COMPAT_FREEBSD6		# Compatible with FreeBSD6
options 	COMPAT_FREEBSD7		# Compatible with FreeBSD7
options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
options 	KTRACE			# ktrace(1) support
options 	STACK			# stack(9) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
#options 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
#options 	AUDIT			# Security event auditing
#options 	CAPABILITY_MODE		# Capsicum capability mode
#options 	CAPABILITIES		# Capsicum capabilities
#options 	MAC			# TrustedBSD MAC Framework
#options 	INCLUDE_CONFIG_FILE	# Include this file in kernel

# required for netbooting
options 	BOOTP
options 	BOOTP_COMPAT
options 	BOOTP_NFSROOT
options 	BOOTP_NFSV3
options 	BOOTP_WIRED_TO=ate0

# alternatively, boot from a MMC/SD memory card
#options 	ROOTDEVNAME=\"ufs:/dev/mmcsd0a\"

# kernel/memory size reduction
options 	MUTEX_NOINLINE
options 	NO_FFS_SNAPSHOT
options 	NO_SWAPPING
options 	NO_SYSCTL_DESCR
options 	RWLOCK_NOINLINE

# Debugging support.  Always need this:
options 	KDB			# Enable kernel debugger support.
# For minimum debugger support (stable branch) use:
options 	KDB_TRACE		# Print a stack trace for a panic.
# For full debugger support use this instead:
options 	DDB			# Support DDB.
options 	GDB			# Support remote GDB.
#options 	DEADLKRES		# Enable the deadlock resolver
#options 	INVARIANTS		# Enable calls of extra sanity checking
#options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
#options 	WITNESS			# Enable checks to detect deadlocks and cycles
#options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed
#options 	MALLOC_DEBUG_MAXZONES=8	# Separate malloc(9) zones

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device		bpf			# Berkeley packet filter

# Ethernet
device		mii			# Minimal MII support
device		ate			# Atmel AT91 Ethernet friver

# I2C
device		at91_twi		# Atmel AT91 Two-wire Interface
device		iic			# I2C generic I/O device driver
device		iicbus			# I2C bus system
device		pcf8563			# NXP PCF8563 clock/calendar

# MMC/SD
device		at91_mci		# Atmel AT91 Multimedia Card Interface
options 	AT91_MCI_HAS_4WIRE
device		mmc			# MMC/SD bus
device		mmcsd			# MMC/SD memory card

# DataFlash
device		at91_spi		# Atmel AT91 Serial Peripheral Interface
device		spibus			# SPI bus
device		at45d			# Atmel AT45D
device		geom_map		# GEOM partition mapping

# Pseudo devices.
device		loop			# Network loopback
device		random			# Entropy device
device		ether			# Ethernet support
device		vlan			# 802.1Q VLAN support
device		tun			# Packet tunnel.
device		md			# Memory "disks"
device		gif			# IPv6 and IPv4 tunneling
device		faith			# IPv6-to-IPv4 relaying (translation)
#device		firmware		# firmware assist module

# SCSI peripherals
device		scbus			# SCSI bus (required for ATA/SCSI)
device		ch			# SCSI media changers
device		da			# Direct Access (disks)
device		sa			# Sequential Access (tape etc)
device		cd			# CD
device		pass			# Passthrough device (direct ATA/SCSI access)
device		ses			# Enclosure Services (SES and SAF-TE)
#device		ctl			# CAM Target Layer

# Serial (COM) ports
device		uart			# Multi-uart driver
options 	ALT_BREAK_TO_DEBUGGER

# USB support
options 	USB_DEBUG		# enable debug msgs
device		ohci			# OHCI USB interface
device		usb			# USB Bus (required)
device		umass			# Disks/Mass storage - Requires scbus and da

# USB device (gadget) support
device		at91_dci		# Atmel's usb device
device		usfs			# emulate a flash
device		cdce			# emulate an ethernet
device		usb_template		# Control of the gadget

# watchdog
device		at91_wdt		# Atmel AT91 Watchdog Timer

device		at91_rtc
device		at91_ssc
#device		at91_tc			# missing?

# NAND Flash - Reference design has Samsung 256MB but others possible
device		nand			# NAND interface on CS3