[meta-xilinx] [PATCH 0/5] Updates to u-boot-xlnx
Nathan Rossi
nathan at nathanrossi.com
Sun Jan 17 00:59:52 PST 2016
On Sat, Jan 16, 2016 at 4:19 AM, andrey <andrey at elphel.com> wrote:
> Hello Nathan,
>
> We are now starting production of our Zynq-based product and are trying to
> update a 2-year old software to the current state of Yocto. We do not use
> Vivado to manage the project, for the FPGA development we use alternative
> Eclipse-based integration that remotely launches specific Vivado tools. We
> had to replace some of the Xilinx primitives models (such as
> https://github.com/Elphel/gtxe2_gpl ) to be able to simulate the complete
> project (it is now above 80% utilization) with the GPL-ed tools
> (Icarus+GTKWave). In 2013 we made a replacement for Xilinx FSBL that at
> that time was violating the GNU GPL of the U-Boot. Later Xilinx had to
> comply with GPL and modified the license for the generated files, but we
> would still like to avoid Vivado for FSBL generation - it is extra work for
> us and is inconvenient to learn new GUI, re-enter the project data just to
> be able to generate boot loader.
It was you guys that got the ball rolling for the ps7_init_gpl files,
thanks for that :).
At the moment I do not think it is possible to completely avoid Vivado
for generating SPL/FSBL. Essentially the way that the upstream U-Boot
handles the FSBL equivalent parts is by relying on the
ps7_init_gpl.[ch] files that Vivado generates from a Zynq design. For
some specific boards the ps7_init files are in the U-Boot source repo,
this is what allows for generating those bootloaders without needing
Vivado.
I suppose if you changed nothing on the PS you could do the same for
your board, have static ps7_init_gpl files stored in your source
control. Although keep in mind that it is only the Zynq configuration
that is needed by Vivado to generate the ps7_init files, so it might
be possible to write a tcl script of some such to automate Vivado to
generate the ps7_init files without needing to have your actual design
in Vivado.
>
> The question is - does the current upstream U-Boot have all what is needed
> to create an alternative bootloader for Zynq (by updating our
> https://github.com/Elphel/meta-ezynq ) or there are still some important
> functionality (common to all boards, not specific to particular ones and/or
> Vivado releases) in u-boot-xlnx that is not yet in available in the
> upstream?
Apart from the ps7_init stuff, everything else is pretty much there in
U-Boot to have SPL start in local ram, call ps7_init and then load the
full U-Boot from any device (or 'falcon' boot the kernel directly).
However my understanding is that ezynq doesn't need the ps7_init files
from Vivado, and has its own configuration/setup for those values. I
imagine if there is nothing against updating the ezynq codebase to be
a replacement for the ps7_init code?, it would be a great way to go if
the Vivado route is not reasonable. I have always been curious as to
how much of the early register setup could be done by U-Boot itself as
well as additional device tree properties at different levels
(U-Boot/Kernel) via e.g. pinmuxing. Unfortunately since ps7_init files
got GPL'd that has been the easiest solution.
Regards,
Nathan
>
> Andrey Filippov
>
>
>
More information about the meta-xilinx
mailing list