Thanks Marek,

On 3/25/2026 6:43 AM, Marek Vasut wrote:
> Add configuration for ARMv8-M aarch32 core, which are currently
> Cortex-M23/M33 cores. These cores are treated similar to ARMv7-M
> cores, except the code has to be compiled with matching compiler
> -march=armv8-m.main flag . These cores have no MMU, they have MPU,
> which is currently not configured.
> 
> Unlike ARMv7-M, these cores have 512 interrupt vectors. While the
> SYS_ARM_ARCH should be set to 8, it is set to 7 because all of the
> initialization code is built from from arch/arm/cpu/armv7m and not
> armv8. Furthermore, CONFIG_ARM64 must be disabled, although DTs
> for devices using these cores do come from arch/arm64/boot/dts .
> 
> To avoid excess duplication in Makefiles, introduce one new Kconfig
> symbol, CPU_V78M. The CPU_V78M cover both ARMv7-M and ARMv8-M cores.
> 
> Signed-off-by: Marek Vasut <[email protected]>
> ---
> Cc: Casey Connolly <[email protected]>
> Cc: Heinrich Schuchardt <[email protected]>
> Cc: Ilias Apalodimas <[email protected]>
> Cc: Jerome Forissier <[email protected]> <[email protected]>
> Cc: Tom Rini <[email protected]>
> Cc: [email protected]
> ---
>  Makefile                         |  8 ++++++--
>  arch/arm/Kconfig                 | 18 +++++++++++++++---
[..]>
> +config CPU_V8M
> +     bool
> +     select CPU_V78M
> +     select SYS_CACHE_SHIFT_6

referring to M55 TRM [0], (which seems to be next processor in this
family)  page- (68-69) CCSIDR,
LTM cache size is not default to 64.
my suggestion will be to keep cache line same as of V7M, unless you
think otherwise.


> +
>  config SYS_CPU
>       default "arm720t" if CPU_ARM720T
>       default "arm920t" if CPU_ARM920T
> @@ -389,6 +399,7 @@ config SYS_CPU
>       default "armv7" if CPU_V7A
>       default "armv7" if CPU_V7R
>       default "armv7m" if CPU_V7M
> +     default "armv7m" if CPU_V8M
>       default "armv8" if ARM64
>  
>  config SYS_ARM_ARCH
> @@ -402,6 +413,7 @@ config SYS_ARM_ARCH
>       default 7 if CPU_V7A
>       default 7 if CPU_V7M
>       default 7 if CPU_V7R
> +     default 7 if CPU_V8M
>       default 8 if ARM64
>  
>  choice
> @@ -445,7 +457,7 @@ config ARCH_CPU_INIT
>  
>  config SYS_ARCH_TIMER
>       bool "ARM Generic Timer support"
> -     depends on CPU_V7A || CPU_V7M || ARM64
> +     depends on CPU_V7A || CPU_V78M || ARM64
>       default y if ARM64
>       help
>         The ARM Generic Timer (aka arch-timer) provides an architected
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index b36b0742580..de975fc9368 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -16,6 +16,7 @@ arch-$(CONFIG_CPU_V7A)              =$(call cc-option, 
> -march=armv7-a, \
>                                $(call cc-option, -march=armv7))
>  arch-$(CONFIG_CPU_V7M)               =-march=armv7-m
>  arch-$(CONFIG_CPU_V7R)               =-march=armv7-r
> +arch-$(CONFIG_CPU_V8M)               =-march=armv8-m.main
>  ifeq ($(CONFIG_ARM64_CRC32),y)
>  arch-$(CONFIG_ARM64)         =-march=armv8-a+crc
>  else
> @@ -42,6 +43,7 @@ tune-$(CONFIG_CPU_ARM1136)  =
>  tune-$(CONFIG_CPU_ARM1176)   =
>  tune-$(CONFIG_CPU_V7A)               =-mtune=generic-armv7-a
>  tune-$(CONFIG_CPU_V7R)               =
> +tune-$(CONFIG_CPU_V8M)               =
>  tune-$(CONFIG_ARM64)         =
>  
>  # Evaluate tune cc-option calls now
> diff --git a/arch/arm/cpu/armv7m/Makefile b/arch/arm/cpu/armv7m/Makefile
> index baeac9343d9..33d49dc3d35 100644
> --- a/arch/arm/cpu/armv7m/Makefile
> +++ b/arch/arm/cpu/armv7m/Makefile
> @@ -4,6 +4,7 @@
>  # Wolfgang Denk, DENX Software Engineering, [email protected].
>  
>  extra-y := start.o
> -obj-y += cpu.o cache.o
> +obj-y += cache.o
> +obj-$(CONFIG_CPU_V7M) += cpu.o

Why you are dropping cpu.c compilation

>  obj-$(CONFIG_SYS_ARM_MPU) += mpu.o
>  obj-$(CONFIG_SYS_ARCH_TIMER) += systick-timer.o
> diff --git a/arch/arm/include/asm/armv7_mpu.h 
> b/arch/arm/include/asm/armv7_mpu.h
> index 16b9d0d1aeb..b615b1bc9dc 100644
> --- a/arch/arm/include/asm/armv7_mpu.h
> +++ b/arch/arm/include/asm/armv7_mpu.h
> @@ -11,7 +11,7 @@
[..]
[0]
https://documentation-service.arm.com/static/6622c173fabc8c11c7b53a92?token=

Reply via email to