On Sat, May 28, 2016 at 6:43 AM, Jean-Francois Dagenais
<[email protected]> 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
> [email protected]
> https://lists.yoctoproject.org/listinfo/meta-xilinx
>
-- 
_______________________________________________
meta-xilinx mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-xilinx

Reply via email to