#       $NetBSD: files.hpcmips,v 1.110 2022/05/23 21:46:12 andvar Exp $

# maxpartitions must be first item in files.${ARCH}.
maxpartitions 8

maxusers 2 8 64

#
# Stack-less Just-In-Time compiler
#

include "external/bsd/sljit/conf/files.sljit"

#
# Machine-independent I2O drivers.
#

include "dev/i2o/files.i2o"

#
# Machine-independent SCSI drivers
#

include "dev/scsipi/files.scsipi"

#
# Machine-independent ATA drivers
#

include "dev/ata/files.ata"

#
# APM emulation
#

include "dev/hpc/files.hpcapm"
file    arch/hpcmips/hpcmips/hpcapm_machdep.c   hpcapm

#
# Bus-independent devices
#
device mainbus { [platform = -1] }: hpcapmif
attach mainbus at root

device cpu                              # not optional
attach cpu at mainbus
file arch/hpcmips/hpcmips/cpu.c         cpu

# CPU support option headers
defflag opt_vr41xx.h    VR41XX VR4101 VR4102 VR4111 VR4121 VR4122 VR4181 VR4131
defflag opt_tx39xx.h    TX39XX TX3911 TX3912 TX3922

#
# CPU-dependent files
#
file    arch/hpcmips/vr/vr.c            vr41xx  # NEC VR4000 series
file    arch/hpcmips/vr/vr_idle.S       vr41xx
file    arch/hpcmips/tx/tx39.c          tx39xx  # TOSHIBA TX3900 series

file    arch/hpcmips/hpcmips/autoconf.c
file    arch/hpcmips/hpcmips/bus_dma.c
file    arch/hpcmips/hpcmips/bus_space.c
file    arch/hpcmips/hpcmips/bus_space_notimpl.c
file    arch/hpcmips/hpcmips/bus_space_through.c
file    arch/hpcmips/hpcmips/interrupt.c
file    arch/hpcmips/hpcmips/machdep.c
file    arch/hpcmips/hpcmips/mainbus.c

file    dev/bus_dma/bus_dmamem_common.c

file    dev/kloader.c                           kloader
file    arch/hpcmips/hpcmips/kloader_machdep.c  kloader
file    arch/hpcmips/hpcmips/kloader_vr41.S     vr41xx & kloader
file    arch/hpcmips/hpcmips/kloader_tx39.S     tx39xx & kloader
defflag opt_no_symbolsz_entry.h         NO_SYMBOLSZ_ENTRY
defflag opt_kloader.h                   KLOADER
defflag debug_kloader.h                 KLOADER_DEBUG
defparam opt_kloader_kernel_path.h      KLOADER_KERNEL_PATH

defparam opt_memsize.h                  MEMSIZE

#
# H/PC Platform common files.
#
include "arch/hpc/conf/files.hpc"
file    arch/hpc/hpc/disksubr.c                 disk
include "dev/hpc/files.bicons"
include "dev/hpc/files.hpcfb"
include "dev/hpc/files.hpckbd"
include "dev/hpc/files.hpctp"

#
# Debug utility
#
include "arch/hpc/conf/files.debug"

# Console autoconfiguration code: selects between a framebuffers
file    dev/cons.c

#
# ISA bus support
#
include "dev/pci/files.pci"     # XXX some ISA devs are 'at pci' too.
include "dev/isa/files.isa"

#
#  Vr41xx integrated peripherals
#
device vripif { [addr=-1], [size=-1], [addr2=-1], [size2=-1], [unit=-1], [pwctl=-1], [platform = -1] }
define vrip_common
file arch/hpcmips/vr/vrip.c             vrip_common needs-flag
file arch/hpcmips/vr/vrip_spl.S         vrip_common
device vrip: vripif
attach vrip at mainbus: vrip_common
device vr4102ip: vripif
attach vr4102ip at mainbus: vrip_common
file arch/hpcmips/vr/vr4102ip.c         vr4102ip
device vr4122ip: vripif
attach vr4122ip at mainbus: vrip_common
file arch/hpcmips/vr/vr4122ip.c         vr4122ip
device vr4181ip: vripif
attach vr4181ip at mainbus: vrip_common
file arch/hpcmips/vr/vr4181ip.c         vr4181ip

device vrbcu
attach vrbcu at vripif
file arch/hpcmips/vr/bcu_vrip.c                 vrbcu needs-flag

device vrrtc
attach vrrtc at vripif
file arch/hpcmips/vr/rtc.c                      vrrtc needs-flag

device vrcmu
attach vrcmu at vripif
file arch/hpcmips/vr/cmu.c                      vrcmu needs-flag

include "dev/hpc/files.hpcio"
device  vrisabif {[platform = -1], [isaportoffset=0], [isamemoffset=0]}         # GIU attachment

device vrgiu: vrisabif, hpcioif
attach vrgiu at vripif
file arch/hpcmips/vr/vrgiu.c                    vrgiu

device vr4181giu: vrisabif, hpcioif
attach vr4181giu at vripif
file arch/hpcmips/vr/vr4181giu.c                vr4181giu

device vrisab: isabus
attach vrisab at vrisabif
file arch/hpcmips/isa/isa_machdep.c             vrisab

device vrkiu: hpckbdif
attach vrkiu at vripif
file arch/hpcmips/vr/vrkiu.c                    vrkiu needs-flag

device vrpmu
attach vrpmu at vripif
file arch/hpcmips/vr/vrpmu.c                    vrpmu needs-flag

device vrdsu
attach vrdsu at vripif
file arch/hpcmips/vr/vrdsu.c                    vrdsu needs-flag

device vrled
attach vrled at vripif
file arch/hpcmips/vr/vrled.c                    vrled needs-flag

define  vrpiu_common
file arch/hpcmips/vr/vrpiu.c                    vrpiu_common
device vrpiu: wsmousedev
attach vrpiu at vripif: hpctpanel, vrpiu_common
device vrc4173piu: wsmousedev
attach vrc4173piu at vripif: hpctpanel, vrpiu_common

device vrdsiu_mouse: wsmousedev
attach vrdsiu_mouse at vripif
file arch/hpcmips/vr/vrdsiu_mouse.c             vrdsiu_mouse

attach ohci at vripif with ohci_vrip
file arch/hpcmips/dev/ohci_vrip.c               ohci_vrip

device vrpciu: pcibus
attach vrpciu at vripif
file arch/hpcmips/vr/vrpciu.c                   vrpciu needs-flag

defflag opt_mq200.h     MQ200_DEBUG MQ200_USECRT
device mqvideo: hpcfbif
attach mqvideo at vripif with mqvideo_vrip
file arch/hpcmips/vr/mq200_vrip.c               mqvideo_vrip
file arch/hpcmips/dev/mq200.c                   mqvideo
file arch/hpcmips/dev/mq200subr.c               mqvideo
file arch/hpcmips/dev/mq200debug.c              mqvideo
file arch/hpcmips/dev/mq200machdep.c            mqvideo

attach mqvideo at pci with mqvideo_pci
file arch/hpcmips/dev/mq200_pci.c               mqvideo_pci

device ite8181video: hpcfbif, hpccmap
attach ite8181video at vripif with ite8181video_vrip
file arch/hpcmips/vr/ite8181_vrip.c             ite8181video_vrip
file arch/hpcmips/dev/ite8181.c                 ite8181video

defflag opt_vrc4172pci.h        VRC4172PCI_MCR700_SUPPORT
device vrc4172pci: pcibus
attach vrc4172pci at vripif
file arch/hpcmips/vr/vrc4172pci.c               vrc4172pci

device vrc4172pwm
attach vrc4172pwm at vripif
file arch/hpcmips/vr/vrc4172pwm.c               vrc4172pwm needs-flag

device vrc4172gpio: hpcioif, vrisabif
attach vrc4172gpio at hpcioif
file arch/hpcmips/vr/vrc4172gpio.c              vrc4172gpio

device vrc4173cardu: pcmciabus
attach vrc4173cardu at pci
file arch/hpcmips/pci/vrc4173cardu.c            vrc4173cardu

device vrc4173bcu: vripif
attach vrc4173bcu at pci
file arch/hpcmips/vr/vrc4173bcu.c               vrc4173bcu

#
#       TOSHIBA TX3912/3922
#
defflag                 TX39_WATCHDOGTIMER
defflag                 TX39ICU_DEBUG
defflag                 TX39CLOCK_DEBUG
defflag                 TX39BIU_DEBUG
defflag                 TX39POWER_DEBUG
defflag                 TX39UART_DEBUG
defflag                 USE_POLL

device txsim { }
device txcsbusif {[platform = -1]}
device txcomif {[slot = -1]}
device txsibif {[slot = -1]}
device txspiif {[slot = -1]}
device ucbif { }
device irif { }

attach txsim at mainbus
file arch/hpcmips/tx/txsim.c            txsim
file arch/hpcmips/tx/txsnd.c            txsim

device tx39biu: txcsbusif
attach tx39biu at txsim
file arch/hpcmips/tx/tx39biu.c          tx39biu

device txcsbus {[regcs=-1], [regcsbase=0], [regcssize=-1], [regcswidth=-1], [iocs=-1], [iocsbase=0], [iocssize=-1], [iocswidth=-1], [memcs=-1], [memcsbase=0], [memcssize=-1], [memcswidth=-1], [irq1=-1], [irq2=-1], [irq3=-1]}
attach txcsbus at txcsbusif
file arch/hpcmips/tx/txcsbus.c          txcsbus

device tx39icu
attach tx39icu at txsim
file arch/hpcmips/tx/tx39icu.c          tx39icu

device tx39power
attach tx39power at txsim
file arch/hpcmips/tx/tx39power.c        tx39power

device tx39clock
attach tx39clock at txsim
file arch/hpcmips/tx/tx39clock.c        tx39clock

device tx3912video: hpcfbif
attach tx3912video at txsim
file arch/hpcmips/tx/tx3912video.c      tx3912video

device tx39io
attach tx39io at txsim
file arch/hpcmips/tx/tx39io.c           tx39io

device txioman: hpcioif
attach txioman at txsim
file arch/hpcmips/tx/txioman.c          txioman

device tx39sib: txsibif
attach tx39sib at txsim
file arch/hpcmips/tx/tx39sib.c          tx39sib

device tx39spi: txspiif
attach tx39spi at txsim
file arch/hpcmips/tx/tx39spi.c          tx39spi

#       PHILIPS UCB1200 / TOSHIBA TC35413F (modem/audio analog front-end)
device ucb: ucbif
attach ucb at txsibif
file arch/hpcmips/dev/ucb1200.c         ucb

device ucbtp: wsmousedev
attach ucbtp at ucbif: hpctpanel
file arch/hpcmips/dev/ucbtp.c           ucbtp

device ucbsnd
attach ucbsnd at ucbif
file arch/hpcmips/dev/ucbsnd.c          ucbsnd          needs-flag

device ucbio
attach ucbio at ucbif
file arch/hpcmips/dev/ucbio.c           ucbio

device tx39uart: txcomif
attach tx39uart at txsim
file arch/hpcmips/tx/tx39uart.c         tx39uart        needs-flag

device txcom: irif
attach txcom at txcomif
file arch/hpcmips/tx/txcom.c            txcom

device tx39ir
attach tx39ir at irif
file arch/hpcmips/tx/tx39ir.c           tx39ir

#       ITE IT8368E PCMCIA / TOSHIBA TC6345AF buffer chip (PCMCIA)
device it8368e: pcmciabus
attach it8368e at txcsbus
file arch/hpcmips/dev/it8368.c          it8368e

#       MITUBISHI M38813 keryboard controller
device m38813c: hpckbdif
attach m38813c at txcsbus
file arch/hpcmips/dev/m38813c.c         m38813c         needs-flag

#       PHILIPS 74ALVC16241 / TOSHIBA TC5165BTFS buffer driver (keyboard)
device tc5165buf: hpckbdif
attach tc5165buf at txcsbus
file arch/hpcmips/dev/tc5165buf.c       tc5165buf       needs-flag

#       TOSHIBA TC6358E(Plum2)
device plumif {}
device plum: plumif
attach plum at txcsbus
file arch/hpcmips/dev/plum.c            plum

device plumicu
attach plumicu at plumif
file arch/hpcmips/dev/plumicu.c         plumicu

device plumpower
attach plumpower at plumif
file arch/hpcmips/dev/plumpower.c       plumpower

device plumvideo: hpcfbif
attach plumvideo at plumif
file arch/hpcmips/dev/plumvideo.c       plumvideo

device plumpcmcia: pcmciabus
attach plumpcmcia at plumif
file arch/hpcmips/dev/plumpcmcia.c      plumpcmcia

device plumiobusif {[platform = -1], [slot = -1]}
device plumiobus: plumiobusif
attach plumiobus at plumif
file arch/hpcmips/dev/plumiobus.c       plumiobus

device plumisab: isabus
attach plumisab at plumiobusif
file arch/hpcmips/isa/plumisa_machdep.c plumisab

# OHCI USB controller
attach  ohci at plumif with plumohci
file    arch/hpcmips/dev/plumohci.c     plumohci        needs-flag

#device txisab: isabus
#attach txisab at txcsbus
#file arch/hpcmips/isa/txisa_machdep.c  txisab

file    dev/hpc/video_subr.c            tx3912video | plumvideo

# Sharp Telios LCD and battery control driver
device  teliosio
attach  teliosio at txcsbus
file    arch/hpcmips/dev/teliosio.c     teliosio

#
#       Real-time clock (not optional)
#
file    arch/hpcmips/hpcmips/clock.c

# Floppy disk controller
device  fdc {drive = -1}
#attach fdc at isa
#device fd: disk, isadma
device  fd: disk
#attach fd at fdc
file    arch/i386/isa/fd.c              fdc needs-flag

# XXXX pcic here because it needs to be late.  The catch: pcic needs
# to be late, so devices which attach to it are attached late.  But it
# needs to be before its isa and pci attachments.  This answer is
# non-optimal, but I don't have a better answer right now.

# PCIC pcmcia controller
# XXX this needs to be done very late, so it's done here.  This feels
# like a kludge, but it might be for the best.

defparam                PCIC_ISA_ALLOC_IOBASE
defparam                PCIC_ISA_ALLOC_IOSIZE
defparam                PCIC_ISA_INTR_ALLOC_MASK

device  pcic: pcmciabus
file    dev/ic/i82365.c                 pcic

#
# PCIC pcmcia controller
#
attach  pcic at isa with pcic_isa
file    dev/isa/i82365_isa.c                    pcic_isa
file    dev/isa/i82365_isasubr.c                pcic_isa

# PCIC pcmcia controller on vrip bus.
attach  pcic at vripif with pcic_vrip
file    arch/hpcmips/vr/vrecu.c                 pcic_vrip

#
# Machine-independent PCMCIA drivers
#
include "dev/pcmcia/files.pcmcia"

# Serial Interface Unit
attach com at vripif with com_vrip
file    arch/hpcmips/vr/com_vrip.c              com_vrip needs-flag

attach com at hpcioif with com_hpcio
file arch/hpcmips/dev/com_hpcio.c               com_hpcio needs-flag

# Memory Disk for boot tape
file dev/md_root.c                              memory_disk_hooks

include "dev/usb/files.usb"

# DMA Address Unit
device vrdmaau
attach vrdmaau at vripif
file arch/hpcmips/vr/vrdmaau.c  vrdmaau

# DMA Control Unit
device vrdcu
attach vrdcu at vripif
file arch/hpcmips/vr/vrdcu.c    vrdcu

# Audio Interface Unit
device vraiu: audiobus
attach vraiu at vripif
file arch/hpcmips/vr/vraiu.c    vraiu

# VR4181 Audio Interface Unit
device vr4181aiu
attach vr4181aiu at vripif
file arch/hpcmips/vr/vr4181aiu.c        vr4181aiu       needs-flag

# Flash memory on L-card+       XXX should not be here
device vrflash
attach vrflash at vripif with flash_vrip
file arch/hpcmips/vr/flash_vrip.c       flash_vrip      needs-flag

# OptPoint on Telios HC-AJ2
device optpoint : wsmousedev
attach optpoint at txspiif
file arch/hpcmips/dev/optpoint.c        optpoint

file arch/hpcmips/pci/pci_machdep.c

include "arch/hpcmips/conf/majors.hpcmips"