MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Flexspi Nand Flash

Overview

Data Structures

struct  flexspi_mem_config_t
 FlexSPI Memory Configuration Block. More...
 
struct  flexspi_mem_nand_handle_t
 NAND Flash handle info. More...
 

Macros

#define NAND_CMD_LUT_SEQ_IDX_READCACHE   0
 LUT sequence index for READ cache sequence.
 
#define NAND_CMD_LUT_SEQ_IDX_READSTATUS   1
 LUT sequence index for Read Status sequence.
 
#define NAND_CMD_LUT_SEQ_IDX_READJEDECID   2
 LUT sequence index for Read ID sequence.
 
#define NAND_CMD_LUT_SEQ_IDX_WRITEENABLE   3
 LUT sequence index for write enable sequence.
 
#define NAND_CMD_LUT_SEQ_IDX_READCACHE_ODD   4
 LUT sequence index for Read cache for odd blocks.
 
#define NAND_CMD_LUT_SEQ_IDX_ERASEBLOCK   5
 LUT sequence index for erase block.
 
#define NAND_CMD_LUT_SEQ_IDX_PROGRAMLOAD   6
 LUT sequence index for program load.
 
#define NAND_CMD_LUT_SEQ_IDX_PROGRAMLOAD_ODD   7
 LUT sequence index for program load for odd blocks.
 
#define NAND_CMD_LUT_SEQ_IDX_READPAGE   8
 LUT sequence index for program load for read page.
 
#define NAND_CMD_LUT_SEQ_IDX_READECCSTAT   9
 LUT sequence index for read ecc status.
 
#define NAND_CMD_LUT_SEQ_IDX_PROGRAMEXECUTE   10
 LUT sequence index for program execute.
 
#define NAND_CMD_LUT_SEQ_IDX_SETFEATURE   11
 LUT sequence index for get parameter table.
 
#define NAND_CMD_LUT_SEQ_IDX_UNLOCKALL   12
 Unlock all blocks.
 

Data Structure Documentation

struct flexspi_mem_config_t

Serial NOR configuration block.

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 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 More...
 
uint16_t busyBitPolarity
 [0x07e-0x07f] Busy flag polarity, 0 - busy flag is 1 when flash device is busy, 1 - More...
 
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
 
flexspi_device_config_t deviceConfig
 Device configuration structure.
 
flexspi_port_t devicePort
 Device connected to which port, SS0_A means port A1, SS0_B means port B1.
 
uint32_t dataBytesPerPage
 Data Size in one page, usually it is 2048 or 4096.
 
uint32_t bytesInPageSpareArea
 Total size in one page, usually, it equals 2 ^ width of column address.
 
uint32_t pagesPerBlock
 Pages per block.
 
uint32_t eccStatusMask
 ECC status mask.
 
uint32_t eccFailureMask
 ECC failure mask.
 
serial_nor_device_type_t deviceType
 Serial nor flash device type.
 
serial_nor_command_mode_t CurrentCommandMode
 Serial nor flash corrent command mode.
 
serial_nor_transfer_mode_t transferMode
 Transfer rate is SDR or DDR mode.
 
serial_nor_quad_mode_t quadMode
 Serial nor flash quad mode setting. More...
 
serial_nor_enhance_mode_t enhanceMode
 Serial nor flash performance enhance mode setting. More...
 
flexspi_pad_t commandPads
 Command padS setting. More...
 
flexspi_pad_t queryPads
 SFDP read pads setting. More...
 
uint8_t statusOverride
 Override status register value during device mode configuration. More...
 
uint32_t bytesInPageSize
 Page size in byte of Serial NOR.
 
uint32_t bytesInSectorSize
 Minimun Sector size in byte supported by Serial NOR.
 
uint32_t bytesInMemorySize
 Memory size in byte of Serial NOR.
 
uint8_t ipcmdSerialClkFreq
 Clock frequency for IP command.
 
uint8_t serialNorType
 Serial NOR Flash type: 0/1/2/3.
 
uint8_t needExitNoCmdMode
 Need to exit NoCmd mode before other IP command.
 
bool halfClkForNonReadCmd
 Half the Serial Clock for non-read command: true/false.
 
uint8_t needRestoreNoCmdMode
 Need to Restore NoCmd mode after IP commmand execution.
 
bool deviceModeCfgEnable
 Device Mode Configure enable flag, true - Enable, false - Disable.
 
uint32_t manufacturerId
 Manufacturer ID that each vendor has a unique ID depend on JESD216 spec.
 

Field Documentation

serial_nor_quad_mode_t flexspi_mem_config_t::quadMode
serial_nor_enhance_mode_t flexspi_mem_config_t::enhanceMode
flexspi_pad_t flexspi_mem_config_t::commandPads
flexspi_pad_t flexspi_mem_config_t::queryPads
uint8_t flexspi_mem_config_t::statusOverride
struct flexspi_mem_nand_handle_t

Data Fields

flexspi_port_t port
 Device connected to which port, SS0_A means port A1, SS0_B means port B1.
 
uint16_t busyOffset
 Busy offset, valid value: 0-31, only need for check option kNandReadyCheckOption_RB.
 
uint16_t busyBitPolarity
 Busy flag polarity, 0 - busy flag is 1 when flash device is busy, 1 -busy flag is 0 when flash device is busy, only need for check option kNandReadyCheckOption_RB.
 
uint32_t eccStatusMask
 ECC status mask.
 
uint32_t eccFailureMask
 ECC failure mask.