![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Data Structures | |
| struct | serial_nor_config_option_t |
| Serial NOR Configuration Option. More... | |
| union | flash_run_context_t |
| Flash Run Context. More... | |
| struct | flexspi_lut_seq_t |
| FlexSPI LUT Sequence structure. More... | |
| struct | flexspi_dll_time_t |
| FlexSPI Dll Time Block. More... | |
| struct | flexspi_mem_config_t |
| FlexSPI Memory Configuration Block. More... | |
| struct | flexspi_xfer_t |
| FlexSPI Transfer Context. More... | |
| struct | flexspi_nor_config_t |
| Serial NOR configuration block. More... | |
Macros | |
| #define | NOR_CMD_INDEX_READ CMD_INDEX_READ |
| FlexSPI LUT command. More... | |
| #define | NOR_CMD_INDEX_READSTATUS CMD_INDEX_READSTATUS |
| 1 | |
| #define | NOR_CMD_INDEX_WRITEENABLE CMD_INDEX_WRITEENABLE |
| 2 | |
| #define | NOR_CMD_INDEX_ERASESECTOR 3 |
| 3 | |
| #define | NOR_CMD_INDEX_PAGEPROGRAM CMD_INDEX_WRITE |
| 4 | |
| #define | NOR_CMD_INDEX_CHIPERASE 5 |
| 5 | |
| #define | NOR_CMD_INDEX_DUMMY 6 |
| 6 | |
| #define | NOR_CMD_INDEX_ERASEBLOCK 7 |
| 7 | |
| #define | NOR_CMD_LUT_SEQ_IDX_READ CMD_LUT_SEQ_IDX_READ |
| 0 READ LUT sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_READSTATUS CMD_LUT_SEQ_IDX_READSTATUS |
| 1 Read Status LUT sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_READSTATUS_XPI 2 |
| 2 Read status DPI/QPI/OPI sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_WRITEENABLE CMD_LUT_SEQ_IDX_WRITEENABLE |
| 3 Write Enable sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_WRITEENABLE_XPI 4 |
| 4 Write Enable DPI/QPI/OPI sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_ERASESECTOR 5 |
| 5 Erase Sector sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_ERASEBLOCK 8 |
| 8 Erase Block sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_PAGEPROGRAM CMD_LUT_SEQ_IDX_WRITE |
| 9 Program sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_CHIPERASE 11 |
| 11 Chip Erase sequence in lookupTable id stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_READ_SFDP 13 |
| 13 Read SFDP sequence in lookupTable id stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_RESTORE_NOCMD 14 |
| 14 Restore 0-4-4/0-8-8 mode sequence id in lookupTable stored in config block | |
| #define | NOR_CMD_LUT_SEQ_IDX_EXIT_NOCMD 15 |
| 15 Exit 0-4-4/0-8-8 mode sequence id in lookupTable stored in config blobk | |
Enumerations | |
| enum | |
| Flash Configuration Option0 device_type. More... | |
| enum | |
| Flash Configuration Option0 quad_mode_setting. More... | |
| enum | |
| Flash Configuration Option0 misc_mode. More... | |
| enum | |
| FLEXSPI_RESET_PIN boot configurations in OTP. | |
| enum | |
| Flash Configuration Option1 flash_connection. More... | |
| enum | |
| Flash Device Mode Configuration Sequence. | |
| enum | |
| Flash Config Mode Definition. | |
| enum | { kFlexSpiDeviceType_SerialNOR = 1, kFlexSpiDeviceType_SerialNAND = 2, kFlexSpiDeviceType_SerialRAM = 3, kFlexSpiDeviceType_MCP_NOR_NAND = 0x12, kFlexSpiDeviceType_MCP_NOR_RAM = 0x13 } |
| Flash Device Type Definition. More... | |
| enum | |
| Flash Pad Definitions. | |
| enum | { kDeviceConfigCmdType_Generic, kDeviceConfigCmdType_QuadEnable, kDeviceConfigCmdType_Spi2Xpi, kDeviceConfigCmdType_Xpi2Spi, kDeviceConfigCmdType_Spi2NoCmd, kDeviceConfigCmdType_Reset } |
| Flash Configuration Command Type. More... | |
| enum | flexspi_operation_t { kFlexSpiOperation_Command = 0, kFlexSpiOperation_Config = 1, kFlexSpiOperation_Write = 2, kFlexSpiOperation_Read = 3, kFlexSpiOperation_End = kFlexSpiOperation_Read } |
| FlexSPI Operation Type. More... | |
Functions | |
| status_t | IAP_FlexspiNorInit (uint32_t instance, flexspi_nor_config_t *config) |
| Initialize Serial NOR devices via FlexSPI. More... | |
| status_t | IAP_FlexspiNorPageProgram (uint32_t instance, flexspi_nor_config_t *config, uint32_t dstAddr, const uint32_t *src) |
| Program data to Serial NOR via FlexSPI. More... | |
| status_t | IAP_FlexspiNorEraseAll (uint32_t instance, flexspi_nor_config_t *config) |
| Erase all the Serial NOR devices connected on FlexSPI. More... | |
| status_t | IAP_FlexspiNorErase (uint32_t instance, flexspi_nor_config_t *config, uint32_t start, uint32_t length) |
| Erase Flash Region specified by address and length. More... | |
| status_t | IAP_FlexspiNorEraseSector (uint32_t instance, flexspi_nor_config_t *config, uint32_t address) |
| Erase one sector specified by address. More... | |
| status_t | IAP_FlexspiNorEraseBlock (uint32_t instance, flexspi_nor_config_t *config, uint32_t address) |
| Erase one block specified by address. More... | |
| status_t | IAP_FlexspiNorGetConfig (uint32_t instance, flexspi_nor_config_t *config, serial_nor_config_option_t *option) |
| Get FlexSPI NOR Configuration Block based on specified option. More... | |
| status_t | IAP_FlexspiNorRead (uint32_t instance, flexspi_nor_config_t *config, uint32_t *dst, uint32_t start, uint32_t bytes) |
| Read data from Flexspi NOR Flash. More... | |
| status_t | IAP_FlexspiXfer (uint32_t instance, flexspi_xfer_t *xfer) |
| Get FlexSPI Xfer data. More... | |
| status_t | IAP_FlexspiUpdateLut (uint32_t instance, uint32_t seqIndex, const uint32_t *lutBase, uint32_t numberOfSeq) |
| Update FlexSPI Lookup table. More... | |
| status_t | IAP_FlexspiSetClockSource (uint32_t clockSrc) |
| Set the clock source for FlexSPI. More... | |
| void | IAP_FlexspiConfigClock (uint32_t instance, uint32_t freqOption, uint32_t sampleClkMode) |
| Configure the flexspi interface clock frequency and data sample mode. More... | |
| status_t | IAP_FlexspiNorAutoConfig (uint32_t instance, flexspi_nor_config_t *config, serial_nor_config_option_t *option) |
| Configure flexspi nor automatically. More... | |
FlexSPI status. | |
| enum | |
| FlexSPI Driver status group. More... | |
| enum | _flexspi_status { kStatus_FLEXSPI_Success = MAKE_STATUS(kStatusGroup_Generic, 0), kStatus_FLEXSPI_Fail = MAKE_STATUS(kStatusGroup_Generic, 1), kStatus_FLEXSPI_InvalidArgument = MAKE_STATUS(kStatusGroup_Generic, 4), kStatus_FLEXSPI_SequenceExecutionTimeout, kStatus_FLEXSPI_InvalidSequence = MAKE_STATUS(kStatusGroup_FlexSPI, 1), kStatus_FLEXSPI_DeviceTimeout = MAKE_STATUS(kStatusGroup_FlexSPI, 2), kStatus_FLEXSPINOR_ProgramFail, kStatus_FLEXSPINOR_EraseSectorFail, kStatus_FLEXSPINOR_EraseAllFail = MAKE_STATUS(kStatusGroup_FlexSPINOR, 2), kStatus_FLEXSPINOR_WaitTimeout = MAKE_STATUS(kStatusGroup_FlexSPINOR, 3) , kStatus_FLEXSPINOR_WriteAlignmentError, kStatus_FLEXSPINOR_CommandFailure, kStatus_FLEXSPINOR_SFDP_NotFound = MAKE_STATUS(kStatusGroup_FlexSPINOR, 7), kStatus_FLEXSPINOR_Unsupported_SFDP_Version, kStatus_FLEXSPINOR_Flash_NotFound, kStatus_FLEXSPINOR_DTRRead_DummyProbeFailed } |
| FlexSPI Driver status. More... | |
| struct serial_nor_config_option_t |
| union flash_run_context_t |
| struct flexspi_lut_seq_t |
| struct flexspi_dll_time_t |
| struct flexspi_mem_config_t |
Data Fields | |
| uint32_t | tag |
| [0x000-0x003] Tag, fixed value 0x42464346UL | |
| uint32_t | version |
| [0x004-0x007] Version,[31:24] -'V', [23:16] - Major, [15:8] - Minor, [7:0] - bugfix | |
| uint32_t | reserved0 |
| [0x008-0x00b] Reserved for future use | |
| uint8_t | readSampleClkSrc |
| [0x00c-0x00c] Read Sample Clock Source, valid value: 0/1/3 | |
| uint8_t | csHoldTime |
| [0x00d-0x00d] CS hold time, default value: 3 | |
| uint8_t | csSetupTime |
| [0x00e-0x00e] CS setup time, default value: 3 | |
| uint8_t | columnAddressWidth |
| [0x00f-0x00f] Column Address with, for HyperBus protocol, it is fixed to 3, For | |
| uint8_t | deviceModeCfgEnable |
| Serial NAND, need to refer to datasheet. More... | |
| uint8_t | deviceModeType |
| [0x011-0x011] Specify the configuration command type:Quad Enable, DPI/QPI/OPI switch, | |
| uint16_t | waitTimeCfgCommands |
| Generic configuration, etc. More... | |
| flexspi_lut_seq_t | deviceModeSeq |
| DPI/QPI/OPI switch or reset command. More... | |
| uint32_t | deviceModeArg |
| sequence number, [31:16] Reserved More... | |
| uint8_t | configCmdEnable |
| [0x01c-0x01c] Configure command Enable Flag, 1 - Enable, 0 - Disable | |
| uint8_t | configModeType [3] |
| [0x01d-0x01f] Configure Mode Type, similar as deviceModeTpe | |
| flexspi_lut_seq_t | configCmdSeqs [3] |
| [0x020-0x02b] Sequence info for Device Configuration command, similar as deviceModeSeq | |
| uint32_t | reserved1 |
| [0x02c-0x02f] Reserved for future use | |
| uint32_t | configCmdArgs [3] |
| [0x030-0x03b] Arguments/Parameters for device Configuration commands | |
| uint32_t | reserved2 |
| [0x03c-0x03f] Reserved for future use | |
| uint32_t | controllerMiscOption |
| [0x040-0x043] Controller Misc Options, see Misc feature bit definitions for more | |
| uint8_t | deviceType |
| details More... | |
| uint8_t | sflashPadType |
| [0x045-0x045] Serial Flash Pad Type: 1 - Single, 2 - Dual, 4 - Quad, 8 - Octal | |
| uint8_t | serialClkFreq |
| [0x046-0x046] Serial Flash Frequencey, device specific definitions, See System Boot | |
| uint8_t | lutCustomSeqEnable |
| Chapter for more details. More... | |
| uint32_t | reserved3 [2] |
| be done using 1 LUT sequence, currently, only applicable to HyperFLASH More... | |
| uint32_t | sflashA1Size |
| [0x050-0x053] Size of Flash connected to A1 | |
| uint32_t | sflashA2Size |
| [0x054-0x057] Size of Flash connected to A2 | |
| uint32_t | sflashB1Size |
| [0x058-0x05b] Size of Flash connected to B1 | |
| uint32_t | sflashB2Size |
| [0x05c-0x05f] Size of Flash connected to B2 | |
| uint32_t | csPadSettingOverride |
| [0x060-0x063] CS pad setting override value | |
| uint32_t | sclkPadSettingOverride |
| [0x064-0x067] SCK pad setting override value | |
| uint32_t | dataPadSettingOverride |
| [0x068-0x06b] data pad setting override value | |
| uint32_t | dqsPadSettingOverride |
| [0x06c-0x06f] DQS pad setting override value | |
| uint32_t | timeoutInMs |
| [0x070-0x073] Timeout threshold for read status command | |
| uint32_t | commandInterval |
| [0x074-0x077] CS deselect interval between two commands | |
| flexspi_dll_time_t | dataValidTime [2] |
| [0x078-0x07b] CLK edge to data valid time for PORT A and PORT B | |
| uint16_t | busyOffset |
| [0x07c-0x07d] Busy offset, valid value: 0-31 | |
| uint16_t | busyBitPolarity |
| [0x07e-0x07f] Busy flag polarity, 0 - busy flag is 1 when flash device is busy, 1 - | |
| uint32_t | lookupTable [64] |
| busy flag is 0 when flash device is busy More... | |
| flexspi_lut_seq_t | lutCustomSeq [12] |
| [0x180-0x1af] Customizable LUT Sequences | |
| uint32_t | reserved4 [4] |
| [0x1b0-0x1bf] Reserved for future use | |
| uint8_t flexspi_mem_config_t::deviceModeCfgEnable |
[0x010-0x010] Device Mode Configure enable flag, 1 - Enable, 0 - Disable
| uint16_t flexspi_mem_config_t::waitTimeCfgCommands |
[0x012-0x013] Wait time for all configuration commands, unit: 100us, Used for
| flexspi_lut_seq_t flexspi_mem_config_t::deviceModeSeq |
[0x014-0x017] Device mode sequence info, [7:0] - LUT sequence id, [15:8] - LUt
| uint32_t flexspi_mem_config_t::deviceModeArg |
[0x018-0x01b] Argument/Parameter for device configuration
| uint8_t flexspi_mem_config_t::deviceType |
[0x044-0x044] Device Type: See Flash Type Definition for more details
| uint8_t flexspi_mem_config_t::lutCustomSeqEnable |
[0x047-0x047] LUT customization Enable, it is required if the program/erase cannot
| uint32_t flexspi_mem_config_t::reserved3[2] |
[0x048-0x04f] Reserved for future use
| uint32_t flexspi_mem_config_t::lookupTable[64] |
[0x080-0x17f] Lookup table holds Flash command sequences
| struct flexspi_xfer_t |
Data Fields | |
| flexspi_operation_t | operation |
| FlexSPI operation. | |
| uint32_t | baseAddress |
| FlexSPI operation base address. | |
| uint32_t | seqId |
| Sequence Id. | |
| uint32_t | seqNum |
| Sequence Number. | |
| bool | isParallelModeEnable |
| Is a parallel transfer. | |
| uint32_t * | txBuffer |
| Tx buffer. | |
| uint32_t | txSize |
| Tx size in bytes. | |
| uint32_t * | rxBuffer |
| Rx buffer. | |
| uint32_t | rxSize |
| Rx size in bytes. | |
| struct flexspi_nor_config_t |
Data Fields | |
| flexspi_mem_config_t | memConfig |
| Common memory configuration info via FlexSPI. | |
| uint32_t | pageSize |
| Page size of Serial NOR. | |
| uint32_t | sectorSize |
| Sector size of Serial NOR. | |
| uint8_t | ipcmdSerialClkFreq |
| Clock frequency for IP command. | |
| uint8_t | isUniformBlockSize |
| Sector/Block size is the same. | |
| uint8_t | isDataOrderSwapped |
| Data order (D0, D1, D2, D3) is swapped (D1,D0, D3, D2) | |
| uint8_t | reserved0 [1] |
| Reserved for future use. | |
| uint8_t | serialNorType |
| Serial NOR Flash type: 0/1/2/3. | |
| uint8_t | needExitNoCmdMode |
| Need to exit NoCmd mode before other IP command. | |
| uint8_t | halfClkForNonReadCmd |
| Half the Serial Clock for non-read command: true/false. | |
| uint8_t | needRestoreNoCmdMode |
| Need to Restore NoCmd mode after IP commmand execution. | |
| uint32_t | blockSize |
| Block size. | |
| uint32_t | flashStateCtx |
| Flash State Context. | |
| uint32_t | reserve2 [10] |
| Reserved for future use. | |
| #define NOR_CMD_INDEX_READ CMD_INDEX_READ |
0
| anonymous enum |
| enum _flexspi_status |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| enum flexspi_operation_t |
| status_t IAP_FlexspiNorInit | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config | ||
| ) |
This function configures the FlexSPI controller with the arguments pointed by param config.
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| status_t IAP_FlexspiNorPageProgram | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| uint32_t | dstAddr, | ||
| const uint32_t * | src | ||
| ) |
This function Program data to specified destination address.
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| dstAddr | The destination address to be programmed. |
| src | Points to the buffer which hold the data to be programmed. |
| status_t IAP_FlexspiNorEraseAll | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| status_t IAP_FlexspiNorErase | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| uint32_t | start, | ||
| uint32_t | length | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| start | The start address to be erased. |
| length | The length to be erased. |
| status_t IAP_FlexspiNorEraseSector | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| uint32_t | address | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| address | The address of the sector to be erased. |
| status_t IAP_FlexspiNorEraseBlock | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| uint32_t | address | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| address | The address of the block to be erased. |
| status_t IAP_FlexspiNorGetConfig | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| serial_nor_config_option_t * | option | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| option | The Flash Configuration Option block. Refer to serial_nor_config_option_t. |
| status_t IAP_FlexspiNorRead | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| uint32_t * | dst, | ||
| uint32_t | start, | ||
| uint32_t | bytes | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| dst | Buffer address used to store the read data. |
| start | The Read address. |
| bytes | The Read size |
| status_t IAP_FlexspiXfer | ( | uint32_t | instance, |
| flexspi_xfer_t * | xfer | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| xfer | The FlexSPI Transfer Context block. Refer to flexspi_xfer_t. |
| status_t IAP_FlexspiUpdateLut | ( | uint32_t | instance, |
| uint32_t | seqIndex, | ||
| const uint32_t * | lutBase, | ||
| uint32_t | numberOfSeq | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| seqIndex | The index of FlexSPI LUT to be updated. |
| lutBase | Points to the buffer which hold the LUT data to be programmed. |
| numberOfSeq | The number of LUT seq that need to be updated. |
| status_t IAP_FlexspiSetClockSource | ( | uint32_t | clockSrc | ) |
| clockSrc | Clock source for flexspi interface. |
| void IAP_FlexspiConfigClock | ( | uint32_t | instance, |
| uint32_t | freqOption, | ||
| uint32_t | sampleClkMode | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| freqOption | FlexSPI interface clock frequency selection. |
| sampleClkMode | FlexSPI controller data sample mode. |
| status_t IAP_FlexspiNorAutoConfig | ( | uint32_t | instance, |
| flexspi_nor_config_t * | config, | ||
| serial_nor_config_option_t * | option | ||
| ) |
| instance | FlexSPI controller instance, only support 0. |
| config | The Flash configuration block. Refer to flexspi_nor_config_t. |
| option | The Flash Configuration Option block. Refer to serial_nor_config_option_t. |