#       $NetBSD: files.sparc,v 1.164 2023/10/26 10:41:03 andvar Exp $

# @(#)files.sparc       8.1 (Berkeley) 7/19/93
# sparc-specific configuration info

defflag opt_sparc_arch.h        SUN4
defflag opt_sparc_arch.h        SUN4_MMU3L
defflag opt_sparc_arch.h        SUN4C
defflag opt_sparc_arch.h        SUN4M
defflag opt_sparc_arch.h        SUN4D
defflag opt_sparc_arch.h        SUN4U
defflag opt_sparc_arch.h        MSIIEP

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

maxusers 2 8 1024

device mainbus {}
attach mainbus at root

device msiiep {}
attach msiiep at mainbus

include "dev/i2o/files.i2o"
include "dev/pci/files.pci"
device mspcic: pcibus
attach mspcic at msiiep
file    arch/sparc/sparc/msiiep.c               msiiep | mspcic
file    arch/sparc/sparc/pci_machdep.c          msiiep | mspcic
file    arch/sparc/sparc/pci_fixup.c            msiiep | mspcic

device ebus {[addr = -1]}
attach ebus at pci
file    arch/sparc/dev/ebus.c                   ebus

device rtc
attach rtc at ebus with rtc_ebus
file    arch/sparc/dev/rtc.c                    rtc_ebus

device iommu {}
attach iommu at mainbus
file    arch/sparc/sparc/iommu.c                iommu

device obio { [addr = -1], [level = -1] }
attach obio at mainbus

device cpuunit { }
attach cpuunit at mainbus
file    arch/sparc/sparc/cpuunit.c              cpuunit

device bootbus { [slot = -1], [offset = -1] }
attach bootbus at cpuunit
file    arch/sparc/dev/bootbus.c                bootbus

include "dev/vme/files.vme"
device sparcvme: vmebus
attach sparcvme at mainbus with vme_mainbus
attach sparcvme at iommu with vme_iommu

file    arch/sparc/dev/obio.c           obio
file    arch/sparc/dev/vme_machdep.c    sparcvme

device auxreg
attach auxreg at mainbus with auxreg_mainbus
attach auxreg at obio with auxreg_obio
file    arch/sparc/sparc/auxreg.c

defflag BLINK

device auxiotwo
attach auxiotwo at obio with auxiotwo_obio
file    arch/sparc/sparc/auxiotwo.c

device clock: mk48txx
attach clock at mainbus with clock_mainbus
attach clock at obio with clock_obio
attach clock at bootbus with clock_bootbus
file    arch/sparc/sparc/mkclock.c              clock

device oclock: intersil7170
attach oclock at obio
file    arch/sparc/sparc/oclock.c               oclock

device timer
attach timer at mainbus with timer_mainbus
attach timer at obio with timer_obio
attach timer at msiiep with timer_msiiep
file    arch/sparc/sparc/timer.c                timer & !msiiep
file    arch/sparc/sparc/timer_sun4.c           timer & (sun4 | sun4c)
file    arch/sparc/sparc/timer_sun4m.c          timer & sun4m & !msiiep
file    arch/sparc/sparc/timer_msiiep.c         timer & msiiep

device eeprom
attach eeprom at obio
file    arch/sparc/sparc/eeprom.c               eeprom

file    arch/sparc/sparc/clock.c

device power
attach power at obio
file    arch/sparc/dev/power.c                  power   needs-flag

device cpu
attach cpu at mainbus with cpu_mainbus
attach cpu at cpuunit with cpu_cpuunit
file    arch/sparc/sparc/cpu.c

device clkctrl
attach clkctrl at obio
file    arch/sparc/sparc/clkctrl.c              clkctrl

device memreg
attach memreg at mainbus with memreg_mainbus
attach memreg at obio with memreg_obio
file    arch/sparc/sparc/memreg.c

device eccmemctl
attach eccmemctl at mainbus
file    arch/sparc/sparc/memecc.c               eccmemctl

device sx {}
attach sx at mainbus
file    arch/sparc/dev/sx.c                     sx needs-flag
defflag opt_sx.h        SX_DEBUG

device tctrl: sysmon_envsys, sysmon_power, sysmon_taskq
attach tctrl at obio
file    arch/sparc/dev/tctrl.c                  tctrl needs-flag

include "dev/sun/files.sun"

device zs { [channel = -1] }
attach zs at mainbus with zs_mainbus
attach zs at obio with zs_obio
attach zs at bootbus with zs_bootbus
file    arch/sparc/dev/zs.c                     zs
file    dev/ic/z8530sc.c                        zs

device zstty {}: tty
attach zstty at zs
file dev/ic/z8530tty.c                          zstty
file arch/sparc/dev/zs_kgdb.c                   kgdb

device fdc {}
attach fdc at mainbus with fdc_mainbus
attach fdc at obio with fdc_obio
device fd: disk
attach fd at fdc
file    arch/sparc/dev/fd.c                     fdc | fd needs-flag
file    arch/sparc/sparc/bsd_fdintr.s           fdc

include "dev/sbus/files.sbus"
attach sbus at mainbus with sbus_mainbus
attach sbus at iommu with sbus_iommu
file    arch/sparc/dev/sbus.c                   sbus needs-flag

attach  audiocs at ebus with audiocs_ebus
file    dev/ebus/cs4231_ebus.c                  audiocs_ebus

device tslot: pcmciabus
attach tslot at sbus
file    arch/sparc/dev/ts102.c                  tslot

# PCMCIA bus
include "dev/pcmcia/files.pcmcia"
include "dev/ata/files.ata"

#
# Console related stuff
#

file    arch/sparc/dev/kd.c                             # console

attach pckbc at obio with pckbc_obio: pckbport_machdep_cnattach
attach pckbc at ebus with pckbc_ebus: pckbport_machdep_cnattach
file    arch/sparc/dev/pckbc_js.c       pckbc_obio | pckbc_ebus


# sun keyboard at a serial port
attach kbd at zs with kbd_zs
file dev/sun/kbd_zs.c                   kbd_zs          # kbd lower layer

# sun keyboard at a tty line discipline
# only used by sparc64, but we can test-compile it here
attach kbd at zstty with kbd_tty
file    dev/sun/sunkbd.c                kbd_tty         # kbd lower layer


# shared middle layer for serial keyboard
file    dev/sun/kbdsun.c                kbd_zs | kbd_tty # kbd middle layer

# PC/AT keyboard at 8042 (pckbc) for Mr.Coffee
attach kbd at pckbport with kbd_pckbport
file    arch/sparc/dev/kbd_pckbport.c   kbd_pckbport    # kbd mid/lower layers


# sun (mouse systems) mouse at a serial port
attach ms at zs with ms_zs
file    dev/sun/ms_zs.c                 ms_zs           # mouse lower layer

# sun (mouse systems) mouse at a tty line discipline
# only used by sparc64, but we can test-compile it here
attach ms at zstty with ms_tty
file    dev/sun/sunms.c                 ms_tty          # mouse lower layer

# XXX: middle layer for sun (mouse systems) serial mice consists of
# just one function in dev/sun/ms.c (upper layer).  Split it out?

# PS/2 mouse at 8042 (pckbc) for Mr.Coffee
attach ms at pckbport with ms_pckbport
file    arch/sparc/dev/ms_pckbport.c    ms_pckbport     # lower/middle layers

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

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

#
# Machine-independent SCSI drivers
#
include "dev/scsipi/files.scsipi"

attach dma at obio with dma_obio
file    arch/sparc/dev/dma_obio.c       dma_obio

attach esp at obio with esp_obio
file    arch/sparc/dev/esp_obio.c       esp_obio

device  audioamd: audiobus, am7930
attach  audioamd at mainbus with audioamd_mainbus
attach  audioamd at obio with audioamd_obio
attach  audioamd at sbus with audioamd_sbus
file    arch/sparc/dev/audioamd.c               audioamd

device  apc
attach  apc at sbus
file    arch/sparc/dev/apc.c                    apc

attach bwtwo at obio with bwtwo_obio
file    arch/sparc/dev/bwtwo_obio.c     bwtwo_obio & obio

device cgtwo: fb, rasops8
attach cgtwo at vme
file    arch/sparc/dev/cgtwo.c          cgtwo needs-flag

device cgfour: bt_dac, fb, rasops8, pfour
attach cgfour at obio
file    arch/sparc/dev/cgfour.c         cgfour needs-flag

attach cgsix at obio with cgsix_obio
file    arch/sparc/dev/cgsix_obio.c     cgsix_obio & obio

device cgeight: bt_dac, fb, rasops24, pfour
attach cgeight at obio
file    arch/sparc/dev/cgeight.c        cgeight needs-flag

device cgfourteen: fb, rasops8, wsemuldisplaydev, vcons, glyphcache
attach cgfourteen at obio
file    arch/sparc/dev/cgfourteen.c     cgfourteen needs-flag

# device definition in sys/conf/files
attach le at obio with le_obio: le24
file    arch/sparc/dev/if_le_obio.c     le_obio

attach ie at obio with ie_obio
file    arch/sparc/dev/if_ie_obio.c     ie_obio

attach com at obio with com_obio
file    arch/sparc/dev/com_obio.c       com_obio

attach com at ebus with com_ebus
file    arch/sparc/dev/com_ebus.c       com_ebus

device sw: scsi, ncr5380sbc
attach sw at obio
file    arch/sparc/dev/sw.c             sw

#
# Generic Sun stuff
#

file    dev/cons.c
file    dev/sun/disksubr.c

file    arch/sparc/fpu/fpu.c
file    arch/sparc/fpu/fpu_add.c
file    arch/sparc/fpu/fpu_compare.c
file    arch/sparc/fpu/fpu_div.c
file    arch/sparc/fpu/fpu_explode.c
file    arch/sparc/fpu/fpu_implode.c
file    arch/sparc/fpu/fpu_mul.c
file    arch/sparc/fpu/fpu_sqrt.c
file    arch/sparc/fpu/fpu_subr.c

file    arch/sparc/sparc/autoconf.c
file    arch/sparc/sparc/cache.c
file    arch/sparc/sparc/core_machdep.c         coredump
file    arch/sparc/sparc/cpu_in_cksum.c         (inet | inet6) & cpu_in_cksum
file    arch/sparc/sparc/emul.c
file    arch/sparc/sparc/intr.c
file    arch/sparc/sparc/kgdb_machdep.c kgdb
file    arch/sparc/sparc/kobj_machdep.c         modular
# sparc/sparc/locore.s is handled specially in the makefile,
# because it must come first in the "ld" command line.
file    arch/sparc/sparc/machdep.c
file    arch/sparc/sparc/process_machdep.c
file    arch/sparc/sparc/promlib.c
file    arch/sparc/sparc/openfirm.c
file    arch/sparc/sparc/openprom.c
file    arch/sparc/sparc/procfs_machdep.c       procfs
file    arch/sparc/sparc/pmap.c
file    arch/sparc/sparc/syscall.c
file    arch/sparc/sparc/sys_machdep.c
file    arch/sparc/sparc/trap.c
file    arch/sparc/sparc/vm_machdep.c

file    arch/sparc/sparc/db_interface.c ddb | kgdb
file    arch/sparc/sparc/db_machdep.c   ddb | kgdb
file    arch/sparc/sparc/db_trace.c     ddb
file    arch/sparc/sparc/db_disasm.c    ddb

include "dev/pckbport/files.pckbport"

# USB Support
include "dev/usb/files.usb"

#
# Compatibility modules
#

# SunOS Binary Compatibility (COMPAT_SUNOS)
include "compat/sunos/files.sunos"
file    arch/sparc/sparc/sunos_sigcode.s compat_sunos
file    arch/sparc/sparc/sunos_machdep.c compat_sunos

# Binary compatibility with previous NetBSD releases (COMPAT_XX)
# Note: SunOS compatibility also uses some of `compat_13_machdep.c'
file    arch/sparc/sparc/compat_16_machdep.c    compat_16
file    arch/sparc/sparc/compat_13_machdep.c    compat_13 | compat_sunos

# Miscellaneous
file    dev/md_root.c                   memory_disk_hooks

include "arch/sparc/conf/majors.sparc"