arch/arm: add the Neoverse-V2 core

This commit adds the Neoverse-V2 core, which is an armv9.0a ISA.
See: [1] [2].

This CPU support was added in GCC 13. See [3] [4] [5].

This CPU supports Aarch64 at all exception levels (EL0 to EL3).
It also supports Aarch32 only in EL0 (user-space). This means it's
technically possible to compile Aarch32 code. GCC has the support
to do so. Since Buildroot recompiles a full system (ATF, Kernel,
user-space) this support has limited value. This is why this
CPU is limited to 64bit builds only.

Note: at the time of this commit, the latest binutils v2.46 does not
include a Neoverse-V2 support for its '-mcpu' option. See [6]. This is
not an issue because gcc will call the "as" assembler with the relevant
"-march=armv9-a+EXTENSION..." options. Binutils supports "armv9-a"
since upstream commit [7] (first included in 2.38), and the oldest
Binutils version in Buildroot is 2.44.

[1] https://developer.arm.com/Processors/Neoverse%20V2
[2] https://developer.arm.com/documentation/102375/latest/
[3] https://gcc.gnu.org/gcc-13/changes.html#aarch64
[4] https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/aarch64/aarch64-cores.def;hb=releases/gcc-13.1.0#l184
[5] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=14d4b4fb12041dde1511262b926662929196c3fe
[6] https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gas/config/tc-aarch64.c;h=cd76163488c48e45d43c35b2704d637999d51015;hb=3e93b95c3ae3f00a0283ddbab8029cbc07d96aff#l10833
[7] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=d5007f0280d881a8add44e6a68a3f536e138244c

Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Julien Olivain
2026-03-03 21:27:05 +01:00
parent 99d6268223
commit efe7aa7ca4

View File

@@ -524,6 +524,12 @@ config BR2_neoverse_n2
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV9A
select BR2_ARCH_NEEDS_GCC_AT_LEAST_11
config BR2_neoverse_v2
bool "neoverse-V2 (aka demeter)"
depends on BR2_ARCH_IS_64
select BR2_ARM_CPU_HAS_FP_ARMV8
select BR2_ARM_CPU_ARMV9A
select BR2_ARCH_NEEDS_GCC_AT_LEAST_13
comment "armv9.2a cores"
config BR2_cortex_a720
@@ -929,6 +935,7 @@ config BR2_GCC_TARGET_CPU
# armv9.0a
default "cortex-a710" if BR2_cortex_a710
default "neoverse-n2" if BR2_neoverse_n2
default "neoverse-v2" if BR2_neoverse_v2
# armv9.2a
default "cortex-a720" if BR2_cortex_a720