Hi,
We are using a custom board based on iMX7DSABRESD. We are trying to bring up the NAND (MT29F8G08ABACAW P-IT_C) from U-Boot (2016.03-imx_v2016.03_4.1.15_2.0.0_ga+ga57b13b942) and it is failing. The U-Boot log is as below,
/**********************************************************************************************/
U-Boot 2016.03-imx_v2016.03_4.1.15_2.0.0_ga+ga57b13b942 (Oct 25 2017 - 01:33:26 +0530)
CPU: Freescale i.MX7D rev1.2 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 31C
Reset cause: POR
Board: i.MX7D SABRESD RevC
I2C: ready
DRAM: 1 GiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
NAND: maf_id : 2c, dev_id : 90
0 MiB
MMC: FSL_SDHC: 0
*** Warning - bad CRC, using default environment
Display: TFT43AB (480x272)
Video: 480x272x24
In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc0 is current device
Net: FEC0
Error: FEC0 address not set.
Normal Boot
Hit any key to stop autoboot: 0
/**********************************************************************************************/
Basically, from the log, we can see that for READ_ID command (which is supposed to receive 5 bytes) we are receiving alternate bytes. Why am I missing the other alternate bytes. Can I please get some help here.
I am attaching the custom board schematics and the NAND datasheet (READ_ID command can be referred in this document).
Thanks & Regards
Vijay H.S
Hi Vijaj
one can check #define CONFIG_SYS_USE_NAND in uboot/include/configs/mx7dsabresd.h
uboot-imx.git - Freescale i.MX u-boot Tree
What do you mean by "receiving alternate bytes", had you checked
signals with oscilloscope. Also one can try to populate R132 NAND_R_B.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thanks for your reply.
I have already enabled #define CONFIG_SYS_USE_NAND and R132 NAND_R_B is already populated.
Regarding the alternate bytes, when I try to read NAND device ID using READ_ID command, I am supposed to receive 5 bytes as below,
0x2C, 0xD3, 0x90, 0xA6, 0x64 (refer attached NAND data sheet, page : 36, READ_ID),
But, I am receiving 0x2C, 0x90, 0x64 (these values are printed on the uboot log as shown in my previous comment) and I am missing 0xD3, 0xA6.
Regards
Vijay H.S
Hi Vijaj
is it detected correctly in linux. In uboot one can debug
sources in drivers/mtd/nand/nand_base.c.
Best regards
igor
Hi Igor,
I am facing the same issue in the Linux as well.
Regards
Vijay H.S
Hi Vijaj
suggest to use logic analyser and debug sources in drivers/mtd/nand/nand_base.c -
check which commands are sent from i.MX and what is nand response. All that info
is contained in micron nand datasheet.
Best regards
igor
Hi Igor,
I was able to fix the problem. Actually, the "SW2_1V8" was connected to "NVCC_SD3"
instead of "NVCC_3V3" and because of this 1.8V (instead of 3.3V) was coming on the NAND lines like NAND_RE#, NAND_DAT0, ... etc. After connecting "NVCC_3V3" instead of "SW2_1V8" the NAND got detected with proper Device_ID.
Now, I want to boot u-boot, Kernel and RootFS from NAND (till now I was booting from SD card). Is there any document or link for the information about how to flash u-boot, Kernel and RootFS from SD card and then boot the device from NAND?
Also, is there any code changes to be done in the u-boot, to make it boot from NAND?
Thanks & Regards
Vijay H.S
Hi Vijay
for nand programming please use MFG Tools and Linux Guide from
documentation on link
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
There is no USB-OTG on our board. So, is there any other way to program the NAND (u-boot, kernel and RFS) and boot from NAND?
Thanks & Regards
Vijay H.S
Hi Vijay
mfg tool runs small linux image and one can look at ucl2.xml
for linux nand programming commands.
Best regards
igor