toradex: tdx-cfg-block: rework carrier board name handling
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 <max.krummenacher@toradex.com> Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
This commit is contained in:
committed by
Tom Rini
parent
94757b47f1
commit
39e521f756
@@ -142,11 +142,17 @@ const struct toradex_som toradex_modules[] = {
|
||||
[70] = { "Verdin iMX8M Plus Quad 8GB WB IT", TARGET_IS_ENABLED(VERDIN_IMX8MP) },
|
||||
};
|
||||
|
||||
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[] = {
|
||||
@@ -160,6 +166,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;
|
||||
@@ -639,10 +658,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);
|
||||
|
||||
@@ -101,6 +101,7 @@ enum {
|
||||
enum {
|
||||
DAHLIA = 155,
|
||||
VERDIN_DEVELOPMENT_BOARD = 156,
|
||||
YAVIA = 173,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -109,7 +110,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;
|
||||
@@ -119,6 +119,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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user