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

Steffen Trumtrar s.trumtrar at pengutronix.de
Tue Jan 26 03:47:07 EST 2021


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.


Steffen

--
Pengutronix e.K.                | Dipl.-Inform. Steffen Trumtrar |
Steuerwalder Str. 21            | https://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