On Wed, Jun 16, 2021 at 08:32:44AM +0200, 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> > > --- > > v2->v3 - remove unused arg 'o' > - use xstrdup() > --- > commands/firmwareload.c | 39 +++++++++++++++++++++++++++++++++------ > 1 file changed, 33 insertions(+), 6 deletions(-) > > diff --git a/commands/firmwareload.c b/commands/firmwareload.c > index b735088f6117..c2a017c45479 100644 > --- a/commands/firmwareload.c > +++ b/commands/firmwareload.c > @@ -5,18 +5,35 @@ > #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:l")) > 0) { > switch (opt) { > case 't': > name = optarg; > break; > + case 'c': > + compatible = xstrdup(optarg); > + oftree = 1; > + break; > + case 'S': > + search_path = xstrdup(optarg); > + oftree = 1; > + break; > + case 'D': > + path = xstrdup(optarg); As mentioned to v2 these strings are not freed. Anyway, duplicating them is not necessary, a plain path = optarg is enough. Will fix that up. 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