#       $NetBSD: files.rmixl,v 1.5 2024/10/07 15:04:32 andvar Exp $
#
# Configuration info for RMI XLP, XLR, XLS
#

file    arch/mips/rmi/rmixl_spl.S
file    arch/mips/rmi/rmixl_intr.c
file    arch/mips/rmi/rmixl_subr.S
file    arch/mips/rmi/rmixl_fmn.c


# node is parent of one or more core
device  cpunode { [ core = -1] }
attach  cpunode at mainbus with cpunode_rmixl
file    arch/mips/rmi/rmixl_cpunode.c           cpunode_rmixl

# core is parent of one or more cpu
device  cpucore { [ thread = -1] }
attach  cpucore at cpunode with cpucore_rmixl
file    arch/mips/rmi/rmixl_cpucore.c           cpucore_rmixl

# each cpu is a RMI 'thread' or 'vCPU'
device  cpu
attach  cpu at cpucore with cpu_rmixl
file    arch/mips/rmi/rmixl_cpu.c               cpu_rmixl

# OBIO: offsets are from System Bridge Controller base
define obio { [addr=-1], [size=0], [intr=-1], [tmsk=-1], [mult=1] }
device  obio: obio
attach  obio at cpunode with obio_rmixl
file    arch/mips/rmi/rmixl_obio.c              obio_rmixl
file    arch/mips/rmi/rmixl_obio_eb_space.c     obio_rmixl
file    arch/mips/rmi/rmixl_obio_el_space.c     obio_rmixl
file    arch/mips/rmi/rmixl_pci_cfg_space.c     rmixl_pcix | rmixl_pcie
file    arch/mips/rmi/rmixl_pci_ecfg_space.c    rmixl_pcie
file    arch/mips/rmi/rmixl_pci_io_space.c      rmixl_pcix | rmixl_pcie
file    arch/mips/rmi/rmixl_pci_mem_space.c     rmixl_pcix | rmixl_pcie

# NS16550 compatible serial ports
attach com at obio with com_rmixl
file    arch/mips/rmi/rmixl_com.c               com_rmixl
defparam opt_com.h                              CONSADDR CONSFREQ CONSPEED CONMODE

# GPIO
device  rmixl_gpio: gpiobus
attach  rmixl_gpio at obio
file    arch/mips/rmi/rmixl_gpio.c              rmixl_gpio

# PCIe
device  rmixl_pcie: pcibus
attach  rmixl_pcie at obio
file    arch/mips/rmi/rmixl_pcie.c              rmixl_pcie      needs-flag

# PCI-X
device  rmixl_pcix: pcibus
attach  rmixl_pcix at obio
file    arch/mips/rmi/rmixl_pcix.c              rmixl_pcix      needs-flag

# RMI Peripheral IO Bus to Flash, PCMCIA memory controllers
define  rmixl_iobus { [cs=-1], [addr=-1], [size=-1], [intr=-1] }
device  rmixl_iobus: rmixl_iobus
attach  rmixl_iobus at obio
file    arch/mips/rmi/rmixl_iobus_space.c       rmixl_iobus
file    arch/mips/rmi/rmixl_iobus.c             rmixl_iobus

# NAND flash controller
device  rmixl_nand: nandbus
attach  rmixl_nand at rmixl_iobus
file    arch/mips/rmi/rmixl_nand.c              rmixl_nand

# PCMCIA controller
device  rmixl_pcic: pcmciabus
attach  rmixl_pcic at rmixl_iobus
file    arch/mips/rmi/rmixl_pcic.c              rmixl_pcic

# On-chip USB interface
define rmixl_usbi { [addr=-1], [size=-1], [intr=-1] }
device  rmixl_usbi: rmixl_usbi
attach  rmixl_usbi at obio
file    arch/mips/rmi/rmixl_usbi.c              rmixl_usbi

# On-chip OHCI USB controller
attach  ohci at rmixl_usbi with rmixl_ohci
file    arch/mips/rmi/rmixl_ohci.c              ohci

# On-chip EHCI USB controller
attach  ehci at rmixl_usbi with rmixl_ehci
file    arch/mips/rmi/rmixl_ehci.c              ehci