[U-Boot] [PATCH 8/8] cmd: remoteproc: Add support for initializing devices individually
Lokesh Vutla
lokeshvutla at ti.com
Wed May 22 04:29:21 UTC 2019
On 21/05/19 11:27 PM, Lokesh Vutla wrote:
> 'rproc init' does the probe and initialization of all the available
> remoteproc devices in the system. This doesn't allow the flexibility
> to initialize the remote cores needed as per use case. In order
> to provide flexibility, update 'rproc init' command to accept one
> more parameter with rproc id which when passed initializes only
> that specific core. If no id is passed, command will initializes
> all the cores which is compatible with the existing behaviour.
>
> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
Oops. This should be part of my next series. Will re send the series by dropping
the patch.
Thanks and regards,
Lokesh
> ---
> cmd/remoteproc.c | 23 ++++++++++++++++++-----
> 1 file changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/cmd/remoteproc.c b/cmd/remoteproc.c
> index 81463f36b6..689e1a6a1d 100644
> --- a/cmd/remoteproc.c
> +++ b/cmd/remoteproc.c
> @@ -68,12 +68,22 @@ static int print_remoteproc_list(void)
> static int do_rproc_init(cmd_tbl_t *cmdtp, int flag, int argc,
> char *const argv[])
> {
> + int id;
> +
> if (rproc_is_initialized()) {
> printf("\tRemote Processors are already initialized\n");
> - } else {
> + return CMD_RET_FAILURE;
> + }
> +
> + if (argc == 1) {
> if (!rproc_init())
> return 0;
> - printf("Few Remote Processors failed to be initalized\n");
> + printf("Few Remote Processors failed to be initialized\n");
> + } else if (argc == 2) {
> + id = (int)simple_strtoul(argv[1], NULL, 10);
> + if (!rproc_dev_init(id))
> + return 0;
> + printf("Remote Processor %d failed to be initialized\n", id);
> }
>
> return CMD_RET_FAILURE;
> @@ -203,8 +213,10 @@ static int do_remoteproc_wrapper(cmd_tbl_t *cmdtp, int flag, int argc,
> }
>
> static cmd_tbl_t cmd_remoteproc_sub[] = {
> - U_BOOT_CMD_MKENT(init, 0, 1, do_rproc_init,
> - "Enumerate and initialize all processors", ""),
> + U_BOOT_CMD_MKENT(init, 1, 1, do_rproc_init,
> + "Enumerate and initialize the remote processor(s)",
> + "id - ID of the remote processor\n"
> + "If id is not passed, initialize all the remote processors"),
> U_BOOT_CMD_MKENT(list, 0, 1, do_remoteproc_list,
> "list remote processors", ""),
> U_BOOT_CMD_MKENT(load, 5, 1, do_remoteproc_load,
> @@ -270,7 +282,8 @@ U_BOOT_CMD(rproc, 5, 1, do_remoteproc,
> "\t\tNote: Services are dependent on the driver capability\n"
> "\t\t 'list' command shows the capability of each device\n"
> "\n\tSubcommands:\n"
> - "\tinit - Enumerate and initalize the remote processors\n"
> + "\tinit <id> - Enumerate and initalize the remote processor.\n"
> + "\t if id is not passed, initialize all the remote prcessors\n"
> "\tlist - list available remote processors\n"
> "\tload <id> [addr] [size]- Load the remote processor with binary\n"
> "\t image stored at address [addr] in memory\n"
>
More information about the U-Boot
mailing list