From patchwork Mon Nov 2 23:47:23 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Viktorin X-Patchwork-Id: 8556 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id D343791B7; Tue, 3 Nov 2015 00:50:30 +0100 (CET) Received: from wes1-so1.wedos.net (wes1-so1.wedos.net [46.28.106.15]) by dpdk.org (Postfix) with ESMTP id 3F4238E81 for ; Tue, 3 Nov 2015 00:50:22 +0100 (CET) Received: from pcviktorin.fit.vutbr.cz (pcviktorin.fit.vutbr.cz [147.229.13.147]) by wes1-so1.wedos.net (Postfix) with ESMTPSA id 3nqWFn6ggdz37H; Tue, 3 Nov 2015 00:50:21 +0100 (CET) From: Jan Viktorin To: david.marchand@6wind.com, David Hunt , Thomas Monjalon , Jerin Jacob Date: Tue, 3 Nov 2015 00:47:23 +0100 Message-Id: <1446508048-16744-11-git-send-email-viktorin@rehivetech.com> X-Mailer: git-send-email 2.6.2 In-Reply-To: <1446508048-16744-1-git-send-email-viktorin@rehivetech.com> References: <1446508048-16744-1-git-send-email-viktorin@rehivetech.com> Cc: dev@dpdk.org Subject: [dpdk-dev] [PATCH v6 10/15] eal/arm: detect arm architecture in cpu flags X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- v2 -> v3: fixed forgotten include of string.h v4: checkpatch reports few characters over 80 for checking aarch64 v6: drop checking of "aarch32/64" (invalid for armv7), check for "v7l" string instead --- lib/librte_eal/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 3280817..2106c41 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; + } } }