• Huang Shijie's avatar
    mtd: gpmi: add EDO feature for imx6q · 995fbbf5
    Huang Shijie authored
    When the frequency on the nand chip pins is above 33MHz,
    the nand EDO(extended Data Out) timing could be applied.
    The GPMI implements a Feedback read strobe to sample the read data in
    the EDO timing mode.
    
    This patch adds the EDO feature for the gpmi-nand driver.
    
    For some onfi nand chips, the mode 4 is the fastest;
    while for other onfi nand chips, the mode 5 is the fastest.
    This patch only adds the support for the fastest asynchronous timing mode.
    So this patch only supports the mode 4 and mode 5.
    
    I tested several Micron's ONFI nand chips with EDO enabled,
    take Micron MT29F32G08MAA for example (in mode 5, 100MHz):
    
    1) The test result BEFORE we add the EDO feature:
    	=================================================
    	mtd_speedtest: MTD device: 2
    	mtd_speedtest: MTD device size 209715200, eraseblock size 524288,
    				page size 4096, count of eraseblocks 400,
    				pages per eraseblock 128, OOB size 218
    	.......................................
    	mtd_speedtest: testing eraseblock read speed
    	mtd_speedtest: eraseblock read speed is 3632 KiB/s
    	.......................................
    	mtd_speedtest: testing page read speed
    	mtd_speedtest: page read speed is 3554 KiB/s
    	.......................................
    	mtd_speedtest: testing 2 page read speed
    	mtd_speedtest: 2 page read speed is 3592 KiB/s
    	.......................................
    	=================================================
    
    2) The test result AFTER we add the EDO feature:
    	=================================================
    	mtd_speedtest: MTD device: 2
    	mtd_speedtest: MTD device size 209715200, eraseblock size 524288,
    				page size 4096, count of eraseblocks 400,
    				pages per eraseblock 128, OOB size 218
    	.......................................
    	mtd_speedtest: testing eraseblock read speed
    	mtd_speedtest: eraseblock read speed is 19555 KiB/s
    	.......................................
    	mtd_speedtest: testing page read speed
    	mtd_speedtest: page read speed is 17319 KiB/s
    	.......................................
    	mtd_speedtest: testing 2 page read speed
    	mtd_speedtest: 2 page read speed is 18339 KiB/s
    	.......................................
    	=================================================
    
    3) The read data performance is much improved by more then 5 times.
    Signed-off-by: default avatarHuang Shijie <b32955@freescale.com>
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
    995fbbf5
gpmi-lib.c 40.1 KB