AnsweredAssumed Answered

How can I fix what to fail XIP boot?

Question asked by YongJin Choi on Nov 18, 2018
Latest reply on Nov 27, 2018 by YongJin Choi

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?

Outcomes