From 483f663382ce1708b54ea9fd7cae4a4fbc254d7f Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Sun, 28 Jul 2024 16:37:07 +0100 Subject: [PATCH] [v1.05][ARM] Add support for Kirin 9000S and TSV120 --- src/arm/soc.c | 2 ++ src/arm/socs.h | 3 ++- src/arm/uarch.c | 3 +++ src/arm/uarch.h | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/arm/soc.c b/src/arm/soc.c index 0b3c83d..a08c226 100644 --- a/src/arm/soc.c +++ b/src/arm/soc.c @@ -167,6 +167,7 @@ bool match_google(char* soc_name, struct system_on_chip* soc) { // https://www.techinsights.com/ // https://datasheetspdf.com/pdf-file/1316605/HiSilicon/Hi3660/1 +// https://github.com/Dr-Noob/cpufetch/issues/259 bool match_hisilicon(char* soc_name, struct system_on_chip* soc) { char* tmp; @@ -204,6 +205,7 @@ bool match_hisilicon(char* soc_name, struct system_on_chip* soc) { SOC_EQ(tmp, "hi3680", "980", SOC_HISILICON_3680, soc, 7) //SOC_EQ(tmp, "?", "985", SOC_KIRIN, soc, 7) SOC_EQ(tmp, "hi3690", "990", SOC_HISILICON_3690, soc, 7) + SOC_EQ(tmp, "kirin9000s", "9000s", SOC_HISILICON_9000S,soc, 7) SOC_END } diff --git a/src/arm/socs.h b/src/arm/socs.h index dd6ef65..e23311e 100644 --- a/src/arm/socs.h +++ b/src/arm/socs.h @@ -29,6 +29,7 @@ enum { SOC_HISILICON_3670, SOC_HISILICON_3680, SOC_HISILICON_3690, + SOC_HISILICON_9000S, // Kunpeng // SOC_KUNPENG_920, SOC_KUNPENG_930, @@ -377,7 +378,7 @@ enum { inline static VENDOR get_soc_vendor_from_soc(SOC soc) { if(soc >= SOC_BCM_2835 && soc <= SOC_BCM_2712) return SOC_VENDOR_BROADCOM; - else if(soc >= SOC_HISILICON_3620 && soc <= SOC_HISILICON_3690) return SOC_VENDOR_KIRIN; + else if(soc >= SOC_HISILICON_3620 && soc <= SOC_HISILICON_9000S) return SOC_VENDOR_KIRIN; else if(soc >= SOC_KUNPENG_920 && soc <= SOC_KUNPENG_930) return SOC_VENDOR_KUNPENG; else if(soc >= SOC_EXYNOS_3475 && soc <= SOC_EXYNOS_880) return SOC_VENDOR_EXYNOS; else if(soc >= SOC_MTK_MT6893 && soc <= SOC_MTK_MT8783) return SOC_VENDOR_MEDIATEK; diff --git a/src/arm/uarch.c b/src/arm/uarch.c index 9566e84..b0d5590 100644 --- a/src/arm/uarch.c +++ b/src/arm/uarch.c @@ -202,8 +202,10 @@ struct uarch* get_uarch_from_midr(uint32_t midr, struct cpuInfo* cpu) { CHECK_UARCH(arch, cpu, 'C', 0x0AF, NA, NA, "ThunderX2 99XX", UARCH_THUNDERX2, CPU_VENDOR_CAVIUM) CHECK_UARCH(arch, cpu, 'H', 0xD01, NA, NA, "TaiShan v110", UARCH_TAISHAN_V110, CPU_VENDOR_HUAWEI) // Kunpeng 920 series + CHECK_UARCH(arch, cpu, 'H', 0xD02, 2, 2, "TaiShan v120", UARCH_TAISHAN_V120, CPU_VENDOR_HUAWEI) // Kiring 9000S Big cores (https://github.com/Dr-Noob/cpufetch/issues/259) CHECK_UARCH(arch, cpu, 'H', 0xD02, NA, NA, "TaiShan v200", UARCH_TAISHAN_V200, CPU_VENDOR_HUAWEI) // Kunpeng 930 series (found in openeuler: https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/XQCV7NX2UKRIUWUFKRF4PO3QENCOUFR3) CHECK_UARCH(arch, cpu, 'H', 0xD40, NA, NA, "Cortex-A76", UARCH_CORTEX_A76, CPU_VENDOR_ARM) // Kirin 980 Big/Medium cores -> Cortex-A76 + CHECK_UARCH(arch, cpu, 'H', 0xD42, NA, NA, "TaiShan v120", UARCH_TAISHAN_V120, CPU_VENDOR_HUAWEI) // Kiring 9000S Small Cores (https://github.com/Dr-Noob/cpufetch/issues/259) CHECK_UARCH(arch, cpu, 'N', 0x000, NA, NA, "Denver", UARCH_DENVER, CPU_VENDOR_NVIDIA) CHECK_UARCH(arch, cpu, 'N', 0x003, NA, NA, "Denver2", UARCH_DENVER2, CPU_VENDOR_NVIDIA) @@ -325,6 +327,7 @@ int get_number_of_vpus(struct cpuInfo* cpu) { case UARCH_ICESTORM: // [https://dougallj.github.io/applecpu/icestorm-simd.html] case UARCH_BLIZZARD: // [https://en.wikipedia.org/wiki/Comparison_of_ARM_processors] case UARCH_TAISHAN_V110:// [https://www-file.huawei.com/-/media/corp2020/pdf/publications/huawei-research/2022/huawei-research-issue1-en.pdf]: "128-bit x 2 for single precision" + case UARCH_TAISHAN_V120:// Not confirmed, asssuming same as v110 case UARCH_TAISHAN_V200:// Not confirmed, asssuming same as v110 case UARCH_CORTEX_A57: // [https://www.anandtech.com/show/8718/the-samsung-galaxy-note-4-exynos-review/5] case UARCH_CORTEX_A72: // [https://www.anandtech.com/show/10347/arm-cortex-a73-artemis-unveiled/2] diff --git a/src/arm/uarch.h b/src/arm/uarch.h index ffc681b..c6ce5ea 100644 --- a/src/arm/uarch.h +++ b/src/arm/uarch.h @@ -83,7 +83,9 @@ enum { UARCH_BRAHMA_B15, UARCH_BRAHMA_B53, UARCH_XGENE, // Applied Micro X-Gene. + // HUAWEI UARCH_TAISHAN_V110, // HiSilicon TaiShan v110 + UARCH_TAISHAN_V120, // HiSilicon TaiShan v120 UARCH_TAISHAN_V200, // HiSilicon TaiShan v200 // PHYTIUM UARCH_XIAOMI, // Not to be confused with Xiaomi Inc