From 5f5561f177ac094f362ad386431110aa2ac59398 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Sat, 2 Sep 2023 19:02:00 +0100 Subject: [PATCH] [v1.04][ARM] Add Rockchip 3588S SoC (thanks #188!) --- src/arm/soc.c | 29 +++++++++++++++++------------ src/arm/socs.h | 3 ++- src/arm/udev.h | 1 + 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/arm/soc.c b/src/arm/soc.c index c0465bf..50509e0 100644 --- a/src/arm/soc.c +++ b/src/arm/soc.c @@ -623,6 +623,10 @@ char* get_rk_efuse(void) { char* rk_soc = read_file(_PATH_RK_EFUSE0, &filelen); if(rk_soc == NULL) { printWarn("read_file: %s: %s", _PATH_RK_EFUSE0, strerror(errno)); + rk_soc = read_file(_PATH_RK_OTP0, &filelen); + if(rk_soc == NULL) { + printWarn("read_file: %s: %s", _PATH_RK_OTP0, strerror(errno)); + } } return rk_soc; } @@ -639,19 +643,20 @@ bool get_rk_soc_from_efuse(struct system_on_chip* soc, char* efuse) { rkToSoC socFromRK[] = { // TODO: Add RK2XXX // RK3XXX - {0x2388, {SOC_ROCKCHIP_3288, SOC_VENDOR_ROCKCHIP, 28, "RK3288", NULL} }, - {0x2392, {SOC_ROCKCHIP_3229, SOC_VENDOR_ROCKCHIP, 28, "RK3229", NULL} }, // https://gadgetversus.com/processor/rockchip-rk3229-vs-rockchip-rk3128/ - {0x3380, {SOC_ROCKCHIP_3308, SOC_VENDOR_ROCKCHIP, 28, "RK3308", NULL} }, // https://en.t-firefly.com/product/rocrk3308cc?theme=pc - {0x3381, {SOC_ROCKCHIP_3318, SOC_VENDOR_ROCKCHIP, 28, "RK3318", NULL} }, - {0x3362, {SOC_ROCKCHIP_3326, SOC_VENDOR_ROCKCHIP, 28, "RK3326", NULL} }, - {0x3382, {SOC_ROCKCHIP_3328, SOC_VENDOR_ROCKCHIP, 28, "RK3328", NULL} }, - {0x3386, {SOC_ROCKCHIP_3368, SOC_VENDOR_ROCKCHIP, 28, "RK3368", NULL} }, - {0x3399, {SOC_ROCKCHIP_3399, SOC_VENDOR_ROCKCHIP, 28, "RK3399", NULL} }, - {0x5366, {SOC_ROCKCHIP_3566, SOC_VENDOR_ROCKCHIP, 22, "RK3566", NULL} }, - {0x5386, {SOC_ROCKCHIP_3568, SOC_VENDOR_ROCKCHIP, 22, "RK3568", NULL} }, - {0x5388, {SOC_ROCKCHIP_3588, SOC_VENDOR_ROCKCHIP, 8, "RK3588", NULL} }, + {0x2388, {SOC_ROCKCHIP_3288, SOC_VENDOR_ROCKCHIP, 28, "RK3288", NULL} }, + {0x2392, {SOC_ROCKCHIP_3229, SOC_VENDOR_ROCKCHIP, 28, "RK3229", NULL} }, // https://gadgetversus.com/processor/rockchip-rk3229-vs-rockchip-rk3128/ + {0x3380, {SOC_ROCKCHIP_3308, SOC_VENDOR_ROCKCHIP, 28, "RK3308", NULL} }, // https://en.t-firefly.com/product/rocrk3308cc?theme=pc + {0x3381, {SOC_ROCKCHIP_3318, SOC_VENDOR_ROCKCHIP, 28, "RK3318", NULL} }, + {0x3362, {SOC_ROCKCHIP_3326, SOC_VENDOR_ROCKCHIP, 28, "RK3326", NULL} }, + {0x3382, {SOC_ROCKCHIP_3328, SOC_VENDOR_ROCKCHIP, 28, "RK3328", NULL} }, + {0x3386, {SOC_ROCKCHIP_3368, SOC_VENDOR_ROCKCHIP, 28, "RK3368", NULL} }, + {0x3399, {SOC_ROCKCHIP_3399, SOC_VENDOR_ROCKCHIP, 28, "RK3399", NULL} }, + {0x5366, {SOC_ROCKCHIP_3566, SOC_VENDOR_ROCKCHIP, 22, "RK3566", NULL} }, + {0x5386, {SOC_ROCKCHIP_3568, SOC_VENDOR_ROCKCHIP, 22, "RK3568", NULL} }, + {0x5388, {SOC_ROCKCHIP_3588, SOC_VENDOR_ROCKCHIP, 8, "RK3588", NULL} }, + {0x3588, {SOC_ROCKCHIP_3588S, SOC_VENDOR_ROCKCHIP, 8, "RK3588S", NULL} }, // https://github.com/Dr-Noob/cpufetch/issues/188 // Unknown - {0x0000, {UNKNOWN, SOC_VENDOR_UNKNOWN, -1, "", NULL} } + {0x0000, {UNKNOWN, SOC_VENDOR_UNKNOWN, -1, "", NULL} } }; int index = 0; diff --git a/src/arm/socs.h b/src/arm/socs.h index 2178652..e73ba83 100644 --- a/src/arm/socs.h +++ b/src/arm/socs.h @@ -302,6 +302,7 @@ enum { SOC_ROCKCHIP_3566, SOC_ROCKCHIP_3568, SOC_ROCKCHIP_3588, + SOC_ROCKCHIP_3588S, // UNKNOWN SOC_MODEL_UNKNOWN }; @@ -314,7 +315,7 @@ inline static VENDOR get_soc_vendor_from_soc(SOC soc) { else if(soc >= SOC_SNAPD_QSD8650 && soc <= SOC_SNAPD_SM8450) return SOC_VENDOR_SNAPDRAGON; else if(soc >= SOC_APPLE_M1 && soc <= SOC_APPLE_M2) return SOC_VENDOR_APPLE; else if(soc >= SOC_ALLWINNER_A10 && soc <= SOC_ALLWINNER_R328) return SOC_VENDOR_ALLWINNER; - else if(soc >= SOC_ROCKCHIP_3288 && soc <= SOC_ROCKCHIP_3588) return SOC_VENDOR_ROCKCHIP; + else if(soc >= SOC_ROCKCHIP_3288 && soc <= SOC_ROCKCHIP_3588S) return SOC_VENDOR_ROCKCHIP; return SOC_VENDOR_UNKNOWN; } diff --git a/src/arm/udev.h b/src/arm/udev.h index 862320f..2203c45 100644 --- a/src/arm/udev.h +++ b/src/arm/udev.h @@ -5,6 +5,7 @@ #define _PATH_SUNXI_NVMEM "/sys/bus/nvmem/devices/sunxi-sid0/nvmem" #define _PATH_RK_EFUSE0 "/sys/bus/nvmem/devices/rockchip-efuse0/nvmem" +#define _PATH_RK_OTP0 "/sys/bus/nvmem/devices/rockchip-otp0/nvmem" #define UNKNOWN -1 int get_ncores_from_cpuinfo(void);