Some customer will use NAND flash as the storage device, also in auto application field, the fast boot is also necessary, so how to make the read speed faster is a question. FSL provide some patches for fast boot, they’re also suitable for NAND fast boot. These patch mainly enable the MMU and SDMA in uboot, some part of the patches is special for MMC.
0001-Merge-from-12.0.4-fastboot.patch 0002-Add-fsclmmcdma-code.patch
Some NAND flash support the EDO feature, according to the device feature mode, the NAND flash can be set different clock frequency. Here will describe how to calculate the NAND working clock.
The NAND clock is divider from the GPMI source clock, can be program in setup_gpmi_nand(). The divider was configured in register GPMI_TIMING0, the NAND clock can get from the following:
NANDCLK=GPMICLK/(DATA_HOLD+DATA_SETUP)
NAND Clock will affect the speed a lot, for the NAND chipsets which support the EDO, the nand speed will be set automatically. For those doesn’t support EDO NAND chip, the usr should take care those setting manually. There is also a patch for enable EDO mode and set NAND clock automatically.
0008-NAND-configure-as-EDO-mode-5.patch
Besides above, there are two other patches to improve the speed about 30%, 0009-For-nand-page-align-read-include-read-offset-and-siz.patch enabled the cache read(Note: please make sure the NAND chipset support cache read), it will reduce the unnecessary command transfer between the CPU and NAND, 0010-If-possible-directly-use-user-buffer-as-BCH-nand-buf.patch remove some unnecessary memcpy.
Hello,
I'm glad to view your below u-boot upgrade.
https://community.freescale.com/docs/DOC-95061
I'd like to upgrade my i.mx257 u-boot with your document and source.
I found your patch applied to mx6q_sabresd board.
So i tried first build with mx6q_sabresd board.
first install u-boot
extract u-boot-2009.08.tar.bz2
patch u-boot-v2009.08-imx_3.0.35_4.1.0.tar.bz2
make mx6q_sabresd_config
make
image build succeed.
Now tries to patch fast_nand.zip
patch < ./fast_nand/0001-Merge-from-12.0.4-fastboot.patch
but it can't patch to mx6q_sabresd board.
would you please guide me how to patch to mx6q_sabresd board, and how to implement to mx25_3stack board?
Best Regards
InSoon Park
------------------------------------------------
Planning, Business
MegaCast Co., Ltd.
T:+82 70 7010 8620 F:+82 70 7016 2460 M: +82 11 395 1637
www.megacast.co.kr
------------------------------------------------
Hi,
The patch should be based on different version bsp(mainlu on 4.0.0), you had better to merge to your code
best regards
Jack
Hi,
I tries to patch to below package's U-Boot.
L3.0.35_12.10.02_GA_source.tar.gz
So can I get some document for patch and build?
Thanks
Hi,
Purpose: NAND copy to SDRAM using SDMA.
I tried to port this fast_nand.zip to i.mx257 u-boot source.
now process is:
patch 0001-Merge-from-12.0.4-fastboot.patch
change common/cmd_sdma.c code to below for i.mx257
//#include <asm/arch/mx6.h>
#define DMA_REQ_PORT_HOST_BASE_ADDR (0x53FD4000)
Then build and execute
do_sdma()
src = 0x000;
dst = 0x80008000;
size = 0x1000;
Then it waits here
do {
retv = sdma_channel_status(channel, &status);
} while (!(status & SDMA_CHANNEL_STATUS_DONE));
status still stays ay "SDMA_CHANNEL_STATUS_BUSY".
message from u-boot
IS: do_sdma: dst =80008000, src 0, size 1000
IS: sdma_init: base_addr =53fd4000
SDMA initializated.
sdma_lookup_script.
Normal.
Open SDMA channel for transfer.
Channel opened, starting transfer...
sdma_channel_status = 1
Would you please advise me where should I check and modify?
B/R
IS
Hi
imx25 uboot should has big different with imx6, I'm sorry that I never touch imx25 before, so what I suggest is that understand the patch to see if it can be ported to imx25