Hi,
I'm designing a product which will use the AM335x and boot from NAND (MT29F2G08AB). I've used the AM335x EVM to test the time to load the kernel in uboot, and used the "grabserial" to get accurate time values. For testing, I am booting uboot off SD card (i.e. the default AM335x EVM setup), and then reading NAND data from the uboot prompt.
The default NAND partition has a 5 MByte partition, and the command "U-Boot# nandecc hw 2; nand read.i ${kloadaddr} ${nand_src_addr} ${nand_img_siz}" takes 5.6 sec to execute, i.e. 0.89 MByte/sec. (see logs below).
Then I tested reading the same 5 MB partition from Linux, using the command "time dd if=/dev/mtdblock6 bs=131072 of=/dev/null", which took 1.35 sec to execute, i.e. 3.88 MByte/sec. This is close to the value mentioned in the wiki, which is 3.4 MByte/sec (for UBIFS read instead of raw read).
http://processors.wiki.ti.com/index.php/AM335x-PSP_04.06.00.08_Features_and_Performance_Guide#NAND_Driver
The SD card provided with the AM335x EVM is faster still. In U-Boot, the file "uImage" (3 MByte) loads in 0.34 sec, i.e. 8.4 MByte/sec.
Any suggestions (besides making the kernel partition smaller) of how to speed up U-Boot loading the kernel from NAND? Why is it 4 times slower than the Linux NAND driver for reading data? According to Micron, it should be possible to read data at 23 MByte/sec on this device.
================================================================
U-Boot SPL 2011.09 (Apr 08 2012 - 18:29:14)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
U-Boot 2011.09 (Apr 08 2012 - 18:25:03)
I2C: ready
DRAM: 256 MiB
WARNING: Caches not enabled
Found a daughter card connected
NAND: HW ECC Hamming Code selected
256 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment
Net: cpsw
Hit any key to stop autoboot: 0
U-Boot# nandecc hw 2; nand read.i ${kloadaddr} ${nand_src_addr} ${nand_img_siz}
HW ECC BCH8 Selected
NAND read: device 0 offset 0x280000, size 0x500000
5242880 bytes read: OK
U-Boot#