This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
AARCH64: Adding Saphira core detection using MIDR.
- From: Sameera Deshpande <sameera dot deshpande at linaro dot org>
- To: libc-alpha at sourceware dot org
- Cc: Siddhesh Poyarekar <siddhesh at gotplt dot org>, szabolcs dot nagy at arm dot com
- Date: Tue, 20 Nov 2018 16:18:47 +0530
- Subject: AARCH64: Adding Saphira core detection using MIDR.
Hi!
Please find attached the patch for CPU detection using MIDR code for
Qualcomm's Saphira processor, and use Falkor specific memset routine
for Saphira.
Ok for trunk?
--
- Thanks and regards,
Sameera D.
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
index d74ed3a..351b957 100644
--- a/sysdeps/aarch64/multiarch/memset.c
+++ b/sysdeps/aarch64/multiarch/memset.c
@@ -32,7 +32,7 @@ extern __typeof (__redirect_memset) __memset_falkor attribute_hidden;
extern __typeof (__redirect_memset) __memset_generic attribute_hidden;
libc_ifunc (__libc_memset,
- ((IS_FALKOR (midr) || IS_PHECDA (midr)) && zva_size == 64
+ ((AVOID_SLOW_MRS (midr)) && zva_size == 64
? __memset_falkor
: __memset_generic));
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index 39eba01..266e972 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -31,6 +31,7 @@ struct cpu_list
};
static struct cpu_list cpu_list[] = {
+ {"saphira", 0x510FC010},
{"falkor", 0x510FC000},
{"thunderxt88", 0x430F0A10},
{"thunderx2t99", 0x431F0AF0},
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
index eb35adf..80ae39a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
@@ -52,6 +52,13 @@
#define IS_PHECDA(midr) (MIDR_IMPLEMENTOR(midr) == 'h' \
&& MIDR_PARTNUM(midr) == 0x000)
+#define IS_SAPHIRA(midr) (MIDR_IMPLEMENTOR(midr) == 'Q' \
+ && MIDR_PARTNUM(midr) == 0xc01)
+
+#define AVOID_SLOW_MRS(midr) (IS_FALKOR (midr) \
+ || IS_SAPHIRA (midr) \
+ || IS_PHECDA (midr))
+
struct cpu_features
{
uint64_t midr_el1;