Hi,
I have MIMXRT1020-EVK (rev A3). It is populated with IS25LP064A-JBLE.
I would like to try to read SFDP parameters using the ROM API.
I read the documentation (both IS25LP064A datasheet and JESD216)


For this I modified the example evkmimxrt1020_fsl_romapi (which I have attached), to run in RAM and not to write flash.
Specifically, I added an entry in the LUT (I used the symbol NOR_CMD_LUT_SEQ_IDX_READ_SFDP that was already defined in fsl_romapi.h)
/* Read SFDP */
config->memConfig.lookupTable[4U * NOR_CMD_LUT_SEQ_IDX_READ_SFDP] =
FSL_ROM_FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x5AU, RADDR_SDR, FLEXSPI_1PAD, 0x18U);
config->memConfig.lookupTable[4U * NOR_CMD_LUT_SEQ_IDX_READ_SFDP + 1U] =
FSL_ROM_FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_1PAD, 0x08U, READ_SDR, FLEXSPI_1PAD, 0x04U);
you can see that it's very similar to the read command.
Then I defined the function to do SFDP transactions.
status_t FLEXSPI_NorFlash_sfdp(uint32_t instance, uint32_t addr, uint32_t *readData, size_t readDataLen)
{
flexspi_xfer_t xfer;
xfer.operation = kFLEXSPIOperation_Read;
xfer.seqId = NOR_CMD_LUT_SEQ_IDX_READ_SFDP;
xfer.seqNum = 1U;
xfer.baseAddress = addr;
xfer.isParallelModeEnable = false;
xfer.rxBuffer = readData;
xfer.rxSize = readDataLen;
uint32_t status = ROM_FLEXSPI_NorFlash_CommandXfer(instance, &xfer);
return status;
}
This call, however, returns code 6001, which should mean Invalid Sequence:

Where am I going wrong? How to make SFDP reading work?
best regards
Max