I am having trouble with WinCE and the MT29F2G08ABAEAWP, I can program it correctly through the ATK, but when eboot goes to jump to WinCE nothing happens. If I reset the board it then enters USB load mode (as though the flash is empty). I dumped the flash and I can see that xldr is still present but eboot has been erased.
Here is the config from NANDTypes.h I am using for the chip:
//MT29F2G08 - 10
{
{NAND, 2048, 2048 * 64, 64, 2048}, //FlashInfo fi;
{0x2C, 0xDA, 0x90, 0x95}, //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
64, //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
{12, 5, 12, 20} //NANDTiming timings
},
Has anyone got that NAND flash chip working with WinCE (6 or 7) and if so what settings are required?
I have followed the application note AN4111 with regards to how to change the NAND flash files, but it still won't work correctly. I have added the files as suggested and now have MT29F2G08.h and MT29F2G08.inc with the values above from the datasheet.
Here is the trace from eboot:
INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0xb
BSP Clock Configuration:
MCU PLL = 532000000 Hz
USB PLL = 240000000 Hz
ARM CLOCK = 399000000 Hz
AHB CLOCK = 133000000 Hz
IPG CLOCK = 66500000 Hz
USB CLOCK = 60000000 Hz
Periph Clk CSI = 66500000 Hz
Periph Clk EPIT = 66500000 Hz
Periph Clk ESAI = 66500000 Hz
Periph Clk ESDHC1 = 66500000 Hz
Periph Clk ESDHC2 = 66500000 Hz
Periph Clk GPT = 66500000 Hz
Periph Clk I2C = 66500000 Hz
Periph Clk LCDC = 66500000 Hz
Periph Clk NFC = 33250000 Hz
Periph Clk OWIRE = 66500000 Hz
Periph Clk PWM = 66500000 Hz
Periph Clk SIM1 = 66500000 Hz
Periph Clk SIM2 = 66500000 Hz
Periph Clk SSI1 = 66500000 Hz
Periph Clk SSI2 = 66500000 Hz
Periph Clk UART = 66500000 Hz
Microsoft Windows CE Bootloader Common Library Version 1.4 Built Jan 11 2013 12:12:04
Microsoft Windows CE Ethernet Bootloader 1.16 for iMX25 (Jan 11 2013 12:12:59)
Reset cause : Power On Reset
INFO: Bootloader launched from NAND
NumberOfChip=1
BBIMainAddr=464
BBMarkNum=1
NumBlockCycles=3
ChipAddrCycleNum=5
dwBytesPerBlock=131072
dwNumBlocks=2048
wDataBytesPerSector=2048
wSectorsPerBlock=64
BBMarkNum=1
BBMarkPage1=0
--OpenBBT(1)
BBT_ReadOperation : dwStartBlock = 0x7FC, SectorAddr = 0x1FF01
Not BBT_SIGN 1 : 0xFFFFFFFF
BBT_ReadOperation : dwStartBlock = 0x7FD, SectorAddr = 0x1FF41
Not BBT_SIGN 1 : 0xFFFFFFFF
BBT_ReadOperation : dwStartBlock = 0x7FE, SectorAddr = 0x1FF81
Not BBT_SIGN 1 : 0xFFFFFFFF
BBT_ReadOperation : dwStartBlock = 0x7FF, SectorAddr = 0x1FFC1
Not BBT_SIGN 1 : 0xFFFFFFFF
No BBT Found
--ReadBBT(0)
CreateBBT : Non-Interleave Mode
WriteBBT : dwBBTBlock = 0x0, dwBBTNum = 2
WriteBBT For-loop : dwStartBlock = 0x7FC, dwBBTNum = 1
BBT_EraseOperation Begin : bNumber = 0
BBT_EraseOperation End : bNumber = 0
BBT_WriteOperation : dwStartBlock = 0x7FC, SectorAddr = 0x1FF01
WriteBBTSignature
WriteBBTSignature
WriteBBT For-loop : dwStartBlock = 0x7FD, dwBBTNum = 0
BBT_EraseOperation Begin : bNumber = 0
BBT_EraseOperation End : bNumber = 0
BBT_WriteOperation : dwStartBlock = 0x7FD, SectorAddr = 0x1FF41
WriteBBTSignature
WriteBBTSignature
Call BBT_SetBlockReservedStatus
block = 0x7FC
block = 0x7FD
block = 0x7FE
BBT_SetBlockReservedStatus : block = 0x7FE
BBT_EraseOperation Begin : bNumber = 0
BBT_EraseOperation End : bNumber = 0
block = 0x7FF
BBT_SetBlockReservedStatus : block = 0x7FF
BBT_EraseOperation Begin : bNumber = 0
BBT_EraseOperation End : bNumber = 0
--CreateBBT(1)
INFO: OEMPlatformInit: Initialized NAND flash device.
INFO: Loading boot configuration from NAND
ERROR: LoadBootCFG: ConfigMagicNumber not correct. Expected = 0x1020304 ; Actual = 0xffffffff.
Resetting factory default configuration...
INFO: Storing boot configuration to NAND block [0x104].
INFO: Successfully store boot configuration to NAND!
SDConfigPins:
WARNING: OEMPlatformInit: Failed to initialize SDHC device.
System ready!
Preparing for download...
Press [ENTER] to launch image stored in NAND flash or [SPACE] to cancel.
Initiating image launch in 0 seconds.
Launching flash image ...
-BLMenu .
INFO: Using device name: 'Do51'
INFO: Reading NK image from NAND (please wait)...
INFO: Valid image length is [0x1910e00]
INFO: Pre copy start: 0x14 end: 0xDD
INFO: Loading image is 100% completed.
INFO: Loading of NK completed successfully.
Download successful! Jumping to image at 0
x0 (physical 0x80200000)...
已解决! 转到解答。
Ok, this was my bad - after adding the new header files and .inc files I forgot to add the define to the sources file for the NAND - added
!IF "$(BSP_NAND_MT29F2G08)" == "1"
CDEFINES=$(CDEFINES) -DBSP_NAND_MT29F2G08
!ENDIF
to the file PLATFORM/BSP/SRC/COMMON/NANDFMD/sources and the correct header files were included and the image works fine across reboots.
Now I think I need to change the way eboot works so that it can actually look up all the correct values, although I'm not sure how to provide a lookup table in assembler for XLDR! Might have to borrow from uboot and load all of eboot + xldr using the bootrom.
Cheers.
Ok, this was my bad - after adding the new header files and .inc files I forgot to add the define to the sources file for the NAND - added
!IF "$(BSP_NAND_MT29F2G08)" == "1"
CDEFINES=$(CDEFINES) -DBSP_NAND_MT29F2G08
!ENDIF
to the file PLATFORM/BSP/SRC/COMMON/NANDFMD/sources and the correct header files were included and the image works fine across reboots.
Now I think I need to change the way eboot works so that it can actually look up all the correct values, although I'm not sure how to provide a lookup table in assembler for XLDR! Might have to borrow from uboot and load all of eboot + xldr using the bootrom.
Cheers.
Hi Webster,
I am trying to boot eboot from NAND in iMX6Q.
I have posted my issue in the post: iMX6Q NAND Boot issue in WinCE
Please look at this and help me to solve this issue.
Thanks.
With regards,
Keshava