mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
[v1.03][RISCV] Add basic StarFive support
This commit is contained in:
@@ -287,6 +287,31 @@ $C1 ###### ###### \
|
|||||||
$C1 ########### \
|
$C1 ########### \
|
||||||
$C1 ### "
|
$C1 ### "
|
||||||
|
|
||||||
|
#define ASCII_STARFIVE \
|
||||||
|
"$C1 ####### \
|
||||||
|
$C1 ################. \
|
||||||
|
$C1 ############ ########### \
|
||||||
|
$C1 ############ ##########. \
|
||||||
|
$C1 ############ # ###### \
|
||||||
|
$C1 ########### ##### ## \
|
||||||
|
$C1 #######. ########## \
|
||||||
|
$C1 ###### ### *########### \
|
||||||
|
$C1 ###### #######. ########## \
|
||||||
|
$C1 ######### ############ ###### \
|
||||||
|
$C1 ###########. ###########* # \
|
||||||
|
$C1 ############ ############ \
|
||||||
|
$C1 # ############. .########### \
|
||||||
|
$C1 ###### ########### ######### \
|
||||||
|
$C1 ########## .######, ##### \
|
||||||
|
$C1 ############ ##. #####. \
|
||||||
|
$C1 ######### ######## \
|
||||||
|
$C1 ## ##### ##########. \
|
||||||
|
$C1 ####### # ############ \
|
||||||
|
$C1 ########### ###########. \
|
||||||
|
$C1 ###########. ############ \
|
||||||
|
$C1 ################ \
|
||||||
|
$C1 ####### "
|
||||||
|
|
||||||
// --------------------- LONG LOGOS ------------------------- //
|
// --------------------- LONG LOGOS ------------------------- //
|
||||||
#define ASCII_AMD_L \
|
#define ASCII_AMD_L \
|
||||||
"$C1 \
|
"$C1 \
|
||||||
@@ -390,7 +415,8 @@ asciiL logo_apple = { ASCII_APPLE, 32, 17, false, {C_FG_WHITE},
|
|||||||
asciiL logo_allwinner = { ASCII_ALLWINNER, 47, 16, false, {C_FG_CYAN}, {C_FG_B_BLACK, C_FG_B_CYAN } };
|
asciiL logo_allwinner = { ASCII_ALLWINNER, 47, 16, false, {C_FG_CYAN}, {C_FG_B_BLACK, C_FG_B_CYAN } };
|
||||||
asciiL logo_rockchip = { ASCII_ROCKCHIP, 58, 8, false, {C_FG_CYAN, C_FG_YELLOW}, {C_FG_CYAN, C_FG_YELLOW} };
|
asciiL logo_rockchip = { ASCII_ROCKCHIP, 58, 8, false, {C_FG_CYAN, C_FG_YELLOW}, {C_FG_CYAN, C_FG_YELLOW} };
|
||||||
asciiL logo_riscv = { ASCII_RISCV, 63, 18, false, {C_FG_CYAN, C_FG_YELLOW}, {C_FG_CYAN, C_FG_YELLOW} };
|
asciiL logo_riscv = { ASCII_RISCV, 63, 18, false, {C_FG_CYAN, C_FG_YELLOW}, {C_FG_CYAN, C_FG_YELLOW} };
|
||||||
asciiL logo_sifive = { ASCII_SIFIVE, 51, 19, false, {C_FG_WHITE}, {C_FG_WHITE, C_FG_B_CYAN} };
|
asciiL logo_sifive = { ASCII_SIFIVE, 51, 19, false, {C_FG_WHITE}, {C_FG_WHITE, C_FG_CYAN} };
|
||||||
|
asciiL logo_starfive = { ASCII_STARFIVE, 50, 24, false, {C_FG_WHITE}, {C_FG_WHITE, C_FG_BLUE} };
|
||||||
|
|
||||||
// Long variants | ----------------------------------------------------------------------------------------------------|
|
// 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_amd_l = { ASCII_AMD_L, 62, 19, true, {C_BG_WHITE, C_BG_GREEN}, {C_FG_WHITE, C_FG_GREEN} };
|
||||||
|
|||||||
@@ -371,6 +371,8 @@ void choose_ascii_art(struct ascii* art, struct color** cs, struct terminal* ter
|
|||||||
#elif ARCH_RISCV
|
#elif ARCH_RISCV
|
||||||
if(art->vendor == SOC_VENDOR_SIFIVE)
|
if(art->vendor == SOC_VENDOR_SIFIVE)
|
||||||
art->art = &logo_sifive;
|
art->art = &logo_sifive;
|
||||||
|
else if(art->vendor == SOC_VENDOR_STARFIVE)
|
||||||
|
art->art = &logo_starfive;
|
||||||
else
|
else
|
||||||
art->art = &logo_riscv;
|
art->art = &logo_riscv;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ char* get_soc_name(struct system_on_chip* soc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static char* soc_trademark_string[] = {
|
static char* soc_trademark_string[] = {
|
||||||
[SOC_VENDOR_SIFIVE] = "SiFive "
|
[SOC_VENDOR_SIFIVE] = "SiFive ",
|
||||||
|
[SOC_VENDOR_STARFIVE] = "StarFive "
|
||||||
};
|
};
|
||||||
|
|
||||||
void fill_soc(struct system_on_chip* soc, char* soc_name, SOC soc_model, int32_t process) {
|
void fill_soc(struct system_on_chip* soc, char* soc_name, SOC soc_model, int32_t process) {
|
||||||
@@ -77,8 +78,19 @@ bool match_sifive(char* soc_name, struct system_on_chip* soc) {
|
|||||||
SOC_END
|
SOC_END
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool match_starfive(char* soc_name, struct system_on_chip* soc) {
|
||||||
|
SOC_START
|
||||||
|
SOC_EQ(soc_name, "jh7110#", "VisionFive 2", SOC_STARFIVE_VF2, soc, 28) // https://blog.bitsofnetworks.org/benchmarking-risc-v-visionfive-2-vs-the-world.html
|
||||||
|
SOC_EQ(soc_name, "jh7110", "VisionFive 2", SOC_STARFIVE_VF2, soc, 28)
|
||||||
|
SOC_END
|
||||||
|
}
|
||||||
|
|
||||||
struct system_on_chip* parse_soc_from_string(struct system_on_chip* soc) {
|
struct system_on_chip* parse_soc_from_string(struct system_on_chip* soc) {
|
||||||
char* raw_name = soc->raw_name;
|
char* raw_name = soc->raw_name;
|
||||||
|
|
||||||
|
if(match_starfive(raw_name, soc))
|
||||||
|
return soc;
|
||||||
|
|
||||||
match_sifive(raw_name, soc);
|
match_sifive(raw_name, soc);
|
||||||
return soc;
|
return soc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ typedef int32_t SOC;
|
|||||||
|
|
||||||
enum {
|
enum {
|
||||||
SOC_VENDOR_UNKNOWN,
|
SOC_VENDOR_UNKNOWN,
|
||||||
SOC_VENDOR_SIFIVE
|
SOC_VENDOR_SIFIVE,
|
||||||
|
SOC_VENDOR_STARFIVE
|
||||||
};
|
};
|
||||||
|
|
||||||
struct system_on_chip {
|
struct system_on_chip {
|
||||||
|
|||||||
@@ -7,12 +7,15 @@
|
|||||||
enum {
|
enum {
|
||||||
// SIFIVE
|
// SIFIVE
|
||||||
SOC_SIFIVE_U740,
|
SOC_SIFIVE_U740,
|
||||||
|
// STARFIVE
|
||||||
|
SOC_STARFIVE_VF2,
|
||||||
// UNKNOWN
|
// UNKNOWN
|
||||||
SOC_MODEL_UNKNOWN
|
SOC_MODEL_UNKNOWN
|
||||||
};
|
};
|
||||||
|
|
||||||
inline static VENDOR get_soc_vendor_from_soc(SOC soc) {
|
inline static VENDOR get_soc_vendor_from_soc(SOC soc) {
|
||||||
if(soc >= SOC_SIFIVE_U740 && soc <= SOC_SIFIVE_U740) return SOC_VENDOR_SIFIVE;
|
if(soc >= SOC_SIFIVE_U740 && soc <= SOC_SIFIVE_U740) return SOC_VENDOR_SIFIVE;
|
||||||
|
if(soc >= SOC_STARFIVE_VF2 && soc <= SOC_STARFIVE_VF2) return SOC_VENDOR_STARFIVE;
|
||||||
return SOC_VENDOR_UNKNOWN;
|
return SOC_VENDOR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user