]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
cmd: rng: Add rng list command
authorWeizhao Ouyang <o451686892@gmail.com>
Mon, 4 Mar 2024 14:42:42 +0000 (14:42 +0000)
committerTom Rini <trini@konsulko.com>
Wed, 13 Mar 2024 16:40:43 +0000 (12:40 -0400)
The 'rng list' command probes all RNG devices and list those devices
that are successfully probed. Also update the help info.

Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
cmd/rng.c
doc/usage/cmd/rng.rst

index 52f722c7af897b5aac434567b58bbaff4226cea4..b073a6c8492ea90c96e24cfa66c95ea985466c10 100644 (file)
--- a/cmd/rng.c
+++ b/cmd/rng.c
@@ -19,6 +19,22 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        struct udevice *dev;
        int ret = CMD_RET_SUCCESS;
 
+       if (argc == 2 && !strcmp(argv[1], "list")) {
+               int idx = 0;
+
+               uclass_foreach_dev_probe(UCLASS_RNG, dev) {
+                       idx++;
+                       printf("RNG #%d - %s\n", dev->seq_, dev->name);
+               }
+
+               if (!idx) {
+                       log_err("No RNG device\n");
+                       return CMD_RET_FAILURE;
+               }
+
+               return CMD_RET_SUCCESS;
+       }
+
        switch (argc) {
        case 1:
                devnum = 0;
@@ -56,12 +72,9 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        return ret;
 }
 
-U_BOOT_LONGHELP(rng,
-       "[dev [n]]\n"
-       "  - print n random bytes(max 64) read from dev\n");
-
 U_BOOT_CMD(
        rng, 3, 0, do_rng,
        "print bytes from the hardware random number generator",
-       rng_help_text
+       "list         - list all the probed rng devices\n"
+       "rng [dev] [n]    - print n random bytes(max 64) read from dev\n"
 );
index 274e4d88df352e7e1f39b6ca9d1d443f24a6584f..4a61e33d272642d6a6d7d1206bf5fdf06fee6f4b 100644 (file)
@@ -11,16 +11,22 @@ Synopsis
 
 ::
 
-    rng [devnum [n]]
+    rng list
+    rng [dev] [n]
 
-Description
------------
+rng list
+--------
+
+List all the probed rng devices.
+
+rng [dev] [n]
+-------------
 
 The *rng* command reads the random number generator(RNG) device and
 prints the random bytes read on the console. A maximum of 64 bytes can
 be read in one invocation of the command.
 
-devnum
+dev
     The RNG device from which the random bytes are to be
     read. Defaults to 0.