From: Steffen Trumtrar <s.trumtrar@xxxxxxxxxxxxxx> 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 | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/commands/firmwareload.c b/commands/firmwareload.c index b735088f61..f2b7a74be0 100644 --- a/commands/firmwareload.c +++ b/commands/firmwareload.c @@ -5,18 +5,23 @@ #include <command.h> #include <getopt.h> #include <firmware.h> +#include <of.h> static int do_firmwareload(int argc, char *argv[]) { int ret, opt; const char *name = NULL, *firmware; struct firmware_mgr *mgr; + int oftree = 0; - while ((opt = getopt(argc, argv, "t:l")) > 0) { + while ((opt = getopt(argc, argv, "t:lo")) > 0) { switch (opt) { case 't': name = optarg; break; + case 'o': + oftree = 1; + break; case 'l': firmwaremgr_list_handlers(); return 0; @@ -30,6 +35,11 @@ static int do_firmwareload(int argc, char *argv[]) firmware = argv[optind]; + if (oftree) { + ret = of_firmware_load_file(firmware); + return ret; + } + mgr = firmwaremgr_find(name); if (!mgr) { @@ -46,6 +56,7 @@ static int do_firmwareload(int argc, char *argv[]) BAREBOX_CMD_HELP_START(firmwareload) BAREBOX_CMD_HELP_TEXT("Options:") BAREBOX_CMD_HELP_OPT("-t <target>", "define the firmware handler by name") +BAREBOX_CMD_HELP_OPT("-o\t", "find firmware definition from devicetree") BAREBOX_CMD_HELP_OPT("-l\t", "list devices capable of firmware loading") BAREBOX_CMD_HELP_END -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox