summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJinke Fan <fanjinke@hygon.cn>2019-05-17 11:29:11 +0800
committerCorinna Vinschen <corinna@vinschen.de>2019-06-03 10:32:58 +0200
commitee7e49e19388fd0f19ca1c4773d3efc5fa123d58 (patch)
treeb34d2949f1796fefcff8a16a93b422fa4f3abcf6
parentf5a5a23ea8c73f9d2a2fdcb471883989f23f9e4b (diff)
downloadcygnal-ee7e49e19388fd0f19ca1c4773d3efc5fa123d58.tar.gz
cygnal-ee7e49e19388fd0f19ca1c4773d3efc5fa123d58.tar.bz2
cygnal-ee7e49e19388fd0f19ca1c4773d3efc5fa123d58.zip
Add support for Hygon Dhyana processor
-Add vendor identification -Support in get_cpu_cache Background: Chengdu Haiguang IC Design Co., Ltd (Hygon) is a Joint Venture between AMD and Haiguang Information Technology Co.,Ltd., aims at providing high performance x86 processor for China server market. Its first generation processor codename is Dhyana, which originates from AMD technology and shares most of the architecture with AMD's family 17h, but with different CPU Vendor ID("HygonGenuine")/Family series number(Family 18h). Related Hygon kernel patch can be found on: http://lkml.kernel.org/r/5ce86123a7b9dad925ac583d88d2f921040e859b.1538583282.git.puwen@hygon.cn Signed-off-by: Jinke Fan <fanjinke@hygon.cn>
-rw-r--r--winsup/cygwin/fhandler_proc.cc3
-rw-r--r--winsup/cygwin/sysconf.cc3
2 files changed, 4 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc
index a6a0b683c..c461bbc75 100644
--- a/winsup/cygwin/fhandler_proc.cc
+++ b/winsup/cygwin/fhandler_proc.cc
@@ -706,7 +706,8 @@ format_proc_cpuinfo (void *, char *&destbuf)
/* Vendor identification. */
bool is_amd = false, is_intel = false;
- if (!strcmp ((char*)vendor_id, "AuthenticAMD"))
+ if (!strcmp ((char*)vendor_id, "AuthenticAMD")
+ || !strcmp((char*)vendor_id, "HygonGenuine"))
is_amd = true;
else if (!strcmp ((char*)vendor_id, "GenuineIntel"))
is_intel = true;
diff --git a/winsup/cygwin/sysconf.cc b/winsup/cygwin/sysconf.cc
index 216e5142f..3440c09ee 100644
--- a/winsup/cygwin/sysconf.cc
+++ b/winsup/cygwin/sysconf.cc
@@ -486,7 +486,8 @@ get_cpu_cache (int in)
vendor_id[3] = 0;
if (!strcmp ((char*) vendor_id, "GenuineIntel"))
return get_cpu_cache_intel (in, maxf & 0xffff);
- else if (!strcmp ((char*)vendor_id, "AuthenticAMD"))
+ else if (!strcmp ((char*)vendor_id, "AuthenticAMD")
+ || !strcmp((char*)vendor_id, "HygonGenuine"))
{
uint32_t maxe = 0, unused;
cpuid (&maxe, &unused, &unused, &unused, 0x80000000);