Currently I'm working on an existing custom board with i.MX283 and Micron MT29F16G08ABACAWP NAND on which we want to replace the OS. We'll be using uboot-v2016.09.01 and Linux kernel 4.7.2.
We have the board up and running, but I noticed that NAND read/write speed is much slower than I would have expected. It seems both the i.MX283 and the NAND should be able to do much better. Results of mtd_speedtest:
[ 1145.439352] mtd_speedtest: testing eraseblock write speed
[ 1156.030525] mtd_speedtest: eraseblock write speed is 1838 KiB/s
[ 1156.036746] mtd_speedtest: testing eraseblock read speed
[ 1164.359215] mtd_speedtest: eraseblock read speed is 2339 KiB/s
[ 1164.437988] mtd_speedtest: testing page write speed
[ 1178.728050] mtd_speedtest: page write speed is 1362 KiB/s
[ 1178.733616] mtd_speedtest: testing page read speed
[ 1189.862425] mtd_speedtest: page read speed is 1749 KiB/s
[ 1190.142313] mtd_speedtest: testing 2 page write speed
[ 1203.127255] mtd_speedtest: 2 page write speed is 1499 KiB/s
[ 1203.132890] mtd_speedtest: testing 2 page read speed
[ 1213.684587] mtd_speedtest: 2 page read speed is 1844 KiB/s
I cross-checked this against the old OS and got the same results, meaning we at least have the same non-optimal performance. With the new OS and new application software we expect more intensive read/write so a speed increase could be very beneficial.
After further investigation I noticed that the GPMI clock in both u-boot and kernel is running at only 24MHz. Fragment of kernel debugfs:
cat /sys/kernel/debug/clk/clk_summary
clock enable_cnt prepare_cnt rate accuracy phase
----------------------------------------------------------------------------------------
ref_xtal 5 5 24000000 0 0
gpmi_sel 0 0 24000000 0 0
gpmi_div 0 0 24000000 0 0
gpmi 0 0 24000000 0 0
pll0 3 3 480000000 0 0
ref_gpmi 0 0 480000000 0 0
Unfortunately I'm a bit of a novice in Linux and u-Boot configuration and a Google search quest didn't bring me much, so I'm looking for some help. Before I start tinkering with a lot of different things I would like to ask if somebody could help me point in the right direction on how to accomplish a speed increase. We don't need top-notch performance, but if we could accomplish a speed increase with limited effort this would be great.
Hi Rene
one can look at baremetal nand example for understanding clock settings
Lab and Test Software (1)
On-Board Diagnostic Suit for the i.MX28
http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i....
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------