[U-Boot] Enabling Cache in SPL - how to speed up booting from SPL

Marek Vasut marek.vasut at gmail.com
Fri Feb 10 13:28:09 CET 2012


> Hi,
> 
> because we are fast able to boot the kernel directly from SPL, I am
> experimenting now how we can speed up the process. Mainly my focus is
> how to make copy from storage (=NAND) to RAM faster.
> 
> There are two approaches I can see: using DMA in NAND driver, or/and
> enabling cache. I have not yet patches (I hacked the code dirtly), but I
> have some results I cannot understand.
> 
> First of all, DMA. DMA for OMAP is mainlined now with Simon's patches,
> enabling DMA in nand_spl_simple.c as sent by Simon does not work for me,
> but I have adapted the patch to my platform (twister board, mainlined,
> with TI AM3517). Here the results measuring between start of the copy
> and before giving the control to the kernel (kernel size is 2188100):
> 
>                                    Seconds
> -----------------------------------------------------------------
> No cache, no DMA                    1.700
> DMA in NAND driver                  1.190
> Enabling Cache                      2.120
> 
> With enabled DMA I won on my platform ~600mSec. However, enabling cache
> is worse than disabling, and this let me really confused.
> 
> I have not done any special things to enable cache, and I reused code
> already provided. I have only set to an arbitrary address in RAM (but
> 64KB aligned) gd->tbl, and then I called enable_caches(). I can see that
> mmu_setup() is called, and at the end icache_status() and
> dcache_status() return both that cache is enabled.
> 
> But copying from NAND takes longer enabling cache, and this does not
> really make sense. Does anybody have an hint what I am missing ?

L2 is on too?

M

> 
> Best regards,
> Stefano Babic


More information about the U-Boot mailing list