From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Quadros Date: Fri, 20 Mar 2015 14:37:01 +0200 Subject: [U-Boot] am335x: GPMC: reading speed with prefetch mode In-Reply-To: References: <550AD57A.4070701@zonque.org> <550AF1A8.8030402@gmail.com> Message-ID: <550C146D.40709@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 20/03/15 13:24, Yegor Yefremov wrote: > On Thu, Mar 19, 2015 at 4:56 PM, Daniel Mack 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? DMA support will have to be enabled in the board dts. e.g. am335x-bone.dts. if ti,nand-xfer-type is not specified (like in mainline kernel) then it defaults to prefetch-polled cheers, -roger