![]() |
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. |