]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
eeprom: SiFive Unmatched: re-implement mac command
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 30 Sep 2023 12:01:44 +0000 (14:01 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 16 Oct 2023 14:22:11 +0000 (10:22 -0400)
The different implementations of the mac command have board or vendor
specific sub-commands.

Add the command definition specific to the SiFive HiFive Unmatched board.

Don't call cmd_usage() directly but return CMD_RET_USAGE instead.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
board/sifive/unmatched/hifive-platform-i2c-eeprom.c

index 2b985b9b228ef64bd087339adfde9a33ad131492..3c7ba4e0d3fc6f8067c0fc7e503837a8f714c887 100644 (file)
@@ -426,7 +426,7 @@ int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        }
 
        if (argc > 3)
-               return cmd_usage(cmdtp);
+               return CMD_RET_USAGE;
 
        cmd = argv[1];
 
@@ -443,7 +443,7 @@ int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        }
 
        if (argc != 3)
-               return cmd_usage(cmdtp);
+               return CMD_RET_USAGE;
 
        if (!is_match_magic()) {
                printf("Please read the EEPROM ('read_eeprom') and/or initialize the EEPROM ('initialize') first.\n");
@@ -470,7 +470,7 @@ int do_mac(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
                return 0;
        }
 
-       return cmd_usage(cmdtp);
+       return CMD_RET_USAGE;
 }
 
 /**
@@ -551,3 +551,27 @@ u8 get_pcb_revision_from_eeprom(void)
 
        return be.pcb_revision;
 }
+
+#ifndef CONFIG_SPL_BUILD
+
+#ifdef CONFIG_SYS_LONGHELP
+static char booti_help_text[] =
+       "- displays memory copy of EEPROM\n"
+       "mac read_eeprom - reads EEPROM into memory\n"
+       "mac initialize - initializes memory copy with magic number\n"
+       "mac write_eeprom -  writes the EEPROM from memory\n"
+       "mac manuf_test_status [unknown|pass|fail] - sets test status in memory\n"
+       "mac_address <addr> - sets MAC address in memory\n"
+       "mac pcb_revision <rev> - sets PCB revision in memory\n"
+       "mac bom_variant <var> - sets BOM variant in memory\n"
+       "mac bom_revision <rev> - sets BOM revision in memory\n";
+#else
+       "";
+#endif
+
+U_BOOT_CMD(
+       mac, 3, 1,  do_mac,
+       "display and program the board revision and MAC address in EEPROM",
+       booti_help_text);
+
+#endif /* CONFIG_SPL_BUILD */