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

Yegor Yefremov yegorslists at googlemail.com
Fri Mar 20 12:24:36 CET 2015


On Thu, Mar 19, 2015 at 4:56 PM, Daniel Mack <zonque at gmail.com> wrote:
> On 03/19/2015 04:13 PM, Yegor Yefremov wrote:
>> 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
>
> What about adding some debug prints to the prefetch setup function and
> see if it is executed at all?

I2C:   ready
DRAM:  256 MiB
NAND: prefetch enabled
NAND: 256 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Using default environment

I've added "NAND: prefetch enabled" output for:

#ifdef CONFIG_NAND_OMAP_GPMC_PREFETCH
        else {
                printf("NAND: prefetch enabled\n");
                nand->read_buf = omap_nand_read_prefetch8;
        }
#else

I've also put printf() into omap_nand_read_prefetch8() just to make
sure it is called - it was called.

Further ideas?

>> Daniel, do you have the numbers? Images size and load time? What can I expect?
>
> I don't currently have the setup at hand, sorry. But the number I recall
> from an email conversation back then is: The time from power-on, loading
> SPL, loading U-Boot, leeching a 6MB uImage, jumping into it waiting for
> the console to start dumping the kernel boot messages was less than 5
> seconds in total.

I Linux I had ti,nand-xfer-type = "polled";. After replacing it with
ti,nand-xfer-type = "prefetch-polled"; I now get

# dd if=/dev/mtdblock5 of=/dev/null bs=2M count=8
8+0 records in
8+0 records out
16777216 bytes (17 MB) copied, 2.58744 s, 6.5 MB/s

instead of:

# dd if=/dev/mtdblock5 of=/dev/null bs=2M count=8
8+0 records in
8+0 records out
16777216 bytes (17 MB) copied, 6.05157 s, 2.8 MB/s

Do I see it right, that DMA support is not implemented in am33xx.dtsi?

Yegor


More information about the U-Boot mailing list