# $NetBSD: files.gemini,v 1.13 2018/09/21 12:04:06 skrll Exp $
#
# Configuration info for GEMINI CPU support
# Based on omap/files.omap2
#
include "arch/arm/pic/files.pic"
file arch/arm/arm32/irq_dispatch.S
# Memory size in megabytes
defparam opt_gemini.h MEMSIZE
defflag opt_gemini.h GEMINI
defparam opt_gemini.h GEMINI_BUSBASE: GEMINI
defflag opt_gemini.h SL3516: GEMINI
defflag opt_gemini.h GEMINI_MASTER: GEMINI
defflag opt_gemini.h GEMINI_SLAVE: GEMINI
defflag opt_gemini.h GEMINI_SINGLE: GEMINI
# OBIO just an attach point
define obio { [addr=-1], [size=0], [intr=-1], [mult=1], [intrbase=-1], [nobyteacc=0]
} : bus_space_generic
device obio: obio, pcibus
attach obio at mainbus
file arch/arm/gemini/gemini_obio.c obio needs-count
# OBIO files
file arch/arm/gemini/gemini_space.c obio
##file arch/arm/gemini/gemini_a2x_space.c obio
##file arch/arm/gemini/gemini_a2x_io.S obio
file arch/arm/gemini/gemini_a4x_space.c obio
file arch/arm/arm/bus_space_a4x.S obio
file arch/arm/gemini/gemini_dma.c
# these bus space methods are not bus-specific ...
#
##file arch/arm/gemini/gemini_nobyteacc_space.c obio
##file arch/arm/gemini/gemini_nobyteacc_io.S obio
# GEMINI interrupt controller
device geminiicu: pic, pic_splfuncs
attach geminiicu at obio with geminiicu
file arch/arm/gemini/gemini_icu.c geminiicu needs-flag
# Gemini inter-processor-interrupts
device geminiipi {}
attach geminiipi at obio
file arch/arm/gemini/gemini_ipi.c geminiipi needs-flag
# Gemini inter-processor-messages
device geminiipm {}
attach geminiipm at geminiipi
file arch/arm/gemini/gemini_ipm.c geminiipm needs-flag
device gpn: ifnet, ether, arp
attach gpn at geminiipm
file arch/arm/gemini/if_gpn.c gpn needs-flag
# GEMINI GPIO controllers
# GEMINI Timers
device geminitmr
file arch/arm/gemini/gemini_timer.c geminitmr
defparam opt_gemini.h GEMINI_TIMER_CLOCK_FREQ
# OBIO/geminitmr
attach geminitmr at obio with obiotimer
file arch/arm/gemini/obio_timer.c obiotimer
# Gemini Watchdog timer
device geminiwdt: sysmon_wdog
file arch/arm/gemini/gemini_wdt.c geminiwdt needs-flag
defparam opt_gemini.h GEMINI_WDT_CLOCK_FREQ
attach geminiwdt at obio with obiowdt
file arch/arm/gemini/obio_wdt.c obiowdt
# NS16550 compatible serial ports
attach com at obio with gemini_com
file arch/arm/gemini/gemini_com.c gemini_com
# GEMINI LPC Bus
define lpcbus {[addr = -1]}
device lpc { [ldn=-1], [addr=-1], [size=0], [intr=-1] }
attach lpc at lpcbus
file arch/arm/gemini/gemini_lpc.c lpc needs-count
# GEMINI LPC Host Controller
device geminilpchc: lpcbus
attach geminilpchc at obio with obio_lpchc
file arch/arm/gemini/obio_lpchc.c obio_lpchc
file arch/arm/gemini/gemini_lpchc.c geminilpchc needs-count
# LPC Bus COM UARTs
attach com at lpc with lpc_com
file arch/arm/gemini/lpc_com.c lpc_com
# GEMINI GPIO controllers
device geminigpio: gpiobus
attach geminigpio at obio with geminigpio
file arch/arm/gemini/gemini_gpio.c geminigpio
# GEMINI USB controller
attach ehci at obio with ehci_obio
file arch/arm/gemini/obio_ehci.c ehci_obio
# GEMINI ATA controller
attach wdc at obio with wdc_obio
file arch/arm/gemini/obio_wdc.c wdc_obio
# PCI
device gemini_pci: pcibus
attach gemini_pci at obio
file arch/arm/gemini/gemini_pci.c pci needs-flag
# GEMINI MAC controller
device geminigmac { port, intr, phy }: mii, mii_bitbang
attach geminigmac at obio with geminigmac
file arch/arm/gemini/gemini_gmac.c geminigmac needs-flag
device gmc: ifnet, ether, arp, mii
attach gmc at geminigmac
file arch/arm/gemini/if_gmc.c gmc