How can I fix what to fail XIP boot?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

How can I fix what to fail XIP boot?

2,196 次查看
yongjin2712_cho
Contributor I

I'm using custom board with RT1050 and MT25QL512 flash memory.

our flash memory(MT25QL512) supports both 3-byte addressing mode and 4-byte addressing mode.

And for accessing full area(64MB) of flash memory, I should use 4-byte addressing mode

Now, when I use flash memory with 3-byte addressing mode, our board work well to boot XIP with code as below.

const flexspi_nor_config_t qspiflash_config = {
    .memConfig =
    {
        .tag = FLEXSPI_CFG_BLK_TAG,
        .version = FLEXSPI_CFG_BLK_VERSION,
        .readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackInternally,
        .csHoldTime = 3u,
        .csSetupTime = 3u,
  .deviceType = kFlexSpiDeviceType_SerialNOR,
        .sflashPadType = kSerialFlash_4Pads,
        .serialClkFreq = kFlexSpiSerialClk_100MHz,
        .sflashA1Size = 64u * 1024u * 1024u,
        .lookupTable =
            {
              FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
              FLEXSPI_LUT_SEQ(MODE8_SDR, FLEXSPI_4PAD, 0x10, DUMMY_SDR, FLEXSPI_4PAD, 0x08),
              FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_4PAD, 0x04, STOP, FLEXSPI_1PAD, 0x00)
            },
    },
};

But when I changes our flash configuration into 4-byte addressing mode and modify lookupTable as below, our board does't work to boot XIP

        .lookupTable =
            {
              FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEC, RADDR_SDR, FLEXSPI_4PAD, 0x20),
              FLEXSPI_LUT_SEQ(MODE8_SDR, FLEXSPI_4PAD, 0x10, DUMMY_SDR, FLEXSPI_4PAD, 0x08),
              FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_4PAD, 0x04, STOP, FLEXSPI_1PAD, 0x00)
            },

How can I fix it?

0 项奖励
回复
3 回复数

1,965 次查看
jay_heng
NXP Employee
NXP Employee

You can also try this tool, with this tool, You can flash bare image into various boot devices easily and don't need to care about headers (ivt, boot data...)

GitHub - JayHeng/nxp-sec-boot-ui: A one-stop GUI tool to work with NXP MCU (Kinetis, i.MXRT, LPC) RO... 

0 项奖励
回复

1,965 次查看
AldoG
NXP TechSupport
NXP TechSupport

Helllo,

Could you tell me if you set it to work with the 4-byte adressing mode, since it seems that the memory works with 3-byte adressing by default.

BR,
Aldo.

0 项奖励
回复

1,965 次查看
yongjin2712_cho
Contributor I

Yes, it works with 3-byte addressing by default.

So I set it to work with 4-byte addressing mode by setting non-volatile configuration register.

And it work well in modified qspi polling example supported by SDK. I only changed LUT table.

I applied some of table I used as mentioned above, but It doesn't work to boot XIP.

0 项奖励
回复