#
#	$NetBSD: CUBIEBOARD,v 1.49 2016/12/13 20:42:17 christos Exp $
#
#	CUBIEBOARD -- Allwinner A10/A20 Eval Board Kernel
#

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

# CPU options

no makeoptions	BOARDTYPE
makeoptions	BOARDTYPE="cubieboard"
no makeoptions	CPUFLAGS
makeoptions	CPUFLAGS="-mcpu=cortex-a7 -mfpu=neon"
#options 	UVMHIST,UVMHIST_PRINT
options 	ALLWINNER_A10
options 	ALLWINNER_A20
options 	AWIN_CONSOLE_EARLY

include		"arch/evbarm/conf/GENERIC.common"

# u-boot images contain kernels w/o any symbols, so we need to copy
# them over to kernel text
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="\"\""

config		netbsd		root on ? type ?

# The main bus device
mainbus0	at root

# CPU(s)
options 	MULTIPROCESSOR
#options 	__HAVE_PREEMPTION
cpu*		at mainbus?

# Specify the memory size in megabytes (optional).
#options 	MEMSIZE=256
#options 	MEMSIZE=128

# A7 core devices
armperiph0	at mainbus?
armgic0		at armperiph?				# Interrupt Controller
armgtmr0	at armperiph?				# ARM Generic Timer

# SoC I/O
awinio0		at mainbus?

# SD/MMC controllers
awinmmc0	at awinio0 port 0
sdmmc*		at awinmmc?
ld*		at sdmmc?

# NAND controller
awinnand0	at awinio0

# NAND layer
nand0		at nandbus?

# use the bad block table
options NAND_BBT

# Define flash partitions for board
flash0		at nand0 offset 0x000000 size 0x080000 readonly 1 # X-Loader
flash1		at nand0 offset 0x080000 size 0x1e0000 readonly 1 # U-Boot
flash2		at nand0 offset 0x260000 size 0x020000 readonly 1 # UB Env
flash3		at nand0 offset 0x280000 size 0x400000		# kernel
flash4		at nand0 offset 0x680000 size 0			# filesystem

# Interrupt Controller
awinicu0	at awinio0 

# DMA Controller
awindma0	at awinio0

# 64-bit counter
awincnt0	at awinio0

# GPIO Controller
awingpio0	at awinio0

gpio*		at awingpio?

# System Control Module
#awinscm0 	at awinio?

# I2C Controller
awiniic0	at awinio? port 0
#awiniic*	at awinio? port ?
iic*		at awiniic?
axp20x0 	at iic0 addr 0x34	# AXP209 Power Management Unit

# On-board 16550 UARTs
com0		at awinio? port 0			# UART0 (console)
options 	CONADDR=0x01c28000, CONSPEED=115200

# Consumer IR
awinir0		at awinio?
cir0		at awinir0

# Operating System Timer (A10)
awintmr0	at awinio?

# Watchdog timers
awinwdt*	at awinio?

# RTC
awinrtc*	at awinio?

# Low res ADC
awinlradc*	at awinio?

# onboard audio codec
awinac0		at awinio0
audio0		at awinac0

# HDMI
awinhdmi0       at awinio0
awinhdmiaudio0	at awinio0
audio1		at awinhdmiaudio0

spkr*		at audio?		# PC speaker (synthesized)

# TCON
awintcon0       at awinio0 port 0
awintcon1       at awinio0 port 1

# DE-BE
awindebe0       at awinio0 port 0
awindebe1       at awinio0 port 1

# Framebuffer
genfb0          at awindebe0
genfb1          at awindebe1
wsdisplay*      at genfb?
options        VCONS_DRAW_INTR
options         WSEMUL_VT100
options         WS_KERNEL_FG=WSCOL_GREEN
options         WS_KERNEL_BG=WSCOL_BLACK
options         WSDISPLAY_COMPAT_PCVT
options         WSDISPLAY_COMPAT_SYSCONS
options         WSDISPLAY_COMPAT_USL
options         WSDISPLAY_COMPAT_RAWKBD
options         WSDISPLAY_DEFAULTSCREENS=4

pseudo-device	wsmux			# mouse & keyboard multiplexor
pseudo-device	wsfont

# Power, Reset and Clock Management
#prcm*		at awinio?

# On-board USB
awinusb0	at awinio0 port 0
awinusb1	at awinio0 port 1
ohci*		at awinusb?
ehci*		at awinusb?
usb*		at ohci?
usb*		at ehci?

# USB OTG
motg0		at awinio0
usb*		at motg?

# SATA
ahcisata*	at awinio0
atabus*		at ata?
wd*		at atabus? drive ?

# 10/100 Ethernet (A10/A20)
awe0		at awinio0 port ?
# 10/100/1000 Ethernet (A10/A20)
awge0		at awinio0 port ?

include "dev/usb/usbdevices.config"

midi*		at midibus?

rlphy*		at mii? phy ?
rgephy* 	at mii? phy ?
ukphy*		at mii? phy ?

cinclude "arch/evbarm/conf/CUBIEBOARD.local"
