RTEMS 6.1-rc2
|
Data Structures | |
struct | _semc_sdram_config |
SEMC SDRAM configuration structure. More... | |
struct | _semc_nand_timing_config |
SEMC NAND device timing configuration structure. More... | |
struct | _semc_nand_config |
SEMC NAND configuration structure. More... | |
struct | _semc_nor_config |
SEMC NOR configuration structure. More... | |
struct | _semc_sram_config |
SEMC SRAM configuration structure. More... | |
struct | _semc_dbi_config |
SEMC DBI configuration structure. More... | |
struct | _semc_queuea_weight_struct |
SEMC AXI queue a weight setting structure. More... | |
union | _semc_queuea_weight |
SEMC AXI queue a weight setting union. More... | |
struct | _semc_queueb_weight_struct |
SEMC AXI queue b weight setting structure. More... | |
union | _semc_queueb_weight |
SEMC AXI queue b weight setting union. More... | |
struct | _semc_axi_queueweight |
SEMC AXI queue weight setting. More... | |
struct | _semc_config_t |
SEMC configuration structure. More... | |
Driver version | |
enum | { kStatus_SEMC_InvalidDeviceType = MAKE_STATUS(kStatusGroup_SEMC, 0) , kStatus_SEMC_IpCommandExecutionError = MAKE_STATUS(kStatusGroup_SEMC, 1) , kStatus_SEMC_AxiCommandExecutionError = MAKE_STATUS(kStatusGroup_SEMC, 2) , kStatus_SEMC_InvalidMemorySize = MAKE_STATUS(kStatusGroup_SEMC, 3) , kStatus_SEMC_InvalidIpcmdDataSize = MAKE_STATUS(kStatusGroup_SEMC, 4) , kStatus_SEMC_InvalidAddressPortWidth = MAKE_STATUS(kStatusGroup_SEMC, 5) , kStatus_SEMC_InvalidDataPortWidth = MAKE_STATUS(kStatusGroup_SEMC, 6) , kStatus_SEMC_InvalidSwPinmuxSelection = MAKE_STATUS(kStatusGroup_SEMC, 7) , kStatus_SEMC_InvalidBurstLength = MAKE_STATUS(kStatusGroup_SEMC, 8) , kStatus_SEMC_InvalidColumnAddressBitWidth = MAKE_STATUS(kStatusGroup_SEMC, 9) , kStatus_SEMC_InvalidBaseAddress = MAKE_STATUS(kStatusGroup_SEMC, 10) , kStatus_SEMC_InvalidTimerSetting = MAKE_STATUS(kStatusGroup_SEMC, 11) } |
SEMC status, _semc_status. More... | |
enum | _semc_mem_type { kSEMC_MemType_SDRAM = 0 , kSEMC_MemType_SRAM , kSEMC_MemType_NOR , kSEMC_MemType_NAND , kSEMC_MemType_8080 } |
SEMC memory device type. More... | |
enum | _semc_waitready_polarity { kSEMC_LowActive = 0 , kSEMC_HighActive } |
SEMC WAIT/RDY polarity. More... | |
enum | _semc_sdram_cs { kSEMC_SDRAM_CS0 = 0 , kSEMC_SDRAM_CS1 , kSEMC_SDRAM_CS2 , kSEMC_SDRAM_CS3 } |
SEMC SDRAM Chip selection . More... | |
enum | _semc_sram_cs { kSEMC_SRAM_CS0 = 0 } |
SEMC SRAM Chip selection . More... | |
enum | _semc_nand_access_type { kSEMC_NAND_ACCESS_BY_AXI = 0 , kSEMC_NAND_ACCESS_BY_IPCMD } |
SEMC NAND device type. More... | |
enum | _semc_interrupt_enable { kSEMC_IPCmdDoneInterrupt = SEMC_INTEN_IPCMDDONEEN_MASK , kSEMC_IPCmdErrInterrupt = SEMC_INTEN_IPCMDERREN_MASK , kSEMC_AXICmdErrInterrupt = SEMC_INTEN_AXICMDERREN_MASK , kSEMC_AXIBusErrInterrupt = SEMC_INTEN_AXIBUSERREN_MASK } |
SEMC interrupts . More... | |
enum | _semc_ipcmd_datasize { kSEMC_IPcmdDataSize_1bytes = 1 , kSEMC_IPcmdDataSize_2bytes , kSEMC_IPcmdDataSize_3bytes , kSEMC_IPcmdDataSize_4bytes } |
SEMC IP command data size in bytes. More... | |
enum | _semc_refresh_time { kSEMC_RefreshThreeClocks = 0x0U , kSEMC_RefreshSixClocks , kSEMC_RefreshNineClocks } |
SEMC auto-refresh timing. More... | |
enum | _semc_caslatency { kSEMC_LatencyOne = 1 , kSEMC_LatencyTwo , kSEMC_LatencyThree } |
CAS latency. More... | |
enum | _semc_sdram_column_bit_num { kSEMC_SdramColunm_12bit = 0x0U , kSEMC_SdramColunm_11bit , kSEMC_SdramColunm_10bit , kSEMC_SdramColunm_9bit } |
SEMC sdram column address bit number. More... | |
enum | _semc_sdram_burst_len { kSEMC_Sdram_BurstLen1 = 0 , kSEMC_Sdram_BurstLen2 , kSEMC_Sdram_BurstLen4 , kSEMC_Sdram_BurstLen8 } |
SEMC sdram burst length. More... | |
enum | _semc_nand_column_bit_num { kSEMC_NandColum_16bit = 0x0U , kSEMC_NandColum_15bit , kSEMC_NandColum_14bit , kSEMC_NandColum_13bit , kSEMC_NandColum_12bit , kSEMC_NandColum_11bit , kSEMC_NandColum_10bit , kSEMC_NandColum_9bit } |
SEMC nand column address bit number. More... | |
enum | _semc_nand_burst_len { kSEMC_Nand_BurstLen1 = 0 , kSEMC_Nand_BurstLen2 , kSEMC_Nand_BurstLen4 , kSEMC_Nand_BurstLen8 , kSEMC_Nand_BurstLen16 , kSEMC_Nand_BurstLen32 , kSEMC_Nand_BurstLen64 } |
SEMC nand burst length. More... | |
enum | _semc_norsram_column_bit_num { kSEMC_NorColum_12bit = 0x0U , kSEMC_NorColum_11bit , kSEMC_NorColum_10bit , kSEMC_NorColum_9bit , kSEMC_NorColum_8bit , kSEMC_NorColum_7bit , kSEMC_NorColum_6bit , kSEMC_NorColum_5bit , kSEMC_NorColum_4bit , kSEMC_NorColum_3bit , kSEMC_NorColum_2bit } |
SEMC nor/sram column address bit number. More... | |
enum | _semc_norsram_burst_len { kSEMC_Nor_BurstLen1 = 0 , kSEMC_Nor_BurstLen2 , kSEMC_Nor_BurstLen4 , kSEMC_Nor_BurstLen8 , kSEMC_Nor_BurstLen16 , kSEMC_Nor_BurstLen32 , kSEMC_Nor_BurstLen64 } |
SEMC nor/sram burst length. More... | |
enum | _semc_dbi_column_bit_num { kSEMC_Dbi_Colum_12bit = 0x0U , kSEMC_Dbi_Colum_11bit , kSEMC_Dbi_Colum_10bit , kSEMC_Dbi_Colum_9bit , kSEMC_Dbi_Colum_8bit , kSEMC_Dbi_Colum_7bit , kSEMC_Dbi_Colum_6bit , kSEMC_Dbi_Colum_5bit , kSEMC_Dbi_Colum_4bit , kSEMC_Dbi_Colum_3bit , kSEMC_Dbi_Colum_2bit } |
SEMC dbi column address bit number. More... | |
enum | _semc_dbi_burst_len { kSEMC_Dbi_BurstLen1 = 0 , kSEMC_Dbi_BurstLen2 , kSEMC_Dbi_Dbi_BurstLen4 , kSEMC_Dbi_BurstLen8 , kSEMC_Dbi_BurstLen16 , kSEMC_Dbi_BurstLen32 , kSEMC_Dbi_BurstLen64 } |
SEMC dbi burst length. More... | |
enum | _semc_iomux_pin { kSEMC_MUXA8 = SEMC_IOCR_MUX_A8_SHIFT , kSEMC_MUXCSX0 = SEMC_IOCR_MUX_CSX0_SHIFT , kSEMC_MUXCSX1 = SEMC_IOCR_MUX_CSX1_SHIFT , kSEMC_MUXCSX2 = SEMC_IOCR_MUX_CSX2_SHIFT , kSEMC_MUXCSX3 = SEMC_IOCR_MUX_CSX3_SHIFT , kSEMC_MUXRDY = SEMC_IOCR_MUX_RDY_SHIFT } |
SEMC IOMUXC. More... | |
enum | _semc_iomux_nora27_pin { kSEMC_MORA27_NONE = 0 , kSEMC_NORA27_MUXCSX3 = SEMC_IOCR_MUX_CSX3_SHIFT , kSEMC_NORA27_MUXRDY = SEMC_IOCR_MUX_RDY_SHIFT } |
SEMC NOR/PSRAM Address bit 27 A27. More... | |
enum | _semc_port_size { kSEMC_PortSize8Bit = 0 , kSEMC_PortSize16Bit } |
SEMC port size. More... | |
enum | _semc_addr_mode { kSEMC_AddrDataMux = 0 , kSEMC_AdvAddrdataMux , kSEMC_AddrDataNonMux } |
SEMC address mode. More... | |
enum | _semc_dqs_mode { kSEMC_Loopbackinternal = 0 , kSEMC_Loopbackdqspad } |
SEMC DQS read strobe mode. More... | |
enum | _semc_adv_polarity { kSEMC_AdvActiveLow = 0 , kSEMC_AdvActiveHigh } |
SEMC ADV signal active polarity. More... | |
enum | _semc_sync_mode { kSEMC_AsyncMode = 0 , kSEMC_SyncMode } |
SEMC sync mode. More... | |
enum | _semc_adv_level_control { kSEMC_AdvHigh = 0 , kSEMC_AdvLow } |
SEMC ADV signal level control. More... | |
enum | _semc_rdy_polarity { kSEMC_RdyActiveLow = 0 , kSEMC_RdyActivehigh } |
SEMC RDY signal active polarity. More... | |
enum | _semc_ipcmd_nand_addrmode { kSEMC_NANDAM_ColumnRow = 0x0U , kSEMC_NANDAM_ColumnCA0 , kSEMC_NANDAM_ColumnCA0CA1 , kSEMC_NANDAM_RawRA0 , kSEMC_NANDAM_RawRA0RA1 , kSEMC_NANDAM_RawRA0RA1RA2 } |
SEMC IP command for NAND: address mode. More... | |
enum | _semc_ipcmd_nand_cmdmode { kSEMC_NANDCM_Command = 0x2U , kSEMC_NANDCM_CommandHold , kSEMC_NANDCM_CommandAddress , kSEMC_NANDCM_CommandAddressHold , kSEMC_NANDCM_CommandAddressRead , kSEMC_NANDCM_CommandAddressWrite , kSEMC_NANDCM_CommandRead , kSEMC_NANDCM_CommandWrite , kSEMC_NANDCM_Read , kSEMC_NANDCM_Write } |
SEMC IP command for NAND: command mode. More... | |
enum | _semc_nand_address_option { kSEMC_NandAddrOption_5byte_CA2RA3 = 0U , kSEMC_NandAddrOption_4byte_CA2RA2 = 2U , kSEMC_NandAddrOption_3byte_CA2RA1 = 4U , kSEMC_NandAddrOption_4byte_CA1RA3 = 1U , kSEMC_NandAddrOption_3byte_CA1RA2 = 3U , kSEMC_NandAddrOption_2byte_CA1RA1 = 7U } |
SEMC NAND address option. More... | |
enum | _semc_ipcmd_nor_dbi { kSEMC_NORDBICM_Read = 0x2U , kSEMC_NORDBICM_Write } |
SEMC IP command for NOR. More... | |
enum | _semc_ipcmd_sram { kSEMC_SRAMCM_ArrayRead = 0x2U , kSEMC_SRAMCM_ArrayWrite , kSEMC_SRAMCM_RegRead , kSEMC_SRAMCM_RegWrite } |
SEMC IP command for SRAM. More... | |
enum | _semc_ipcmd_sdram { kSEMC_SDRAMCM_Read = 0x8U , kSEMC_SDRAMCM_Write , kSEMC_SDRAMCM_Modeset , kSEMC_SDRAMCM_Active , kSEMC_SDRAMCM_AutoRefresh , kSEMC_SDRAMCM_SelfRefresh , kSEMC_SDRAMCM_Precharge , kSEMC_SDRAMCM_Prechargeall } |
SEMC IP command for SDARM. More... | |
typedef enum _semc_mem_type | semc_mem_type_t |
SEMC memory device type. | |
typedef enum _semc_waitready_polarity | semc_waitready_polarity_t |
SEMC WAIT/RDY polarity. | |
typedef enum _semc_sdram_cs | semc_sdram_cs_t |
SEMC SDRAM Chip selection . | |
typedef enum _semc_sram_cs | semc_sram_cs_t |
SEMC SRAM Chip selection . | |
typedef enum _semc_nand_access_type | semc_nand_access_type_t |
SEMC NAND device type. | |
typedef enum _semc_interrupt_enable | semc_interrupt_enable_t |
SEMC interrupts . | |
typedef enum _semc_ipcmd_datasize | semc_ipcmd_datasize_t |
SEMC IP command data size in bytes. | |
typedef enum _semc_refresh_time | semc_refresh_time_t |
SEMC auto-refresh timing. | |
typedef enum _semc_caslatency | semc_caslatency_t |
CAS latency. | |
typedef enum _semc_sdram_column_bit_num | semc_sdram_column_bit_num_t |
SEMC sdram column address bit number. | |
typedef enum _semc_sdram_burst_len | sem_sdram_burst_len_t |
SEMC sdram burst length. | |
typedef enum _semc_nand_column_bit_num | semc_nand_column_bit_num_t |
SEMC nand column address bit number. | |
typedef enum _semc_nand_burst_len | sem_nand_burst_len_t |
SEMC nand burst length. | |
typedef enum _semc_norsram_column_bit_num | semc_norsram_column_bit_num_t |
SEMC nor/sram column address bit number. | |
typedef enum _semc_norsram_burst_len | sem_norsram_burst_len_t |
SEMC nor/sram burst length. | |
typedef enum _semc_dbi_column_bit_num | semc_dbi_column_bit_num_t |
SEMC dbi column address bit number. | |
typedef enum _semc_dbi_burst_len | sem_dbi_burst_len_t |
SEMC dbi burst length. | |
typedef enum _semc_iomux_pin | semc_iomux_pin |
SEMC IOMUXC. | |
typedef enum _semc_iomux_nora27_pin | semc_iomux_nora27_pin |
SEMC NOR/PSRAM Address bit 27 A27. | |
typedef enum _semc_port_size | smec_port_size_t |
SEMC port size. | |
typedef enum _semc_addr_mode | semc_addr_mode_t |
SEMC address mode. | |
typedef enum _semc_dqs_mode | semc_dqs_mode_t |
SEMC DQS read strobe mode. | |
typedef enum _semc_adv_polarity | semc_adv_polarity_t |
SEMC ADV signal active polarity. | |
typedef enum _semc_sync_mode | semc_sync_mode_t |
SEMC sync mode. | |
typedef enum _semc_adv_level_control | semc_adv_level_control_t |
SEMC ADV signal level control. | |
typedef enum _semc_rdy_polarity | semc_rdy_polarity_t |
SEMC RDY signal active polarity. | |
typedef enum _semc_ipcmd_nand_addrmode | semc_ipcmd_nand_addrmode_t |
SEMC IP command for NAND: address mode. | |
typedef enum _semc_ipcmd_nand_cmdmode | semc_ipcmd_nand_cmdmode_t |
SEMC IP command for NAND: command mode. | |
typedef enum _semc_nand_address_option | semc_nand_address_option_t |
SEMC NAND address option. | |
typedef enum _semc_ipcmd_nor_dbi | semc_ipcmd_nor_dbi_t |
SEMC IP command for NOR. | |
typedef enum _semc_ipcmd_sram | semc_ipcmd_sram_t |
SEMC IP command for SRAM. | |
typedef enum _semc_ipcmd_sdram | semc_ipcmd_sdram_t |
SEMC IP command for SDARM. | |
typedef struct _semc_sdram_config | semc_sdram_config_t |
SEMC SDRAM configuration structure. | |
typedef struct _semc_nand_timing_config | semc_nand_timing_config_t |
SEMC NAND device timing configuration structure. | |
typedef struct _semc_nand_config | semc_nand_config_t |
SEMC NAND configuration structure. | |
typedef struct _semc_nor_config | semc_nor_config_t |
SEMC NOR configuration structure. | |
typedef struct _semc_sram_config | semc_sram_config_t |
SEMC SRAM configuration structure. | |
typedef struct _semc_dbi_config | semc_dbi_config_t |
SEMC DBI configuration structure. | |
typedef struct _semc_queuea_weight_struct | semc_queuea_weight_struct_t |
SEMC AXI queue a weight setting structure. | |
typedef union _semc_queuea_weight | semc_queuea_weight_t |
SEMC AXI queue a weight setting union. | |
typedef struct _semc_queueb_weight_struct | semc_queueb_weight_struct_t |
SEMC AXI queue b weight setting structure. | |
typedef union _semc_queueb_weight | semc_queueb_weight_t |
SEMC AXI queue b weight setting union. | |
typedef struct _semc_axi_queueweight | semc_axi_queueweight_t |
SEMC AXI queue weight setting. | |
typedef struct _semc_config_t | semc_config_t |
SEMC configuration structure. | |
#define | FSL_SEMC_DRIVER_VERSION (MAKE_VERSION(2, 4, 3)) |
SEMC driver version. | |
SEMC Initialization and De-initialization | |
void | SEMC_GetDefaultConfig (semc_config_t *config) |
Gets the SEMC default basic configuration structure. | |
void | SEMC_Init (SEMC_Type *base, semc_config_t *configure) |
Initializes SEMC. This function ungates the SEMC clock and initializes SEMC. This function must be called before calling any other SEMC driver functions. | |
void | SEMC_Deinit (SEMC_Type *base) |
Deinitializes the SEMC module and gates the clock. | |
SEMC Configuration Operation For Each Memory Type | |
status_t | SEMC_ConfigureSDRAM (SEMC_Type *base, semc_sdram_cs_t cs, semc_sdram_config_t *config, uint32_t clkSrc_Hz) |
Configures SDRAM controller in SEMC. | |
status_t | SEMC_ConfigureNAND (SEMC_Type *base, semc_nand_config_t *config, uint32_t clkSrc_Hz) |
Configures NAND controller in SEMC. | |
status_t | SEMC_ConfigureNOR (SEMC_Type *base, semc_nor_config_t *config, uint32_t clkSrc_Hz) |
Configures NOR controller in SEMC. | |
status_t | SEMC_ConfigureSRAMWithChipSelection (SEMC_Type *base, semc_sram_cs_t cs, semc_sram_config_t *config, uint32_t clkSrc_Hz) |
Configures SRAM controller in SEMC. | |
status_t | SEMC_ConfigureSRAM (SEMC_Type *base, semc_sram_config_t *config, uint32_t clkSrc_Hz) |
Configures SRAM controller in SEMC. | |
status_t | SEMC_ConfigureDBI (SEMC_Type *base, semc_dbi_config_t *config, uint32_t clkSrc_Hz) |
Configures DBI controller in SEMC. | |
SEMC Memory Access Operation | |
status_t | SEMC_SendIPCommand (SEMC_Type *base, semc_mem_type_t memType, uint32_t address, uint32_t command, uint32_t write, uint32_t *read) |
SEMC IP command access. | |
status_t | SEMC_IPCommandNandWrite (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NAND device memory write through IP command. | |
status_t | SEMC_IPCommandNandRead (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NAND device memory read through IP command. | |
status_t | SEMC_IPCommandNorWrite (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NOR device memory write through IP command. | |
status_t | SEMC_IPCommandNorRead (SEMC_Type *base, uint32_t address, uint8_t *data, uint32_t size_bytes) |
SEMC NOR device memory read through IP command. | |
typedef struct _semc_config_t semc_config_t |
SEMC configuration structure.
busTimeoutCycles: when busTimeoutCycles is zero, the bus timeout cycle is 255*1024. otherwise the bus timeout cycles is busTimeoutCycles*1024. cmdTimeoutCycles: is used for command execution timeout cycles. it's similar to the busTimeoutCycles.
typedef struct _semc_sdram_config semc_sdram_config_t |
SEMC SDRAM configuration structure.
anonymous enum |
SEMC status, _semc_status.
enum _semc_addr_mode |
enum _semc_adv_polarity |
enum _semc_caslatency |
enum _semc_dbi_burst_len |
SEMC dbi column address bit number.
enum _semc_dqs_mode |
enum _semc_iomux_pin |
enum _semc_ipcmd_datasize |
SEMC IP command for NAND: address mode.
SEMC IP command for NAND: command mode.
enum _semc_ipcmd_nor_dbi |
enum _semc_ipcmd_sdram |
SEMC IP command for SDARM.
enum _semc_ipcmd_sram |
enum _semc_mem_type |
SEMC NAND address option.
enum _semc_nand_burst_len |
SEMC nor/sram column address bit number.
enum _semc_port_size |
enum _semc_rdy_polarity |
enum _semc_refresh_time |
SEMC sdram burst length.
enum _semc_sdram_cs |
enum _semc_sram_cs |
enum _semc_sync_mode |
status_t SEMC_ConfigureDBI | ( | SEMC_Type * | base, |
semc_dbi_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
Configures DBI controller in SEMC.
base | SEMC peripheral base address. |
config | The dbi configuration. |
clkSrc_Hz | The SEMC clock frequency. |
brief Configures DBI controller in SEMC.
param base SEMC peripheral base address. param config The dbi configuration. param clkSrc_Hz The SEMC clock frequency.
status_t SEMC_ConfigureNAND | ( | SEMC_Type * | base, |
semc_nand_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
Configures NAND controller in SEMC.
base | SEMC peripheral base address. |
config | The nand configuration. |
clkSrc_Hz | The SEMC clock frequency. |
brief Configures NAND controller in SEMC.
param base SEMC peripheral base address. param config The nand configuration. param clkSrc_Hz The SEMC clock frequency.
status_t SEMC_ConfigureNOR | ( | SEMC_Type * | base, |
semc_nor_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
Configures NOR controller in SEMC.
base | SEMC peripheral base address. |
config | The nor configuration. |
clkSrc_Hz | The SEMC clock frequency. |
brief Configures NOR controller in SEMC.
param base SEMC peripheral base address. param config The nor configuration. param clkSrc_Hz The SEMC clock frequency.
status_t SEMC_ConfigureSDRAM | ( | SEMC_Type * | base, |
semc_sdram_cs_t | cs, | ||
semc_sdram_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
Configures SDRAM controller in SEMC.
base | SEMC peripheral base address. |
cs | The chip selection. |
config | The sdram configuration. |
clkSrc_Hz | The SEMC clock frequency. |
brief Configures SDRAM controller in SEMC.
param base SEMC peripheral base address. param cs The chip selection. param config The sdram configuration. param clkSrc_Hz The SEMC clock frequency.
status_t SEMC_ConfigureSRAM | ( | SEMC_Type * | base, |
semc_sram_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
Configures SRAM controller in SEMC.
base | SEMC peripheral base address. |
config | The sram configuration. |
clkSrc_Hz | The SEMC clock frequency. |
brief Configures SRAM controller in SEMC, which can be used only for specific chip selection CS0.
param base SEMC peripheral base address. param config The sram configuration. param clkSrc_Hz The SEMC clock frequency.
status_t SEMC_ConfigureSRAMWithChipSelection | ( | SEMC_Type * | base, |
semc_sram_cs_t | cs, | ||
semc_sram_config_t * | config, | ||
uint32_t | clkSrc_Hz | ||
) |
Configures SRAM controller in SEMC.
base | SEMC peripheral base address. |
cs | The chip selection. |
config | The sram configuration. |
clkSrc_Hz | The SEMC clock frequency. |
brief Configures SRAM controller in SEMC, which can be used up to four chip selections CS0/CS1/CS2/CS3..
param base SEMC peripheral base address. param cs The chip selection. param config The sram configuration. param clkSrc_Hz The SEMC clock frequency.
void SEMC_Deinit | ( | SEMC_Type * | base | ) |
Deinitializes the SEMC module and gates the clock.
This function gates the SEMC clock. As a result, the SEMC module doesn't work after calling this function, for some IDE, calling this API may cause the next downloading operation failed. so, please call this API cautiously. Additional, users can using "#define FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL (1)" to disable the clock control operation in drivers.
base | SEMC peripheral base address. |
brief Deinitializes the SEMC module and gates the clock. This function gates the SEMC clock. As a result, the SEMC module doesn't work after calling this function.
param base SEMC peripheral base address.
void SEMC_GetDefaultConfig | ( | semc_config_t * | config | ) |
Gets the SEMC default basic configuration structure.
The purpose of this API is to get the default SEMC configure structure for SEMC_Init(). User may use the initialized structure unchanged in SEMC_Init(), or modify some fields of the structure before calling SEMC_Init(). Example:
config | The SEMC configuration structure pointer. |
brief Gets the SEMC default basic configuration structure.
The purpose of this API is to get the default SEMC configure structure for SEMC_Init(). User may use the initialized structure unchanged in SEMC_Init(), or modify some fields of the structure before calling SEMC_Init(). Example: code semc_config_t config; SEMC_GetDefaultConfig(&config); endcode param config The SEMC configuration structure pointer.
void SEMC_Init | ( | SEMC_Type * | base, |
semc_config_t * | configure | ||
) |
Initializes SEMC. This function ungates the SEMC clock and initializes SEMC. This function must be called before calling any other SEMC driver functions.
base | SEMC peripheral base address. |
configure | The SEMC configuration structure pointer. |
brief Initializes SEMC. This function ungates the SEMC clock and initializes SEMC. This function must be called before calling any other SEMC driver functions.
param base SEMC peripheral base address. param configure The SEMC configuration structure pointer.
status_t SEMC_IPCommandNandRead | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
SEMC NAND device memory read through IP command.
base | SEMC peripheral base address. |
address | SEMC NAND device address. |
data | Data pointer for data read out. |
size_bytes | Data length. |
brief SEMC NAND device memory read through IP command.
param base SEMC peripheral base address. param address SEMC NAND device address. param data Data pointer for data read out. param size_bytes Data length.
status_t SEMC_IPCommandNandWrite | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
SEMC NAND device memory write through IP command.
base | SEMC peripheral base address. |
address | SEMC NAND device address. |
data | Data for write access. |
size_bytes | Data length. |
brief SEMC NAND device memory write through IP command.
param base SEMC peripheral base address. param address SEMC NAND device address. param data Data for write access. param size_bytes Data length.
status_t SEMC_IPCommandNorRead | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
SEMC NOR device memory read through IP command.
base | SEMC peripheral base address. |
address | SEMC NOR device address. |
data | Data pointer for data read out. |
size_bytes | Data length. |
brief SEMC NOR device memory read through IP command.
param base SEMC peripheral base address. param address SEMC NOR device address. param data Data pointer for data read out. param size_bytes Data length.
status_t SEMC_IPCommandNorWrite | ( | SEMC_Type * | base, |
uint32_t | address, | ||
uint8_t * | data, | ||
uint32_t | size_bytes | ||
) |
SEMC NOR device memory write through IP command.
base | SEMC peripheral base address. |
address | SEMC NOR device address. |
data | Data for write access. |
size_bytes | Data length. |
brief SEMC NOR device memory write through IP command.
param base SEMC peripheral base address. param address SEMC NOR device address. param data Data for write access. param size_bytes Data length.
status_t SEMC_SendIPCommand | ( | SEMC_Type * | base, |
semc_mem_type_t | memType, | ||
uint32_t | address, | ||
uint32_t | command, | ||
uint32_t | write, | ||
uint32_t * | read | ||
) |
SEMC IP command access.
base | SEMC peripheral base address. |
memType | SEMC memory type. refer to "semc_mem_type_t" |
address | SEMC device address. |
command | SEMC IP command. For NAND device, we should use the SEMC_BuildNandIPCommand to get the right nand command. For NOR/DBI device, take refer to "semc_ipcmd_nor_dbi_t". For SRAM device, take refer to "semc_ipcmd_sram_t". For SDRAM device, take refer to "semc_ipcmd_sdram_t". |
write | Data for write access. |
read | Data pointer for read data out. |
brief SEMC IP command access.
param base SEMC peripheral base address. param memType SEMC memory type. refer to "semc_mem_type_t" param address SEMC device address. param command SEMC IP command. For NAND device, we should use the SEMC_BuildNandIPCommand to get the right nand command. For NOR/DBI device, take refer to "semc_ipcmd_nor_dbi_t". For SRAM device, take refer to "semc_ipcmd_sram_t". For SDRAM device, take refer to "semc_ipcmd_sdram_t". param write Data for write access. param read Data pointer for read data out.
semc_iomux_nora27_pin _semc_nor_config::addr27 |
The Addr bit 27 pin mux setting.
semc_iomux_nora27_pin _semc_sram_config::addr27 |
The Addr bit 27 pin mux setting.
uint32_t _semc_sdram_config::address |
The base address.
uint32_t _semc_nor_config::address |
The base address.
uint32_t _semc_sram_config::address |
The base address.
uint32_t _semc_dbi_config::address |
The base address.
semc_addr_mode_t _semc_nor_config::addrMode |
Address mode.
semc_addr_mode_t _semc_sram_config::addrMode |
Address mode.
uint8_t _semc_nor_config::addrPortWidth |
The address port width.
uint8_t _semc_sram_config::addrPortWidth |
The address port width.
semc_adv_polarity_t _semc_nor_config::advActivePolarity |
ADV# polarity.
semc_adv_polarity_t _semc_sram_config::advActivePolarity |
ADV# polarity 1: active high, 0: active low.
uint32_t _semc_queuea_weight_struct::aging |
weight of aging for queue 0.
uint32_t _semc_queueb_weight_struct::aging |
weight of aging for queue 1.
semc_nand_address_option_t _semc_nand_config::arrayAddrOption |
Address option.
uint32_t _semc_nand_config::axiAddress |
The base address for AXI nand.
uint32_t _semc_nand_config::axiMemsize_kbytes |
The memory size in unit of kbytes for AXI nand.
uint32_t _semc_queueb_weight_struct::bankRotation |
weight of bank rotation for queue 1 only .
sem_sdram_burst_len_t _semc_sdram_config::burstLen |
Burst length.
sem_nand_burst_len_t _semc_nand_config::burstLen |
Burst length.
sem_norsram_burst_len_t _semc_nor_config::burstLen |
Burst length.
sem_norsram_burst_len_t _semc_sram_config::burstLen |
Burst length.
sem_dbi_burst_len_t _semc_dbi_config::burstLen |
Burst length.
uint8_t _semc_config_t::busTimeoutCycles |
Bus timeout cycles.
semc_caslatency_t _semc_sdram_config::casLatency |
CAS latency.
semc_iomux_pin _semc_nand_config::cePinMux |
The CE pin mux setting. The kSEMC_MUXRDY is not valid for CE pin setting.
semc_iomux_pin _semc_nor_config::cePinMux |
The CE# pin mux setting.
semc_iomux_pin _semc_sram_config::cePinMux |
The CE# pin mux setting.
uint8_t _semc_config_t::cmdTimeoutCycles |
Command execution timeout cycles.
semc_sdram_column_bit_num_t _semc_sdram_config::columnAddrBitNum |
Column address bit number.
semc_nand_column_bit_num_t _semc_nand_config::columnAddrBitNum |
Column address bit number.
semc_norsram_column_bit_num_t _semc_nor_config::columnAddrBitNum |
Column address bit number.
semc_dbi_column_bit_num_t _semc_dbi_config::columnAddrBitNum |
Column address bit number.
semc_iomux_pin _semc_sdram_config::csxPinMux |
CS pin mux. The kSEMC_MUXA8 is not valid in sdram pin mux setting.
semc_iomux_pin _semc_dbi_config::csxPinMux |
The CE# pin mux.
semc_dqs_mode_t _semc_config_t::dqsMode |
Dummy read strobe mode: use enum in "semc_dqs_mode_t".
bool _semc_nand_config::edoModeEnabled |
EDO mode enabled.
uint32_t _semc_nand_config::ipgAddress |
The base address for IPG nand .
uint32_t _semc_nand_config::ipgMemsize_kbytes |
The memory size in unit of kbytes for IPG nand.
uint32_t _semc_sdram_config::memsize_kbytes |
The memory size in unit of kbytes.
uint32_t _semc_nor_config::memsize_kbytes |
The memory size in unit of kbytes.
uint32_t _semc_sram_config::memsize_kbytes |
The memory size in unit of kbytes.
uint32_t _semc_dbi_config::memsize_kbytes |
The memory size in unit of 4kbytes.
smec_port_size_t _semc_sdram_config::portSize |
Port size.
smec_port_size_t _semc_nand_config::portSize |
Port size.
smec_port_size_t _semc_nor_config::portSize |
Port size.
smec_port_size_t _semc_sram_config::portSize |
Port size.
smec_port_size_t _semc_dbi_config::portSize |
Port size.
uint32_t _semc_queuea_weight_struct::qos |
weight of qos for queue 0 .
uint32_t _semc_queueb_weight_struct::qos |
weight of qos for queue 1.
semc_queuea_weight_struct_t _semc_queuea_weight::queueaConfig |
Structure configuration for queueA.
bool _semc_axi_queueweight::queueaEnable |
Enable queue a.
uint32_t _semc_queuea_weight::queueaValue |
Configuration value for queueA which could directly write to the reg.
semc_queuea_weight_t _semc_axi_queueweight::queueaWeight |
Weight settings for queue a.
semc_queueb_weight_struct_t _semc_queueb_weight::queuebConfig |
Structure configuration for queueB.
bool _semc_axi_queueweight::queuebEnable |
Enable queue b.
uint32_t _semc_queueb_weight::queuebValue |
Configuration value for queueB which could directly write to the reg.
semc_queueb_weight_t _semc_axi_queueweight::queuebWeight |
Weight settings for queue b.
semc_axi_queueweight_t _semc_config_t::queueWeight |
AXI queue weight.
semc_rdy_polarity_t _semc_nand_config::rdyactivePolarity |
Wait ready polarity.
semc_rdy_polarity_t _semc_nor_config::rdyactivePolarity |
Wait ready polarity.
uint8_t _semc_sdram_config::refreshBurstLen |
Refresh burst length.
uint32_t _semc_sdram_config::refreshPeriod_nsPerRow |
Refresh timer period like 64ms * 1000000/8192 .
uint32_t _semc_sdram_config::refreshUrgThreshold |
Refresh urgent threshold.
uint32_t _semc_queuea_weight_struct::slaveHitNoswitch |
weight of read/write no switch for queue 0 .
uint32_t _semc_queuea_weight_struct::slaveHitSwith |
weight of read/write switch for queue 0.
uint32_t _semc_queueb_weight_struct::slaveHitSwith |
weight of read/write switch for queue 1.
uint8_t _semc_sdram_config::tAct2Act_Ns |
Active to active wait time in unit of nanosecond.
uint8_t _semc_sdram_config::tAct2Prechage_Ns |
Active to precharge in unit of nanosecond.
uint8_t _semc_sdram_config::tAct2ReadWrite_Ns |
Act to read/write wait time in unit of nanosecond.
uint8_t _semc_nor_config::tAddr2WriteHold_Ns |
Address to write data hold time for async mode.
uint8_t _semc_sram_config::tAddr2WriteHold_Ns |
Address to write data hold time for async mode.
uint8_t _semc_nor_config::tAddrHold_Ns |
The address hold time.
uint8_t _semc_sram_config::tAddrHold_Ns |
The address hold time.
uint8_t _semc_nor_config::tAddrSetup_Ns |
The address setup time.
uint8_t _semc_sram_config::tAddrSetup_Ns |
The address setup time.
uint8_t _semc_nand_timing_config::tAle2WriteStart_Ns |
ALE to write start wait time: tADL.
uint8_t _semc_nand_timing_config::tCeHold_Ns |
CE hold time: tCH.
uint8_t _semc_nor_config::tCeHold_Ns |
The CE hold time.
uint8_t _semc_sram_config::tCeHold_Ns |
The CE hold time.
uint8_t _semc_nand_timing_config::tCeInterval_Ns |
CE interval time:tCEITV.
uint8_t _semc_nor_config::tCeInterval_Ns |
CE interval minimum time.
uint8_t _semc_sram_config::tCeInterval_Ns |
CE interval minimum time.
uint8_t _semc_nand_timing_config::tCeSetup_Ns |
CE setup time: tCS.
uint8_t _semc_nor_config::tCeSetup_Ns |
The CE setup time.
uint8_t _semc_sram_config::tCeSetup_Ns |
The CE setup time.
uint8_t _semc_sdram_config::tCkeOff_Ns |
CKE off minimum time in unit of nanosecond.
uint8_t _semc_dbi_config::tCsxHold_Ns |
The CSX hold time.
uint8_t _semc_dbi_config::tCsxInterval_Ns |
Write data setup time.
uint8_t _semc_dbi_config::tCsxSetup_Ns |
The CSX setup time.
uint32_t _semc_sdram_config::tIdleTimeout_Ns |
Idle timeout in unit of prescale time period.
semc_nand_timing_config_t* _semc_nand_config::timingConfig |
SEMC nand timing configuration.
uint8_t _semc_sdram_config::tPrecharge2Act_Ns |
Precharge to active wait time in unit of nanosecond.
uint32_t _semc_sdram_config::tPrescalePeriod_Ns |
Prescaler timer period should not be larger than 256 * 16 * clock cycle.
uint8_t _semc_dbi_config::tRdxHigh_Ns |
RDX high time.
uint8_t _semc_dbi_config::tRdxLow_Ns |
RDX low time.
uint8_t _semc_nand_timing_config::tReady2Relow_Ns |
Ready to RE# low min wait time: tRR.
uint8_t _semc_sdram_config::tRefresh2Refresh_Ns |
Refresh to refresh wait time in unit of nanosecond.
uint8_t _semc_sdram_config::tRefreshRecovery_Ns |
Refresh recovery time in unit of nanosecond.
uint8_t _semc_nand_timing_config::tRehigh2Welow_Ns |
RE# high to WE# low wait time: tRHW.
uint8_t _semc_nand_timing_config::tReHigh_Ns |
RE high time: tREH.
uint8_t _semc_nor_config::tReHigh_Ns |
RE high time for async mode.
uint8_t _semc_sram_config::tReHigh_Ns |
RE high time for async mode.
uint8_t _semc_nand_timing_config::tReLow_Ns |
RE low time: tRP.
uint8_t _semc_nor_config::tReLow_Ns |
RE low time for async mode.
uint8_t _semc_sram_config::tReLow_Ns |
RE low time for async mode.
uint8_t _semc_sdram_config::tSelfRefRecovery_Ns |
Self refresh recovery time in unit of nanosecond.
uint8_t _semc_nand_timing_config::tTurnAround_Ns |
Turnaround time for async mode: tTA.
uint8_t _semc_nor_config::tTurnAround_Ns |
Turnaround time for async mode.
uint8_t _semc_sram_config::tTurnAround_Ns |
Turnaround time for async mode.
uint8_t _semc_nand_timing_config::tWehigh2Busy_Ns |
WE# high to busy wait time: tWB.
uint8_t _semc_nand_timing_config::tWehigh2Relow_Ns |
WE# high to RE# wait time: tWHR.
uint8_t _semc_nand_timing_config::tWeHigh_Ns |
WE high time: tWH.
uint8_t _semc_nor_config::tWeHigh_Ns |
WE high time for async mode.
uint8_t _semc_sram_config::tWeHigh_Ns |
WE high time for async mode.
uint8_t _semc_nand_timing_config::tWeLow_Ns |
WE low time: tWP.
uint8_t _semc_nor_config::tWeLow_Ns |
WE low time for async mode.
uint8_t _semc_sram_config::tWeLow_Ns |
WE low time for async mode.
uint8_t _semc_dbi_config::tWexHigh_Ns |
WEX high time.
uint8_t _semc_dbi_config::tWexLow_Ns |
WEX low time.
uint8_t _semc_sdram_config::tWriteRecovery_Ns |
write recovery time in unit of nanosecond.
uint32_t _semc_queueb_weight_struct::weightPagehit |
weight of page hit for queue 1 only .