iMX25 and MT29F2G08 WinCE bootup issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX25 and MT29F2G08 WinCE bootup issue

Jump to solution
1,330 Views
andrew_questps
Contributor III

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)...

Labels (2)
0 Kudos
1 Solution
742 Views
andrew_questps
Contributor III

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.

View solution in original post

0 Kudos
2 Replies
743 Views
andrew_questps
Contributor III

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.

0 Kudos
742 Views
KeshavaGN
Contributor V

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

0 Kudos