From 27a0c42190209c01e9e125ca7c9125b0aa719873 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Fri, 17 Dec 2021 22:38:07 +0100 Subject: [PATCH] [v1.01] Add Google Tensor (reported by #134) --- src/arm/soc.c | 9 ++++++- src/arm/soc.h | 3 ++- src/arm/socs.h | 5 +++- src/common/ascii.h | 63 ++++++++++++++++++++++++++++---------------- src/common/printer.c | 2 ++ 5 files changed, 56 insertions(+), 26 deletions(-) diff --git a/src/arm/soc.c b/src/arm/soc.c index 7484955..1a6bc79 100644 --- a/src/arm/soc.c +++ b/src/arm/soc.c @@ -18,7 +18,8 @@ static char* soc_trademark_string[] = { [SOC_VENDOR_KIRIN] = "Kirin ", [SOC_VENDOR_BROADCOM] = "Broadcom BCM", [SOC_VENDOR_APPLE] = "Apple ", - [SOC_VENDOR_ALLWINNER] = "Allwinner " + [SOC_VENDOR_ALLWINNER] = "Allwinner ", + [SOC_VENDOR_GOOGLE] = "Google " }; static char* soc_rpi_string[] = { @@ -513,6 +514,12 @@ bool match_special(char* soc_name, struct system_on_chip* soc) { return true; } + // Google Pixel 6 uses this name + if((tmp = strstr(soc_name, "oriole")) != NULL) { + fill_soc(soc, "Tensor", SOC_GOOGLE_TENSOR, 5); + return true; + } + return false; } diff --git a/src/arm/soc.h b/src/arm/soc.h index 257fc4a..49ee0e3 100644 --- a/src/arm/soc.h +++ b/src/arm/soc.h @@ -14,7 +14,8 @@ enum { SOC_VENDOR_KIRIN, SOC_VENDOR_BROADCOM, SOC_VENDOR_APPLE, - SOC_VENDOR_ALLWINNER + SOC_VENDOR_ALLWINNER, + SOC_VENDOR_GOOGLE }; struct system_on_chip { diff --git a/src/arm/socs.h b/src/arm/socs.h index 668c4f3..9ba15ff 100644 --- a/src/arm/socs.h +++ b/src/arm/socs.h @@ -277,7 +277,9 @@ enum { SOC_ALLWINNER_R16, SOC_ALLWINNER_R40, SOC_ALLWINNER_R58, - SOC_ALLWINNER_R328 + SOC_ALLWINNER_R328, + // GOOGLE + SOC_GOOGLE_TENSOR }; inline static VENDOR get_soc_vendor_from_soc(SOC soc) { @@ -288,6 +290,7 @@ inline static VENDOR get_soc_vendor_from_soc(SOC soc) { 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; + else if(soc == SOC_GOOGLE_TENSOR) return SOC_VENDOR_GOOGLE; return SOC_VENDOR_UNKNOWN; } diff --git a/src/common/ascii.h b/src/common/ascii.h index 01891e6..c516500 100644 --- a/src/common/ascii.h +++ b/src/common/ascii.h @@ -33,7 +33,7 @@ struct ascii_logo { uint32_t width; uint32_t height; bool replace_blocks; - char color_ascii[3][100]; + char color_ascii[4][100]; char color_text[2][100]; }; @@ -236,6 +236,22 @@ $C1 ##### ##. \ $C1 ###########. \ $C1 " +#define ASCII_GOOGLE \ +"$C1 \ +$C1 ############ \ +$C1 ################### \ +$C1 ##################### \ +$C1 ######## \ +$C2 ###$C1#### \ +$C2 #######$C3 ############## \ +$C2 #######$C3 ############## \ +$C2 #######$C3 ############## \ +$C2 ###$C4####$C3 ####### \ +$C4 ######## $C3######## \ +$C4 #################$C3####### \ +$C4 ###############$C3#### \ +$C4 ########### " + // --------------------- LONG LOGOS ------------------------- // #define ASCII_AMD_L \ "$C1 \ @@ -322,28 +338,29 @@ $C1 ############ ################ ######### ## ######### " typedef struct ascii_logo asciiL; -// ------------------------------------------------------------------------------------------------------+ -// | LOGO | W | H | REPLACE | COLORS LOGO (>0 && <10) | COLORS TEXT (=2) | -// ------------------------------------------------------------------------------------------------------+ -asciiL logo_amd = { ASCII_AMD, 39, 15, false, {C_FG_WHITE, C_FG_GREEN}, {C_FG_WHITE, C_FG_GREEN} }; -asciiL logo_intel = { ASCII_INTEL, 48, 14, false, {C_FG_CYAN}, {C_FG_CYAN, C_FG_WHITE} }; -asciiL logo_intel_new = { ASCII_INTEL_NEW, 51, 9, false, {C_FG_CYAN}, {C_FG_CYAN, C_FG_WHITE} }; -asciiL logo_snapd = { ASCII_SNAPD, 39, 16, false, {C_FG_RED, C_FG_WHITE}, {C_FG_RED, C_FG_WHITE} }; -asciiL logo_mtk = { ASCII_MTK, 59, 5, false, {C_FG_BLUE, C_FG_YELLOW}, {C_FG_BLUE, C_FG_YELLOW} }; -asciiL logo_exynos = { ASCII_EXYNOS, 22, 13, true, {C_BG_BLUE, C_FG_WHITE}, {C_FG_BLUE, C_FG_WHITE} }; -asciiL logo_kirin = { ASCII_KIRIN, 53, 12, false, {C_FG_RED}, {C_FG_WHITE, C_FG_RED} }; -asciiL logo_broadcom = { ASCII_BROADCOM, 44, 19, false, {C_FG_WHITE, C_FG_RED}, {C_FG_WHITE, C_FG_RED} }; -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 } }; +// ------------------------------------------------------------------------------------------------------------------+ +// | LOGO | W | H | REPLACE | COLORS LOGO (>0 && <10) | COLORS TEXT (=2) | +// ------------------------------------------------------------------------------------------------------------------+ +asciiL logo_amd = { ASCII_AMD, 39, 15, false, {C_FG_WHITE, C_FG_GREEN}, {C_FG_WHITE, C_FG_GREEN} }; +asciiL logo_intel = { ASCII_INTEL, 48, 14, false, {C_FG_CYAN}, {C_FG_CYAN, C_FG_WHITE} }; +asciiL logo_intel_new = { ASCII_INTEL_NEW, 51, 9, false, {C_FG_CYAN}, {C_FG_CYAN, C_FG_WHITE} }; +asciiL logo_snapd = { ASCII_SNAPD, 39, 16, false, {C_FG_RED, C_FG_WHITE}, {C_FG_RED, C_FG_WHITE} }; +asciiL logo_mtk = { ASCII_MTK, 59, 5, false, {C_FG_BLUE, C_FG_YELLOW}, {C_FG_BLUE, C_FG_YELLOW} }; +asciiL logo_exynos = { ASCII_EXYNOS, 22, 13, true, {C_BG_BLUE, C_FG_WHITE}, {C_FG_BLUE, C_FG_WHITE} }; +asciiL logo_kirin = { ASCII_KIRIN, 53, 12, false, {C_FG_RED}, {C_FG_WHITE, C_FG_RED} }; +asciiL logo_broadcom = { ASCII_BROADCOM, 44, 19, false, {C_FG_WHITE, C_FG_RED}, {C_FG_WHITE, C_FG_RED} }; +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 } }; +asciiL logo_google = { ASCII_GOOGLE, 34, 14, false, {C_FG_RED, C_FG_YELLOW, C_FG_BLUE, C_FG_GREEN}, {C_FG_BLUE} }; -// 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} }; -asciiL logo_intel_l_new = { ASCII_INTEL_L_NEW, 57, 14, true, {C_BG_CYAN, C_BG_WHITE, C_BG_BLUE}, {C_FG_CYAN, C_FG_WHITE} }; -asciiL logo_arm_l = { ASCII_ARM_L, 60, 8, true, {C_BG_CYAN}, {C_FG_WHITE, C_FG_CYAN} }; -asciiL logo_ibm_l = { ASCII_IBM_L, 62, 13, true, {C_BG_CYAN, C_FG_WHITE}, {C_FG_CYAN, C_FG_WHITE} }; -asciiL logo_unknown = { NULL, 0, 0, false, {COLOR_NONE}, {COLOR_NONE, COLOR_NONE} }; +// 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} }; +asciiL logo_intel_l_new = { ASCII_INTEL_L_NEW, 57, 14, true, {C_BG_CYAN, C_BG_WHITE, C_BG_BLUE}, {C_FG_CYAN, C_FG_WHITE} }; +asciiL logo_arm_l = { ASCII_ARM_L, 60, 8, true, {C_BG_CYAN}, {C_FG_WHITE, C_FG_CYAN} }; +asciiL logo_ibm_l = { ASCII_IBM_L, 62, 13, true, {C_BG_CYAN, C_FG_WHITE}, {C_FG_CYAN, C_FG_WHITE} }; +asciiL logo_unknown = { NULL, 0, 0, false, {COLOR_NONE}, {COLOR_NONE, COLOR_NONE} }; #endif diff --git a/src/common/printer.c b/src/common/printer.c index bb0c672..24504f6 100644 --- a/src/common/printer.c +++ b/src/common/printer.c @@ -355,6 +355,8 @@ void choose_ascii_art(struct ascii* art, struct color** cs, struct terminal* ter art->art = &logo_apple; else if(art->vendor == SOC_VENDOR_ALLWINNER) art->art = &logo_allwinner; + else if(art->vendor == SOC_VENDOR_GOOGLE) + art->art = &logo_google; else { art->art = choose_ascii_art_aux(&logo_arm_l, &logo_arm, term, lf); }