From patchwork Tue Jul 18 09:07:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrejs Cainikovs X-Patchwork-Id: 1809069 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=RK9qTXpj; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4R4tQX30gjz20Cs for ; Tue, 18 Jul 2023 19:08:04 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2FFD8866E1; Tue, 18 Jul 2023 11:07:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="RK9qTXpj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D7F96866C8; Tue, 18 Jul 2023 11:07:43 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 6B4AD866C2 for ; Tue, 18 Jul 2023 11:07:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=andrejs.cainikovs@gmail.com Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-4fb761efa7aso8677561e87.0 for ; Tue, 18 Jul 2023 02:07:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689671259; x=1692263259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SJ2sYngQ7Fe7y4i97EnYY65ybHNwoSWFryzhFQq9Jzs=; b=RK9qTXpjoqNS1ZmVSPRsj/F3jPBhQdHujZx90oUkqRFCto06uobY7pnDL/ncUxZlF+ oi0jCx7DPTk2bFtrBE4zyeDMJeR6mL5O0iegIrPZyItDPgn+BtLu+My0EhgYMoHnYGH0 8mTFKXWImFKHwCPBy/vpP3G22CcKzD6NdeYsuknTzUtgYpjbrgWiy1YIByHC+vC9BxRZ 9sduaOp9tiXVI9gBMq2sWfZsjXSLkmmTHS0baluqJPDOhFfQZlxVygZV4FqxGyk0hRy1 h+FF1+PjYcjlRbgJcfZ+NwqV95aA2FdRoxVTbELccsBUgOltFkOAKWJLHtU/VUE90ftY psnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689671259; x=1692263259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SJ2sYngQ7Fe7y4i97EnYY65ybHNwoSWFryzhFQq9Jzs=; b=ka+Wx0zGTKdJ8fepdqgMbH9SYw/ldqzAHyXk+X3V6xvwx6mgd+hQ/coWAVpmnLJW5N dUa7M8WcrCnDKRW5a/YEoCv1+4dMc91vGekX/NpEj2NHJHvhKuUwzs9H+rBSLGQpV2fq eS+Pl9HFz/YgYOYF5dAjw/mnp27an9i5pLKw++wdrV7Vqj7PPIxdZTSH+GjoBS977od3 xQQCu4cDZmJjKuBRspRTRkRn3t/IFhjOEVakDrutS8b6TSyGUAni3TUZOeq+sGa/b5W5 f8ewQ5HmPYCh2ctd1N76X2CZ9AykYqJeHcrKZF17OjmOvTTwSJ+K7Ff3GKvl63ZkhMuF 3KXw== X-Gm-Message-State: ABy/qLYrtdVmx9hiTyyLeKkVRzHTQrTnt45ELRFoAL5B7V/3L9gxpy63 +JF4Gm2+UZ8yDmQQYbCb0U/k7xqwlXk= X-Google-Smtp-Source: APBJJlHRbJVm1b9Ha55+EWW74hIV9TXk+z36ZRwpWcT+ZHrpMurkpzXx0NOqLfaOhp3IpexzFqIYjg== X-Received: by 2002:a2e:9992:0:b0:2b6:d77b:92b8 with SMTP id w18-20020a2e9992000000b002b6d77b92b8mr9823267lji.16.1689671259148; Tue, 18 Jul 2023 02:07:39 -0700 (PDT) Received: from andrejs-nb.int.toradex.com (46-126-163-79.dynamic.hispeed.ch. [46.126.163.79]) by smtp.gmail.com with ESMTPSA id n23-20020a7bc5d7000000b003fc06169abdsm1662620wmk.2.2023.07.18.02.07.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jul 2023 02:07:38 -0700 (PDT) From: Andrejs Cainikovs X-Google-Original-From: Andrejs Cainikovs To: u-boot@lists.denx.de Cc: Andrejs Cainikovs , Max Krummenacher Subject: [PATCH v1 2/3] toradex: tdx-cfg-block: rework carrier board name handling Date: Tue, 18 Jul 2023 11:07:33 +0200 Message-Id: <20230718090734.20357-3-andrejs.cainikovs@toradex.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718090734.20357-1-andrejs.cainikovs@toradex.com> References: <20230718090734.20357-1-andrejs.cainikovs@toradex.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean From: Max Krummenacher Rework the rather big array of zero length strings with 4 entries of actual carrier board names to a array of structs which ties a pid4 to its correspondent human readable string. Provide an accessor to get the string for a given PID4. Rework the user of the information to use the accessor. Note that check_pid8_sanity() is used for early samples of Dahlia and the development board. Yavia isn't affected. Signed-off-by: Max Krummenacher Signed-off-by: Andrejs Cainikovs --- board/toradex/common/tdx-cfg-block.c | 36 +++++++++++++++++++++------- board/toradex/common/tdx-cfg-block.h | 3 ++- board/toradex/common/tdx-common.c | 6 ++--- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 2a55e0c6916..accc48be8ff 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -141,11 +141,17 @@ const struct toradex_som toradex_modules[] = { [68] = { "Verdin iMX8M Mini Quad 2GB WB IT", TARGET_IS_ENABLED(VERDIN_IMX8MM) }, }; -const char * const toradex_carrier_boards[] = { - [0] = "UNKNOWN CARRIER BOARD", - [155] = "Dahlia", - [156] = "Verdin Development Board", - [173] = "Yavia", +struct pid4list { + int pid4; + char * const name; +}; + +const struct pid4list toradex_carrier_boards[] = { + /* the code assumes unknown at index 0 */ + {0, "UNKNOWN CARRIER BOARD"}, + {DAHLIA, "Dahlia"}, + {VERDIN_DEVELOPMENT_BOARD, "Verdin Development Board"}, + {YAVIA, "Yavia"}, }; const char * const toradex_display_adapters[] = { @@ -159,6 +165,19 @@ const u32 toradex_ouis[] = { [1] = 0x8c06cbUL, }; +const char * const get_toradex_carrier_boards(int pid4) +{ + int i, index = 0; + + for (i = 1; i < ARRAY_SIZE(toradex_carrier_boards); i++) { + if (pid4 == toradex_carrier_boards[i].pid4) { + index = i; + break; + } + } + return toradex_carrier_boards[index].name; +} + static u32 get_serial_from_mac(struct toradex_eth_addr *eth_addr) { int i; @@ -638,10 +657,11 @@ static int get_cfgblock_carrier_interactive(void) int ret = 0; printf("Supported carrier boards:\n"); - printf("CARRIER BOARD NAME\t\t [ID]\n"); + printf("%30s\t[ID]\n", "CARRIER BOARD NAME"); for (int i = 0; i < ARRAY_SIZE(toradex_carrier_boards); i++) - if (toradex_carrier_boards[i]) - printf("%s \t\t [%d]\n", toradex_carrier_boards[i], i); + printf("%30s\t[%d]\n", + toradex_carrier_boards[i].name, + toradex_carrier_boards[i].pid4); sprintf(message, "Choose your carrier board (provide ID): "); len = cli_readline(message); diff --git a/board/toradex/common/tdx-cfg-block.h b/board/toradex/common/tdx-cfg-block.h index 32e4c6f6879..6bf587c2347 100644 --- a/board/toradex/common/tdx-cfg-block.h +++ b/board/toradex/common/tdx-cfg-block.h @@ -99,6 +99,7 @@ enum { enum { DAHLIA = 155, VERDIN_DEVELOPMENT_BOARD = 156, + YAVIA = 173, }; enum { @@ -107,7 +108,6 @@ enum { }; extern const struct toradex_som toradex_modules[]; -extern const char * const toradex_carrier_boards[]; extern bool valid_cfgblock; extern struct toradex_hw tdx_hw_tag; extern struct toradex_hw tdx_car_hw_tag; @@ -117,6 +117,7 @@ extern u32 tdx_car_serial; int read_tdx_cfg_block(void); int read_tdx_cfg_block_carrier(void); +const char * const get_toradex_carrier_boards(int pid4); int try_migrate_tdx_cfg_block_carrier(void); diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c index 071961f3d93..d1449143977 100644 --- a/board/toradex/common/tdx-common.c +++ b/board/toradex/common/tdx-common.c @@ -31,7 +31,7 @@ static char tdx_board_rev_str[MODULE_VER_STR_LEN + MODULE_REV_STR_LEN + 1]; #ifdef CONFIG_TDX_CFG_BLOCK_EXTRA static char tdx_car_serial_str[SERIAL_STR_LEN + 1]; static char tdx_car_rev_str[MODULE_VER_STR_LEN + MODULE_REV_STR_LEN + 1]; -static char *tdx_carrier_board_name; +static const char *tdx_carrier_board_name; #endif #if defined(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) @@ -125,8 +125,8 @@ int show_board_info(void) printf("MISSING TORADEX CARRIER CONFIG BLOCKS\n"); try_migrate_tdx_cfg_block_carrier(); } else { - tdx_carrier_board_name = (char *) - toradex_carrier_boards[tdx_car_hw_tag.prodid]; + tdx_carrier_board_name = + get_toradex_carrier_boards(tdx_car_hw_tag.prodid); snprintf(tdx_car_serial_str, sizeof(tdx_car_serial_str), "%08u", tdx_car_serial);