RTEMS 6.1-rc1
Data Structures | Macros | Enumerator | Variables
Romapi

Data Structures

struct  _flexspi_lut_seq
 FLEXSPI LUT Sequence structure. More...
 
struct  flexspi_dll_time_t
 FLEXSPI DLL time. More...
 
struct  _flexspi_mem_config
 FLEXSPI Memory Configuration Block. More...
 
struct  _flexspi_nor_config
 Serial NOR configuration block. More...
 
struct  _flexspi_xfer
 FLEXSPI Transfer Context. More...
 
struct  _serial_nor_config_option
 Serial NOR Configuration Option. More...
 

Macros

#define FSL_ROM_ROMAPI_VERSION   (MAKE_VERSION(1U, 1U, 1U))
 ROMAPI version 1.1.1.
 
#define FSL_ROM_FLEXSPINOR_DRIVER_VERSION   (MAKE_VERSION(1U, 4U, 0U))
 ROM FLEXSPI NOR driver version 1.4.0.
 
#define FSL_ROM_ROMAPI_VERSION   (MAKE_VERSION(1U, 1U, 1U))
 ROM API version 1.1.1.
 
#define FSL_ROM_FLEXSPINOR_DRIVER_VERSION   (MAKE_VERSION(1U, 7U, 0U))
 ROM FLEXSPI NOR driver version 1.7.0.
 

Variables

uint8_t _flexspi_lut_seq::seqNum
 
uint8_t _flexspi_lut_seq::seqId
 
uint16_t _flexspi_lut_seq::reserved
 
uint8_t flexspi_dll_time_t::time_100ps
 
uint8_t flexspi_dll_time_t::delay_cells
 
uint32_t _flexspi_mem_config::tag
 
uint32_t _flexspi_mem_config::version
 
uint32_t _flexspi_mem_config::reserved0
 
uint8_t _flexspi_mem_config::readSampleClkSrc
 
uint8_t _flexspi_mem_config::csHoldTime
 
uint8_t _flexspi_mem_config::csSetupTime
 
uint8_t _flexspi_mem_config::columnAddressWidth
 
uint8_t _flexspi_mem_config::deviceModeCfgEnable
 
uint8_t _flexspi_mem_config::deviceModeType
 
uint16_t _flexspi_mem_config::waitTimeCfgCommands
 
flexspi_lut_seq_t _flexspi_mem_config::deviceModeSeq
 
uint32_t _flexspi_mem_config::deviceModeArg
 
uint8_t _flexspi_mem_config::configCmdEnable
 
uint8_t _flexspi_mem_config::configModeType [3]
 
flexspi_lut_seq_t _flexspi_mem_config::configCmdSeqs [3]
 
uint32_t _flexspi_mem_config::reserved1
 
uint32_t _flexspi_mem_config::configCmdArgs [3]
 
uint32_t _flexspi_mem_config::reserved2
 
uint32_t _flexspi_mem_config::controllerMiscOption
 
uint8_t _flexspi_mem_config::deviceType
 
uint8_t _flexspi_mem_config::sflashPadType
 
uint8_t _flexspi_mem_config::serialClkFreq
 
uint8_t _flexspi_mem_config::lutCustomSeqEnable
 
uint32_t _flexspi_mem_config::reserved3 [2]
 
uint32_t _flexspi_mem_config::sflashA1Size
 
uint32_t _flexspi_mem_config::sflashA2Size
 
uint32_t _flexspi_mem_config::sflashB1Size
 
uint32_t _flexspi_mem_config::sflashB2Size
 
uint32_t _flexspi_mem_config::csPadSettingOverride
 
uint32_t _flexspi_mem_config::sclkPadSettingOverride
 
uint32_t _flexspi_mem_config::dataPadSettingOverride
 
uint32_t _flexspi_mem_config::dqsPadSettingOverride
 
uint32_t _flexspi_mem_config::timeoutInMs
 
uint32_t _flexspi_mem_config::commandInterval
 
flexspi_dll_time_t _flexspi_mem_config::dataValidTime [2]
 
uint16_t _flexspi_mem_config::busyOffset
 
uint16_t _flexspi_mem_config::busyBitPolarity
 
uint32_t _flexspi_mem_config::lookupTable [64]
 
flexspi_lut_seq_t _flexspi_mem_config::lutCustomSeq [12]
 
uint32_t _flexspi_mem_config::reserved4 [4]
 
flexspi_mem_config_t _flexspi_nor_config::memConfig
 Common memory configuration info via FlexSPI. More...
 
uint32_t _flexspi_nor_config::pageSize
 Page size of Serial NOR. More...
 
uint32_t _flexspi_nor_config::sectorSize
 Sector size of Serial NOR. More...
 
uint8_t _flexspi_nor_config::ipcmdSerialClkFreq
 Clock frequency for IP command. More...
 
uint8_t _flexspi_nor_config::isUniformBlockSize
 Sector/Block size is the same. More...
 
uint8_t _flexspi_nor_config::isDataOrderSwapped
 The data order is swapped in OPI DDR mode (only i.MXRT11*) More...
 
uint8_t _flexspi_nor_config::reserved0
 Reserved for future use. More...
 
uint8_t _flexspi_nor_config::serialNorType
 Serial NOR Flash type: 0/1/2/3. More...
 
uint8_t _flexspi_nor_config::needExitNoCmdMode
 Need to exit NoCmd mode before other IP command. More...
 
uint8_t _flexspi_nor_config::halfClkForNonReadCmd
 Half the Serial Clock for non-read command: true/false. More...
 
uint8_t _flexspi_nor_config::needRestoreNoCmdMode
 Need to Restore NoCmd mode after IP commmand execution. More...
 
uint32_t _flexspi_nor_config::blockSize
 Block size. More...
 
uint32_t _flexspi_nor_config::reserve2 [10]
 Reserved for future use. More...
 
flexspi_operation_t _flexspi_xfer::operation
 
uint32_t _flexspi_xfer::baseAddress
 
uint32_t _flexspi_xfer::seqId
 
uint32_t _flexspi_xfer::seqNum
 
bool _flexspi_xfer::isParallelModeEnable
 
uint32_t * _flexspi_xfer::txBuffer
 
uint32_t _flexspi_xfer::txSize
 
uint32_t * _flexspi_xfer::rxBuffer
 
uint32_t _flexspi_xfer::rxSize
 
uint32_t   _serial_nor_config_option::max_freq: 4
 
uint32_t   _serial_nor_config_option::misc_mode: 4
 
uint32_t   _serial_nor_config_option::quad_mode_setting: 4
 
uint32_t   _serial_nor_config_option::cmd_pads: 4
 
uint32_t   _serial_nor_config_option::query_pads: 4
 
uint32_t   _serial_nor_config_option::device_type: 4
 
uint32_t   _serial_nor_config_option::option_size: 4
 
uint32_t   _serial_nor_config_option::tag: 4
 
struct {
   uint32_t   _serial_nor_config_option::max_freq: 4
 
   uint32_t   _serial_nor_config_option::misc_mode: 4
 
   uint32_t   _serial_nor_config_option::quad_mode_setting: 4
 
   uint32_t   _serial_nor_config_option::cmd_pads: 4
 
   uint32_t   _serial_nor_config_option::query_pads: 4
 
   uint32_t   _serial_nor_config_option::device_type: 4
 
   uint32_t   _serial_nor_config_option::option_size: 4
 
   uint32_t   _serial_nor_config_option::tag: 4
 
}   _serial_nor_config_option::B
 
uint32_t   _serial_nor_config_option::U
 
union {
   struct {
      uint32_t   _serial_nor_config_option::max_freq: 4
 
      uint32_t   _serial_nor_config_option::misc_mode: 4
 
      uint32_t   _serial_nor_config_option::quad_mode_setting: 4
 
      uint32_t   _serial_nor_config_option::cmd_pads: 4
 
      uint32_t   _serial_nor_config_option::query_pads: 4
 
      uint32_t   _serial_nor_config_option::device_type: 4
 
      uint32_t   _serial_nor_config_option::option_size: 4
 
      uint32_t   _serial_nor_config_option::tag: 4
 
   }   B
 
   uint32_t   U
 
_serial_nor_config_option::option0
 
uint32_t   _serial_nor_config_option::dummy_cycles: 8
 
uint32_t   _serial_nor_config_option::status_override: 8
 
uint32_t   _serial_nor_config_option::pinmux_group: 4
 
uint32_t   _serial_nor_config_option::dqs_pinmux_group: 4
 
uint32_t   _serial_nor_config_option::drive_strength: 4
 
uint32_t   _serial_nor_config_option::flash_connection: 4
 
struct {
   uint32_t   _serial_nor_config_option::dummy_cycles: 8
 
   uint32_t   _serial_nor_config_option::status_override: 8
 
   uint32_t   _serial_nor_config_option::pinmux_group: 4
 
   uint32_t   _serial_nor_config_option::dqs_pinmux_group: 4
 
   uint32_t   _serial_nor_config_option::drive_strength: 4
 
   uint32_t   _serial_nor_config_option::flash_connection: 4
 
}   _serial_nor_config_option::B
 
uint32_t   _serial_nor_config_option::U
 
union {
   struct {
      uint32_t   _serial_nor_config_option::dummy_cycles: 8
 
      uint32_t   _serial_nor_config_option::status_override: 8
 
      uint32_t   _serial_nor_config_option::pinmux_group: 4
 
      uint32_t   _serial_nor_config_option::dqs_pinmux_group: 4
 
      uint32_t   _serial_nor_config_option::drive_strength: 4
 
      uint32_t   _serial_nor_config_option::flash_connection: 4
 
   }   B
 
   uint32_t   U
 
_serial_nor_config_option::option1
 

Support for init FLEXSPI NOR configuration

enum  { kSerialFlash_1Pad = 1U , kSerialFlash_2Pads = 2U , kSerialFlash_4Pads = 4U , kSerialFlash_8Pads = 8U }
 Flash Pad Definitions.
 
enum  { kFLEXSPIClk_SDR , kFLEXSPIClk_DDR }
 FLEXSPI clock configuration type. More...
 
enum  _flexspi_read_sample_clk {
  kFLEXSPIReadSampleClk_LoopbackInternally = 0U , kFLEXSPIReadSampleClk_LoopbackFromDqsPad = 1U , kFLEXSPIReadSampleClk_LoopbackFromSckPad = 2U , kFLEXSPIReadSampleClk_ExternalInputFromDqsPad = 3U ,
  kFLEXSPIReadSampleClk_LoopbackInternally = 0U , kFLEXSPIReadSampleClk_LoopbackFromDqsPad = 1U , kFLEXSPIReadSampleClk_LoopbackFromSckPad = 2U , kFLEXSPIReadSampleClk_ExternalInputFromDqsPad = 3U
}
 FLEXSPI Read Sample Clock Source definition. More...
 
enum  { kFLEXSPIDeviceType_SerialNOR = 1U }
 Flash Type Definition. More...
 
enum  {
  kDeviceConfigCmdType_Generic , kDeviceConfigCmdType_QuadEnable , kDeviceConfigCmdType_Spi2Xpi , kDeviceConfigCmdType_Xpi2Spi ,
  kDeviceConfigCmdType_Spi2NoCmd , kDeviceConfigCmdType_Reset
}
 Flash Configuration Command Type. More...
 
enum  _flexspi_serial_clk_freq {
  kFLEXSPISerialClk_NoChange = 0U , kFLEXSPISerialClk_30MHz = 1U , kFLEXSPISerialClk_50MHz = 2U , kFLEXSPISerialClk_60MHz = 3U ,
  kFLEXSPISerialClk_75MHz = 4U , kFLEXSPISerialClk_80MHz = 5U , kFLEXSPISerialClk_100MHz = 6U , kFLEXSPISerialClk_133MHz = 7U ,
  kFLEXSPISerialClk_166MHz = 8U , kFLEXSPISerialClk_200MHz = 9U , kFLEXSPISerialClk_NoChange = 0U , kFLEXSPISerialClk_30MHz = 1U ,
  kFLEXSPISerialClk_50MHz = 2U , kFLEXSPISerialClk_60MHz = 3U , kFLEXSPISerialClk_75MHz = 4U , kFLEXSPISerialClk_80MHz = 5U ,
  kFLEXSPISerialClk_100MHz = 6U , kFLEXSPISerialClk_133MHz = 7U , kFLEXSPISerialClk_166MHz = 8U
}
 Defintions for FLEXSPI Serial Clock Frequency. More...
 
enum  {
  kFLEXSPIMiscOffset_DiffClkEnable = 0U , kFLEXSPIMiscOffset_Ck2Enable = 1U , kFLEXSPIMiscOffset_ParallelEnable = 2U , kFLEXSPIMiscOffset_WordAddressableEnable = 3U ,
  kFLEXSPIMiscOffset_SafeConfigFreqEnable = 4U , kFLEXSPIMiscOffset_PadSettingOverrideEnable = 5U , kFLEXSPIMiscOffset_DdrModeEnable = 6U , kFLEXSPIMiscOffset_UseValidTimeForAllFreq = 7U
}
 Misc feature bit definitions. More...
 
enum  { kSerialNorType_StandardSPI , kSerialNorType_HyperBus , kSerialNorType_XPI , kSerialNorType_NoCmd }
 

FLEXSPI NOR Configuration

enum  { kSerialFlash_ISSI_ManufacturerID = 0x9DU , kSerialFlash_Adesto_ManufacturerID = 0x1F , kSerialFlash_Winbond_ManufacturerID = 0xEFU , kSerialFlash_Cypress_ManufacturerID = 0x01U }
 Manufacturer ID. More...
 
enum  _flexspi_nor_status {
  kStatus_ROM_FLEXSPI_SequenceExecutionTimeout , kStatus_ROM_FLEXSPI_InvalidSequence = MAKE_STATUS(kROM_StatusGroup_FLEXSPI, 1) , kStatus_ROM_FLEXSPI_DeviceTimeout = MAKE_STATUS(kROM_StatusGroup_FLEXSPI, 2) , kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed ,
  kStatus_ROM_FLEXSPINOR_SFDP_NotFound , kStatus_ROM_FLEXSPINOR_Flash_NotFound , kStatus_ROM_FLEXSPI_SequenceExecutionTimeout , kStatus_ROM_FLEXSPI_InvalidSequence = MAKE_STATUS(kStatusGroup_FLEXSPI, 1) ,
  kStatus_ROM_FLEXSPI_DeviceTimeout = MAKE_STATUS(kStatusGroup_FLEXSPI, 2) , kStatus_ROM_FLEXSPINOR_SFDP_NotFound , kStatus_ROM_FLEXSPINOR_Flash_NotFound , kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed
}
 ROM FLEXSPI NOR flash status. More...
 
enum  _flexspi_operation {
  kFLEXSPIOperation_Command , kFLEXSPIOperation_Config , kFLEXSPIOperation_Write , kFLEXSPIOperation_Read ,
  kFLEXSPIOperation_End = kFLEXSPIOperation_Read , kFLEXSPIOperation_Command , kFLEXSPIOperation_Config , kFLEXSPIOperation_Write ,
  kFLEXSPIOperation_Read
}
 
typedef struct _flexspi_lut_seq flexspi_lut_seq_t
 FLEXSPI LUT Sequence structure.
 
typedef struct _flexspi_mem_config flexspi_mem_config_t
 FLEXSPI Memory Configuration Block.
 
typedef struct _flexspi_nor_config flexspi_nor_config_t
 Serial NOR configuration block.
 
typedef enum _flexspi_operation flexspi_operation_t
 
typedef struct _flexspi_xfer flexspi_xfer_t
 FLEXSPI Transfer Context.
 

Support for init FLEXSPI NOR configuration

enum  { kSerialFlash_1Pad = 1U , kSerialFlash_2Pads = 2U , kSerialFlash_4Pads = 4U , kSerialFlash_8Pads = 8U }
 Flash Pad Definitions. More...
 
enum  { kFLEXSPIClk_SDR , kFLEXSPIClk_DDR }
 FLEXSPI clock configuration type. More...
 
enum  _flexspi_read_sample_clk {
  kFLEXSPIReadSampleClk_LoopbackInternally = 0U , kFLEXSPIReadSampleClk_LoopbackFromDqsPad = 1U , kFLEXSPIReadSampleClk_LoopbackFromSckPad = 2U , kFLEXSPIReadSampleClk_ExternalInputFromDqsPad = 3U ,
  kFLEXSPIReadSampleClk_LoopbackInternally = 0U , kFLEXSPIReadSampleClk_LoopbackFromDqsPad = 1U , kFLEXSPIReadSampleClk_LoopbackFromSckPad = 2U , kFLEXSPIReadSampleClk_ExternalInputFromDqsPad = 3U
}
 FLEXSPI Read Sample Clock Source definition. More...
 
enum  { kFLEXSPIDeviceType_SerialNOR = 1U }
 Flash Type Definition. More...
 
enum  {
  kDeviceConfigCmdType_Generic , kDeviceConfigCmdType_QuadEnable , kDeviceConfigCmdType_Spi2Xpi , kDeviceConfigCmdType_Xpi2Spi ,
  kDeviceConfigCmdType_Spi2NoCmd , kDeviceConfigCmdType_Reset
}
 Flash Configuration Command Type. More...
 
enum  _flexspi_serial_clk_freq {
  kFLEXSPISerialClk_NoChange = 0U , kFLEXSPISerialClk_30MHz = 1U , kFLEXSPISerialClk_50MHz = 2U , kFLEXSPISerialClk_60MHz = 3U ,
  kFLEXSPISerialClk_75MHz = 4U , kFLEXSPISerialClk_80MHz = 5U , kFLEXSPISerialClk_100MHz = 6U , kFLEXSPISerialClk_133MHz = 7U ,
  kFLEXSPISerialClk_166MHz = 8U , kFLEXSPISerialClk_200MHz = 9U , kFLEXSPISerialClk_NoChange = 0U , kFLEXSPISerialClk_30MHz = 1U ,
  kFLEXSPISerialClk_50MHz = 2U , kFLEXSPISerialClk_60MHz = 3U , kFLEXSPISerialClk_75MHz = 4U , kFLEXSPISerialClk_80MHz = 5U ,
  kFLEXSPISerialClk_100MHz = 6U , kFLEXSPISerialClk_133MHz = 7U , kFLEXSPISerialClk_166MHz = 8U
}
 Definitions for FLEXSPI Serial Clock Frequency. More...
 
enum  {
  kFLEXSPIMiscOffset_DiffClkEnable = 0U , kFLEXSPIMiscOffset_Ck2Enable = 1U , kFLEXSPIMiscOffset_ParallelEnable = 2U , kFLEXSPIMiscOffset_WordAddressableEnable = 3U ,
  kFLEXSPIMiscOffset_SafeConfigFreqEnable = 4U , kFLEXSPIMiscOffset_PadSettingOverrideEnable = 5U , kFLEXSPIMiscOffset_DdrModeEnable = 6U , kFLEXSPIMiscOffset_UseValidTimeForAllFreq = 7U
}
 Misc feature bit definitions. More...
 
enum  { kSerialFlash_ISSI_ManufacturerID = 0x9DU , kSerialFlash_Adesto_ManufacturerID = 0x1F , kSerialFlash_Winbond_ManufacturerID = 0xEFU , kSerialFlash_Cypress_ManufacturerID = 0x01U }
 Manufacturer ID. More...
 
enum  _flexspi_nor_status {
  kStatus_ROM_FLEXSPI_SequenceExecutionTimeout , kStatus_ROM_FLEXSPI_InvalidSequence = MAKE_STATUS(kROM_StatusGroup_FLEXSPI, 1) , kStatus_ROM_FLEXSPI_DeviceTimeout = MAKE_STATUS(kROM_StatusGroup_FLEXSPI, 2) , kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed ,
  kStatus_ROM_FLEXSPINOR_SFDP_NotFound , kStatus_ROM_FLEXSPINOR_Flash_NotFound , kStatus_ROM_FLEXSPI_SequenceExecutionTimeout , kStatus_ROM_FLEXSPI_InvalidSequence = MAKE_STATUS(kStatusGroup_FLEXSPI, 1) ,
  kStatus_ROM_FLEXSPI_DeviceTimeout = MAKE_STATUS(kStatusGroup_FLEXSPI, 2) , kStatus_ROM_FLEXSPINOR_SFDP_NotFound , kStatus_ROM_FLEXSPINOR_Flash_NotFound , kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed
}
 ROM FLEXSPI NOR flash status. More...
 

FLEXSPI NOR Configuration

enum  _flexspi_operation {
  kFLEXSPIOperation_Command , kFLEXSPIOperation_Config , kFLEXSPIOperation_Write , kFLEXSPIOperation_Read ,
  kFLEXSPIOperation_End = kFLEXSPIOperation_Read , kFLEXSPIOperation_Command , kFLEXSPIOperation_Config , kFLEXSPIOperation_Write ,
  kFLEXSPIOperation_Read
}
 FLEXSPI Operation Context. More...
 
typedef struct _flexspi_lut_seq flexspi_lut_seq_t
 FLEXSPI LUT Sequence structure.
 
typedef struct _flexspi_mem_config flexspi_mem_config_t
 FLEXSPI Memory Configuration Block.
 
typedef struct _flexspi_nor_config flexspi_nor_config_t
 Serial NOR configuration block.
 
typedef enum _flexspi_operation flexspi_operation_t
 FLEXSPI Operation Context.
 
typedef struct _flexspi_xfer flexspi_xfer_t
 FLEXSPI Transfer Context.
 
#define kFLEXSPIOperation_End   kFLEXSPIOperation_Read
 
#define MISRA_CAST(to_type, to_var, from_type, from_var)
 convert the type for MISRA More...
 

Configuration Option

typedef struct _serial_nor_config_option serial_nor_config_option_t
 Serial NOR Configuration Option.
 

Common ROMAPI fearures info defines

#define FSL_ROM_HAS_FLEXSPINOR_API   (1)
 
#define FSL_ROM_HAS_RUNBOOTLOADER_API   (0)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_GET_CONFIG   (0)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_FLASH_INIT   (1)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE   (1)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE_SECTOR   (1)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE_BLOCK   (0)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE_ALL   (1)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_PAGE_PROGRAM   (1)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_UPDATE_LUT   (1)
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_CMD_XFER   (1)
 
#define kROM_StatusGroup_FLEXSPI   60U
 
#define kROM_StatusGroup_FLEXSPINOR   200U
 
#define FSL_ROM_FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
 
#define FSL_ROM_FLEXSPI_BITMASK(bit_offset)   (1U << (bit_offset))
 Generate bit mask.
 
#define FLEXSPI_CFG_BLK_TAG   (0x42464346UL)
 FLEXSPI memory config block related defintions. More...
 
#define FLEXSPI_CFG_BLK_VERSION   (0x56010400UL)
 
#define CMD_SDR   0x01U
 
#define CMD_DDR   0x21U
 
#define RADDR_SDR   0x02U
 
#define RADDR_DDR   0x22U
 
#define CADDR_SDR   0x03U
 
#define CADDR_DDR   0x23U
 
#define MODE1_SDR   0x04U
 
#define MODE1_DDR   0x24U
 
#define MODE2_SDR   0x05U
 
#define MODE2_DDR   0x25U
 
#define MODE4_SDR   0x06U
 
#define MODE4_DDR   0x26U
 
#define MODE8_SDR   0x07U
 
#define MODE8_DDR   0x27U
 
#define WRITE_SDR   0x08U
 
#define WRITE_DDR   0x28U
 
#define READ_SDR   0x09U
 
#define READ_DDR   0x29U
 
#define LEARN_SDR   0x0AU
 
#define LEARN_DDR   0x2AU
 
#define DATSZ_SDR   0x0BU
 
#define DATSZ_DDR   0x2BU
 
#define DUMMY_SDR   0x0CU
 
#define DUMMY_DDR   0x2CU
 
#define DUMMY_RWDS_SDR   0x0DU
 
#define DUMMY_RWDS_DDR   0x2DU
 
#define JMP_ON_CS   0x1FU
 
#define STOP   0U
 
#define FLEXSPI_1PAD   0U
 
#define FLEXSPI_2PAD   1U
 
#define FLEXSPI_4PAD   2U
 
#define FLEXSPI_8PAD   3U
 
#define NOR_CMD_INDEX_READ   0U
 
#define NOR_CMD_INDEX_READSTATUS   1U
 
#define NOR_CMD_INDEX_WRITEENABLE   2U
 
#define NOR_CMD_INDEX_ERASESECTOR   3U
 
#define NOR_CMD_INDEX_PAGEPROGRAM   4U
 
#define NOR_CMD_INDEX_CHIPERASE   5U
 
#define NOR_CMD_INDEX_DUMMY   6U
 
#define NOR_CMD_INDEX_ERASEBLOCK   7U
 
#define NOR_CMD_LUT_SEQ_IDX_READ   0U
 
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS   1U
 
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI    2U
 
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE   3U
 
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI    4U
 
#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR   5U
 
#define NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK   8U
 
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM   9U
 
#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE   11U
 
#define NOR_CMD_LUT_SEQ_IDX_READ_SFDP   13U
 
#define NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD    14U
 
#define NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD    15U
 

Common ROMAPI features info defines

#define FSL_ROM_HAS_FLEXSPINOR_API   (1)
 ROM has FLEXSPI NOR API.
 
#define FSL_ROM_HAS_RUNBOOTLOADER_API   (1)
 ROM has run bootloader API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_GET_CONFIG   (1)
 ROM has FLEXSPI NOR get config API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_FLASH_INIT   (1)
 ROM has flash init API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE   (1)
 ROM has erase API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE_SECTOR   (1)
 ROM has erase sector API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE_BLOCK   (1)
 ROM has erase block API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_ERASE_ALL   (1)
 ROM has erase all API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_READ   (1)
 ROM has read API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_UPDATE_LUT   (1)
 ROM has update lut API.
 
#define FSL_ROM_FLEXSPINOR_API_HAS_FEATURE_CMD_XFER   (1)
 ROM has FLEXSPI command API.
 
#define kROM_StatusGroup_FLEXSPINOR   201U
 
#define FSL_ROM_FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1)
 
#define FSL_ROM_FLEXSPI_BITMASK(bit_offset)   (1U << (bit_offset))
 Generate bit mask.
 
#define FLEXSPI_CFG_BLK_TAG   (0x42464346UL)
 FLEXSPI memory config block related definitions. More...
 
#define FLEXSPI_CFG_BLK_VERSION   (0x56010400UL)
 
#define CMD_SDR   0x01U
 
#define CMD_DDR   0x21U
 
#define RADDR_SDR   0x02U
 
#define RADDR_DDR   0x22U
 
#define CADDR_SDR   0x03U
 
#define CADDR_DDR   0x23U
 
#define MODE1_SDR   0x04U
 
#define MODE1_DDR   0x24U
 
#define MODE2_SDR   0x05U
 
#define MODE2_DDR   0x25U
 
#define MODE4_SDR   0x06U
 
#define MODE4_DDR   0x26U
 
#define MODE8_SDR   0x07U
 
#define MODE8_DDR   0x27U
 
#define WRITE_SDR   0x08U
 
#define WRITE_DDR   0x28U
 
#define READ_SDR   0x09U
 
#define READ_DDR   0x29U
 
#define LEARN_SDR   0x0AU
 
#define LEARN_DDR   0x2AU
 
#define DATSZ_SDR   0x0BU
 
#define DATSZ_DDR   0x2BU
 
#define DUMMY_SDR   0x0CU
 
#define DUMMY_DDR   0x2CU
 
#define DUMMY_RWDS_SDR   0x0DU
 
#define DUMMY_RWDS_DDR   0x2DU
 
#define JMP_ON_CS   0x1FU
 
#define STOP   0U
 
#define FLEXSPI_1PAD   0U
 
#define FLEXSPI_2PAD   1U
 
#define FLEXSPI_4PAD   2U
 
#define FLEXSPI_8PAD   3U
 
#define NOR_CMD_LUT_SEQ_IDX_READ   0U
 
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS   1U
 
#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI    2U
 
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE   3U
 
#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI    4U
 
#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR   5U
 
#define NOR_CMD_LUT_SEQ_IDX_READID   7U
 
#define NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK   8U
 
#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM   9U
 
#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE   11U
 
#define NOR_CMD_LUT_SEQ_IDX_READ_SFDP   13U
 
#define NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD    14U
 
#define NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD    15U
 

Detailed Description

Macro Definition Documentation

◆ FLEXSPI_CFG_BLK_TAG [1/2]

#define FLEXSPI_CFG_BLK_TAG   (0x42464346UL)

FLEXSPI memory config block related defintions.

ascii "FCFB" Big Endian

◆ FLEXSPI_CFG_BLK_TAG [2/2]

#define FLEXSPI_CFG_BLK_TAG   (0x42464346UL)

FLEXSPI memory config block related definitions.

ascii "FCFB" Big Endian

◆ FLEXSPI_CFG_BLK_VERSION [1/2]

#define FLEXSPI_CFG_BLK_VERSION   (0x56010400UL)

V1.4.0

◆ FLEXSPI_CFG_BLK_VERSION [2/2]

#define FLEXSPI_CFG_BLK_VERSION   (0x56010400UL)

V1.4.0

◆ FSL_ROM_FLEXSPI_LUT_SEQ [1/2]

#define FSL_ROM_FLEXSPI_LUT_SEQ (   cmd0,
  pad0,
  op0,
  cmd1,
  pad1,
  op1 
)
Value:
FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))
#define FLEXSPI_LUT_NUM_PADS0(x)
Definition: MIMXRT1052.h:22264
#define FLEXSPI_LUT_OPERAND1(x)
Definition: MIMXRT1052.h:22276
#define FLEXSPI_LUT_OPCODE1(x)
Definition: MIMXRT1052.h:22288
#define FLEXSPI_LUT_OPERAND0(x)
Definition: MIMXRT1052.h:22258
#define FLEXSPI_LUT_OPCODE0(x)
Definition: MIMXRT1052.h:22270

◆ FSL_ROM_FLEXSPI_LUT_SEQ [2/2]

#define FSL_ROM_FLEXSPI_LUT_SEQ (   cmd0,
  pad0,
  op0,
  cmd1,
  pad1,
  op1 
)
Value:
FLEXSPI_LUT_NUM_PADS1(pad1) | FLEXSPI_LUT_OPCODE1(cmd1))

◆ kROM_StatusGroup_FLEXSPI

#define kROM_StatusGroup_FLEXSPI   60U

ROM FLEXSPI status group number.

◆ kROM_StatusGroup_FLEXSPINOR [1/2]

#define kROM_StatusGroup_FLEXSPINOR   200U

ROM FLEXSPI NOR status group number.

◆ kROM_StatusGroup_FLEXSPINOR [2/2]

#define kROM_StatusGroup_FLEXSPINOR   201U

ROM FLEXSPI NOR status group number.

◆ MISRA_CAST

#define MISRA_CAST (   to_type,
  to_var,
  from_type,
  from_var 
)
Value:
do \
{ \
union \
{ \
to_type to_var_tmp; \
from_type from_var_tmp; \
} type_converter_var = {.from_var_tmp = (from_var)}; \
(to_var) = type_converter_var.to_var_tmp; \
} while (false)

convert the type for MISRA

◆ NOR_CMD_LUT_SEQ_IDX_CHIPERASE [1/2]

#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE   11U

Chip Erase sequence in lookupTable id stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_CHIPERASE [2/2]

#define NOR_CMD_LUT_SEQ_IDX_CHIPERASE   11U

Chip Erase sequence in lookupTable id stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK [1/2]

#define NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK   8U

Erase Block sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK [2/2]

#define NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK   8U

Erase Block sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_ERASESECTOR [1/2]

#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR   5U

Erase Sector sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_ERASESECTOR [2/2]

#define NOR_CMD_LUT_SEQ_IDX_ERASESECTOR   5U

Erase Sector sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD [1/2]

#define NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD    15U

Exit 0-4-4/0-8-8 mode sequence id in lookupTable stored in config blobk

◆ NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD [2/2]

#define NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD    15U

Exit 0-4-4/0-8-8 mode sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM [1/2]

#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM   9U

Program sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM [2/2]

#define NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM   9U

Program sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READ [1/2]

#define NOR_CMD_LUT_SEQ_IDX_READ   0U

NOR LUT sequence index used for default LUT assignment NOTE: The will take effect if the lut sequences are not customized. READ LUT sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READ [2/2]

#define NOR_CMD_LUT_SEQ_IDX_READ   0U

NOR LUT sequence index used for default LUT assignment.

Note
It will take effect if the lut sequences are not customized. READ LUT sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READ_SFDP [1/2]

#define NOR_CMD_LUT_SEQ_IDX_READ_SFDP   13U

Read SFDP sequence in lookupTable id stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READ_SFDP [2/2]

#define NOR_CMD_LUT_SEQ_IDX_READ_SFDP   13U

Read SFDP sequence in lookupTable id stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READSTATUS [1/2]

#define NOR_CMD_LUT_SEQ_IDX_READSTATUS   1U

Read Status LUT sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READSTATUS [2/2]

#define NOR_CMD_LUT_SEQ_IDX_READSTATUS   1U

Read Status LUT sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI [1/2]

#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI    2U

Read status DPI/QPI/OPI sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI [2/2]

#define NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI    2U

Read status DPI/QPI/OPI sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD [1/2]

#define NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD    14U

Restore 0-4-4/0-8-8 mode sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD [2/2]

#define NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD    14U

Restore 0-4-4/0-8-8 mode sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_WRITEENABLE [1/2]

#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE   3U

Write Enable sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_WRITEENABLE [2/2]

#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE   3U

Write Enable sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI [1/2]

#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI    4U

Write Enable DPI/QPI/OPI sequence id in lookupTable stored in config block

◆ NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI [2/2]

#define NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI    4U

Write Enable DPI/QPI/OPI sequence id in lookupTable stored in config block

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

FLEXSPI clock configuration type.

Enumerator
kFLEXSPIClk_SDR 

Clock configure for SDR mode

kFLEXSPIClk_DDR 

Clock configurat for DDR mode

◆ anonymous enum

anonymous enum

Flash Type Definition.

Enumerator
kFLEXSPIDeviceType_SerialNOR 

Flash device is Serial NOR

◆ anonymous enum

anonymous enum

Flash Configuration Command Type.

Enumerator
kDeviceConfigCmdType_Generic 

Generic command, for example: configure dummy cycles, drive strength, etc

kDeviceConfigCmdType_QuadEnable 

Quad Enable command

kDeviceConfigCmdType_Spi2Xpi 

Switch from SPI to DPI/QPI/OPI mode

kDeviceConfigCmdType_Xpi2Spi 

Switch from DPI/QPI/OPI to SPI mode

kDeviceConfigCmdType_Spi2NoCmd 

Switch to 0-4-4/0-8-8 mode

kDeviceConfigCmdType_Reset 

Reset device command

◆ anonymous enum

anonymous enum

Misc feature bit definitions.

Enumerator
kFLEXSPIMiscOffset_DiffClkEnable 

Bit for Differential clock enable

kFLEXSPIMiscOffset_Ck2Enable 

Bit for CK2 enable

kFLEXSPIMiscOffset_ParallelEnable 

Bit for Parallel mode enable

kFLEXSPIMiscOffset_WordAddressableEnable 

Bit for Word Addressable enable

kFLEXSPIMiscOffset_SafeConfigFreqEnable 

Bit for Safe Configuration Frequency enable

kFLEXSPIMiscOffset_PadSettingOverrideEnable 

Bit for Pad setting override enable

kFLEXSPIMiscOffset_DdrModeEnable 

Bit for DDR clock confiuration indication.

kFLEXSPIMiscOffset_UseValidTimeForAllFreq 

Bit for DLLCR settings under all modes

◆ anonymous enum

anonymous enum
Enumerator
kSerialNorType_StandardSPI 

Device that support Standard SPI and Extended SPI mode

kSerialNorType_HyperBus 

Device that supports HyperBus only

kSerialNorType_XPI 

Device that works under DPI, QPI or OPI mode

kSerialNorType_NoCmd 

Device that works under No command mode (XIP mode/Performance Enhance mode/continous read mode)

◆ anonymous enum

anonymous enum

Manufacturer ID.

Enumerator
kSerialFlash_ISSI_ManufacturerID 

Manufacturer ID of the ISSI serial flash

kSerialFlash_Adesto_ManufacturerID 

Manufacturer ID of the Adesto Technologies serial flash

kSerialFlash_Winbond_ManufacturerID 

Manufacturer ID of the Winbond serial flash

kSerialFlash_Cypress_ManufacturerID 

Manufacturer ID for Cypress

◆ anonymous enum

anonymous enum

Flash Pad Definitions.

Enumerator
kSerialFlash_1Pad 

1-wire communication

kSerialFlash_2Pads 

2-wire communication

kSerialFlash_4Pads 

4-wire communication

kSerialFlash_8Pads 

8-wire communication

◆ anonymous enum

anonymous enum

FLEXSPI clock configuration type.

Enumerator
kFLEXSPIClk_SDR 

Clock configure for SDR mode

kFLEXSPIClk_DDR 

Clock configure for DDR mode

◆ anonymous enum

anonymous enum

Flash Type Definition.

Enumerator
kFLEXSPIDeviceType_SerialNOR 

Flash device is Serial NOR

◆ anonymous enum

anonymous enum

Flash Configuration Command Type.

Enumerator
kDeviceConfigCmdType_Generic 

Generic command, for example: configure dummy cycles, drive strength, etc.

kDeviceConfigCmdType_QuadEnable 

Quad Enable command

kDeviceConfigCmdType_Spi2Xpi 

Switch from SPI to DPI/QPI/OPI mode

kDeviceConfigCmdType_Xpi2Spi 

Switch from DPI/QPI/OPI to SPI mode

kDeviceConfigCmdType_Spi2NoCmd 

Switch to 0-4-4/0-8-8 mode

kDeviceConfigCmdType_Reset 

Reset device command

◆ anonymous enum

anonymous enum

Misc feature bit definitions.

Enumerator
kFLEXSPIMiscOffset_DiffClkEnable 

Bit for Differential clock enable

kFLEXSPIMiscOffset_Ck2Enable 

Bit for CK2 enable

kFLEXSPIMiscOffset_ParallelEnable 

Bit for Parallel mode enable

kFLEXSPIMiscOffset_WordAddressableEnable 

Bit for Word Addressable enable

kFLEXSPIMiscOffset_SafeConfigFreqEnable 

Bit for Safe Configuration Frequency enable

kFLEXSPIMiscOffset_PadSettingOverrideEnable 

Bit for Pad setting override enable

kFLEXSPIMiscOffset_DdrModeEnable 

Bit for DDR clock configuration indication.

kFLEXSPIMiscOffset_UseValidTimeForAllFreq 

Bit for DLLCR settings under all modes

◆ anonymous enum

anonymous enum

Manufacturer ID.

Enumerator
kSerialFlash_ISSI_ManufacturerID 

Manufacturer ID of the ISSI serial flash

kSerialFlash_Adesto_ManufacturerID 

Manufacturer ID of the Adesto Technologies serial flash

kSerialFlash_Winbond_ManufacturerID 

Manufacturer ID of the Winbond serial flash

kSerialFlash_Cypress_ManufacturerID 

Manufacturer ID for Cypress

◆ _flexspi_nor_status [1/2]

ROM FLEXSPI NOR flash status.

Enumerator
kStatus_ROM_FLEXSPI_SequenceExecutionTimeout 

Status for Sequence Execution timeout

kStatus_ROM_FLEXSPI_InvalidSequence 

Status for Invalid Sequence

kStatus_ROM_FLEXSPI_DeviceTimeout 

Status for Device timeout

kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed 

Status for DDR Read dummy probe failure

kStatus_ROM_FLEXSPINOR_SFDP_NotFound 

Status for SFDP read failure

kStatus_ROM_FLEXSPINOR_Flash_NotFound 

Status for Flash detection failure

kStatus_ROM_FLEXSPI_SequenceExecutionTimeout 

Status for Sequence Execution timeout

kStatus_ROM_FLEXSPI_InvalidSequence 

Status for Invalid Sequence

kStatus_ROM_FLEXSPI_DeviceTimeout 

Status for Device timeout

kStatus_ROM_FLEXSPINOR_SFDP_NotFound 

Status for SFDP read failure

kStatus_ROM_FLEXSPINOR_Flash_NotFound 

Status for Flash detection failure

kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed 

Status for DDR Read dummy probe failure

◆ _flexspi_nor_status [2/2]

ROM FLEXSPI NOR flash status.

Enumerator
kStatus_ROM_FLEXSPI_SequenceExecutionTimeout 

Status for Sequence Execution timeout

kStatus_ROM_FLEXSPI_InvalidSequence 

Status for Invalid Sequence

kStatus_ROM_FLEXSPI_DeviceTimeout 

Status for Device timeout

kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed 

Status for DDR Read dummy probe failure

kStatus_ROM_FLEXSPINOR_SFDP_NotFound 

Status for SFDP read failure

kStatus_ROM_FLEXSPINOR_Flash_NotFound 

Status for Flash detection failure

kStatus_ROM_FLEXSPI_SequenceExecutionTimeout 

Status for Sequence Execution timeout

kStatus_ROM_FLEXSPI_InvalidSequence 

Status for Invalid Sequence

kStatus_ROM_FLEXSPI_DeviceTimeout 

Status for Device timeout

kStatus_ROM_FLEXSPINOR_SFDP_NotFound 

Status for SFDP read failure

kStatus_ROM_FLEXSPINOR_Flash_NotFound 

Status for Flash detection failure

kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed 

Status for DDR Read dummy probe failure

◆ _flexspi_operation [1/2]

Enumerator
kFLEXSPIOperation_Command 

FLEXSPI operation: Only command, both TX and RX buffer are ignored.

kFLEXSPIOperation_Config 

FLEXSPI operation: Configure device mode, the TX FIFO size is fixed in LUT.

kFLEXSPIOperation_Write 

FLEXSPI operation: Write, only TX buffer is effective

kFLEXSPIOperation_Read 

FLEXSPI operation: Read, only Rx Buffer is effective.

kFLEXSPIOperation_Command 

FLEXSPI operation: Only command, both TX and RX buffer are ignored.

kFLEXSPIOperation_Config 

FLEXSPI operation: Configure device mode, the TX FIFO size is fixed in LUT.

kFLEXSPIOperation_Write 

FLEXSPI operation: Write, only TX buffer is effective

kFLEXSPIOperation_Read 

FLEXSPI operation: Read, only Rx Buffer is effective.

◆ _flexspi_operation [2/2]

FLEXSPI Operation Context.

Enumerator
kFLEXSPIOperation_Command 

FLEXSPI operation: Only command, both TX and RX buffer are ignored.

kFLEXSPIOperation_Config 

FLEXSPI operation: Configure device mode, the TX FIFO size is fixed in LUT.

kFLEXSPIOperation_Write 

FLEXSPI operation: Write, only TX buffer is effective

kFLEXSPIOperation_Read 

FLEXSPI operation: Read, only Rx Buffer is effective.

kFLEXSPIOperation_Command 

FLEXSPI operation: Only command, both TX and RX buffer are ignored.

kFLEXSPIOperation_Config 

FLEXSPI operation: Configure device mode, the TX FIFO size is fixed in LUT.

kFLEXSPIOperation_Write 

FLEXSPI operation: Write, only TX buffer is effective

kFLEXSPIOperation_Read 

FLEXSPI operation: Read, only Rx Buffer is effective.

◆ _flexspi_read_sample_clk [1/2]

FLEXSPI Read Sample Clock Source definition.

Enumerator
kFLEXSPIReadSampleClk_LoopbackInternally 

FLEXSPI Read Sample Clock Source from the Internal loopback

kFLEXSPIReadSampleClk_LoopbackFromDqsPad 

FLEXSPI Read Sample Clock Source from the Dqs Pad loopback

kFLEXSPIReadSampleClk_LoopbackFromSckPad 

FLEXSPI Read Sample Clock Source from the Sck Pad loopback

kFLEXSPIReadSampleClk_ExternalInputFromDqsPad 

FLEXSPI Read Sample Clock Source from the External Input by the Dqs Pad

◆ _flexspi_read_sample_clk [2/2]

FLEXSPI Read Sample Clock Source definition.

Enumerator
kFLEXSPIReadSampleClk_LoopbackInternally 

FLEXSPI Read Sample Clock Source from the Internal loopback

kFLEXSPIReadSampleClk_LoopbackFromDqsPad 

FLEXSPI Read Sample Clock Source from the Dqs Pad loopback

kFLEXSPIReadSampleClk_LoopbackFromSckPad 

FLEXSPI Read Sample Clock Source from the Sck Pad loopback

kFLEXSPIReadSampleClk_ExternalInputFromDqsPad 

FLEXSPI Read Sample Clock Source from the External Input by the Dqs Pad

◆ _flexspi_serial_clk_freq [1/2]

Defintions for FLEXSPI Serial Clock Frequency.

Enumerator
kFLEXSPISerialClk_NoChange 

FlexSPI serial clock no changed

kFLEXSPISerialClk_30MHz 

FlexSPI serial clock 30MHz

kFLEXSPISerialClk_50MHz 

FlexSPI serial clock 50MHz

kFLEXSPISerialClk_60MHz 

FlexSPI serial clock 60MHz

kFLEXSPISerialClk_75MHz 

FlexSPI serial clock 75MHz

kFLEXSPISerialClk_80MHz 

FlexSPI serial clock 80MHz

kFLEXSPISerialClk_100MHz 

FlexSPI serial clock 100MHz

kFLEXSPISerialClk_133MHz 

FlexSPI serial clock 133MHz

kFLEXSPISerialClk_166MHz 

FlexSPI serial clock 166MHz

◆ _flexspi_serial_clk_freq [2/2]

Definitions for FLEXSPI Serial Clock Frequency.

Enumerator
kFLEXSPISerialClk_NoChange 

FlexSPI serial clock no changed

kFLEXSPISerialClk_30MHz 

FlexSPI serial clock 30MHz

kFLEXSPISerialClk_50MHz 

FlexSPI serial clock 50MHz

kFLEXSPISerialClk_60MHz 

FlexSPI serial clock 60MHz

kFLEXSPISerialClk_75MHz 

FlexSPI serial clock 75MHz

kFLEXSPISerialClk_80MHz 

FlexSPI serial clock 80MHz

kFLEXSPISerialClk_100MHz 

FlexSPI serial clock 100MHz

kFLEXSPISerialClk_133MHz 

FlexSPI serial clock 133MHz

kFLEXSPISerialClk_166MHz 

FlexSPI serial clock 166MHz

Variable Documentation

◆ baseAddress

uint32_t _flexspi_xfer::baseAddress

FLEXSPI operation base address

◆ blockSize

uint32_t _flexspi_nor_config::blockSize

Block size.

Block size

◆ busyBitPolarity

uint16_t _flexspi_mem_config::busyBitPolarity

[0x07e-0x07f] Busy flag polarity, 0 - busy flag is 1 when flash device is busy, 1 - busy flag is 0 when flash device is busy

◆ busyOffset

uint16_t _flexspi_mem_config::busyOffset

[0x07c-0x07d] Busy offset, valid value: 0-31

◆ cmd_pads [1/2]

uint32_t _serial_nor_config_option::cmd_pads

Command pads

◆  [2/2]

uint32_t { ... } ::cmd_pads

Command pads

◆ columnAddressWidth

uint8_t _flexspi_mem_config::columnAddressWidth

[0x00f-0x00f] Column Address with, for HyperBus protocol, it is fixed to 3, For Serial NAND, need to refer to datasheet

◆ commandInterval

uint32_t _flexspi_mem_config::commandInterval

[0x074-0x077] CS deselect interval between two commands

◆ configCmdArgs

uint32_t _flexspi_mem_config::configCmdArgs

[0x030-0x03b] Arguments/Parameters for device Configuration commands

◆ configCmdEnable

uint8_t _flexspi_mem_config::configCmdEnable

[0x01c-0x01c] Configure command Enable Flag, 1 - Enable, 0 - Disable

◆ configCmdSeqs

flexspi_lut_seq_t _flexspi_mem_config::configCmdSeqs

[0x020-0x02b] Sequence info for Device Configuration command, similar as deviceModeSeq

◆ configModeType

uint8_t _flexspi_mem_config::configModeType

[0x01d-0x01f] Configure Mode Type, similar as deviceModeTpe

◆ controllerMiscOption

uint32_t _flexspi_mem_config::controllerMiscOption

[0x040-0x043] Controller Misc Options, see Misc feature bit definitions for more details

◆ csHoldTime

uint8_t _flexspi_mem_config::csHoldTime

[0x00d-0x00d] Data hold time, default value: 3

◆ csPadSettingOverride

uint32_t _flexspi_mem_config::csPadSettingOverride

[0x060-0x063] CS pad setting override value

◆ csSetupTime

uint8_t _flexspi_mem_config::csSetupTime

[0x00e-0x00e] Date setup time, default value: 3

◆ dataPadSettingOverride

uint32_t _flexspi_mem_config::dataPadSettingOverride

[0x068-0x06b] data pad setting override value

◆ dataValidTime

flexspi_dll_time_t _flexspi_mem_config::dataValidTime

[0x078-0x07b] CLK edge to data valid time for PORT A and PORT B

◆ delay_cells

uint8_t flexspi_dll_time_t::delay_cells

Data valid time, in terms of delay cells

◆ device_type [1/2]

uint32_t _serial_nor_config_option::device_type

Device type

◆  [2/2]

uint32_t { ... } ::device_type

Device type

◆ deviceModeArg

uint32_t _flexspi_mem_config::deviceModeArg

[0x018-0x01b] Argument/Parameter for device configuration

◆ deviceModeCfgEnable

uint8_t _flexspi_mem_config::deviceModeCfgEnable

[0x010-0x010] Device Mode Configure enable flag, 1 - Enable, 0 - Disable

◆ deviceModeSeq

flexspi_lut_seq_t _flexspi_mem_config::deviceModeSeq

[0x014-0x017] Device mode sequence info, [7:0] - LUT sequence id, [15:8] - LUt sequence number, [31:16] Reserved

◆ deviceModeType

uint8_t _flexspi_mem_config::deviceModeType

[0x011-0x011] Specify the configuration command type:Quad Enable, DPI/QPI/OPI switch, Generic configuration, etc.

◆ deviceType

uint8_t _flexspi_mem_config::deviceType

[0x044-0x044] Device Type: See Flash Type Definition for more details

◆  [1/2]

uint32_t { ... } ::dqs_pinmux_group

The DQS Pinmux Group Selection

◆ dqs_pinmux_group [2/2]

uint32_t _serial_nor_config_option::dqs_pinmux_group

The DQS Pinmux Group Selection

◆ dqsPadSettingOverride

uint32_t _flexspi_mem_config::dqsPadSettingOverride

[0x06c-0x06f] DQS pad setting override value

◆  [1/2]

uint32_t { ... } ::drive_strength

The Drive Strength of FlexSPI Pads

◆ drive_strength [2/2]

uint32_t _serial_nor_config_option::drive_strength

The Drive Strength of FlexSPI Pads

◆ dummy_cycles [1/2]

uint32_t _serial_nor_config_option::dummy_cycles

Dummy cycles before read

◆  [2/2]

uint32_t { ... } ::dummy_cycles

Dummy cycles before read

◆ flash_connection [1/2]

uint32_t _serial_nor_config_option::flash_connection

Flash connection option: 0 - Single Flash connected to port A, 1 - Parallel mode, 2 - Single Flash connected to Port B

◆  [2/2]

uint32_t { ... } ::flash_connection

Flash connection option: 0 - Single Flash connected to port A, 1 - Parallel mode, 2 - Single Flash connected to Port B

◆ halfClkForNonReadCmd

uint8_t _flexspi_nor_config::halfClkForNonReadCmd

Half the Serial Clock for non-read command: true/false.

Half the Serial Clock for non-read command: true/false

◆ ipcmdSerialClkFreq

uint8_t _flexspi_nor_config::ipcmdSerialClkFreq

Clock frequency for IP command.

Clock frequency for IP command

◆ isDataOrderSwapped

uint8_t _flexspi_nor_config::isDataOrderSwapped

The data order is swapped in OPI DDR mode (only i.MXRT11*)

Data order (D0, D1, D2, D3) is swapped (D1,D0, D3, D2)

◆ isParallelModeEnable

bool _flexspi_xfer::isParallelModeEnable

Is a parallel transfer

◆ isUniformBlockSize

uint8_t _flexspi_nor_config::isUniformBlockSize

Sector/Block size is the same.

Sector/Block size is the same

◆ lookupTable

uint32_t _flexspi_mem_config::lookupTable

[0x080-0x17f] Lookup table holds Flash command sequences

◆ lutCustomSeq

flexspi_lut_seq_t _flexspi_mem_config::lutCustomSeq

[0x180-0x1af] Customizable LUT Sequences

◆ lutCustomSeqEnable

uint8_t _flexspi_mem_config::lutCustomSeqEnable

[0x047-0x047] LUT customization Enable, it is required if the program/erase cannot be done using 1 LUT sequence, currently, only applicable to HyperFLASH

◆  [1/2]

uint32_t { ... } ::max_freq

Maximum supported Frequency

◆ max_freq [2/2]

uint32_t _serial_nor_config_option::max_freq

Maximum supported Frequency

◆ memConfig

flexspi_mem_config_t _flexspi_nor_config::memConfig

Common memory configuration info via FlexSPI.

Common memory configuration info via FLEXSPI

◆ misc_mode [1/2]

uint32_t _serial_nor_config_option::misc_mode

miscellaneous mode

◆  [2/2]

uint32_t { ... } ::misc_mode

miscellaneous mode

◆ needExitNoCmdMode

uint8_t _flexspi_nor_config::needExitNoCmdMode

Need to exit NoCmd mode before other IP command.

Need to exit NoCmd mode before other IP command

◆ needRestoreNoCmdMode

uint8_t _flexspi_nor_config::needRestoreNoCmdMode

Need to Restore NoCmd mode after IP commmand execution.

Need to Restore NoCmd mode after IP commmand execution

Need to Restore NoCmd mode after IP command execution

◆ operation

flexspi_operation_t _flexspi_xfer::operation

FLEXSPI operation

◆ option_size [1/2]

uint32_t _serial_nor_config_option::option_size

Option size, in terms of uint32_t, size = (option_size + 1) * 4

◆  [2/2]

uint32_t { ... } ::option_size

Option size, in terms of uint32_t, size = (option_size + 1) * 4

◆ pageSize

uint32_t _flexspi_nor_config::pageSize

Page size of Serial NOR.

Page size of Serial NOR

◆ pinmux_group [1/2]

uint32_t _serial_nor_config_option::pinmux_group

The pinmux group selection

◆  [2/2]

uint32_t { ... } ::pinmux_group

The pinmux group selection

◆ quad_mode_setting [1/2]

uint32_t _serial_nor_config_option::quad_mode_setting

Quad mode setting

◆  [2/2]

uint32_t { ... } ::quad_mode_setting

Quad mode setting

◆ query_pads [1/2]

uint32_t _serial_nor_config_option::query_pads

SFDP read pads

◆  [2/2]

uint32_t { ... } ::query_pads

SFDP read pads

◆ readSampleClkSrc

uint8_t _flexspi_mem_config::readSampleClkSrc

[0x00c-0x00c] Read Sample Clock Source, valid value: 0/1/3

◆ reserve2

uint32_t _flexspi_nor_config::reserve2

Reserved for future use.

Reserved for future use

◆ reserved0 [1/2]

uint8_t _flexspi_nor_config::reserved0

Reserved for future use.

Reserved for future use

◆ reserved0 [2/2]

uint32_t _flexspi_mem_config::reserved0

[0x008-0x00b] Reserved for future use

◆ reserved1

uint32_t _flexspi_mem_config::reserved1

[0x02c-0x02f] Reserved for future use

◆ reserved2

uint32_t _flexspi_mem_config::reserved2

[0x03c-0x03f] Reserved for future use

◆ reserved3

uint32_t _flexspi_mem_config::reserved3

[0x048-0x04f] Reserved for future use

◆ reserved4

uint32_t _flexspi_mem_config::reserved4

[0x1b0-0x1bf] Reserved for future use

◆ rxBuffer

uint32_t * _flexspi_xfer::rxBuffer

Rx buffer

◆ rxSize

uint32_t _flexspi_xfer::rxSize

Rx size in bytes

◆ sclkPadSettingOverride

uint32_t _flexspi_mem_config::sclkPadSettingOverride

[0x064-0x067] SCK pad setting override value

◆ sectorSize

uint32_t _flexspi_nor_config::sectorSize

Sector size of Serial NOR.

Sector size of Serial NOR

◆ seqId [1/2]

uint8_t _flexspi_lut_seq::seqId

Sequence Index, valid number: 0-15

◆ seqId [2/2]

uint32_t _flexspi_xfer::seqId

Sequence Id

◆ seqNum [1/2]

uint8_t _flexspi_lut_seq::seqNum

Sequence Number, valid number: 1-16

◆ seqNum [2/2]

uint32_t _flexspi_xfer::seqNum

Sequence Number

◆ serialClkFreq

uint8_t _flexspi_mem_config::serialClkFreq

[0x046-0x046] Serial Flash Frequencey, device specific definitions, See System Boot Chapter for more details

[0x046-0x046] Serial Flash Frequency, device specific definitions. See System Boot Chapter for more details

◆ serialNorType

uint8_t _flexspi_nor_config::serialNorType

Serial NOR Flash type: 0/1/2/3.

Serial NOR Flash type: 0/1/2/3

◆ sflashA1Size

uint32_t _flexspi_mem_config::sflashA1Size

[0x050-0x053] Size of Flash connected to A1

◆ sflashA2Size

uint32_t _flexspi_mem_config::sflashA2Size

[0x054-0x057] Size of Flash connected to A2

◆ sflashB1Size

uint32_t _flexspi_mem_config::sflashB1Size

[0x058-0x05b] Size of Flash connected to B1

◆ sflashB2Size

uint32_t _flexspi_mem_config::sflashB2Size

[0x05c-0x05f] Size of Flash connected to B2

◆ sflashPadType

uint8_t _flexspi_mem_config::sflashPadType

[0x045-0x045] Serial Flash Pad Type: 1 - Single, 2 - Dual, 4 - Quad, 8 - Octal

◆ status_override [1/2]

uint32_t _serial_nor_config_option::status_override

Override status register value during device mode configuration

◆  [2/2]

uint32_t { ... } ::status_override

Override status register value during device mode configuration

◆ tag [1/3]

uint32_t _flexspi_mem_config::tag

[0x000-0x003] Tag, fixed value 0x42464346UL

◆  [2/3]

uint32_t { ... } ::tag

Tag, must be 0x0E

◆ tag [3/3]

uint32_t _serial_nor_config_option::tag

Tag, must be 0x0E

◆ time_100ps

uint8_t flexspi_dll_time_t::time_100ps

Data valid time, in terms of 100ps

◆ timeoutInMs

uint32_t _flexspi_mem_config::timeoutInMs

[0x070-0x073] Timeout threshold for read status command

◆ txBuffer

uint32_t * _flexspi_xfer::txBuffer

Tx buffer

◆ txSize

uint32_t _flexspi_xfer::txSize

Tx size in bytes

◆ version

uint32_t _flexspi_mem_config::version

[0x004-0x007] Version,[31:24] -'V', [23:16] - Major, [15:8] - Minor, [7:0] - bugfix

◆ waitTimeCfgCommands

uint16_t _flexspi_mem_config::waitTimeCfgCommands

[0x012-0x013] Wait time for all configuration commands, unit: 100us, Used for DPI/QPI/OPI switch or reset command