[U-Boot] [RFC PATCH 0/4] arm: zynq: implement FPGA load from SPL

Luis Araneda luaraneda at gmail.com
Thu Jul 19 23:37:00 UTC 2018


Hi Michal,

On Thu, Jul 19, 2018 at 2:23 AM Michal Simek <michal.simek at xilinx.com> wrote:
> On 18.7.2018 20:02, Luis Araneda wrote:
> > [...]
> > I didn't send them because just changing the defconfig isn't enough,
>
> It should be enough. It is configuration option and just enabling that
> feature. You should still be able to use just u-boot.img in legacy or
> fit format without any issue.

Ok. Should I send a patch only for the Zybo or all zynq boards? Also,
for than one board, should I create one patch per board or only one
big patch for all of them?

> I think it will be good if you can look at my patch and also compare
> boot up time when you setup compression to gzip. I expect some changes
> in connection to this code.
>
>         if (IS_ENABLED(CONFIG_SPL_OS_BOOT)      &&
>             IS_ENABLED(CONFIG_SPL_GZIP)         &&
>             image_comp == IH_COMP_GZIP          &&
>             type == IH_TYPE_KERNEL) {
>
> And I would expect that copying smaller fit with unziping bitstream will
> be faster then what you have now. Especially on boards which bigger fpga.

I made some modifications to make gzip work, and another one dirty
(non-upstremeable) to make external data work.
Additionally, I added time reporting on three places. The
modifications are attached.

I tested several bitstreams, with different compression levels:
> gzip -c -n <comp_level> <bin_file> > <out_file>

The results, for a fit image with embedded data, are:
file           size (bytes) time1 time2 time3
uncompressed   2,434,112     567   597   623
compressed -1    446,028     208  1165  1190
compressed -4    407,764     205  1063  1088
compressed -5    398,346     203  1094  1119
compressed -9    376,821     200  1141  1166

The time for a fit image with external data (-E option for mkimage) is
~100 time units (ms?) less, and time1 remains constant at ~12 time
units.

At least on my setup (Zybo Z7-20), gzip just increase the boot time.

> > I have an idea to automate the FIT generation. The build system could
> > scan for the existence of a file, for example
> > "board/xilinx/zynq/<board>/preboot.bin", and add the fpga node
> > automatically (to .its) if the file exists. Because I think that
> > storing .bin files in the U-Boot repository is infeasible. That will
> > require additions and modifications to the current way the build
> > system works, and I'm still thinking how to implement them.
>
> Take a look at pmufw handling for zynqmp for inspiration.

Will do, thanks for the heads up.

Thanks,

Luis Araneda.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gzip_test.patch
Type: text/x-patch
Size: 2137 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180719/9160dcbd/attachment.bin>


More information about the U-Boot mailing list