From: Steffen Trumtrar <s.trumt...@pengutronix.de>

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.trumt...@pengutronix.de>
---
 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@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to