[meta-xilinx] getting started for logicbricks ref designs

Nathan Rossi nathan at nathanrossi.com
Mon May 30 06:07:45 PDT 2016


On Sat, May 28, 2016 at 6:43 AM, Jean-Francois Dagenais
<jeff.dagenais at gmail.com> wrote:
> Hi meta-xilinx!
>
> We are in very early product development stages. We are not set on any yocto releases but would like to be as far ahead as possible. In fact, we may not be set on xilinx and zynq either. The whole point of my current exercise is to eliminate unknowns and risks, especially around our graphics needs which we feel may be a bottleneck.
>
> I'm looking for pointers in order to get started in creating an image using yocto which will include a logicbricks reference design. Specifically logiREF-ZGPU-ZED.
>
> I fail to find documentation around meta-xilinx and how to add a reference design. I believe supporting a ref design is a very representative development scenario, is there any documentation about the suggested process anywhere?

Hi Jean-Francois,

You would be correct, there is no documentation for adding reference
designs. This is primarily because every user has difference
requirements, and vastly different workflows. But the meta-xilinx
layer does have the 'zybo-linux-bd-zynq7' machine which is a good
example to work from.

>
> Improvising such a process, my first reflex is to say that I need to create a new yocto machine that is based on zedboard-zynq7. To achieve this, I would copy zedboard-zynq7.conf from meta-xilinx's conf dir into my layer's conf dir and rename the file to say "conf/machine/logiref-zgpu-zed.conf", right? From there, I need to:

That is a good place to start.

>
> - add the ref design's FPGA bitstream (through an new recipe? which would be installed by MACHINE_ESSENTIAL_EXTRA_RDEPENDS?)

That is how it is implemented in meta-xilinx, although using
EXTRA_IMAGEDEPENDS as that ensures the bitstream is output but not
added to the root filesystem (although that depends on how/when you
want to load your bitstream).

Have a look at the following files in meta-xilinx for an example of
how to add a bitstream recipe:
 * http://git.yoctoproject.org/cgit/cgit.cgi/meta-xilinx/tree/conf/machine/zybo-linux-bd-zynq7.conf
 * http://git.yoctoproject.org/cgit/cgit.cgi/meta-xilinx/tree/recipes-bsp/reference-design/zybo-linux-bd.bb

>
> - add kernel drivers (or not? does linux-xlnx already contain all the necessary drivers? If so, which branch should I use? I see xylon stuff there, but I can't find "xylon,fb-3.00.a" which is mentioned in the ref design's DTS file.)
>
> - replace device tree file or extra xylon specific fragments (extracted from the ref design's DTS file.) Logicbricks's linux-xlnx fork on github does contain this DTS file, but I didn't want to use the old kernel...
>
> - tweak kernel config (the ref design gives a complete defconfig file, should I use that or find and extract only the pertinent bits and add them through... I don't know, a linux-xlnx_%.bbappend in my layer which adds extra .cfg's?)

I am not sure of the specifics on the Xylon drivers, you might need to
check against resources provided by Xylon regarding what drivers are
needed. Some of the documentation might be old and rely on older
kernels (e.g. the current linux-xlnx master has xylon drm drivers
instead of fbdev).

There is some in-kernel docs (linux-xlnx) on the logicvc and the xylon
drm driver:
./Documentation/devicetree/bindings/drm/xylon/logicvc.txt
./Documentation/devicetree/bindings/drm/xylon/xylon_drm.txt

A bbappend is the right way, you can have .cfg/.scc fragment pairs
added to the SRC_URI.

>
> - later I need to add xylonQPA and logi2d3d driver, but this is a second matter at this point.
>
> Although I have extensive experience with yocto (>4 years), I am quite confused about many things at this point and need as much pointers as possible regarding all the above points.
>
> Also, I see there are linux-yocto_%.bbappends in meta-xilinx. Since linux-xlnx.inc adds many things to the kernel build, what is the use of linux-yocto for xilinx based boards?

The linux-yocto bbappends in meta-xilinx are used to add kernel
configuration to the linux-yocto kernels in order to use the
linux-yocto kernels on Zynq/ZynqMP/MicroBlaze targets.

There are advantages and disadvantages to both kernels. Generally
speaking, linux-yocto provides a better generic base kernel for most
users as it provides support for Zynq hardware (due to mainline
support for Zynq/ZynqMP/MicroBlaze), the linux-yocto kernel is also
supported with continual updates, backports and mainline minor
releases making it very useful for long term projects. But the driver
support provided by linux-xlnx is required in a number of cases.

Regards,
Nathan

>
> Thanks for all the help, and the nice work in meta-xilinx so far.
>
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx
>



More information about the meta-xilinx mailing list