starfive: add mac vendor sub-command

As boards from multiple vendors (Milk-V, StarFive, Pine64) use the mac
command provide a sub-command to set the vendor string.

Reported-by: E. Shattow <lucent@gmail.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt
2024-05-12 06:25:26 +02:00
committed by Leo Yu-Chi Liang
parent 215dc02aee
commit fcaf019c4e

View File

@@ -404,6 +404,24 @@ static void set_product_id(char *string)
update_crc(); update_crc();
} }
/**
* set_vendor() - set vendor name
*
* Takes a pointer to a string representing the vendor name, e.g.
* "StarFive Technology Co., Ltd.", stores it in the vendor field
* of the EEPROM local copy, and updates the CRC of the local copy.
*/
static void set_vendor(char *string)
{
memset(pbuf.eeprom.atom1.data.vstr, 0,
sizeof(pbuf.eeprom.atom1.data.vstr));
strncpy(pbuf.eeprom.atom1.data.vstr,
string, sizeof(pbuf.eeprom.atom1.data.vstr) - 1);
update_crc();
}
const char *get_product_id_from_eeprom(void) const char *get_product_id_from_eeprom(void)
{ {
if (read_eeprom()) if (read_eeprom())
@@ -463,6 +481,9 @@ int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
} else if (!strcmp(cmd, "product_id")) { } else if (!strcmp(cmd, "product_id")) {
set_product_id(argv[2]); set_product_id(argv[2]);
return 0; return 0;
} else if (!strcmp(cmd, "vendor")) {
set_vendor(argv[2]);
return 0;
} }
return CMD_RET_USAGE; return CMD_RET_USAGE;
@@ -586,7 +607,9 @@ U_BOOT_LONGHELP(mac,
"mac bom_revision <A>\n" "mac bom_revision <A>\n"
" - stores a StarFive BOM revision into the local EEPROM copy\n" " - stores a StarFive BOM revision into the local EEPROM copy\n"
"mac product_id <VF7110A1-2228-D008E000-xxxxxxxx>\n" "mac product_id <VF7110A1-2228-D008E000-xxxxxxxx>\n"
" - stores a StarFive product ID into the local EEPROM copy\n"); " - stores a StarFive product ID into the local EEPROM copy\n"
"mac vendor <Vendor Name>\n"
" - set vendor string\n");
U_BOOT_CMD( U_BOOT_CMD(
mac, 3, 1, do_mac, mac, 3, 1, do_mac,