1#	$NetBSD: files.aarch64,v 1.45 2024/05/09 12:09:58 pho Exp $
2
3defflag opt_cpuoptions.h	AARCH64_ALIGNMENT_CHECK
4defflag opt_cpuoptions.h	AARCH64_EL0_STACK_ALIGNMENT_CHECK
5defflag opt_cpuoptions.h	AARCH64_EL1_STACK_ALIGNMENT_CHECK
6defflag opt_cpuoptions.h	AARCH64_HAVE_L2CTLR
7defflag opt_cpuoptions.h	AARCH64_DEVICE_MEM_NONPOSTED
8defflag opt_cpuoptions.h	ARMV81_HAFDBS
9
10defflag	opt_cputypes.h		CPU_ARMV8
11defflag	opt_cputypes.h		CPU_CORTEX: CPU_ARMV8
12defflag	opt_cputypes.h		CPU_THUNDERX: CPU_ARMV8
13
14# Interrupt implementation header definition
15defparam opt_arm_intr_impl.h	ARM_INTR_IMPL
16
17# ARM-specific debug options (for compat arch/arm/*)
18defflag  opt_arm_debug.h	ARM_LOCK_CAS_DEBUG
19defflag  opt_arm_debug.h	VERBOSE_INIT_ARM
20defparam opt_arm_debug.h	EARLYCONS
21
22# Timer options
23defflag opt_arm_timer.h		__HAVE_GENERIC_CPU_INITCLOCKS
24
25# Board-specific bus_space(9)/bus_dma(9) definitions
26defflag  opt_arm_bus_space.h	__BUS_SPACE_HAS_STREAM_METHODS
27				__BUS_SPACE_HAS_PROBING_METHODS
28				_ARM32_NEED_BUS_DMA_BOUNCE
29				BUSDMA_COUNTERS
30
31# Console options
32defparam opt_console.h		CONSADDR
33defparam opt_console.h		CONSPEED
34defparam opt_console.h		CONMODE
35defparam opt_console.h		CONADDR
36
37# FP support
38file	arch/aarch64/aarch64/fpu.c
39
40# SMC Calling Convention
41define	smccc
42file	arch/arm/arm/smccc.c			smccc
43
44# Power State Coordination Interface (PSCI)
45device	psci: smccc
46file	arch/arm/arm/psci.c			psci
47file	arch/arm/arm/psci_arm.S			psci
48
49# EFI support
50file	arch/arm/arm/efi_runtime.c		efi_runtime
51
52# PMAP options
53defflag opt_pmap.h		PMAPHIST : KERNHIST
54defflag opt_pmap.h		PMAPCOUNTERS PMAP_STEAL_MEMORY
55				PMAP_NEED_ALLOC_POOLPAGE
56defflag opt_pmapboot.h		PMAPBOOT_DEBUG
57
58# MI PMAP flags
59#
60defflag	opt_pmap.h		PMAP_MI
61
62# MI support
63file	dev/cons.c
64
65# DDB
66file	arch/aarch64/aarch64/db_disasm.c		ddb
67file	arch/aarch64/aarch64/db_interface.c		ddb|kgdb
68file	arch/aarch64/aarch64/db_trace.c			ddb
69file	arch/aarch64/aarch64/db_machdep.c		ddb
70file	arch/aarch64/aarch64/disasm.c			ddb
71#file	arch/aarch64/aarch64/kgdb_machdep.c		kgdb # XXX: not implemented
72
73# mainbus files
74device	mainbus { [addr = -1], [size = 0], [intr = -1] }
75
76device	cpufeaturebus {}
77device	cpu { }: cpufeaturebus
78file	arch/aarch64/aarch64/cpu.c			cpu
79
80# VMware Tools driver
81attach	vmt at cpufeaturebus
82file	arch/aarch64/aarch64/vmt.c			vmt
83
84# bus_space(9)
85define	bus_space_generic
86file	arch/aarch64/aarch64/bus_space.c
87file	arch/aarch64/aarch64/bus_space_asm_generic.S	# bus_space_generic
88file	arch/aarch64/aarch64/bus_space_notimpl.S
89
90# Standard files
91file	arch/arm/arm/arm_cpu_topology.c
92file	arch/arm/arm/arm_generic_dma.c
93file	arch/arm/arm/bootconfig.c
94file	arch/arm/arm/bus_stubs.c
95file	arch/arm/arm/cpu_subr.c
96file	arch/arm/arm32/bus_dma.c
97file	arch/aarch64/aarch64/aarch64_machdep.c
98file	arch/aarch64/aarch64/aarch64_reboot.c
99file	arch/aarch64/aarch64/core_machdep.c		coredump
100file	arch/aarch64/aarch64/copyinout.S
101file	arch/aarch64/aarch64/cpu_in_cksum.S		(inet | inet6) & cpu_in_cksum
102file	arch/aarch64/aarch64/cpu_machdep.c
103file	arch/aarch64/aarch64/cpuswitch.S
104file	arch/aarch64/aarch64/cpufunc.c
105file	arch/aarch64/aarch64/cpufunc_asm_armv8.S
106file	arch/aarch64/aarch64/exec_machdep.c
107file	arch/aarch64/aarch64/fusu.S
108file	arch/aarch64/aarch64/idle_machdep.S
109file	arch/aarch64/aarch64/kobj_machdep.c		modular
110file	arch/aarch64/aarch64/lock_stubs.S
111file	arch/aarch64/aarch64/process_machdep.c
112file	arch/aarch64/aarch64/procfs_machdep.c		procfs
113file	arch/aarch64/aarch64/sig_machdep.c
114file	arch/aarch64/aarch64/sys_machdep.c
115file	arch/aarch64/aarch64/syscall.c
116file	arch/aarch64/aarch64/trap.c
117file	arch/aarch64/aarch64/fault.c
118file	arch/aarch64/aarch64/vectors.S
119file	arch/aarch64/aarch64/vm_machdep.c
120
121# pmap
122file	arch/aarch64/aarch64/aarch64_tlb.c
123file	arch/aarch64/aarch64/pmap.c		!pmap_mi
124file	arch/aarch64/aarch64/pmapboot.c
125file	arch/aarch64/aarch64/pmap_page.S
126file	arch/aarch64/aarch64/pmap_machdep.c	pmap_mi
127file	uvm/pmap/pmap.c				pmap_mi
128file	uvm/pmap/pmap_devmap.c
129file	uvm/pmap/pmap_pvt.c
130file	uvm/pmap/pmap_segtab.c			pmap_mi
131file	uvm/pmap/pmap_tlb.c
132
133# EFI runtime (machdep)
134file	arch/aarch64/aarch64/efi_machdep.c		efi_runtime
135
136# NetBSD 32-bit binary compatibility
137include "compat/netbsd32/files.netbsd32"
138file	arch/aarch64/aarch64/netbsd32_machdep.c		compat_netbsd32
139file	arch/aarch64/aarch64/netbsd32_syscall.c		compat_netbsd32
140
141# Linux binary compatibility (COMPAT_LINUX)
142include "compat/ossaudio/files.ossaudio"
143include "compat/linux/files.linux"
144include "compat/linux/arch/aarch64/files.linux_aarch64"
145file	arch/aarch64/aarch64/linux_syscall.c		compat_linux
146
147# Linux 32 bit compatibility (COMPAT_LINUX32)
148include "compat/linux32/files.linux32"
149include "compat/linux32/arch/aarch64/files.linux32_aarch64"
150file	arch/aarch64/aarch64/linux32_syscall.c		compat_linux32
151
152# profiling support
153file	dev/tprof/tprof_armv8.c			tprof	needs-flag
154
155# ARMv8.0-AES
156include "crypto/aes/arch/arm/files.aesarmv8"
157
158# vpaes with ARM NEON
159include "crypto/aes/arch/arm/files.aesneon"
160
161# ChaCha with ARM NEON
162include "crypto/chacha/arch/arm/files.chacha_arm"
163