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
