DE10-Advanced revC demo: PCI Express Library API
From Terasic Wiki
(Created page with "<div style="color:#404040;">Below shows the exported API in the TERASIC_PCIE_AVMM.dll. The API prototype is defined in the TERASIC_PCIE_AVMM.h. </div> <div style="color:#404040;...") |
|||
Line 3: | Line 3: | ||
<div style="color:#404040;">Note: the Linux library terasic_pcie_qsys.so also use the same API and header file.</div> | <div style="color:#404040;">Note: the Linux library terasic_pcie_qsys.so also use the same API and header file.</div> | ||
* <div style="margin-left:0cm;margin-right:0cm;">'''PCIE_Open'''</div> | * <div style="margin-left:0cm;margin-right:0cm;">'''PCIE_Open'''</div> | ||
- | |||
- | |||
Line 11: | Line 9: | ||
|| '''Function:''' | || '''Function:''' | ||
- | Open a specified PCIe card with vendor ID, device ID, and matched card index. | + | :Open a specified PCIe card with vendor ID, device ID, and matched card index. |
|- style="background-color:#e6e6e6;border:0.5pt solid #00000a;padding:0cm;" | |- style="background-color:#e6e6e6;border:0.5pt solid #00000a;padding:0cm;" | ||
|| '''Prototype:''' | || '''Prototype:''' | ||
- | PCIE_HANDLE PCIE_Open( | + | :PCIE_HANDLE PCIE_Open( |
- | uint8_t wVendorID, | + | ::uint8_t wVendorID, |
- | uint8_t wDeviceID, | + | ::uint8_t wDeviceID, |
- | uint8_t wCardIndex); | + | ::uint8_t wCardIndex); |
|- style="background-color:#e6e6e6;border:0.5pt solid #00000a;padding:0cm;" | |- style="background-color:#e6e6e6;border:0.5pt solid #00000a;padding:0cm;" | ||
|| '''Parameters:''' | || '''Parameters:''' | ||
- | wVendorID: | + | :wVendorID: |
- | Specify the desired vendor ID. A zero value means to ignore the vendor ID. | + | ::Specify the desired vendor ID. A zero value means to ignore the vendor ID. |
- | wDeviceID: | + | :wDeviceID: |
- | Specify the desired device ID. A zero value means to ignore the device ID. | + | ::Specify the desired device ID. A zero value means to ignore the device ID. |
- | wCardIndex: | + | :wCardIndex: |
- | Specify the matched card index, a zero based index, based on the matched vendor ID and device ID. | + | ::Specify the matched card index, a zero based index, based on the matched vendor ID and device ID. |
|- style="background-color:#e6e6e6;border:0.5pt solid #00000a;padding:0cm;" | |- style="background-color:#e6e6e6;border:0.5pt solid #00000a;padding:0cm;" | ||
|| '''Return Value:''' | || '''Return Value:''' | ||
- | Return a handle to presents specified PCIe card. A positive value is return if the PCIe card is opened successfully. A value zero means failed to connect the target PCIe card. | + | :Return a handle to presents specified PCIe card. A positive value is return if the PCIe card is opened successfully. A value zero means failed to connect the target PCIe card. |
- | This handle value is used as a parameter for other functions, e.g. PCIE_Read32. | + | :This handle value is used as a parameter for other functions, e.g. PCIE_Read32. |
- | Users need to call PCIE_Close to release handle once the handle is no more used. | + | :Users need to call PCIE_Close to release handle once the handle is no more used. |
|- | |- | ||
|} | |} | ||
+ | |||
<div style="margin-left:0cm;margin-right:0cm;"></div>* '''PCIE_Close''' | <div style="margin-left:0cm;margin-right:0cm;"></div>* '''PCIE_Close''' | ||
Line 169: | Line 168: | ||
|} | |} | ||
<div style="margin-left:0cm;margin-right:0cm;"></div> | <div style="margin-left:0cm;margin-right:0cm;"></div> | ||
+ | |||
+ | =1= | ||
* <div style="margin-left:0cm;margin-right:0cm;">'''PCIE_Read8'''</div> | * <div style="margin-left:0cm;margin-right:0cm;">'''PCIE_Read8'''</div> | ||
Revision as of 15:39, 27 August 2018
- PCIE_Open
Function:
|
Prototype:
|
Parameters:
|
Return Value:
|
Function:
Close a handle associated to the PCIe card. |
Prototype:
void PCIE_Close( PCIE_HANDLE hPCIE); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. |
Return Value:
None. |
- PCIE_Read32
Function:
Read a 32-bit data from the FPGA board. |
Prototype:
bool PCIE_Read32( PCIE_HANDLE hPCIE, PCIE_BAR PcieBar, PCIE_ADDRESS PcieAddress, uint32_t *pdwData); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. PcieBar: Specify the target BAR. PcieAddress: Specify the target address in FPGA. pdwData: A buffer to retrieve the 32-bit data. |
Return Value:
Return true if read data is successful; otherwise false is returned. |
- PCIE_Write32
Function:
Write a 32-bit data to the FPGA Board. |
Prototype:
bool PCIE_Write32( PCIE_HANDLE hPCIE, PCIE_BAR PcieBar, PCIE_ADDRESS PcieAddress, uint32_t dwData); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. PcieBar: Specify the target BAR. PcieAddress: Specify the target address in FPGA. dwData: Specify a 32-bit data which will be written to FPGA board. |
Return Value:
Return true if write data is successful; otherwise false is returned. |
1
- PCIE_Read8
Function:
Read an 8-bit data from the FPGA board. |
Prototype:
bool PCIE_Read8( PCIE_HANDLE hPCIE, PCIE_BAR PcieBar, PCIE_ADDRESS PcieAddress, uint8_t *pByte); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. PcieBar: Specify the target BAR. PcieAddress: Specify the target address in FPGA. pByte: A buffer to retrieve the 8-bit data. |
Return Value:
Return true if read data is successful; otherwise false is returned. |
- PCIE_Write8
Function:
Write an 8-bit data to the FPGA Board. |
Prototype:
bool PCIE_Write8( PCIE_HANDLE hPCIE, PCIE_BAR PcieBar, PCIE_ADDRESS PcieAddress, uint8_t Byte); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. PcieBar: Specify the target BAR. PcieAddress: Specify the target address in FPGA. Byte: Specify an 8-bit data which will be written to FPGA board. |
Return Value:
Return true if write data is successful; otherwise false is returned. |
- PCIE_DmaRead
Function:
Read data from the memory-mapped memory of FPGA board in DMA. Maximal read size is (4GB-1) bytes. |
Prototype:
bool PCIE_DmaRead( PCIE_HANDLE hPCIE, PCIE_LOCAL_ADDRESS LocalAddress, void *pBuffer, uint32_t dwBufSize ); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. LocalAddress: Specify the target memory-mapped address in FPGA. pBuffer: A pointer to a memory buffer to retrieved the data from FPGA. The size of buffer should be equal or larger the dwBufSize. dwBufSize: Specify the byte number of data retrieved from FPGA. |
Return Value:
Return true if read data is successful; otherwise false is returned. |
- PCIE_DmaWrite
Function:
Write data to the memory-mapped memory of FPGA board in DMA. |
Prototype:
bool PCIE_DmaWrite( PCIE_HANDLE hPCIE, PCIE_LOCAL_ADDRESS LocalAddress, void *pData, uint32_t dwDataSize ); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. LocalAddress: Specify the target memory mapped address in FPGA. pData: A pointer to a memory buffer to store the data which will be written to FPGA. dwDataSize: Specify the byte number of data which will be written to FPGA. |
Return Value:
Return true if write data is successful; otherwise false is returned. |
- PCIE_ConfigRead32
Function:
Read PCIe Configuration Table. Read a 32-bit data by given a byte offset. |
Prototype:
bool PCIE_ConfigRead32 ( PCIE_HANDLE hPCIE, uint32_t Offset, uint32_t *pdwData ); |
Parameters:
hPCIE: A PCIe handle return by PCIE_Open function. Offset: Specify the target byte of offset in PCIe configuration table. pdwData: A 4-bytes buffer to retrieve the 32-bit data. |
Return Value:
Return true if read data is successful; otherwise false is returned.
|