[U-Boot] Master branch broken for omap4_panda (SPL_BUILD)

Aneesh V
2011-10-05T09:42:51Z

Dear Wolfgang,

On Tuesday 04 October 2011 11:35 PM, Wolfgang Denk wrote:
> Dear Aneesh V,
>
> In message<4E8B282A.8040301@ti.com> you wrote:
>>
>>> All file system code has been designed and implemented to run AFTER
>>> relocation. Access to a FAT file system is not supposed to happen
>>> from SPL code.
> ...
>> OMAP has traditionally supported booting from the FAT partition of an
>> external SD card. The ROM code can pick up the SPL from the FAT
>> partition and SPL should pick up u-boot from there too. Some of our
>> boards like OMAP4 Panda have only an SD slot for non-volatile memory
>> and no flash memory installed. Of course we could use the SD card in
>> raw mode. But the FAT mode is much more convenient for many users. If
>> FAT is not supported in SPL, it will be a major regression compared to
>> x-loader and a show-stopper for us.
>
> I understand this, and you may have noted that I did not NAK the
> patch. I just want to point out that what you are doing is pretty
> dangerous, and there are no seat-belts.
>

Thank you. I realize that maintaining our SPL will not be easy,
particularly given the fact that most boards do not have SPL, much less
FAT support in it. So, we are bound to see issues inadvertently
introduced by others. But we have no other choice.

>> I have submitted a patch to fix the problem reported in this thread and
>> FAT boot is working fine again.
>
> For now. But please expect that the next breakage may happen any
> time, and there is no guarantee that it can be fixed as easily.
>
>> However, I am worried about the increasing footprint of SPL. The main
>> contributors are MMC and FAT. x-loader, with all it's short-comings,
>> does the same job with a smaller footprint. ...
>
> Why is this the case? I doubt they use other FAT code, or do they?
> What about MMC?
>

X-loader, as far as I know, is based on a very old fork of u-boot. MMC
driver is a custom monolithic driver for OMAP4(not the generic MMC
framework in the current mainline). We didn't take a closer look at the
code differences yet.

>> ... NAND has a custom driver
>> for SPL while MMC and FAT doesn't have. I don't think it's practical
>> either. However, I wonder if these drivers could be scaled down in size
>> for SPL with some '#ifdef CONFIG_SPL_BUILD's. I wish if somebody could
>> look into this.
>
> Do you have exact numbers of the sizes for the MMC, FAT and NAND code
> in x-loader compared to SPL U-Boot? And what are for example the
> restrictions of (V)FAT support in x-loader?

Yes, we did a crude measurement by comparing the image size before and
after commenting out the calls to the respective libraries(Pls note
that we have -gc-sections enabled in both the cases). Here are the
results.

x-loader SPL
MMC 3724 6900
FAT 2464 9340

Together the two makes a difference of 10052 Bytes, and far outweighs
the gains made in sdram init and clock init.

best regards,
Aneesh

>
> Best regards,
>
> Wolfgang Denk
>