arch/arm: add armv8.1a cores
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 3 Sep 2017 13:17:48 +0000 (15:17 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 24 Nov 2017 22:30:43 +0000 (23:30 +0100)
The armv8.1a generation is a cumulative extension to armv8a. It adds new
extensions, and makes some previously optional ones now mandatory.

Since gcc correctly enables the appropriate extensions based on the core
name, we don't really need to introduce a separate config for armv8.1a,
and we can piggyback on armv8a.

All those new cores are aarch64 only (gcc fails to build in arm mode).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
arch/Config.in.arm

index 2d6eb996924c6813583600c78bf6e1179c36dd4a..85070fbfc967e8452e7af09f527640093c3c7b4a 100644 (file)
@@ -400,6 +400,37 @@ config BR2_xgene1
        select BR2_ARM_CPU_ARMV8A
        select BR2_ARCH_HAS_MMU_OPTIONAL
        select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
+
+if BR2_ARCH_IS_64
+comment "armv8.1a cores"
+config BR2_thunderx2t99
+       bool "thunderx2t99"
+       select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_FP_ARMV8
+       select BR2_ARM_CPU_ARMV8A
+       select BR2_ARCH_HAS_MMU_OPTIONAL
+       select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
+config BR2_thunderx2t99p1
+       bool "thunderx2t99p1"
+       select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_FP_ARMV8
+       select BR2_ARM_CPU_ARMV8A
+       select BR2_ARCH_HAS_MMU_OPTIONAL
+       select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
+config BR2_vulcan
+       bool "vulcan"
+       select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
+       select BR2_ARM_CPU_HAS_FP_ARMV8
+       select BR2_ARM_CPU_ARMV8A
+       select BR2_ARCH_HAS_MMU_OPTIONAL
+       select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
+endif # BR2_ARCH_IS_64
 endchoice
 
 config BR2_ARM_ENABLE_NEON
@@ -704,6 +735,10 @@ config BR2_GCC_TARGET_CPU
        default "thunderxt88"   if BR2_thunderxt88
        default "thunderxt88p1" if BR2_thunderxt88p1
        default "xgene1"        if BR2_xgene1
+       # armv8.1a
+       default "thunderx2t99"  if BR2_thunderx2t99
+       default "thunderx2t99p1"        if BR2_thunderx2t99p1
+       default "vulcan"        if BR2_vulcan
 
 config BR2_GCC_TARGET_ABI
        default "aapcs-linux"   if BR2_arm || BR2_armeb