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; struct udevice *dev;
int ret = CMD_RET_SUCCESS; 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) { switch (argc) {
case 1: case 1:
devnum = 0; devnum = 0;
@ -56,12 +72,9 @@ static int do_rng(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return ret; return ret;
} }
U_BOOT_LONGHELP(rng,
"[dev [n]]\n"
" - print n random bytes(max 64) read from dev\n");
U_BOOT_CMD( U_BOOT_CMD(
rng, 3, 0, do_rng, rng, 3, 0, do_rng,
"print bytes from the hardware random number generator", "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 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 prints the random bytes read on the console. A maximum of 64 bytes can
be read in one invocation of the command. be read in one invocation of the command.
devnum dev
The RNG device from which the random bytes are to be The RNG device from which the random bytes are to be
read. Defaults to 0. read. Defaults to 0.