AnsweredAssumed Answered

I.mx233 cannot be boot from NAND having the page size 4k ( 4k + 224 spare size).

Question asked by Kevin Yu on Jul 8, 2018
Latest reply on Jul 10, 2018 by igorpadykov

According to the doc, I added the new NAND Flash info to NANDTYPES.h as below:

//MT29F8G08ABAC // New NAND Flash
{
{NAND, 4096, 4096 * 64, 64, 4096}, //FlashInfo fi;
{0x2C, 0xD3, 0x90, 0xA6}, //BYTE NANDCode[NANDID_LENGTH]
3, //BYTE NumBlockCycles
5, //BYTE ChipAddrCycleNum
8, //BYTE DataWidth
1, //BYTE BBMarkNum
{0}, //BYTE BBMarkPage
6, //BYTE StatusBusyBit
0, //BYTE StatusErrorBit
224, //WORD SpareDataLength
0x70, //BYTE CmdReadStatus
0x00, //BYTE CmdRead1
0x30, //BYTE CmdRead2
0x90, //BYTE CmdReadId
0xff, //BYTE CmdReset
0x80, //BYTE CmdWrite1
0x10, //BYTE CmdWrite2
0x60, //BYTE CmdErase1
0xD0, //BYTE CmdErase2
{11, 8, 15, 20} //NANDTiming timings
},

 

After this change, the eboot.sb can boot up from memory, Then I burn the ebootmsg.bin with CEDownloader as usally.
The problem is that the board cannot startup from the NAND boot loader just burned.

Log:
Sent BOOTME to 255.255.255.255
Packet has the following data:
boot.bin[NULL]octet[NULL]blksize[NULL]1024[NULL]
TFTP packet could have 2 name/value pairs
Locked Down Link 1
Src IP 192.168.2.120 Port 03D4 Dest IP 192.168.2.200 Port 07D0
Default TFTP block size set to: 512 bytes
This TFTP packet contains 1 options.
We currently only look at the first and expect it to be BLKSIZE.
The packet's option name is blksize.
The option's value is 1024
with a value that is in range.
BLKSIZE will be adjusted to 1024.
EthDown::TFTPD_OPEN::boot.bin
An OACK packet is the proper acknowledgement
-EbootSendBootmeAndWaitForTftp

BL_IMAGE_TYPE_MANIFEST


BL_IMAGE_TYPE_UNKNOWN

INFO: OEMMultiBINNotify (dwNumRegions = 1, dwRegionStart = 0x0).
EBOOT destination = NAND
INFO: OEMVerifyMemory (CA = 0x80300000, PA = 0x40300000, length = 0x62B50)
INFO: Downloading SB NAND image.
ImageStart = 0x80300000, ImageLength = 0x62B50, LaunchAddr = 0x80300000

Completed file(s):
-------------------------------------------------------------------------------
[0]: Address=0x80300000 Length=0x62B50 Name="ebootmsb.bin" Target=FLASH

WARNING: Flash update requested.
Do you want to continue (y/n)? INFO: Writing Boot image to NAND (please wait)...
INFO: Programming Firmware.sb image from flash cache address 0xA0200000, size = 404304
INFO: Programming NAND flash blocks [0xE - 0x15].0x12
INFO: Programming NAND flash blocks [0x16 - 0x1D].0x1A
INFO: Verifying image succeed.
INFO: Updating of SB image completed successfully.

WARNING: Firmware update Complete.
pBmpFile 0x80010900
pBmIH->biWidth=0x88
pBmIH->biHeight=0x48
pBmIH->biCompression=0x40000
pBmIH->biBitCount=0x4
Reboot the device manually...
SpinForever...
Do you want to reset [Y\N]
0x80508002

From the last line of log we can see that the system cannot boot from eboot on NAND, it still goes back to the eboot memory download state - 0x80508002 (Cannot find LDLB).

Any suggestions?

Outcomes