arm: add initial ARM Cortex-M support

M-profile cores manage interrupts differently from classic cores
and lack the FIQ. Split the interrupt management parts out into
separate headers but keep the endian swapping routines (which are
not profile-dependent) in the common system-arm header.

The initial part of the vector table is common to all Cortex-M
CPUs and is intended to be included by the target linker script,
with the vendor-specific part of the vector table appended to it.

Change-Id: Ib2ad5b9dc41db27940e39033cfef4308923db66d
This commit is contained in:
Aidan MacDonald 2024-11-14 15:41:52 +00:00
parent 96b6a7b4e4
commit 3ed9fb3115
10 changed files with 520 additions and 256 deletions

View file

@ -609,7 +609,13 @@ target/arm/mmu-arm.S
target/arm/bits-armv6.S
target/arm/mmu-armv6.S
# endif
target/arm/system-arm.c
#if defined(CPU_ARM_CLASSIC)
target/arm/system-arm-classic.c
#elif defined(CPU_ARM_MICRO)
target/arm/system-arm-micro.c
target/arm/vectors-arm-micro.S
#endif
#if CONFIG_STORAGE & STORAGE_ATA
# ifdef CPU_PP502x
@ -828,7 +834,7 @@ target/arm/s5l8702/crt0.S
target/arm/imx233/crt0.S
#elif CONFIG_CPU==RK27XX
target/arm/rk27xx/crt0.S
#elif defined(CPU_ARM)
#elif defined(CPU_ARM_CLASSIC)
target/arm/crt0.S
#endif /* defined(CPU_*) */