imxrt595+ QSPI nor-flash GD25LE64C, cannot boot into our image, hang in bootROM

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

imxrt595+ QSPI nor-flash GD25LE64C, cannot boot into our image, hang in bootROM

1,426 Views
ShawnBai
Contributor III

Hello NXP,

imxrt595 + GD25LE64C, after programming the binary into GD25LE64C, cannot boot, and cannot debug with MCUXpresso IDE, since from the PC, it seems hang in bootROM.

could you help out with this,  does it relate with flash_config?

What should be the next step, thank you.

0 Kudos
8 Replies

1,295 Views
Jones_O
Contributor I

Facing same problem with Omegle

0 Kudos

1,355 Views
Samue99
Contributor I

I also have a similar problem :(

0 Kudos

1,364 Views
Marshall52
Contributor I

I am also facing this problem,please help me to get out of it

0 Kudos

1,400 Views
ShawnBai
Contributor III

Actually, when I debug it, and pause, the PC is 0x1c04a, I see the disassembly, it seems in bootROM, I guess.

0 Kudos

1,418 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,

Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
I think I need more information about your question, firstly, whether you can share your flash_config, next, in your statement, you said the MCU seemed to hang, did it enter the ISP mode?

Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

1,386 Views
ShawnBai
Contributor III

0001c044: movt r0, #57344 ; 0xe000
0001c048: ldr r1, [r0, #0]
0001c04a: b.n 0x1c04a
0001c04c: lsrs r0, r2, #32
0001c04e: strh r0, [r0, #8]
0001c050: ; <UNDEFINED> in

0 Kudos

1,407 Views
ShawnBai
Contributor III

hi zhou,

   thank you for your support.

  Flash_config is as below

const flexspi_nor_config_t flash_config = {
.memConfig =
{
.tag = FLEXSPI_CFG_BLK_TAG,
.version = FLEXSPI_CFG_BLK_VERSION,
.readSampleClksrc=kFlexSPIReadSampleClk_LoopbackFromDqsPad,
.csHoldTime = 3,
.csSetupTime = 3,
.deviceModeCfgEnable = 0,
.deviceModeType = kDeviceConfigCmdType_Generic,
.waitTimeCfgCommands = 0,
#if (SIMPLE_VERSION == 1)
.deviceModeSeq =
{
.seqNum = 0,//
.seqId = 0, /* See Lookup table for more details */
.reserved = 0,
},
.deviceModeArg = 0, /* Octal with DQS-0xB7*/
#else
.deviceModeSeq =
{
.seqNum = 4,//������6,7��8,9��
.seqId = 6, /* See Lookup table for more details */
.reserved = 0,
},
.deviceModeArg = 0xE7FE, /* E7-Enable OPI DDR mode, FE--XIP Enabled*///Volatile Configuration Register:Octal DTR with DQS
#endif
#if (SIMPLE_VERSION == 1)
//.controllerMiscOption =
// (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable) | (1u << kFlexSpiMiscOffset_DdrModeEnable),
#else
.controllerMiscOption =
(1u << kFlexSpiMiscOffset_SafeConfigFreqEnable) | (1u << kFlexSpiMiscOffset_DdrModeEnable),
#endif
.deviceType = kFlexSpiDeviceType_SerialNOR,
.sflashPadType = kSerialFlash_1Pad,
#if (SIMPLE_VERSION == 1)
.serialClkFreq = kFlexSpiSerialClk_100MHz,
#else
.serialClkFreq = kFlexSpiSerialClk_100MHz, /* kFlexSpiSerialClk_133MHz, */
#endif
#if (SIMPLE_VERSION == 1)
.sflashA1Size = 8ul * 1024u * 1024u,
#else
.sflashA1Size = 32ul * 1024u * 1024u,
#endif
#if (SIMPLE_VERSION == 1)
.dataValidTime =
{
[0] = {.time_100ps = 0},
},
#else
.dataValidTime =
{
[0] = {.time_100ps = 16},
},
#endif
.busyOffset = 0u,
.busyBitPolarity = 0u,
.lookupTable =
{
// Read LUTs
FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),

/* Read Status */ //����ָ��ֻ����SPI mode���ã��ڸı�mode֮ǰ
//[4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04),

/* Write Enable *///Write Enable (WREN) (06H)
//[4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP_EXE, FLEXSPI_1PAD, 0x00),
},
},
.pageSize = 256u,
.sectorSize = 4u * 1024u,
.blockSize = 64u * 1024u,
#if (SIMPLE_VERSION == 1)
.flashStateCtx = 0,
#else
.flashStateCtx = 0x07008200u,
#endif
}

 

and ISP is now switched to boot from nor-flash.

 

Thank you.

0 Kudos

1,374 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,

Thanks for your reply.
Firstly, I'd like to suggest you attach the flash_config again, as the attached code's too hard to review actually.
Second, I find that sflashPadType = kSerialFlash_1Pad, do you want to implement SPI 1 bit serial NOR boot? And I don't think this type supports the XIP function.
Lastly, with regard to normal QSPI flash, you'd better refer to the flash_config of IS25WP064 which is used on other i.MX RT MCU EVK boards, so you can find its flash_config in the SDK library for the MIMXRT1060 board.
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos