On Wed, Jan 27, 2021 at 02:44:21PM +0100, Steffen Trumtrar wrote: > firmwareload can only load a bitstream into an FPGA without any > knowledge of possible additional needs (e.g. FPGA bridges). > > These are defined in the fpga-region nodes in the devicetree. The > fpga-region describes the layout of the FPGA and the bridges it needs > en/disabled. > > Add an option to let firmwareload go via the oftree route and load the > firmware that way. > > Signed-off-by: Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx> > --- > commands/firmwareload.c | 42 +++++++++++++++++++++++++++++++++++------ > 1 file changed, 36 insertions(+), 6 deletions(-) > > diff --git a/commands/firmwareload.c b/commands/firmwareload.c > index b735088f6117..2b1e770662d1 100644 > --- a/commands/firmwareload.c > +++ b/commands/firmwareload.c > @@ -5,18 +5,38 @@ > #include <command.h> > #include <getopt.h> > #include <firmware.h> > +#include <of.h> > > static int do_firmwareload(int argc, char *argv[]) > { > - int ret, opt; > + int opt; > const char *name = NULL, *firmware; > struct firmware_mgr *mgr; > + char *path = NULL; > + char *search_path = NULL; > + char *compatible = NULL; > + int oftree = 0; > > - while ((opt = getopt(argc, argv, "t:l")) > 0) { > + while ((opt = getopt(argc, argv, "t:c:S:D:lo")) > 0) { 'o' is added but not handled. > switch (opt) { > case 't': > name = optarg; > break; > + case 'c': > + compatible = xzalloc(strlen(optarg) + 1); > + strcpy(compatible, optarg); Use xstrdup(). The string is not freed. > + oftree = 1; > + break; > + case 'S': > + search_path = xzalloc(strlen(optarg) + 1); > + strcpy(search_path, optarg); ditto > + oftree = 1; > + break; > + case 'D': > + path = xzalloc(strlen(optarg) + 1); > + strcpy(path, optarg); ditto Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox