mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 16:00:39 +01:00
[v1.01][ARM] Merge changes from feat2 (added Allwinner CPUs)
This commit is contained in:
@@ -17,7 +17,8 @@ static char* soc_trademark_string[] = {
|
||||
[SOC_VENDOR_EXYNOS] = "Exynos ",
|
||||
[SOC_VENDOR_KIRIN] = "Kirin ",
|
||||
[SOC_VENDOR_BROADCOM] = "Broadcom BCM",
|
||||
[SOC_VENDOR_APPLE] = "Apple "
|
||||
[SOC_VENDOR_APPLE] = "Apple ",
|
||||
[SOC_VENDOR_ALLWINNER] = "Allwinner "
|
||||
};
|
||||
|
||||
static char* soc_rpi_string[] = {
|
||||
@@ -38,10 +39,10 @@ void fill_soc(struct system_on_chip* soc, char* soc_name, SOC soc_model, int32_t
|
||||
}
|
||||
|
||||
bool match_soc(struct system_on_chip* soc, char* raw_name, char* expected_name, char* soc_name, SOC soc_model, int32_t process) {
|
||||
if(strlen(raw_name) > strlen(expected_name))
|
||||
return false;
|
||||
int len1 = strlen(raw_name);
|
||||
int len2 = strlen(expected_name);
|
||||
int len = min(len1, len2);
|
||||
|
||||
int len = strlen(raw_name);
|
||||
if(strncmp(raw_name, expected_name, len) != 0) {
|
||||
return false;
|
||||
}
|
||||
@@ -454,6 +455,49 @@ bool match_qualcomm(char* soc_name, struct system_on_chip* soc) {
|
||||
SOC_END
|
||||
}
|
||||
|
||||
// https://linux-sunxi.org/Allwinner_SoC_Family
|
||||
bool match_allwinner(char* soc_name, struct system_on_chip* soc) {
|
||||
char* tmp;
|
||||
|
||||
if((tmp = strstr(soc_name, "sun")) == NULL)
|
||||
return false;
|
||||
|
||||
SOC_START
|
||||
// A series 32 bits
|
||||
SOC_EQ(tmp, "sun4i", "A10", SOC_ALLWINNER_A10, soc, 55)
|
||||
SOC_EQ(tmp, "sun5i", "A13", SOC_ALLWINNER_A13, soc, 55)
|
||||
SOC_EQ(tmp, "sun5i", "A10s", SOC_ALLWINNER_A10S, soc, 55)
|
||||
SOC_EQ(tmp, "sun7i", "A20", SOC_ALLWINNER_A20, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "A23", SOC_ALLWINNER_A23, soc, 40)
|
||||
SOC_EQ(tmp, "sun6i", "A31", SOC_ALLWINNER_A31, soc, 40)
|
||||
SOC_EQ(tmp, "sun6i", "A31s", SOC_ALLWINNER_A31S, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "A33", SOC_ALLWINNER_A33, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "A40", SOC_ALLWINNER_A40, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "A50", SOC_ALLWINNER_A50, soc, 28)
|
||||
SOC_EQ(tmp, "sun9i", "A80", SOC_ALLWINNER_A80, soc, 28)
|
||||
SOC_EQ(tmp, "sun8i", "A83T", SOC_ALLWINNER_A83T, soc, 28)
|
||||
|
||||
// H series 32 bits
|
||||
SOC_EQ(tmp, "sun8i", "H2+", SOC_ALLWINNER_HZP, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "H3", SOC_ALLWINNER_H3, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "H8", SOC_ALLWINNER_H8, soc, 28)
|
||||
|
||||
// H series 64 bits
|
||||
SOC_EQ(tmp, "sun50i", "H5", SOC_ALLWINNER_H5, soc, 40)
|
||||
SOC_EQ(tmp, "sun50i", "H6", SOC_ALLWINNER_H6, soc, 28)
|
||||
SOC_EQ(tmp, "sun50i", "H616", SOC_ALLWINNER_H616, soc, 28)
|
||||
|
||||
// R series 32 bits
|
||||
SOC_EQ(tmp, "sun5i", "R8", SOC_ALLWINNER_R8, soc, 55)
|
||||
SOC_EQ(tmp, "sun8i", "R16", SOC_ALLWINNER_R16, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "R40", SOC_ALLWINNER_R40, soc, 40)
|
||||
SOC_EQ(tmp, "sun8i", "R58", SOC_ALLWINNER_R58, soc, 28)
|
||||
|
||||
// R series 64 bits
|
||||
SOC_EQ(tmp, "sun50i", "R329", SOC_ALLWINNER_R328, soc, 28)
|
||||
SOC_END
|
||||
}
|
||||
|
||||
bool match_special(char* soc_name, struct system_on_chip* soc) {
|
||||
char* tmp;
|
||||
|
||||
@@ -490,6 +534,9 @@ struct system_on_chip* parse_soc_from_string(struct system_on_chip* soc) {
|
||||
if(match_hisilicon(raw_name, soc))
|
||||
return soc;
|
||||
|
||||
if(match_allwinner(raw_name, soc))
|
||||
return soc;
|
||||
|
||||
match_broadcom(raw_name, soc);
|
||||
return soc;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ enum {
|
||||
SOC_VENDOR_EXYNOS,
|
||||
SOC_VENDOR_KIRIN,
|
||||
SOC_VENDOR_BROADCOM,
|
||||
SOC_VENDOR_APPLE
|
||||
SOC_VENDOR_APPLE,
|
||||
SOC_VENDOR_ALLWINNER
|
||||
};
|
||||
|
||||
struct system_on_chip {
|
||||
|
||||
@@ -253,7 +253,31 @@ enum {
|
||||
SOC_SNAPD_SM8250_AB,
|
||||
SOC_SNAPD_SM8350,
|
||||
// APPLE
|
||||
SOC_APPLE_M1
|
||||
SOC_APPLE_M1,
|
||||
// ALLWINNER
|
||||
SOC_ALLWINNER_A10,
|
||||
SOC_ALLWINNER_A13,
|
||||
SOC_ALLWINNER_A10S,
|
||||
SOC_ALLWINNER_A20,
|
||||
SOC_ALLWINNER_A23,
|
||||
SOC_ALLWINNER_A31,
|
||||
SOC_ALLWINNER_A31S,
|
||||
SOC_ALLWINNER_A33,
|
||||
SOC_ALLWINNER_A40,
|
||||
SOC_ALLWINNER_A50,
|
||||
SOC_ALLWINNER_A80,
|
||||
SOC_ALLWINNER_A83T,
|
||||
SOC_ALLWINNER_HZP,
|
||||
SOC_ALLWINNER_H3,
|
||||
SOC_ALLWINNER_H8,
|
||||
SOC_ALLWINNER_H5,
|
||||
SOC_ALLWINNER_H6,
|
||||
SOC_ALLWINNER_H616,
|
||||
SOC_ALLWINNER_R8,
|
||||
SOC_ALLWINNER_R16,
|
||||
SOC_ALLWINNER_R40,
|
||||
SOC_ALLWINNER_R58,
|
||||
SOC_ALLWINNER_R328
|
||||
};
|
||||
|
||||
inline static VENDOR get_soc_vendor_from_soc(SOC soc) {
|
||||
@@ -263,6 +287,7 @@ inline static VENDOR get_soc_vendor_from_soc(SOC soc) {
|
||||
else if(soc >= SOC_MTK_MT6893 && soc <= SOC_MTK_MT8783) return SOC_VENDOR_MEDIATEK;
|
||||
else if(soc >= SOC_SNAPD_QSD8650 && soc <= SOC_SNAPD_SM8350) return SOC_VENDOR_SNAPDRAGON;
|
||||
else if(soc >= SOC_APPLE_M1 && soc <= SOC_APPLE_M1) return SOC_VENDOR_APPLE;
|
||||
else if(soc >= SOC_ALLWINNER_A10 && soc <= SOC_ALLWINNER_R328) return SOC_VENDOR_ALLWINNER;
|
||||
return SOC_VENDOR_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
@@ -218,6 +218,24 @@ $C1 kMMMMMMMMMMMMMMMMMMMMMMd \
|
||||
$C1 'KMMMMMMMWXXWMMMMMMMk. \
|
||||
$C1 \"cooc\"* \"*coo'\" "
|
||||
|
||||
#define ASCII_ALLWINNER \
|
||||
"$C1 \
|
||||
$C1 ################# \
|
||||
$C1 .######## ##### #### \
|
||||
$C1 ###### ####### \
|
||||
$C1 #####. ## ..## ####. \
|
||||
$C1 .#### #### ##### #### \
|
||||
$C1 #### ## ### ###. ##### . \
|
||||
$C1#### ## ## #### .###### ####* . \
|
||||
$C1### ## ##.### ## #### .###### \
|
||||
$C1### #.## ### ##### ##### . \
|
||||
$C1### ### ### .### ### . \
|
||||
$C1 #### ### #### #. \
|
||||
$C1 #### #* \
|
||||
$C1 ##### ##. \
|
||||
$C1 ###########. \
|
||||
$C1 "
|
||||
|
||||
// --------------------- LONG LOGOS ------------------------- //
|
||||
#define ASCII_AMD_L \
|
||||
"$C1 \
|
||||
@@ -318,6 +336,8 @@ asciiL logo_broadcom = { ASCII_BROADCOM, 44, 19, false, {C_FG_WHITE, C_FG_
|
||||
asciiL logo_arm = { ASCII_ARM, 42, 5, false, {C_FG_CYAN}, {C_FG_WHITE, C_FG_CYAN} };
|
||||
asciiL logo_ibm = { ASCII_IBM, 42, 9, false, {C_FG_CYAN, C_FG_WHITE}, {C_FG_CYAN, C_FG_WHITE} };
|
||||
asciiL logo_apple = { ASCII_APPLE, 32, 17, false, {C_FG_WHITE}, {C_FG_CYAN, C_FG_B_WHITE} };
|
||||
asciiL logo_allwinner = { ASCII_ALLWINNER, 47, 16, false, {C_FG_CYAN}, {C_FG_B_BLACK, C_FG_B_CYAN } };
|
||||
|
||||
// Long variants | ----------------------------------------------------------------------------------------------------|
|
||||
asciiL logo_amd_l = { ASCII_AMD_L, 62, 19, true, {C_BG_WHITE, C_BG_GREEN}, {C_FG_WHITE, C_FG_GREEN} };
|
||||
asciiL logo_intel_l = { ASCII_INTEL_L, 62, 19, true, {C_BG_CYAN, C_BG_WHITE}, {C_FG_CYAN, C_FG_WHITE} };
|
||||
|
||||
@@ -353,6 +353,8 @@ void choose_ascii_art(struct ascii* art, struct color** cs, struct terminal* ter
|
||||
art->art = &logo_broadcom;
|
||||
else if(art->vendor == SOC_VENDOR_APPLE)
|
||||
art->art = &logo_apple;
|
||||
else if(art->vendor == SOC_VENDOR_ALLWINNER)
|
||||
art->art = &logo_allwinner;
|
||||
else {
|
||||
art->art = choose_ascii_art_aux(&logo_arm_l, &logo_arm, term, lf);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user