#       $NetBSD: files.sparc64,v 1.167 2025/09/01 04:47:03 thorpej Exp $

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

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

maxusers 2 8 1024

defflag opt_sparc_arch.h        SUN4U SUN4V

define mainbus {}
device mainbus: mainbus, ofw_subr
attach mainbus at root

define upa {}
device upa: upa
attach upa at mainbus
file    arch/sparc64/dev/upa.c

device pcons
attach pcons at mainbus
file    arch/sparc64/dev/pcons.c                pcons needs-flag

include "dev/sun/files.sun"
include "dev/i2o/files.i2o"

include "dev/sbus/files.sbus"
attach sbus at mainbus
file    arch/sparc64/dev/sbus.c                 sbus

device  psycho: pcibus, sysmon_power, sysmon_taskq
attach  psycho at mainbus
device  schizo: pcibus
attach  schizo at mainbus
device  pyro: pcibus
attach  pyro at mainbus
device  vpci: pcibus
attach  vpci at mainbus
include "dev/pci/files.pci"
file    arch/sparc64/dev/psycho.c               psycho needs-flag
file    arch/sparc64/dev/schizo.c               schizo
file    arch/sparc64/dev/pyro.c                 pyro
file    arch/sparc64/dev/vpci.c                 vpci
file    arch/sparc64/dev/pci_machdep.c          psycho | schizo | pyro | vpci
file    dev/ofw/ofw_pci_subr.c                  pci

device jbusi2c: i2cexec, i2c_bitbang, i2cbus
attach jbusi2c at mainbus
file    arch/sparc64/dev/jbus-i2c.c             jbusi2c

define  central {}
device  central: central
attach  central at mainbus
file    arch/sparc64/dev/central.c              central

define  fhc {}
device  fhc: fhc
attach  fhc at mainbus with fhc_mainbus
attach  fhc at central with fhc_central
file    arch/sparc64/dev/fhc.c                  fhc
file    arch/sparc64/dev/fhc_central.c          fhc_central
file    arch/sparc64/dev/fhc_mainbus.c          fhc_mainbus

# IOMMU is for both
file    arch/sparc64/dev/iommu.c                sbus | psycho | schizo | pyro | vpci

include "dev/ata/files.ata"

device ebus {[addr = -1]}
attach ebus at pci
file    arch/sparc64/dev/ebus.c                 ebus
attach ebus at mainbus with ebus_mainbus
file    arch/sparc64/dev/ebus_mainbus.c         ebus_mainbus

device  vbus {}
attach  vbus at mainbus
file    arch/sparc64/dev/vbus.c                 vbus

device  cbus {}
attach  cbus at vbus
file    arch/sparc64/dev/cbus.c                 cbus

device clock: mk48txx
attach clock at sbus with mkclock_sbus
attach clock at ebus with mkclock_ebus
attach clock at fhc with mkclock_fhc
file    arch/sparc64/dev/mkclock.c              clock

device rtc: mc146818
attach rtc at ebus with rtc_ebus
file    arch/sparc64/dev/rtc.c                  rtc

device psm: sysmon_power
attach psm at ebus
file    arch/sparc64/dev/psm.c                  psm

device timer
attach timer at mainbus, sbus

device  tda: sysmon_envsys
attach  tda at iic
file    arch/sparc64/dev/tda.c                  tda

attach pcfiic at ebus with pcfiic_ebus
file    arch/sparc64/dev/pcfiic_ebus.c          pcfiic_ebus

device ecadc: sysmon_envsys
attach ecadc at iic
file    arch/sparc64/dev/pcf8591_envctrl.c      ecadc

device lom: sysmon_envsys, sysmon_wdog
attach lom at ebus
file    arch/sparc64/dev/lom.c                  lom

device cpu
attach cpu at mainbus
file    arch/sparc64/sparc64/cpu.c

device  auxio
attach  auxio at ebus with auxio_ebus
attach  auxio at sbus with auxio_sbus
file    arch/sparc64/dev/auxio.c                auxio
file    arch/sparc64/dev/auxio_sbus.c           auxio_sbus
file    arch/sparc64/dev/auxio_ebus.c           auxio_ebus

defflag opt_auxio.h     BLINK

attach  lpt at ebus with lpt_ebus
file    arch/sparc64/dev/lpt_ebus.c             lpt_ebus

device fdc {}
attach fdc at sbus with fdc_sbus
attach fdc at ebus with fdc_ebus
device fd: disk
attach fd at fdc
file    arch/sparc64/dev/fdc.c                  fdc | fd needs-flag

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

include "dev/sdmmc/files.sdmmc"
attach  wb at ebus with wb_ebus
file    arch/sparc64/dev/wb_ebus.c              wb_ebus

# PCMCIA bus (references fdc)
include "dev/pcmcia/files.pcmcia"

# CardBus Support
include "dev/cardbus/files.cardbus"
file    arch/sparc64/sparc64/rbus_machdep.c     cardbus

#
# Console related stuff
#

device zs {channel = -1}
attach zs at sbus
attach zs at fhc with zs_fhc
file    arch/sparc64/dev/zs.c                   zs needs-flag
file    dev/ic/z8530sc.c                        zs

# siemens SAB82532; found on U5/U10/... for tty ports.
device sab {channel = -1}
attach sab at ebus
file    arch/sparc64/dev/sab.c                  sab | sabtty needs-flag

# "com" attachments for the kbd/mouse of the U5/U10/...
attach com at ebus with com_ebus
file    arch/sparc64/dev/com_ebus.c             com_ebus

# ebus PS/2 keyboard attachment for Tadpole SPARCle, etc.
include "dev/pckbport/files.pckbport"
attach pckbc at ebus with pckbc_ebus : sysmon_envsys
file    arch/sparc64/dev/pckbc_ebus.c           pckbc_ebus
defflag opt_tadpmu.h    HAVE_TADPMU
file    arch/sparc64/dev/tadpmu.c               pckbc_ebus

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

device sabtty: tty
attach sabtty at sab

file arch/sparc64/dev/kd.c              kbd

attach kbd at zs with kbd_zs
attach kbd at zstty, com with kbd_tty
file dev/sun/kbd_zs.c                   kbd_zs
file dev/sun/sunkbd.c                   kbd_tty
file dev/sun/kbdsun.c                   kbd_zs | kbd_tty

attach ms at zs with ms_zs
attach ms at zstty, com with ms_tty
file dev/sun/ms_zs.c                    ms_zs
file dev/sun/sunms.c                    ms_tty

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

device cgfourteen
attach cgfourteen at sbus
file    arch/sparc64/dev/cgfourteen.c   cgfourteen needs-flag

device ffb: wsemuldisplaydev, rasops32, fb, vcons, i2cexec, i2c_bitbang, ddc_read_edid, edid, videomode
file    arch/sparc64/dev/ffb.c                  ffb
defflag opt_ffb.h FFB_DEBUG FFB_SYNC
attach ffb at mainbus,upa with ffb_mainbus
file    arch/sparc64/dev/ffb_mainbus.c          ffb_mainbus

device gfb: wsemuldisplaydev, rasops32, fb, vcons
file    arch/sparc64/dev/gfb.c                  gfb
attach gfb at mainbus

# CP1500/1400 watchdog timer
device  pldwdog: sysmon_wdog
attach  pldwdog at ebus
file    arch/sparc64/dev/pld_wdog.c             pldwdog

#
# Generic Sun stuff
#

file    dev/cons.c
file    arch/sparc64/dev/consinit.c
file    dev/sun/disksubr.c

file    arch/sparc64/sparc64/cpu_in_cksum.S     (inet | inet6) & cpu_in_cksum

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/promlib.c
file    arch/sparc64/sparc64/autoconf.c
file    arch/sparc64/sparc64/cache.c
file    arch/sparc64/sparc64/clock.c
file    arch/sparc64/sparc64/core_machdep.c     coredump
file    arch/sparc64/sparc64/emul.c
file    arch/sparc64/sparc64/intr.c
file    arch/sparc64/sparc64/kgdb_machdep.c     kgdb
file    arch/sparc/sparc/kobj_machdep.c         modular & !exec_elf64
file    arch/sparc64/sparc64/kobj_machdep.c     modular & exec_elf64
# sparc64/sparc64/locore.s is handled specially in the makefile,
# because it must come first in the "ld" command line.
file    arch/sparc64/sparc64/machdep.c
file    arch/sparc64/sparc64/ofw_patch.c
file    arch/sparc64/sparc64/process_machdep.c
file    arch/sparc64/sparc64/procfs_machdep.c   procfs
file    arch/sparc64/sparc64/static_edid.c
file    arch/sparc/sparc/openprom.c
file    arch/sparc/sparc/openfirm.c
file    arch/sparc64/sparc64/ofw_machdep.c
file    arch/sparc64/sparc64/pmap.c
file    arch/sparc64/sparc64/sys_machdep.c
file    arch/sparc64/sparc64/syscall.c
file    arch/sparc64/sparc64/trap.c
file    arch/sparc64/sparc64/vm_machdep.c
file    arch/sparc64/sparc64/ipifuncs.c         multiprocessor
file    arch/sparc64/sparc64/lock_stubs.s
file    arch/sparc64/sparc64/hvcall.S           sun4v
file    arch/sparc64/sparc64/mdesc.c            sun4v

file    arch/sparc64/sparc64/db_interface.c     ddb | kgdb
file    arch/sparc64/sparc64/db_machdep.c       ddb
file    arch/sparc64/sparc64/db_trace.c         ddb
file    arch/sparc64/sparc64/db_disasm.c        ddb
file    arch/sparc64/sparc64/db_tlb_access.S    ddb

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

# Bluetooth Support
include "dev/bluetooth/files.bluetooth"

# IEEE1394 Support
include "dev/ieee1394/files.ieee1394"

# Stack-less Just-In-Time compiler
include "external/bsd/sljit/conf/files.sljit"

#
# Compatibility modules
#

# Binary compatibility with previous NetBSD releases.
file    arch/sparc64/sparc64/compat_13_machdep.c compat_13
file    arch/sparc64/sparc64/compat_16_machdep.c compat_16

# NetBSD/sparc 32-bit Binary compatibility (COMPAT_NETBSD32)
include "compat/netbsd32/files.netbsd32"
file    arch/sparc64/sparc64/netbsd32_machdep.c         compat_netbsd32
file    arch/sparc64/sparc64/netbsd32_machdep_13.c      compat_netbsd32 &
                                                       compat_13
file    arch/sparc64/sparc64/netbsd32_machdep_16.c      compat_netbsd32 &
                                                       compat_16
file    arch/sparc64/sparc64/netbsd32_sigcode.s         compat_netbsd32

# SunOS Binary Compatibility (COMPAT_SUNOS), 32-bit & 64-bit kernel
# (64-bit also depends on COMPAT_NETBSD32)
include "compat/sunos/files.sunos"
file    arch/sparc64/sparc64/sunos_sigcode.s    compat_sunos
file    arch/sparc64/sparc64/sunos_machdep.c    compat_sunos & !compat_netbsd32
include "compat/sunos32/files.sunos32"
file    arch/sparc64/sparc64/sunos32_machdep.c  compat_sunos & compat_netbsd32

# Miscellaneous
file    dev/md_root.c                   memory_disk_hooks

include "arch/sparc64/conf/majors.sparc64"

# Virtual rtc
device  vrtc
attach  vrtc at vbus
file    arch/sparc64/dev/vrtc.c                 vrtc

define  ldc
file    arch/sparc64/dev/ldc.c                  ldc

# Virtual disk
device  vdsk: ldc, scsi
attach  vdsk at cbus
file    arch/sparc64/dev/vdsk.c                 vdsk

# Virtual network
device  vnet: ldc
attach  vnet at cbus
file    arch/sparc64/dev/vnet.c                 vnet