This module contains APIs to program and use the PCIE module. The APIs can be used by other drivers to get access to PCIE and also by applications
Files | |
| file | pcie/pcie.h |
| PCIE Driver API/interface file. | |
Data Structures | |
| struct | Pcie_DeviceCfgBaseAddr |
| The Pcie_DeviceCfg is used to specify device level configuration of the driver instance. More... | |
| struct | Pcie_ObAtuCfg |
| Pcie_ObAtuCfg specifies the Outbound ATU configurations for PCIe. More... | |
| struct | Pcie_IbAtuCfg |
| Pcie_IbAtuCfg specifies the Inbound ATU configurations for PCIe. More... | |
| struct | Pcie_RegisterMsiIsrParams |
| Pcie_RegisterMsiIsrParams specifies the parameters to register an ISR for MSI. More... | |
| struct | Pcie_RegisterMsixIsrParams |
| Pcie_RegisterMsixIsrParams specifies the parameters to register an ISR for MSIX. More... | |
| struct | Pcie_MsiIsrCtrl |
| PCIe MSI Isr control structure. More... | |
| struct | Pcie_MsixIsrCtrl |
| ISR and arguement list for MSIx. More... | |
| struct | Pcie_MsixTblEntry |
| PCIe MSIx table entry. More... | |
| struct | Pcie_MsixTbl |
| struct | Pcie_Attrs |
| PCIe atributes. More... | |
| struct | Pcie_Object |
| PCIe driver object. More... | |
| struct | Pcie_DeviceCfg |
| PCIe device configuration. More... | |
| struct | Pcie_InitCfg |
| PCIe configuration for initalization. More... | |
| struct | Pcie_Config |
| PCIE global configuration array. More... | |
| struct | Pcie_BarCfg |
| PCIe BAR configuration info. More... | |
| struct | Pcie_IbTransCfg |
| Inbound traslation configuration info The Pcie_IbTransCfg is used to configure the Inbound Translation Registers. More... | |
| struct | Pcie_AtuRegionParams |
| This Structure defines the ATU region parameters. More... | |
Functions | |
| void | Pcie_init (void) |
| This function initializes the PCIe module. More... | |
| Pcie_Handle | Pcie_open (uint32_t index) |
| This function opens a given PCIe peripheral. More... | |
| void | Pcie_close (Pcie_Handle handle) |
| Function to close PCIe peripheral specified by PCIe handle. More... | |
| Pcie_DeviceCfgBaseAddr * | Pcie_handleGetBases (Pcie_Handle handle) |
| Get the device base address info for the PCIe peripheral. More... | |
| int32_t | Pcie_setInterfaceMode (Pcie_Handle handle, Pcie_Mode mode, Pcie_Gen gen) |
| Set interfac mode (RC/EP) More... | |
| int32_t | Pcie_getMemSpaceReserved (Pcie_Handle handle, uint32_t *resSize) |
| Pcie_getMemSpaceReserved returns amount of reserved space between beginning of hardware's data area and the base returned by Pcie_getMemSpaceRange. More... | |
| int32_t | Pcie_getMemSpaceRange (Pcie_Handle handle, void **base, uint32_t *size) |
| Returns the PCIe Internal Address Range for the memory space. This range is used for accessing memory. More... | |
| int32_t | Pcie_cfgBar (Pcie_Handle handle, const Pcie_BarCfg *barCfg) |
| Configure a BAR Register (32 bits) More... | |
| int32_t | Pcie_atuRegionConfig (Pcie_Handle handle, Pcie_Location location, uint32_t atuRegionIndex, const Pcie_AtuRegionParams *atuRegionParams) |
| Configure address translation registers. More... | |
| int32_t | Pcie_getVendorId (Pcie_Handle handle, Pcie_Location location, uint32_t *vendorId, uint32_t *deviceId) |
| Get vendor ID and device ID of Pcie Device. More... | |
| int32_t | Pcie_getPwrState (Pcie_Handle handle, Pcie_PwrState *pwrState) |
| Get current PCIe Power State. More... | |
| int32_t | Pcie_getLinkParams (Pcie_Handle handle, Pcie_Gen *gen, uint32_t *numLanes) |
| Get current PCIe Link Parameter. More... | |
| int32_t | Pcie_isLinkUp (Pcie_Handle handle) |
| Check if PCIe link training completed. More... | |
| int32_t | Pcie_waitLinkUp (Pcie_Handle handle) |
| Wait for PCIe link training to complete. More... | |
| int32_t | Pcie_checkLinkParams (Pcie_Handle handle) |
| Verify if the link parameters is established as configured. More... | |
| int32_t | Pcie_LtssmCtrl (Pcie_Handle handle, uint8_t enable) |
| Enable/disable PCIe link training. More... | |
| int32_t | Pcie_setLanes (Pcie_Handle handle) |
| Set number of PCIe lanes as configured. More... | |
| int32_t | Pcie_cfgEP (Pcie_Handle handle) |
| Configure Pcie for EP (End Point) operation. PCIe mode setting is NOT done here (Pcie_setInterfaceMode) More... | |
| int32_t | Pcie_cfgRC (Pcie_Handle handle) |
| Configure Pcie for RC (Root Complex) operation. PCIe mode setting is NOT done here (Pcie_setInterfaceMode) More... | |
| int32_t | Pcie_setCfgEn (Pcie_Handle handle, int enable) |
| Set CONFIG_ENABLE to signal RC that the local EP configuration is completed. More... | |
| int32_t | Pcie_setSlotClockCnfg (Pcie_Handle handle, int enable) |
| Set slot clock configuration bit in Link Status Register. More... | |
| int32_t | Pcie_setDwnStrIrq (Pcie_Handle handle, int enable) |
| Enable downstream interrupt in PCIE Controller. More... | |
| int32_t | Pcie_setLnkDwnStateIrq (Pcie_Handle handle, int enable) |
| Enable link down status interrupt in PCIE Controller. More... | |
| int32_t | Pcie_setPwrStateIrq (Pcie_Handle handle, int enable) |
| Enable power management state interrupt in PCIE Controller. More... | |
| int32_t | Pcie_setHotResetIrq (Pcie_Handle handle, int enable) |
| Enable hot reset interrupt in PCIE Controller. More... | |
| int32_t | Pcie_ackDwnStrIrq (Pcie_Handle handle) |
| Acknowledge downstream interrupt. More... | |
| int32_t | Pcie_ackLnkDwnStateIrq (Pcie_Handle handle) |
| Acknowledge link down status interrupt. More... | |
| int32_t | Pcie_ackPwrStateIrq (Pcie_Handle handle) |
| Acknowledge power management state interrupt. More... | |
Typedefs | |
| typedef void * | Pcie_Handle |
| Driver handle returned by Pcie_open() call. More... | |
| typedef void(* | Pcie_MsiIsr) (void *arg, uint32_t msiData) |
| Function pointer for the PCIe MSI ISR. More... | |
| typedef void(* | Pcie_MsixIsr) (void *arg, uint32_t msixData) |
| Function pointer for the PCIe MSIx ISR. More... | |
Macros | |
| #define | PCIE_MAX_PERIPHS (4U) |
| Maximum PCIe devices supported by the driver. More... | |
| #define | PCIE_MAX_MSI_IRQ (32U) |
| Maximum PCIe MSI interrupts supported. More... | |
| #define | PCIE_MAX_MSIX_IRQ (2048U) |
| Maxmium number of MSIx interrupts supported. More... | |
| #define | PCIE_MAX_NUM_IBATU (6U) |
| Maximum number of configurable Inbound ATUs. More... | |
| #define PCIE_MAX_PERIPHS (4U) |
Maximum PCIe devices supported by the driver.
| #define PCIE_MAX_MSI_IRQ (32U) |
Maximum PCIe MSI interrupts supported.
| #define PCIE_MAX_MSIX_IRQ (2048U) |
Maxmium number of MSIx interrupts supported.
| #define PCIE_MAX_NUM_IBATU (6U) |
Maximum number of configurable Inbound ATUs.
| typedef void* Pcie_Handle |
Driver handle returned by Pcie_open() call.
| typedef void(* Pcie_MsiIsr) (void *arg, uint32_t msiData) |
Function pointer for the PCIe MSI ISR.
| typedef void(* Pcie_MsixIsr) (void *arg, uint32_t msixData) |
Function pointer for the PCIe MSIx ISR.
| enum Pcie_Mode |
These are the possible values for PCIe mode.
| Enumerator | |
|---|---|
| PCIE_EP_MODE | Required when setting the PCIe Mode to End Point using the Pcie_setInterfaceMode function |
| PCIE_LEGACY_EP_MODE | Required when setting the PCIe Mode to Legacy End Point using the Pcie_setInterfaceMode function |
| PCIE_RC_MODE | Required when setting the PCIe Mode to Root Complex using the Pcie_setInterfaceMode function |
| enum Pcie_Gen |
| enum Pcie_RefClk_Mode |
Enumeration for PCIe Reference Clock mode.
| enum Pcie_SRIS_Mode |
| enum Pcie_PwrState |
| enum Pcie_IntPin |
| enum Pcie_BarPref |
| enum Pcie_BarType |
| enum Pcie_BarMem |
| enum Pcie_AtuRegionDir |
| enum Pcie_TlpType |
This enum is used to select PCIe TLP(Transaction layer packet) type while configuring inbound or outbound region.
| enum Pcie_Location |
Enumeration for PCIe access type remote/local.
Selects whether to read/write local or remote PCIe registers. PCIe configuration registers are accessible locally and remotely
For PCIe application registers the access is always local
| Enumerator | |
|---|---|
| PCIE_LOCATION_LOCAL | Access the local PCIe peripheral |
| PCIE_LOCATION_REMOTE | Access the remote PCIe peripheral |
| enum Pcie_LtssmState |
Enumeration for possible values for encoding LTSSM state.
| void Pcie_init | ( | void | ) |
This function initializes the PCIe module.
| Pcie_Handle Pcie_open | ( | uint32_t | index | ) |
This function opens a given PCIe peripheral.
| index | Index of config to use in the Pcie_config array |
| void Pcie_close | ( | Pcie_Handle | handle | ) |
Function to close PCIe peripheral specified by PCIe handle.
| handle | Pcie_Handle retuned from Pcie_open() |
| Pcie_DeviceCfgBaseAddr* Pcie_handleGetBases | ( | Pcie_Handle | handle | ) |
Get the device base address info for the PCIe peripheral.
| handle | Pcie_Handle returned from Pcie_open() |
| int32_t Pcie_setInterfaceMode | ( | Pcie_Handle | handle, |
| Pcie_Mode | mode, | ||
| Pcie_Gen | gen | ||
| ) |
Set interfac mode (RC/EP)
| handle | Pcie_Handle for the instance |
| mode | Interface mode (EP/EC) |
| gen | PCIe operation speed |
| int32_t Pcie_getMemSpaceReserved | ( | Pcie_Handle | handle, |
| uint32_t * | resSize | ||
| ) |
Pcie_getMemSpaceReserved returns amount of reserved space between beginning of hardware's data area and the base returned by Pcie_getMemSpaceRange.
| handle | Pcie_Handle for the instance |
| resSize | Pointer to return reserved space |
| SystemP_SUCCESS | on successful; else error on failure |
| int32_t Pcie_getMemSpaceRange | ( | Pcie_Handle | handle, |
| void ** | base, | ||
| uint32_t * | size | ||
| ) |
Returns the PCIe Internal Address Range for the memory space. This range is used for accessing memory.
| handle | Pcie_Handle for the instance |
| base | Pointer to return base address |
| size | Pointer to return size |
| int32_t Pcie_cfgBar | ( | Pcie_Handle | handle, |
| const Pcie_BarCfg * | barCfg | ||
| ) |
Configure a BAR Register (32 bits)
| handle | Pcie_Handle for the instance |
| barCfg | Bar configuration parameters |
| int32_t Pcie_atuRegionConfig | ( | Pcie_Handle | handle, |
| Pcie_Location | location, | ||
| uint32_t | atuRegionIndex, | ||
| const Pcie_AtuRegionParams * | atuRegionParams | ||
| ) |
Configure address translation registers.
| handle | Pcie_Handle for the instance |
| location | Local or remote configuration space |
| atuRegionIndex | Address translation region index |
| atuRegionParams | Address translation region parameters |
| int32_t Pcie_getVendorId | ( | Pcie_Handle | handle, |
| Pcie_Location | location, | ||
| uint32_t * | vendorId, | ||
| uint32_t * | deviceId | ||
| ) |
Get vendor ID and device ID of Pcie Device.
| handle | Pcie_Handle returned by Pcie_open() |
| location | Local or remote configuration space |
| vendorId | Pointer to return vendor ID |
| deviceId | Pointer to return device ID |
| int32_t Pcie_getPwrState | ( | Pcie_Handle | handle, |
| Pcie_PwrState * | pwrState | ||
| ) |
Get current PCIe Power State.
| handle | Pcie_Handle returned by Pcie_open() |
| pwrState | Pointer to return PCIe Power State |
| int32_t Pcie_getLinkParams | ( | Pcie_Handle | handle, |
| Pcie_Gen * | gen, | ||
| uint32_t * | numLanes | ||
| ) |
Get current PCIe Link Parameter.
| handle | Pcie_Handle returned by Pcie_open() |
| gen | Pointer to return PCIe operation speed |
| numLanes | Pointer to return Number of lanes for the instance |
| int32_t Pcie_isLinkUp | ( | Pcie_Handle | handle | ) |
Check if PCIe link training completed.
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_waitLinkUp | ( | Pcie_Handle | handle | ) |
Wait for PCIe link training to complete.
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_checkLinkParams | ( | Pcie_Handle | handle | ) |
Verify if the link parameters is established as configured.
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_LtssmCtrl | ( | Pcie_Handle | handle, |
| uint8_t | enable | ||
| ) |
Enable/disable PCIe link training.
| handle | Pcie_Handle returned by Pcie_open() |
| enable | Enable(1) / disable (0) link training |
| int32_t Pcie_setLanes | ( | Pcie_Handle | handle | ) |
Set number of PCIe lanes as configured.
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_cfgEP | ( | Pcie_Handle | handle | ) |
Configure Pcie for EP (End Point) operation. PCIe mode setting is NOT done here (Pcie_setInterfaceMode)
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_cfgRC | ( | Pcie_Handle | handle | ) |
Configure Pcie for RC (Root Complex) operation. PCIe mode setting is NOT done here (Pcie_setInterfaceMode)
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_setCfgEn | ( | Pcie_Handle | handle, |
| int | enable | ||
| ) |
Set CONFIG_ENABLE to signal RC that the local EP configuration is completed.
setting CONFIG_ENABLE to '0' will generate a Configuration Request Retry Status (CRS) on Configuration Requests
setting CONFIG_ENABLE to '1' will generate a Succesful Completion/Unsupported Request (SC/UR) on Configuration Requests
| handle | Pcie_Handle returned from Pcie_open() |
| enable | Set (1) / Reset (0) CONFIG_ENABLE bit |
| int32_t Pcie_setSlotClockCnfg | ( | Pcie_Handle | handle, |
| int | enable | ||
| ) |
Set slot clock configuration bit in Link Status Register.
If set indicates the EP uses the reference clock provided on the connector, else the EP uses a independent clock
| handle | Pcie_Handle returned by Pcie_open() |
| enable | Enable(1) / disable (0) slot clock configuration |
| int32_t Pcie_setDwnStrIrq | ( | Pcie_Handle | handle, |
| int | enable | ||
| ) |
Enable downstream interrupt in PCIE Controller.
| handle | Pcie_Handle returned by Pcie_open() |
| enable | Enable(1) / disable (0) downstream IRQ |
| int32_t Pcie_setLnkDwnStateIrq | ( | Pcie_Handle | handle, |
| int | enable | ||
| ) |
Enable link down status interrupt in PCIE Controller.
| handle | Pcie_Handle returned by Pcie_open() |
| enable | Enable(1) / disable (0) Linkdown State IRQ |
| int32_t Pcie_setPwrStateIrq | ( | Pcie_Handle | handle, |
| int | enable | ||
| ) |
Enable power management state interrupt in PCIE Controller.
| handle | Pcie_Handle returned by Pcie_open() |
| enable | Enable(1) / disable (0) Power State IRQ |
| int32_t Pcie_setHotResetIrq | ( | Pcie_Handle | handle, |
| int | enable | ||
| ) |
Enable hot reset interrupt in PCIE Controller.
| handle | Pcie_Handle returned by Pcie_open() |
| enable | Enable(1) / disable (0) Power State IRQ |
| int32_t Pcie_ackDwnStrIrq | ( | Pcie_Handle | handle | ) |
Acknowledge downstream interrupt.
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_ackLnkDwnStateIrq | ( | Pcie_Handle | handle | ) |
Acknowledge link down status interrupt.
| handle | Pcie_Handle returned by Pcie_open() |
| int32_t Pcie_ackPwrStateIrq | ( | Pcie_Handle | handle | ) |
Acknowledge power management state interrupt.
| handle | Pcie_Handle returned by Pcie_open() |
|
extern |
Externally defined driver configuration array.
|
extern |
Externally defined driver configuration array size.