From 5aa739bd39a09cbd756d94412bfd346c72b0eed2 Mon Sep 17 00:00:00 2001 From: Jan Viktorin Date: Tue, 3 Nov 2015 00:47:23 +0100 Subject: [PATCH] eal/arm: detect ARMv7 architecture in CPU flags Based on the patch by David Hunt and Armuta Zende: lib: added support for armv7 architecture Signed-off-by: Jan Viktorin Signed-off-by: Amruta Zende Signed-off-by: David Hunt Acked-by: David Marchand --- .../common/include/arch/arm/rte_cpuflags_32.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/librte_eal/common/include/arch/arm/rte_cpuflags_32.h b/lib/librte_eal/common/include/arch/arm/rte_cpuflags_32.h index 3280817baa..2106c41ba5 100644 --- a/lib/librte_eal/common/include/arch/arm/rte_cpuflags_32.h +++ b/lib/librte_eal/common/include/arch/arm/rte_cpuflags_32.h @@ -41,6 +41,7 @@ extern "C" { #include #include #include +#include #include "generic/rte_cpuflags.h" @@ -52,10 +53,15 @@ extern "C" { #define AT_HWCAP2 26 #endif +#ifndef AT_PLATFORM +#define AT_PLATFORM 15 +#endif + /* software based registers */ enum cpu_register_t { REG_HWCAP = 0, REG_HWCAP2, + REG_PLATFORM, }; /** @@ -89,6 +95,7 @@ enum rte_cpu_flag_t { RTE_CPUFLAG_SHA1, RTE_CPUFLAG_SHA2, RTE_CPUFLAG_CRC32, + RTE_CPUFLAG_V7L, /* The last item */ RTE_CPUFLAG_NUMFLAGS,/**< This should always be the last! */ }; @@ -121,6 +128,7 @@ static const struct feature_entry cpu_feature_table[] = { FEAT_DEF(SHA1, 0x00000001, 0, REG_HWCAP2, 2) FEAT_DEF(SHA2, 0x00000001, 0, REG_HWCAP2, 3) FEAT_DEF(CRC32, 0x00000001, 0, REG_HWCAP2, 4) + FEAT_DEF(V7L, 0x00000001, 0, REG_PLATFORM, 0) }; /* @@ -141,6 +149,10 @@ rte_cpu_get_features(__attribute__((unused)) uint32_t leaf, out[REG_HWCAP] = auxv.a_un.a_val; else if (auxv.a_type == AT_HWCAP2) out[REG_HWCAP2] = auxv.a_un.a_val; + else if (auxv.a_type == AT_PLATFORM) { + if (!strcmp((const char *)auxv.a_un.a_val, "v7l")) + out[REG_PLATFORM] = 0x0001; + } } } -- 2.20.1