I'm new to the Zynq devices and also to linux and the Yocto project. I now have a project where I need to implement a custom FPGA IP block and use it from a yocto generated linux distribution. Obviously I will have to write the linux drivers for that custom IP. But I'm not able to find a clear explanation how the workflow for such a project may look like.
I found some old tutorials but I'm not sure if they are still the way to go, so an up-to-date best practice workflow would be great.
What I did so far: I created a test project in Vivado and created a small led example by passing through the FPGA block in a Microzed + carrier board. Then I exported the HW from Vivado to get a BSP package I tested in a bare metal project with Vitis. I installed Yocto and I build a reference distro for my microzed board with just a serial interface by following a tutorial online.All this comes more or less pre-backed from Xilinx.
But now I need to use a Yocto generated linux distro and enable it to use my custom (LED) IP. My questions:
- How does a detailed workflow in this case look like (at the end I need a bootable SD card)?
More in detail:
- How can I bring the mydevice_bsp generated from Vivado into the Yocto distro?
- In which environment(how to write them i'll find out my self) do I write the drivers for the yocto Linux and bring them into the distro?
- How do I load the bitstream into the FPGA fabric when the Linux image has booted up?
Unfortunately I do not have to much time to get all this working, so it would be really cool to find a step by step tutorial from the start to the end. Thanks in advance for your help.
Regards Martin