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

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

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

3,334件の閲覧回数
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 件の賞賛
返信
8 返答(返信)

3,203件の閲覧回数
Jones_O
Contributor I

Facing same problem with Omegle

0 件の賞賛
返信

3,263件の閲覧回数
Samue99
Contributor I

I also have a similar problem :(

0 件の賞賛
返信

3,272件の閲覧回数
Marshall52
Contributor I

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

0 件の賞賛
返信

3,308件の閲覧回数
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 件の賞賛
返信

3,326件の閲覧回数
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 件の賞賛
返信

3,294件の閲覧回数
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 件の賞賛
返信

3,315件の閲覧回数
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 件の賞賛
返信

3,282件の閲覧回数
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 件の賞賛
返信