
On Fri, Jul 07, 2017 at 01:44:39PM +0200, Jean-Jacques Hiblot wrote:
u-boot can be embedded within a FIT image with multiple DTBs. It then selects at run-time which one is best suited for the platform. Use the same principle here for the SPL: put the DTBs in a FIT image, compress it (LZO, GZIP, or no compression) and append it at the end of the SPL.
Signed-off-by: Jean-Jacques Hiblot jjhiblot@ti.com
The impact in terms of boot time is not high when using LZO but I gues it can vary from platform to platform. The size of the SPL binary is increased (1.5kB more code on ARM), but the compression really flattens the DTBS. so at the end of the day, enabling this option doesn't add much.
Here are some sumbers with a DRA7 platform (numbers in bytes): size delta with ref MLO.reference 123450 MLO.lzo_1_DTB 123715 +265 MLO.lzo_4_DTB 124237 +787 MLO.gzip_4_DTB 132006 +8556 MLO.no_comp_4_DTB 134184 +10734
Bearing in mind that you said in a follow up this is RFC, I'm ignoring all of the stuff that I believe you would fix in a v1. At the heart of it, are you able to tell different boards before you have a DTB loaded? I keep coming back to the problem that for SPL it seems like we should be able to do what Franklin did for keystone (https://patchwork.ozlabs.org/patch/777242/) and have a 'fake' dts file that represents the SoC such that any real boards can get U-Boot loaded and from there have the real board dtb be used. Or am I forgetting something? Thanks!