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

Yegor Yefremov yegorslists at googlemail.com
Thu Mar 19 16:13:06 CET 2015


On Thu, Mar 19, 2015 at 2:56 PM, Daniel Mack <daniel at zonque.org> wrote:
> 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.

Strange. Have tried with "nand read" command, but still the same
result with and without CONFIG_NAND_OMAP_GPMC_PREFETCH :

[2.150655 0.001006] NAND read: device 0 offset 0x260000, size 0x1200000
[15.978943 13.828288]  18874368 bytes read: OK

As if I would missing some important configuration.

Daniel, do you have the numbers? Images size and load time? What can I expect?

Yegor


More information about the U-Boot mailing list