From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lokesh Vutla Date: Tue, 21 May 2019 23:29:21 -0500 Subject: [U-Boot] [PATCH 8/8] cmd: remoteproc: Add support for initializing devices individually In-Reply-To: <20190522042713.14102-9-lokeshvutla@ti.com> References: <20190522042713.14102-1-lokeshvutla@ti.com> <20190522042713.14102-9-lokeshvutla@ti.com> Message-ID: <3214e9db-7138-1354-0352-8a4316042eb2@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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 - 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 [addr] [size]- Load the remote processor with binary\n" > "\t image stored at address [addr] in memory\n" >