about summary refs log tree commit diff
diff options
context:
space:
mode:
authorXuelei Zhang <zhangxuelei4@huawei.com>2019-12-19 14:55:06 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-12-19 16:31:04 -0300
commit0db8e7b36665fa90c53161742dedab21d786924c (patch)
treec2242fd20c6207c70216e304b818de2ff61b0834
parenta7611806d5f4163656a2f5d21d349b5e7c4170e0 (diff)
downloadglibc-0db8e7b36665fa90c53161742dedab21d786924c.tar.gz
glibc-0db8e7b36665fa90c53161742dedab21d786924c.tar.xz
glibc-0db8e7b36665fa90c53161742dedab21d786924c.zip
aarch64: Add Huawei Kunpeng to tunable cpu list
Kunpeng processer is a 64-bit Arm-compatible CPU released by Huawei,
and we have already signed a copyright assignement with the FSF.

This patch adds its to cpu list, and related macro for IFUNC.

Checked on aarch64-linux-gnu.

Reviewed-by: Szabolcs Nagy <Szabolcs.Nagy@arm.com>
-rw-r--r--manual/tunables.texi2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.h3
3 files changed, 5 insertions, 1 deletions
diff --git a/manual/tunables.texi b/manual/tunables.texi
index 1687f9c939..ec18b10834 100644
--- a/manual/tunables.texi
+++ b/manual/tunables.texi
@@ -372,7 +372,7 @@ This tunable is specific to powerpc, powerpc64 and powerpc64le.
 The @code{glibc.cpu.name=xxx} tunable allows the user to tell @theglibc{} to
 assume that the CPU is @code{xxx} where xxx may have one of these values:
 @code{generic}, @code{falkor}, @code{thunderxt88}, @code{thunderx2t99},
-@code{thunderx2t99p1}, @code{ares}, @code{emag}.
+@code{thunderx2t99p1}, @code{ares}, @code{emag}, @code{kunpeng}.
 
 This tunable is specific to aarch64.
 @end deftp
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index 4fc241a6e5..d0e50d0898 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -38,6 +38,7 @@ static struct cpu_list cpu_list[] = {
       {"phecda",	 0x680F0000},
       {"ares",		 0x411FD0C0},
       {"emag",		 0x503F0001},
+      {"kunpeng", 	 0x481FD010},
       {"generic", 	 0x0}
 };
 
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
index 0fa57dc66f..87c4995627 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
@@ -57,6 +57,9 @@
 #define IS_EMAG(midr) (MIDR_IMPLEMENTOR(midr) == 'P'			      \
                        && MIDR_PARTNUM(midr) == 0x000)
 
+#define IS_KUNPENG(midr) (MIDR_IMPLEMENTOR(midr) == 'H'			   \
+                        && MIDR_PARTNUM(midr) == 0xd01)
+
 struct cpu_features
 {
   uint64_t midr_el1;