summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWeizhao Ouyang <o451686892@gmail.com>2024-03-04 14:42:42 +0000
committerTom Rini <trini@konsulko.com>2024-03-13 12:40:43 -0400
commit9a6e975c7c41f2fb67d7ef11fceb28942a4a4b4c (patch)
tree9626634b80e030412801805f913668405c91fa2e
parent1da4d327d49bb068bdc69974e0dee1391dfb30e6 (diff)
cmd: rng: Add rng list command
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>
-rw-r--r--cmd/rng.c23
-rw-r--r--doc/usage/cmd/rng.rst14
2 files changed, 28 insertions, 9 deletions
diff --git a/cmd/rng.c b/cmd/rng.c
index 52f722c7af8..b073a6c8492 100644
--- 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"
);
diff --git a/doc/usage/cmd/rng.rst b/doc/usage/cmd/rng.rst
index 274e4d88df3..4a61e33d272 100644
--- a/doc/usage/cmd/rng.rst
+++ b/doc/usage/cmd/rng.rst
@@ -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.