How can I fix what to fail XIP boot?

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

How can I fix what to fail XIP boot?

1,104 Views
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 Kudos
3 Replies

873 Views
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 Kudos

873 Views
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 Kudos

873 Views
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 Kudos