mirror of
https://github.com/Dr-Noob/cpufetch.git
synced 2026-03-25 07:50:40 +01:00
[v1.03][RISCV] Add basic Allwinner support
This commit is contained in:
@@ -373,6 +373,8 @@ void choose_ascii_art(struct ascii* art, struct color** cs, struct terminal* ter
|
|||||||
art->art = &logo_sifive;
|
art->art = &logo_sifive;
|
||||||
else if(art->vendor == SOC_VENDOR_STARFIVE)
|
else if(art->vendor == SOC_VENDOR_STARFIVE)
|
||||||
art->art = &logo_starfive;
|
art->art = &logo_starfive;
|
||||||
|
else if(art->vendor == SOC_VENDOR_ALLWINNER)
|
||||||
|
art->art = &logo_allwinner;
|
||||||
else
|
else
|
||||||
art->art = &logo_riscv;
|
art->art = &logo_riscv;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -32,7 +32,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 "
|
[SOC_VENDOR_STARFIVE] = "StarFive ",
|
||||||
|
[SOC_VENDOR_ALLWINNER] = "Allwinner "
|
||||||
};
|
};
|
||||||
|
|
||||||
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) {
|
||||||
@@ -85,12 +86,21 @@ bool match_starfive(char* soc_name, struct system_on_chip* soc) {
|
|||||||
SOC_END
|
SOC_END
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool match_allwinner(char* soc_name, struct system_on_chip* soc) {
|
||||||
|
SOC_START
|
||||||
|
SOC_EQ(soc_name, "sun20i-d1", "D1-H", SOC_ALLWINNER_D1H, soc, 22)
|
||||||
|
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))
|
if(match_starfive(raw_name, soc))
|
||||||
return soc;
|
return soc;
|
||||||
|
|
||||||
|
if(match_allwinner(raw_name, soc))
|
||||||
|
return soc;
|
||||||
|
|
||||||
match_sifive(raw_name, soc);
|
match_sifive(raw_name, soc);
|
||||||
return soc;
|
return soc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ typedef int32_t SOC;
|
|||||||
enum {
|
enum {
|
||||||
SOC_VENDOR_UNKNOWN,
|
SOC_VENDOR_UNKNOWN,
|
||||||
SOC_VENDOR_SIFIVE,
|
SOC_VENDOR_SIFIVE,
|
||||||
SOC_VENDOR_STARFIVE
|
SOC_VENDOR_STARFIVE,
|
||||||
|
SOC_VENDOR_ALLWINNER
|
||||||
};
|
};
|
||||||
|
|
||||||
struct system_on_chip {
|
struct system_on_chip {
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ enum {
|
|||||||
SOC_SIFIVE_U740,
|
SOC_SIFIVE_U740,
|
||||||
// STARFIVE
|
// STARFIVE
|
||||||
SOC_STARFIVE_VF2,
|
SOC_STARFIVE_VF2,
|
||||||
|
// ALLWINNER
|
||||||
|
SOC_ALLWINNER_D1H,
|
||||||
// UNKNOWN
|
// UNKNOWN
|
||||||
SOC_MODEL_UNKNOWN
|
SOC_MODEL_UNKNOWN
|
||||||
};
|
};
|
||||||
@@ -16,6 +18,7 @@ enum {
|
|||||||
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;
|
if(soc >= SOC_STARFIVE_VF2 && soc <= SOC_STARFIVE_VF2) return SOC_VENDOR_STARFIVE;
|
||||||
|
if(soc >= SOC_ALLWINNER_D1H && soc <= SOC_ALLWINNER_D1H) return SOC_VENDOR_ALLWINNER;
|
||||||
return SOC_VENDOR_UNKNOWN;
|
return SOC_VENDOR_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user