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>
This commit is contained in:
Weizhao Ouyang 2024-03-04 14:42:42 +00:00 committed by Tom Rini
parent 1da4d327d4
commit 9a6e975c7c
2 changed files with 28 additions and 9 deletions

View file

@ -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"
);

View 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.