[U-Boot] [PATCH v8 4/8] ARM: socfpga: Add FPGA drivers for Arria 10 FPGA bitstream loading
Marek Vasut
marex at denx.de
Thu Feb 14 12:29:01 UTC 2019
On 2/14/19 1:14 PM, Chee, Tien Fong wrote:
> On Thu, 2019-02-14 at 11:41 +0100, Marek Vasut wrote:
>> On 2/14/19 7:44 AM, Chee, Tien Fong wrote:
>>>
>>> On Wed, 2019-02-13 at 17:20 +0100, Marek Vasut wrote:
>>>>
>>>> On 2/13/19 3:18 PM, tien.fong.chee at intel.com wrote:
>>>>>
>>>>>
>>>>> From: Tien Fong Chee <tien.fong.chee at intel.com>
>>>>>
>>>>> Add FPGA driver to support program FPGA with FPGA bitstream
>>>>> loading
>>>>> from
>>>>> filesystem. The driver are designed based on generic firmware
>>>>> loader
>>>>> framework. The driver can handle FPGA program operation from
>>>>> loading FPGA
>>>>> bitstream in flash to memory and then to program FPGA.
>>>>>
>>>>> Signed-off-by: Tien Fong Chee <tien.fong.chee at intel.com>
>>>>>
>>>>> ---
>>>>>
>>>>> changes for v8
>>>>> - Added codes to discern bitstream type based on fpga node
>>>>> name.
>>>>>
>>>>> changes for v7
>>>>> - Restructure the FPGA driver to support both peripheral
>>>>> bitstream
>>>>> and core
>>>>> bitstream bundled into FIT image.
>>>>> - Support loadable property for core bitstream. User can set
>>>>> loadable
>>>>> in DDR for better performance. This loading would be done in
>>>>> one
>>>>> large
>>>>> chunk instead of chunk by chunk loading with small memory
>>>>> buffer.
>>>>> ---
>>>>> arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts | 17 +
>>>>> .../include/mach/fpga_manager_arria10.h | 39 +-
>>>>> drivers/fpga/socfpga_arria10.c | 467
>>>>> ++++++++++++++++++++-
>>>>> 3 files changed, 500 insertions(+), 23 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts
>>>>> b/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts
>>>>> index 998d811..14f1967 100644
>>>>> --- a/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts
>>>>> +++ b/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts
> [...]
>
>>>>> - * FPGA Manager to program the FPGA. This is the interface
>>>>> used by
>>>>> FPGA driver.
>>>>> - * Return 0 for sucess, non-zero for error.
>>>>> - */
>>>>> +char *get_fpga_filename(const void *fdt, int *len)
>>>>> +{
>>>>> + char *fpga_filename = NULL;
>>>>> + int node_offset;
>>>>> +
>>>>> + fdtdec_find_aliases_for_id(gd->fdt_blob, "fpga_mgr",
>>>>> + COMPAT_ALTERA_SOCFPGA_FPGA0,
>>>>> + &node_offset, 1);
>>>>> +
>>>>> + ofnode fpgamgr_node = offset_to_ofnode(node_offset);
>>>>> +
>>>>> + if (ofnode_valid(fpgamgr_node))
>>>>> + fpga_filename = (char
>>>>> *)ofnode_read_string(fpgamgr_node,
>>>>> + "altr,bitstrea
>>>>> m");
>>>>> +
>>>>> +
>>>> Why is the cast needed ?
>>> The return string would be eventually set to the char *filename in
>>> common struct fpga_fsinfo. So, the cast here is to avoid the
>>> warning
>>> from compiler.
>> I presume if the compiler generates a warning, it's for a reason.
>> What
>> warning is that ?
> drivers/fpga/socfpga_arria10.c: In function 'get_fpga_filename':
> drivers/fpga/socfpga_arria10.c:466:17: warning: assignment discards
> 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
> fpga_filename = ofnode_read_string(fpgamgr_node,
Add missing const then ?
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list