I added commands for Security register erase, read and write as 10,12 and 14 indices respectively in the lookup table . Security register address 0x100 is used for read and write. The lookup table for these commands are added as below.
config->lookupTable[4U * NOR_CMD_LUT_SEQ_IDX_SECURITY_ERASE] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, kSerialNorCmd_SecurityErase, kFLEXSPI_Command_RADDR_SDR,
kFLEXSPI_1PAD, address_bits);
config->lookupTable[NOR_CMD_LUT_SEQ_IDX_SECURITY_READ * 4U] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, kSerialNorCmd_ReadSecurityReg1, kFLEXSPI_Command_RADDR_SDR,
kFLEXSPI_1PAD, address_bits);
config->lookupTable[NOR_CMD_LUT_SEQ_IDX_SECURITY_READ * 4U + 1U] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_MODE8_SDR, kFLEXSPI_1PAD, mode_cycles, kFLEXSPI_Command_DUMMY_SDR,
kFLEXSPI_1PAD, 8);
config->lookupTable[NOR_CMD_LUT_SEQ_IDX_SECURITY_READ * 4U + 2U] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04, 0, 0, 0);
config->lookupTable[4U * NOR_CMD_LUT_SEQ_IDX_SECURITY_PAGEPROGRAM] =
FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, kSerialNorCmd_WriteSecurityReg1,
kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_1PAD, 32);
config->lookupTable[4U * NOR_CMD_LUT_SEQ_IDX_SECURITY_PAGEPROGRAM + 1U] = FLEXSPI_LUT_SEQ(
kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_4PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0);
addr_bits value is configured to be 32. Added APIs for erase,program and read. But the value read is not correct as the expected value.
Is the above values correct for security registers?