From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Mack Date: Thu, 19 Mar 2015 14:56:10 +0100 Subject: [U-Boot] am335x: GPMC: reading speed with prefetch mode In-Reply-To: References: Message-ID: <550AD57A.4070701@zonque.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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