xref: /netbsd-src/sys/arch/arm/conf/files.arm (revision 6d5cf3578aa4e1fd7879b944aa0477d842bf6c35)
1*6d5cf357Sskrll#	$NetBSD: files.arm,v 1.168 2023/04/20 08:28:03 skrll Exp $
26fa98146Sbjh21
3c1f753f9Sreinoud# temporary define to allow easy moving to ../arch/arm/arm32
4ecb81c3fSlukemdefflag				ARM32
5c1f753f9Sreinoud
640df5399Smatt# predefine for CPU_ARMV6 and CPU_ARMV7
740df5399Smattdefflag	opt_cpuoptions.h	ARM32_DISABLE_ALIGNMENT_FAULTS
840df5399Smatt
932a08607Sthorpej# CPU types.  Make sure to update <arm/cpuconf.h> if you change this list.
1040df5399Smattdefflag	opt_cputypes.h		CPU_PRE_ARMV6
119a32dd98Smaxvdefflag	opt_cputypes.h		CPU_ARMV3: CPU_PRE_ARMV6
1274093d69Smattdefflag	opt_cputypes.h		CPU_ARMV4: CPU_ARMV3
1374093d69Smattdefflag	opt_cputypes.h		CPU_ARMV4T: CPU_ARMV4
1474093d69Smattdefflag	opt_cputypes.h		CPU_ARMV5T: CPU_ARMV4T
1574093d69Smattdefflag	opt_cputypes.h		CPU_ARMV5TE: CPU_ARMV5T
1674093d69Smattdefflag	opt_cputypes.h		CPU_XSCALE: CPU_ARMV5TE
1740df5399Smattdefflag	opt_cputypes.h		CPU_ARMV6: ARM32_DISABLE_ALIGNMENT_FAULTS
1840df5399Smattdefflag	opt_cputypes.h		CPU_ARMV7: ARM32_DISABLE_ALIGNMENT_FAULTS
1974093d69Smattdefflag	opt_cputypes.h		CPU_ARM6: CPU_ARMV3
2074093d69Smattdefflag	opt_cputypes.h		CPU_ARM7: CPU_ARMV3
2174093d69Smattdefflag	opt_cputypes.h		CPU_ARM8: CPU_ARMV4
2274093d69Smattdefflag	opt_cputypes.h		CPU_SA110: CPU_ARMV4
2374093d69Smattdefflag	opt_cputypes.h		CPU_SA1100: CPU_ARMV4
2474093d69Smattdefflag	opt_cputypes.h		CPU_SA1110: CPU_ARMV4
2574093d69Smattdefflag	opt_cputypes.h		CPU_FA526: CPU_ARMV4
2674093d69Smattdefflag	opt_cputypes.h		CPU_IXP12X0: CPU_ARMV4
2774093d69Smattdefflag	opt_cputypes.h		CPU_ARM7TDMI: CPU_ARMV4T
2874093d69Smattdefflag	opt_cputypes.h		CPU_ARM9: CPU_ARMV4T
2974093d69Smattdefflag	opt_cputypes.h		CPU_ARM10: CPU_ARMV5T
3074093d69Smattdefflag	opt_cputypes.h		CPU_ARM9E: CPU_ARMV5TE
3174093d69Smattdefflag	opt_cputypes.h		CPU_XSCALE_80200: CPU_XSCALE
3274093d69Smattdefflag	opt_cputypes.h		CPU_XSCALE_80321: CPU_XSCALE
3374093d69Smattdefflag	opt_cputypes.h		CPU_XSCALE_PXA250: CPU_XSCALE
3474093d69Smattdefflag	opt_cputypes.h		CPU_XSCALE_PXA270: CPU_XSCALE
3574093d69Smattdefflag	opt_cputypes.h		CPU_XSCALE_IXP425: CPU_XSCALE
3674093d69Smattdefflag	opt_cputypes.h		CPU_SHEEVA: CPU_ARMV5TE
3718056bbfSmattdefflag	opt_cputypes.h		CPU_ARM11: CPU_ARMV6
38825088edSmattdefflag	opt_cputypes.h		CPU_ARM1136: CPU_ARM11
39825088edSmattdefflag	opt_cputypes.h		CPU_ARM1176: CPU_ARM11
40d5f7715cSbshdefflag	opt_cputypes.h		CPU_ARM11MPCORE: CPU_ARM11
41abecdcabSmattdefflag	opt_cputypes.h		CPU_PJ4B: CPU_ARMV7
42abecdcabSmattdefflag	opt_cputypes.h		CPU_CORTEX: CPU_ARMV7
43b45167b6Srearnshadefflag	opt_cputypes.h		FPU_VFP
4441f47f03Sthorpej
452341768dSbriggsdefparam opt_cpuoptions.h	XSCALE_CCLKCFG
46347085b5Sbshdefflag  opt_cpuoptions.h	XSCALE_CACHE_WRITE_THROUGH
47347085b5Sbshdefflag  opt_cpuoptions.h	XSCALE_CACHE_WRITE_BACK
48215580f2Sthorpejdefflag  opt_cpuoptions.h	XSCALE_NO_COALESCE_WRITES
49215580f2Sthorpejdefflag  opt_cpuoptions.h	XSCALE_CACHE_READ_WRITE_ALLOCATE
5016cf0476Sbshdefflag  opt_cpuoptions.h	ARM9_CACHE_WRITE_THROUGH
5133f1e749Smattdefflag  opt_cpuoptions.h	TPIDRPRW_IS_CURLWP
5233f1e749Smattdefflag  opt_cpuoptions.h	TPIDRPRW_IS_CURCPU
5330ce2039Smattdefflag  opt_cpuoptions.h	ARM11_PMC CORTEX_PMC
54fe705f10Suebayasidefflag  opt_cpuoptions.h	ARM11_CACHE_WRITE_THROUGH
5518056bbfSmattdefflag	 opt_cpuoptions.h	ARM11_COMPAT_MMU
5619f06ff2Smattdefflag	 opt_cpuoptions.h	ARM_HAS_VBAR
5705675fafSmattdefflag	 opt_cpuoptions.h	ARM_HAS_LPAE
58d5f7715cSbsh# use extended small page in compatible MMU mode for ARMv6
597550e9f8Smattdefflag  opt_cpuoptions.h	SHEEVA_L2_CACHE
607550e9f8Smattdefflag  opt_cpuoptions.h	SHEEVA_L2_CACHE_WT: SHEEVA_L2_CACHE
616bd34646Sjmcneill# override configuration base address register
626bd34646Sjmcneilldefparam opt_cpuoptions.h	ARM_CBAR
632341768dSbriggs
64b33e60beSthorpej# Interrupt implementation header definition.
65b33e60beSthorpejdefparam opt_arm_intr_impl.h	ARM_INTR_IMPL
66740551d1Sbjh21
67165d4e6dSthorpej# ARM-specific debug options
68165d4e6dSthorpejdefflag  opt_arm_debug.h	ARM_LOCK_CAS_DEBUG
696e20aa3dSmattdefflag  opt_arm_debug.h	VERBOSE_INIT_ARM
70e6c2e807Sskrlldefparam opt_arm_debug.h	EARLYCONS
71165d4e6dSthorpej
726d94ff13Smaxv# ARMv8-specific options
73cf570c9eSmaxvdefflag  opt_cpuoptions.h	ARMV81_PAN
746d94ff13Smaxvdefflag  opt_cpuoptions.h	ARMV83_PAC
752ddb9fdeSmaxvdefflag  opt_cpuoptions.h	ARMV85_BTI
766d94ff13Smaxv
771504726dSmatt# Board-specific bus_space(9)/bus_dma(9) definitions
78caeec930Smattdefflag  opt_arm_bus_space.h	__BUS_SPACE_HAS_STREAM_METHODS
79fe33aa27Sryo				__BUS_SPACE_HAS_PROBING_METHODS
80caeec930Smatt				_ARM32_NEED_BUS_DMA_BOUNCE
81caeec930Smatt				BUSDMA_COUNTERS
821fdc9cd5Sscw
838ae98764Sjmcneill# Timer options
848ae98764Sjmcneilldefflag opt_arm_timer.h		__HAVE_GENERIC_CPU_INITCLOCKS
858ae98764Sjmcneill
86e6c2e807Sskrll# Start code option
87e6c2e807Sskrlldefflag opt_arm_start.h		__HAVE_GENERIC_START
88e6c2e807Sskrll
895a821b2cSskrll# Console options
905a821b2cSskrlldefparam opt_console.h		CONSADDR
915a821b2cSskrlldefparam opt_console.h		CONSPEED
925a821b2cSskrlldefparam opt_console.h		CONMODE
935a821b2cSskrlldefparam opt_console.h		CONADDR
945a821b2cSskrll
954b483d76Sbjh21# Floating point emulator
96cb72f657Smattobsolete defflag		ARMFPE
974b483d76Sbjh21
98b45167b6Srearnsha# VFP support
99c58ada7bSmattfile	arch/arm/vfp/vfp_init.c			arm32
100d71cca3bSmatt#file	arch/arm/vfp/pmap_vfp.S			arm32 & fpu_vfp
101b45167b6Srearnsha
10281be3b13Sjmcneill# SMC Calling Convention
10381be3b13Sjmcneilldefine	smccc
10481be3b13Sjmcneillfile	arch/arm/arm/smccc.c			smccc
10581be3b13Sjmcneill
10616ab2903Sjmcneill# Power State Coordination Interface (PSCI)
10781be3b13Sjmcneilldevice	psci: smccc
10816ab2903Sjmcneillfile	arch/arm/arm/psci.c			psci
10916ab2903Sjmcneillfile	arch/arm/arm/psci_arm.S			psci
11016ab2903Sjmcneill
11156949079Sjmcneill# EFI support
11256949079Sjmcneillfile	arch/arm/arm/efi_runtime.c		efi_runtime
11356949079Sjmcneill
11441a1932eSscw# New PMAP options
115bda243c0Sskrlldefflag	opt_arm32_pmap.h	PMAPCOUNTERS
11660064e74Smatt				PMAP_STEAL_MEMORY PMAP_NEED_ALLOC_POOLPAGE
11774093d69Smatt				PMAP_TLB
11874093d69Smattdefparam opt_arm32_pmap.h	PGSHIFT
11941a1932eSscw
1204a5fdbf3Smatt# MI console support
1214a5fdbf3Smattfile	dev/cons.c
1224a5fdbf3Smatt
123a5ef6e1fSbjh21# DDB
124a5ef6e1fSbjh21file	arch/arm/arm/db_disasm.c		ddb
125a2f6e1f0Sbriggsfile	arch/arm/arm32/db_interface.c		(ddb|kgdb) & arm32
12695fe4db7Sbjh21file	arch/arm/arm/db_trace.c			ddb
1274a5fdbf3Smattfile	arch/arm/arm32/db_machdep.c		ddb & arm32
128a2f6e1f0Sbriggsfile	arch/arm/arm32/kgdb_machdep.c		kgdb & arm32
1294a5fdbf3Smatt
13001415786Sthorpej# FIQ support
13101415786Sthorpejfile	arch/arm/arm/fiq.c
13201415786Sthorpejfile	arch/arm/arm/fiq_subr.S
133a5ef6e1fSbjh21
134142f62c2Sreinoud# mainbus files
1352ea33784Smattdevice	mainbus { [base = -1], [size = 0], [dack = -1], [irq = -1], [intrbase = -1], [core = -1] }
136142f62c2Sreinoudattach	mainbus at root
137142f62c2Sreinoudfile	arch/arm/mainbus/mainbus.c		mainbus & arm32
138142f62c2Sreinoudfile	arch/arm/mainbus/mainbus_io.c		mainbus & arm32
139142f62c2Sreinoudfile	arch/arm/mainbus/mainbus_io_asm.S	mainbus & arm32
140142f62c2Sreinoud
1416f2aa0d0Sbjh21device	cpu { }
1421a5fe5b5Smattattach	cpu at mainbus with cpu_mainbus
1431a5fe5b5Smattfile	arch/arm/mainbus/cpu_mainbus.c		cpu_mainbus & arm32
144142f62c2Sreinoud
145a4047bf1Sbjh21# files related to debugging
146a4047bf1Sbjh21file	arch/arm/arm/disassem.c
14778c0ba90Sbjh21
14879303779Sthorpej# bus_space(9)
14979303779Sthorpejdefine	bus_space_generic
15079303779Sthorpejfile	arch/arm/arm/bus_space_asm_generic.S	bus_space_generic
15179303779Sthorpejfile	arch/arm/arm/bus_space_notimpl.S	arm32
15279303779Sthorpej
15372d0b9e7Smaxvfile	arch/arm/arm/bus_stubs.c
15472d0b9e7Smaxv
15520aa1cadSmrgfile	arch/arm/arm/arm_cpu_topology.c
15630490357Sskrllfile	arch/arm/arm/arm_machdep.c
15700bd2cbdSbjh21file	arch/arm/arm/ast.c
158b6228a7dSbjh21file	arch/arm/arm/bcopyinout.S
1597d9a4dbaSbjh21file	arch/arm/arm/blockio.S
16061044be6Sbjh21file	arch/arm/arm/bootconfig.c
161496829a8Sbjh21file	arch/arm/arm/compat_13_machdep.c	compat_13
162afffbeb3Schristosfile	arch/arm/arm/compat_16_machdep.c	compat_16
163206c97ccSbjh21file	arch/arm/arm/copystr.S
1641d577fe3Spgoyettefile	arch/arm/arm/core_machdep.c		coredump
165f9087c43Sbjh21file	arch/arm/arm/cpufunc.c
166f9087c43Sbjh21file	arch/arm/arm/cpufunc_asm.S
1679e1b7856Sthorpejfile	arch/arm/arm/cpufunc_asm_arm67.S	cpu_arm6 | cpu_arm7
1689e1b7856Sthorpejfile	arch/arm/arm/cpufunc_asm_arm7tdmi.S	cpu_arm7tdmi
1699e1b7856Sthorpejfile	arch/arm/arm/cpufunc_asm_arm8.S		cpu_arm8
1709e1b7856Sthorpejfile	arch/arm/arm/cpufunc_asm_arm9.S		cpu_arm9
1714f2a5779Skiyoharafile	arch/arm/arm/cpufunc_asm_arm10.S	cpu_arm9e | cpu_arm10 |
1724f2a5779Skiyohara							cpu_sheeva
1735cf54151Smattfile	arch/arm/arm/cpufunc_asm_arm11.S	cpu_arm11
174825088edSmattfile	arch/arm/arm/cpufunc_asm_arm1136.S	cpu_arm1136
175734571d2Sskrllfile	arch/arm/arm/cpufunc_asm_arm11x6.S	cpu_arm1136 | cpu_arm1176
17687f8f1a9Schristosfile	arch/arm/arm/cpufunc_asm_armv4.S	cpu_arm9 | cpu_arm9e |
17787f8f1a9Schristos							cpu_arm10 |
178c9a118aaSmatt							cpu_fa526 |
179b805fdb7Srearnsha							cpu_sa110 |
180b805fdb7Srearnsha							cpu_sa1100 |
181b805fdb7Srearnsha							cpu_sa1110 |
1827374c0afSichiro							cpu_ixp12x0 |
18374093d69Smatt							cpu_xscale |
1844f2a5779Skiyohara							cpu_sheeva
185d5f7715cSbshfile	arch/arm/arm/cpufunc_asm_armv5.S	cpu_arm10 | cpu_arm11mpcore
1864f2a5779Skiyoharafile	arch/arm/arm/cpufunc_asm_armv5_ec.S	cpu_arm9e | cpu_arm10 |
1874f2a5779Skiyohara							cpu_sheeva
18874093d69Smattfile	arch/arm/arm/cpufunc_asm_armv6.S	cpu_arm11
189a793a9d5Srkujawafile	arch/arm/arm/cpufunc_asm_armv7.S	cpu_cortex | cpu_pj4b
190a793a9d5Srkujawafile	arch/arm/arm/cpufunc_asm_pj4b.S		cpu_pj4b
19194bb29deSrjsfile	arch/arm/arm/cpufunc_asm_sa1.S		cpu_sa110 | cpu_sa1100 |
1927374c0afSichiro							cpu_sa1110 |
1937374c0afSichiro							cpu_ixp12x0
19494bb29deSrjsfile	arch/arm/arm/cpufunc_asm_sa11x0.S	cpu_sa1100 | cpu_sa1110
195c9a118aaSmattfile	arch/arm/arm/cpufunc_asm_fa526.S	cpu_fa526
19674093d69Smattfile	arch/arm/arm/cpufunc_asm_xscale.S	cpu_xscale
1977374c0afSichirofile	arch/arm/arm/cpufunc_asm_ixp12x0.S	cpu_ixp12x0
1984f2a5779Skiyoharafile	arch/arm/arm/cpufunc_asm_sheeva.S	cpu_sheeva
1999fae3660Smattfile	arch/arm/arm/cpu_exec.c
20030490357Sskrllfile	arch/arm/arm/cpu_in_cksum.S		(inet | inet6) & cpu_in_cksum
201e1281176Sskrllfile	arch/arm/arm/cpu_subr.c
202e9aeb058Sbjh21file	arch/arm/arm/fusu.S
203f0301095Syamtfile	arch/arm/arm/idle_machdep.c
204165d4e6dSthorpejfile	arch/arm/arm/lock_cas.S
2054d9da7b2Schristosfile	arch/arm/arm/process_machdep.c
2069522cf08Schrisfile	arch/arm/arm/procfs_machdep.c		procfs
207284047a2Sbjh21file	arch/arm/arm/sig_machdep.c
20878c0ba90Sbjh21file	arch/arm/arm/sigcode.S
2099fe68c4fSbjh21file	arch/arm/arm/syscall.c
210e65a0eaaSskrllfile	arch/arm/arm/trap.c
211f6c36838Sbjh21file	arch/arm/arm/undefined.c
2122b44bd85Sbjh21file	arch/arm/arm/vectors.S			arm32
2134a5fdbf3Smatt
214e65a0eaaSskrll# EFI runtime (machdep)
215e65a0eaaSskrllfile	arch/arm/arm/efi_machdep.c		efi_runtime
216e65a0eaaSskrll
217e65a0eaaSskrll
2184a5fdbf3Smatt# files common to arm32 implementations
21927f96e84Schrisfile	arch/arm/arm32/arm32_machdep.c		arm32
22027f96e84Schrisfile	arch/arm/arm32/bus_dma.c		arm32
2211a5fe5b5Smattfile	arch/arm/arm32/cpu.c			arm32 & cpu
22227f96e84Schrisfile	arch/arm/arm32/cpuswitch.S		arm32
22327f96e84Schrisfile	arch/arm/arm32/exception.S		arm32
22427f96e84Schrisfile	arch/arm/arm32/fault.c			arm32
2250805a941Sadfile	arch/arm/arm32/kobj_machdep.c		arm32 & modular
22655073c92Sthorpejfile	arch/arm/arm32/pmap.c			arm32
22727f96e84Schrisfile	arch/arm/arm32/setcpsr.S		arm32
22827f96e84Schrisfile	arch/arm/arm32/setstack.S		arm32
22927f96e84Schrisfile	arch/arm/arm32/stubs.c			arm32
23058438fb4Smattfile	arch/arm/arm32/sys_machdep.c		arm32
23127f96e84Schrisfile	arch/arm/arm32/vm_machdep.c		arm32
23258438fb4Smatt
233825088edSmatt# files less common to arm32 implementations...
234825088edSmattfile	kern/kern_cctr.c			arm11
235825088edSmattfile	arch/arm/arm32/arm11_pmc.c		arm11_pmc
23630ce2039Smattfile	arch/arm/arm32/cortex_pmc.c		cortex_pmc
23774093d69Smattfile	arch/arm/arm32/arm32_tlb.c		(cpu_armv7 | cpu_arm11) & (!arm11_compat_mmu & !cpu_pre_armv6)
238*6d5cf357Sskrllfile	uvm/pmap/pmap_devmap.c
23974093d69Smattfile	uvm/pmap/pmap_tlb.c			(cpu_armv7 | cpu_arm11) & (!arm11_compat_mmu & !cpu_pre_armv6)
240825088edSmatt
2413c7b72e0Sskrll# generic pmap files for arm32 implementations
2423c7b72e0Sskrllfile	uvm/pmap/pmap_pvt.c			arm32
2433c7b72e0Sskrll
24458438fb4Smatt# arm32 library functions
24558438fb4Smattfile	arch/arm/arm32/bcopy_page.S		arm32
24664625064Sbjh21
2479fae3660Smatt#
2489fae3660Smattinclude "compat/netbsd32/files.netbsd32"
2499fae3660Smattfile	arch/arm/arm32/netbsd32_machdep.c	arm32 & compat_netbsd32
250d91f98a8Spgoyettefile	arch/arm/arm32/netbsd32_machdep_16.c	arm32 & compat_netbsd32 &
251d91f98a8Spgoyette							compat_16
252d91f98a8Spgoyettefile	arch/arm/arm32/netbsd32_machdep_13.c	arm32 & compat_netbsd32 &
253d91f98a8Spgoyette							compat_13
254d91f98a8Spgoyette
2559fae3660Smatt
25664625064Sbjh21# Linux binary compatibility (COMPAT_LINUX)
25764625064Sbjh21include "compat/ossaudio/files.ossaudio"
25864625064Sbjh21include "compat/linux/files.linux"
25964625064Sbjh21include "compat/linux/arch/arm/files.linux_arm"
26064625064Sbjh21file	arch/arm/arm/linux_sigcode.S		compat_linux
2610598bbd1Sbjh21file	arch/arm/arm/linux_syscall.c		compat_linux
26264625064Sbjh21file	arch/arm/arm/linux_trap.c		compat_linux
2638f749d37Sjmcneill
2648f749d37Sjmcneill# profiling support
2658f749d37Sjmcneillfile	dev/tprof/tprof_armv7.c			tprof
2660a776e17Sriastradh
267f264b89cSriastradh# vpaes with ARM NEON
2680a776e17Sriastradhinclude "crypto/aes/arch/arm/files.aesneon"
269f7b532ddSriastradh
270f7b532ddSriastradh# ChaCha with ARM NEON
271f7b532ddSriastradhinclude "crypto/chacha/arch/arm/files.chacha_arm"
272