[PATCH 10/13] of: of_firmware: add support for fpga bridges

Sascha Hauer sha at pengutronix.de
Tue Jan 26 06:02:02 EST 2021


On Tue, Jan 26, 2021 at 09:47:07AM +0100, Steffen Trumtrar wrote:
> 
> Sascha Hauer <sha at pengutronix.de> writes:
> 
> > On Thu, Jan 21, 2021 at 12:29:55PM +0100, Steffen Trumtrar wrote:
> >> From: Steffen Trumtrar <s.trumtrar at pengutronix.de>
> >>
> >> Add support for potentially defined FPGA-bridges in the overlay.
> >>
> >> While at it also add support for loading the firmware directly via a
> >> path instead of 'needing' an overlay for that.
> >> The direct loading will be done with the existent firmwareload command.
> >>
> >> Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
> >> ---
> >>  drivers/of/Makefile      |  3 +-
> >>  drivers/of/of_firmware.c | 88 ++++++++++++++++++++++++++++++++++++----
> >>  include/of.h             | 21 +++++++---
> >>  3 files changed, 96 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/drivers/of/Makefile b/drivers/of/Makefile
> >> index b6847752d2..6199c9791f 100644
> >> --- a/drivers/of/Makefile
> >> +++ b/drivers/of/Makefile
> >> @@ -6,4 +6,5 @@ obj-y += partition.o
> >>  obj-y += of_net.o
> >>  obj-$(CONFIG_MTD) += of_mtd.o
> >>  obj-$(CONFIG_OF_BAREBOX_DRIVERS) += barebox.o
> >> -obj-$(CONFIG_OF_OVERLAY) += overlay.o resolver.o of_firmware.o
> >> +obj-$(CONFIG_OF_OVERLAY) += overlay.o resolver.o
> >> +obj-$(CONFIG_FIRMWARE) += of_firmware.o
> >> diff --git a/drivers/of/of_firmware.c b/drivers/of/of_firmware.c
> >> index 096f84572e..ef0ccd0221 100644
> >> --- a/drivers/of/of_firmware.c
> >> +++ b/drivers/of/of_firmware.c
> >> @@ -4,12 +4,52 @@
> >>   */
> >>  #include <common.h>
> >>  #include <firmware.h>
> >> +#include <fpga-bridge.h>
> >>  #include <of.h>
> >>
> >>  struct overlay_info {
> >>  	const char *firmware_path;
> >>  };
> >>
> >> +#ifdef CONFIG_FPGA_BRIDGE
> >
> > Trailing whitespace here.
> >
> 
> Meh :(
> 
> >> +int of_firmware_load_file(const char *path)
> >> +{
> >> +	int err;
> >> +	struct device_node *target;
> >> +
> >> +	target = of_find_compatible_node(NULL, NULL, "fpga-region");
> >
> > This assumes there is only one node compatible to fpga-region. What
> > about others?
> 
> Ah, right, it is actually allowed to have multiple regions in one FPGA.
> I didn't think about that.

Also multiple regions in multiple FPGAs

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 |



More information about the barebox mailing list