Zynq driver development strategy

Chris Johns chrisj at rtems.org
Thu Dec 5 00:22:26 UTC 2019


On 5/12/19 3:45 am, Mathew Benson wrote:
> Is there any technical or legal (licensing) reason why I can't just integrate
> the driver code generated by the Xilinx XSDK tool when building a standalone or
> FreeRTOS project?  It's the same code for both.  I did a dependency check and,
> assuming I didn't miss any externs or implicit declarations, the SPI driver code
> is highly coherent and loosely coupled with the rest of the code.  I only have
> to bring in a few files that were not SPI specific.  It looks like I just need
> to basically write a simple interface layer between RTEMS and the Xilinx code
> and the functionality seems fairly complementary.  Over about 15 minutes, I
> added the SPI driver code to my Zynq BSP build and it built with no errors or
> warnings.  I haven't got to actually integrating the RTEMS SPI driver API to the
> Xilinx SPI driver API yet.  This seems like a clear and concise strategy.  Am I
> going to run into a roadblock later?  Either for my own project or as a give
> back to the RTEMS base code.

A fully functional SPI driver for RTEMS would be most welcome.

The initial SDK releases from Xilinx had a strict license that meant we could
not use the BSP and driver code from the SDK in RTEMS. We could not make it
public and we could not control who used it and so we could not meet the license
terms. Joel and I have worked with Xilinx over the years to get the license
changes. I understand there is a BSD variant.

I cannot comment on any generated code or anything related to FreeRTOS, I have
not used either of them.

Is there SPI code in FreeBSD that can be used? That would be my preferred path
if it is available because it integrates vertically.

FYI I used the SDK ethernet driver with the old stack but could not release it
due to the license. It had some bugs that appeared under high load that had not
been fixed after many years. These days with the open license I would be more
encouraged to return the bug fix to Xilinx.

Chris


More information about the devel mailing list