[U-Boot] am335x: GPMC: reading speed with prefetch mode

Daniel Mack daniel at zonque.org
Thu Mar 19 14:56:10 CET 2015


Hi,

On 03/19/2015 02:41 PM, Yegor Yefremov wrote:
> I've got v2015.04-rc4 running on my custom am335x (600MHz) based
> board. My 8-bit NAND chip:
> 
> [17.297793 0.004021] omap-gpmc 50000000.gpmc: GPMC revision 6.0
> [17.303850 0.006057] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda
> [17.309706 0.005856] nand: Micron MT29F2G08ABAEAWP
> [17.312823 0.003117] nand: 256MiB, SLC, page size: 2048, OOB size: 64
> [17.317311 0.004488] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
> 
> I need to load about 17Mb FIT image from UBIFS partition. In Linux it
> takes about 7 seconds:
> 
> # time cp /mnt/kernel-fit.itb /tmp/
> real    0m 7.12s
> user    0m 0.00s
> sys     0m 6.89s
> 
> But U-Boot needs about twice the time:

On my boards, I didn't load the uImage through UBIFS but directly from
the raw mtdblock device. That might make a significant difference,
depending on how UBIFS is implemented in U-Boot. For performance tests,
I recommend you compare the numbers using 'dd' from the mtdblock device
under Linux, and 'nand read.i' from U-Boot.

Linux will, however, still be faster due to DMA, which is unsuable from
U-Boot due to the lack of interrupt handlers. But in my tests, enabling
the prefetch mode in U-Boot gave me a speed-up of roughly factor 2 IIRC.


Thanks,
Daniel



More information about the U-Boot mailing list