From 01406778bed1fa2a6b34e4e18ab971b4859cda1c Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Sun, 22 Sep 2024 22:13:50 +0100 Subject: [PATCH] [v1.06][ARM] Add new Dimensity MTK SoCs (#288) --- src/arm/soc.c | 33 ++++++++++++++++++++++++++++----- src/arm/socs.h | 18 +++++++++++++++++- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/arm/soc.c b/src/arm/soc.c index 9d086db..1598fd5 100644 --- a/src/arm/soc.c +++ b/src/arm/soc.c @@ -306,7 +306,21 @@ bool match_mediatek(char* soc_name, struct system_on_chip* soc) { soc->vendor = SOC_VENDOR_MEDIATEK; SOC_START - // Dimensity // + // TODO + // Dimensity 6000 Series // + // Dimensity 7000 Series // + // Dimensity 8000 Series // + // END TODO + // Dimensity 9000 Series // + SOC_EQ(tmp, "MT6983Z", "Dimensity 9000", SOC_MTK_MT6983Z, soc, 4) + SOC_EQ(tmp, "MT8798Z/C","Dimensity 9000", SOC_MTK_MT8798ZC, soc, 4) + SOC_EQ(tmp, "MT6983W", "Dimensity 9000+", SOC_MTK_MT6983W, soc, 4) + SOC_EQ(tmp, "MT8798Z/T","Dimensity 9000+", SOC_MTK_MT8798ZT, soc, 4) + SOC_EQ(tmp, "MT6985W", "Dimensity 9200+", SOC_MTK_MT6985W, soc, 4) + SOC_EQ(tmp, "MT6985", "Dimensity 9200", SOC_MTK_MT6985, soc, 4) + SOC_EQ(tmp, "MT6989", "Dimensity 9300", SOC_MTK_MT6989, soc, 4) + SOC_EQ(tmp, "MT8796", "Dimensity 9300", SOC_MTK_MT8796, soc, 4) + // Dimensity 1000 // SOC_EQ(tmp, "MT6893Z", "Dimensity 1300", SOC_MTK_MT6893Z, soc, 6) SOC_EQ(tmp, "MT6893", "Dimensity 1200", SOC_MTK_MT6893, soc, 6) SOC_EQ(tmp, "MT6891", "Dimensity 1100", SOC_MTK_MT6891, soc, 6) @@ -316,12 +330,21 @@ bool match_mediatek(char* soc_name, struct system_on_chip* soc) { SOC_EQ(tmp, "MT6885Z", "Dimensity 1000L", SOC_MTK_MT6885Z, soc, 7) SOC_EQ(tmp, "MT6889Z", "Dimensity 1000+", SOC_MTK_MT6889Z, soc, 7) SOC_EQ(tmp, "MT6883Z", "Dimensity 1000C", SOC_MTK_MT6883Z, soc, 7) - SOC_EQ(tmp, "MT6833", "Dimensity 700", SOC_MTK_MT6833, soc, 7) - SOC_EQ(tmp, "MT6853", "Dimensity 720", SOC_MTK_MT6853, soc, 7) + // Dimensity 900 + SOC_EQ(tmp, "MT6877V/Z","Dimensity 900", SOC_MTK_MT6877VZ, soc, 6) + SOC_EQ(tmp, "MT6877T" ,"Dimensity 920", SOC_MTK_MT6877T, soc, 6) + SOC_EQ(tmp, "MT6855" ,"Dimensity 930", SOC_MTK_MT6855, soc, 6) + // Dimensity 800 SOC_EQ(tmp, "MT6873", "Dimensity 800", SOC_MTK_MT6873, soc, 7) - SOC_EQ(tmp, "MT6853V", "Dimensity 800U", SOC_MTK_MT6853V, soc, 7) - SOC_EQ(tmp, "MT6833", "Dimensity 810", SOC_MTK_MT6833, soc, 6) + SOC_EQ(tmp, "MT6853V/T","Dimensity 800U", SOC_MTK_MT6853VT, soc, 7) + SOC_EQ(tmp, "MT6853T", "Dimensity 800U", SOC_MTK_MT6853T, soc, 7) + SOC_EQ(tmp, "MT6833P", "Dimensity 810", SOC_MTK_MT6833P, soc, 6) + SOC_EQ(tmp, "MT6833GP", "Dimensity 810", SOC_MTK_MT6833GP, soc, 6) + SOC_EQ(tmp, "MT6833V", "Dimensity 810", SOC_MTK_MT6833V, soc, 6) SOC_EQ(tmp, "MT6875", "Dimensity 820", SOC_MTK_MT6875, soc, 7) + // Dimensity 700 + SOC_EQ(tmp, "MT6833", "Dimensity 700", SOC_MTK_MT6833, soc, 7) + SOC_EQ(tmp, "MT6853V", "Dimensity 720", SOC_MTK_MT6853, soc, 7) // Helio // SOC_EQ(tmp, "MT6761D", "Helio A20", SOC_MTK_MT6761D, soc, 12) SOC_EQ(tmp, "MT6761", "Helio A22", SOC_MTK_MT6761, soc, 12) diff --git a/src/arm/socs.h b/src/arm/socs.h index c1b69b6..ad044a1 100644 --- a/src/arm/socs.h +++ b/src/arm/socs.h @@ -192,6 +192,22 @@ enum { SOC_MTK_MT9950, SOC_MTK_MT9972, SOC_MTK_MT9982, + SOC_MTK_MT6983Z, + SOC_MTK_MT8798ZC, + SOC_MTK_MT6983W, + SOC_MTK_MT8798ZT, + SOC_MTK_MT6985W, + SOC_MTK_MT6985, + SOC_MTK_MT6989, + SOC_MTK_MT8796, + SOC_MTK_MT6877VZ, + SOC_MTK_MT6877T, + SOC_MTK_MT6855, + SOC_MTK_MT6853VT, + SOC_MTK_MT6853T, + SOC_MTK_MT6833P, + SOC_MTK_MT6833GP, + SOC_MTK_MT6833V, // Snapdragon // SOC_SNAPD_QSD8650, SOC_SNAPD_QSD8250, @@ -427,7 +443,7 @@ inline static VENDOR get_soc_vendor_from_soc(SOC soc) { 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; + else if(soc >= SOC_MTK_MT5327 && soc <= SOC_MTK_MT6833V) return SOC_VENDOR_MEDIATEK; else if(soc >= SOC_SNAPD_QSD8650 && soc <= SOC_SNAPD_SC8280XP) return SOC_VENDOR_SNAPDRAGON; else if(soc >= SOC_APPLE_M1 && soc <= SOC_APPLE_M3_MAX) return SOC_VENDOR_APPLE; else if(soc >= SOC_ALLWINNER_A10 && soc <= SOC_ALLWINNER_R328) return SOC_VENDOR_ALLWINNER;