summaryrefslogtreecommitdiff
path: root/sys/arch/arm/conf/files.arm
blob: 53f5965f88111cbadad4fdd3144b84c9caab3e7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
#	$NetBSD: files.arm,v 1.168 2023/04/20 08:28:03 skrll Exp $

# temporary define to allow easy moving to ../arch/arm/arm32
defflag				ARM32

# predefine for CPU_ARMV6 and CPU_ARMV7
defflag	opt_cpuoptions.h	ARM32_DISABLE_ALIGNMENT_FAULTS

# CPU types.  Make sure to update <arm/cpuconf.h> if you change this list.
defflag	opt_cputypes.h		CPU_PRE_ARMV6
defflag	opt_cputypes.h		CPU_ARMV3: CPU_PRE_ARMV6
defflag	opt_cputypes.h		CPU_ARMV4: CPU_ARMV3
defflag	opt_cputypes.h		CPU_ARMV4T: CPU_ARMV4
defflag	opt_cputypes.h		CPU_ARMV5T: CPU_ARMV4T
defflag	opt_cputypes.h		CPU_ARMV5TE: CPU_ARMV5T
defflag	opt_cputypes.h		CPU_XSCALE: CPU_ARMV5TE
defflag	opt_cputypes.h		CPU_ARMV6: ARM32_DISABLE_ALIGNMENT_FAULTS
defflag	opt_cputypes.h		CPU_ARMV7: ARM32_DISABLE_ALIGNMENT_FAULTS
defflag	opt_cputypes.h		CPU_ARM6: CPU_ARMV3
defflag	opt_cputypes.h		CPU_ARM7: CPU_ARMV3
defflag	opt_cputypes.h		CPU_ARM8: CPU_ARMV4
defflag	opt_cputypes.h		CPU_SA110: CPU_ARMV4
defflag	opt_cputypes.h		CPU_SA1100: CPU_ARMV4
defflag	opt_cputypes.h		CPU_SA1110: CPU_ARMV4
defflag	opt_cputypes.h		CPU_FA526: CPU_ARMV4
defflag	opt_cputypes.h		CPU_IXP12X0: CPU_ARMV4
defflag	opt_cputypes.h		CPU_ARM7TDMI: CPU_ARMV4T
defflag	opt_cputypes.h		CPU_ARM9: CPU_ARMV4T
defflag	opt_cputypes.h		CPU_ARM10: CPU_ARMV5T
defflag	opt_cputypes.h		CPU_ARM9E: CPU_ARMV5TE
defflag	opt_cputypes.h		CPU_XSCALE_80200: CPU_XSCALE
defflag	opt_cputypes.h		CPU_XSCALE_80321: CPU_XSCALE
defflag	opt_cputypes.h		CPU_XSCALE_PXA250: CPU_XSCALE
defflag	opt_cputypes.h		CPU_XSCALE_PXA270: CPU_XSCALE
defflag	opt_cputypes.h		CPU_XSCALE_IXP425: CPU_XSCALE
defflag	opt_cputypes.h		CPU_SHEEVA: CPU_ARMV5TE
defflag	opt_cputypes.h		CPU_ARM11: CPU_ARMV6
defflag	opt_cputypes.h		CPU_ARM1136: CPU_ARM11
defflag	opt_cputypes.h		CPU_ARM1176: CPU_ARM11
defflag	opt_cputypes.h		CPU_ARM11MPCORE: CPU_ARM11
defflag	opt_cputypes.h		CPU_PJ4B: CPU_ARMV7
defflag	opt_cputypes.h		CPU_CORTEX: CPU_ARMV7
defflag	opt_cputypes.h		FPU_VFP

defparam opt_cpuoptions.h	XSCALE_CCLKCFG
defflag  opt_cpuoptions.h	XSCALE_CACHE_WRITE_THROUGH
defflag  opt_cpuoptions.h	XSCALE_CACHE_WRITE_BACK
defflag  opt_cpuoptions.h	XSCALE_NO_COALESCE_WRITES
defflag  opt_cpuoptions.h	XSCALE_CACHE_READ_WRITE_ALLOCATE
defflag  opt_cpuoptions.h	ARM9_CACHE_WRITE_THROUGH
defflag  opt_cpuoptions.h	TPIDRPRW_IS_CURLWP
defflag  opt_cpuoptions.h	TPIDRPRW_IS_CURCPU
defflag  opt_cpuoptions.h	ARM11_PMC CORTEX_PMC
defflag  opt_cpuoptions.h	ARM11_CACHE_WRITE_THROUGH
defflag	 opt_cpuoptions.h	ARM11_COMPAT_MMU
defflag	 opt_cpuoptions.h	ARM_HAS_VBAR
defflag	 opt_cpuoptions.h	ARM_HAS_LPAE
# use extended small page in compatible MMU mode for ARMv6
defflag  opt_cpuoptions.h	SHEEVA_L2_CACHE
defflag  opt_cpuoptions.h	SHEEVA_L2_CACHE_WT: SHEEVA_L2_CACHE
# override configuration base address register
defparam opt_cpuoptions.h	ARM_CBAR

# Interrupt implementation header definition.
defparam opt_arm_intr_impl.h	ARM_INTR_IMPL

# ARM-specific debug options
defflag  opt_arm_debug.h	ARM_LOCK_CAS_DEBUG
defflag  opt_arm_debug.h	VERBOSE_INIT_ARM
defparam opt_arm_debug.h	EARLYCONS

# ARMv8-specific options
defflag  opt_cpuoptions.h	ARMV81_PAN
defflag  opt_cpuoptions.h	ARMV83_PAC
defflag  opt_cpuoptions.h	ARMV85_BTI

# Board-specific bus_space(9)/bus_dma(9) definitions
defflag  opt_arm_bus_space.h	__BUS_SPACE_HAS_STREAM_METHODS
				__BUS_SPACE_HAS_PROBING_METHODS
				_ARM32_NEED_BUS_DMA_BOUNCE
				BUSDMA_COUNTERS

# Timer options
defflag opt_arm_timer.h		__HAVE_GENERIC_CPU_INITCLOCKS

# Start code option
defflag opt_arm_start.h		__HAVE_GENERIC_START

# Console options
defparam opt_console.h		CONSADDR
defparam opt_console.h		CONSPEED
defparam opt_console.h		CONMODE
defparam opt_console.h		CONADDR

# Floating point emulator
obsolete defflag		ARMFPE

# VFP support
file	arch/arm/vfp/vfp_init.c			arm32
#file	arch/arm/vfp/pmap_vfp.S			arm32 & fpu_vfp

# SMC Calling Convention
define	smccc
file	arch/arm/arm/smccc.c			smccc

# Power State Coordination Interface (PSCI)
device	psci: smccc
file	arch/arm/arm/psci.c			psci
file	arch/arm/arm/psci_arm.S			psci

# EFI support
file	arch/arm/arm/efi_runtime.c		efi_runtime

# New PMAP options
defflag	opt_arm32_pmap.h	PMAPCOUNTERS
				PMAP_STEAL_MEMORY PMAP_NEED_ALLOC_POOLPAGE
				PMAP_TLB
defparam opt_arm32_pmap.h	PGSHIFT

# MI console support
file	dev/cons.c

# DDB
file	arch/arm/arm/db_disasm.c		ddb
file	arch/arm/arm32/db_interface.c		(ddb|kgdb) & arm32
file	arch/arm/arm/db_trace.c			ddb
file	arch/arm/arm32/db_machdep.c		ddb & arm32
file	arch/arm/arm32/kgdb_machdep.c		kgdb & arm32

# FIQ support
file	arch/arm/arm/fiq.c
file	arch/arm/arm/fiq_subr.S

# mainbus files
device	mainbus { [base = -1], [size = 0], [dack = -1], [irq = -1], [intrbase = -1], [core = -1] }
attach	mainbus at root
file	arch/arm/mainbus/mainbus.c		mainbus & arm32
file	arch/arm/mainbus/mainbus_io.c		mainbus & arm32
file	arch/arm/mainbus/mainbus_io_asm.S	mainbus & arm32

device	cpu { }
attach	cpu at mainbus with cpu_mainbus
file	arch/arm/mainbus/cpu_mainbus.c		cpu_mainbus & arm32

# files related to debugging
file	arch/arm/arm/disassem.c

# bus_space(9)
define	bus_space_generic
file	arch/arm/arm/bus_space_asm_generic.S	bus_space_generic
file	arch/arm/arm/bus_space_notimpl.S	arm32

file	arch/arm/arm/bus_stubs.c

file	arch/arm/arm/arm_cpu_topology.c
file	arch/arm/arm/arm_machdep.c
file	arch/arm/arm/ast.c
file	arch/arm/arm/bcopyinout.S
file	arch/arm/arm/blockio.S
file	arch/arm/arm/bootconfig.c
file	arch/arm/arm/compat_13_machdep.c	compat_13
file	arch/arm/arm/compat_16_machdep.c	compat_16
file	arch/arm/arm/copystr.S
file	arch/arm/arm/core_machdep.c		coredump
file	arch/arm/arm/cpufunc.c
file	arch/arm/arm/cpufunc_asm.S
file	arch/arm/arm/cpufunc_asm_arm67.S	cpu_arm6 | cpu_arm7
file	arch/arm/arm/cpufunc_asm_arm7tdmi.S	cpu_arm7tdmi
file	arch/arm/arm/cpufunc_asm_arm8.S		cpu_arm8
file	arch/arm/arm/cpufunc_asm_arm9.S		cpu_arm9
file	arch/arm/arm/cpufunc_asm_arm10.S	cpu_arm9e | cpu_arm10 |
							cpu_sheeva
file	arch/arm/arm/cpufunc_asm_arm11.S	cpu_arm11
file	arch/arm/arm/cpufunc_asm_arm1136.S	cpu_arm1136
file	arch/arm/arm/cpufunc_asm_arm11x6.S	cpu_arm1136 | cpu_arm1176
file	arch/arm/arm/cpufunc_asm_armv4.S	cpu_arm9 | cpu_arm9e |
							cpu_arm10 |
							cpu_fa526 |
							cpu_sa110 |
							cpu_sa1100 |
							cpu_sa1110 |
							cpu_ixp12x0 |
							cpu_xscale |
							cpu_sheeva
file	arch/arm/arm/cpufunc_asm_armv5.S	cpu_arm10 | cpu_arm11mpcore
file	arch/arm/arm/cpufunc_asm_armv5_ec.S	cpu_arm9e | cpu_arm10 |
							cpu_sheeva
file	arch/arm/arm/cpufunc_asm_armv6.S	cpu_arm11
file	arch/arm/arm/cpufunc_asm_armv7.S	cpu_cortex | cpu_pj4b
file	arch/arm/arm/cpufunc_asm_pj4b.S		cpu_pj4b
file	arch/arm/arm/cpufunc_asm_sa1.S		cpu_sa110 | cpu_sa1100 |
							cpu_sa1110 |
							cpu_ixp12x0
file	arch/arm/arm/cpufunc_asm_sa11x0.S	cpu_sa1100 | cpu_sa1110
file	arch/arm/arm/cpufunc_asm_fa526.S	cpu_fa526
file	arch/arm/arm/cpufunc_asm_xscale.S	cpu_xscale
file	arch/arm/arm/cpufunc_asm_ixp12x0.S	cpu_ixp12x0
file	arch/arm/arm/cpufunc_asm_sheeva.S	cpu_sheeva
file	arch/arm/arm/cpu_exec.c
file	arch/arm/arm/cpu_in_cksum.S		(inet | inet6) & cpu_in_cksum
file	arch/arm/arm/cpu_subr.c
file	arch/arm/arm/fusu.S
file	arch/arm/arm/idle_machdep.c
file	arch/arm/arm/lock_cas.S
file	arch/arm/arm/process_machdep.c
file	arch/arm/arm/procfs_machdep.c		procfs
file	arch/arm/arm/sig_machdep.c
file	arch/arm/arm/sigcode.S
file	arch/arm/arm/syscall.c
file	arch/arm/arm/trap.c
file	arch/arm/arm/undefined.c
file	arch/arm/arm/vectors.S			arm32

# EFI runtime (machdep)
file	arch/arm/arm/efi_machdep.c		efi_runtime


# files common to arm32 implementations
file	arch/arm/arm32/arm32_machdep.c		arm32
file	arch/arm/arm32/bus_dma.c		arm32
file	arch/arm/arm32/cpu.c			arm32 & cpu
file	arch/arm/arm32/cpuswitch.S		arm32
file	arch/arm/arm32/exception.S		arm32
file	arch/arm/arm32/fault.c			arm32
file	arch/arm/arm32/kobj_machdep.c		arm32 & modular
file	arch/arm/arm32/pmap.c			arm32
file	arch/arm/arm32/setcpsr.S		arm32
file	arch/arm/arm32/setstack.S		arm32
file	arch/arm/arm32/stubs.c			arm32
file	arch/arm/arm32/sys_machdep.c		arm32
file	arch/arm/arm32/vm_machdep.c		arm32

# files less common to arm32 implementations...
file	kern/kern_cctr.c			arm11
file	arch/arm/arm32/arm11_pmc.c		arm11_pmc
file	arch/arm/arm32/cortex_pmc.c		cortex_pmc
file	arch/arm/arm32/arm32_tlb.c		(cpu_armv7 | cpu_arm11) & (!arm11_compat_mmu & !cpu_pre_armv6)
file	uvm/pmap/pmap_devmap.c
file	uvm/pmap/pmap_tlb.c			(cpu_armv7 | cpu_arm11) & (!arm11_compat_mmu & !cpu_pre_armv6)

# generic pmap files for arm32 implementations
file	uvm/pmap/pmap_pvt.c			arm32

# arm32 library functions
file	arch/arm/arm32/bcopy_page.S		arm32

#
include "compat/netbsd32/files.netbsd32"
file	arch/arm/arm32/netbsd32_machdep.c	arm32 & compat_netbsd32
file	arch/arm/arm32/netbsd32_machdep_16.c	arm32 & compat_netbsd32 &
							compat_16
file	arch/arm/arm32/netbsd32_machdep_13.c	arm32 & compat_netbsd32 &
							compat_13


# Linux binary compatibility (COMPAT_LINUX)
include "compat/ossaudio/files.ossaudio"
include "compat/linux/files.linux"
include "compat/linux/arch/arm/files.linux_arm"
file	arch/arm/arm/linux_sigcode.S		compat_linux
file	arch/arm/arm/linux_syscall.c		compat_linux
file	arch/arm/arm/linux_trap.c		compat_linux

# profiling support
file	dev/tprof/tprof_armv7.c			tprof

# vpaes with ARM NEON
include "crypto/aes/arch/arm/files.aesneon"

# ChaCha with ARM NEON
include "crypto/chacha/arch/arm/files.chacha_arm"