Functions¶
xvsec_lib_init¶
Syntax:
int xvsec_lib_init (int max_devices)
Details:
xvsec_lib_init() - Initializes the XVSEC Library by allocating memory to support requested number of devices
Parameters:
max_devices |
Maximum devices to support |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_MEM_ALLOC_FAILED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Filure
xvsec_lib_deinit¶
Syntax:
int xvsec_lib_deinit (void)
Details:
xvsec_lib_deinit() - De-initializes the XVSEC Library by freeing allocated memory and clearing the context
Parameters:
none |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_open¶
Syntax:
int xvsec_open ( uint16_t bus_no, uint16_t dev_no, xvsec_handle_t* handle, char* dev_str )
Details:
xvsec_open() - Opens XVSEC character device which is dedicated to the given bus number and device number and returns a unique handle to access the device
Parameters:
bus_no |
PCIe bus number on which device sits |
dev_no |
Device number in the PCIe bus |
dev_str |
string to append to create character device. |
handle |
Unique handle returned to access the device |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_MAX_DEVICES_LIMIT_REACHED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
xvsec_close¶
Syntax:
int xvsec_close (xvsec_handle_t* handle)
Details:
xvsec_close() - Closes XVSEC character device of provided handle
Parameters:
handle |
Unique handle to access the device |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_NULL_POINTER : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_get_cap_list¶
Syntax:
int xvsec_get_cap_list ( xvsec_handle_t* handle, xvsec_cap_list_t* cap_list )
Details:
xvsec_get_cap_list() - Returns the supported VSEC capabilities of the given handle
Parameters:
handle |
Unique handle to access the device |
cap_list |
Supported capability list |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_show_device¶
Syntax:
int xvsec_show_device (xvsec_handle_t* handle)
Details:
xvsec_show_device() - Shows the device information of the given handle
Parameters:
handle |
Unique handle to access the device |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_reset¶
Syntax:
int xvsec_mcap_reset (xvsec_handle_t* handle)
Details:
xvsec_mcap_reset() - Resets the configuration logic of the given handle
Parameters:
handle |
Unique handle to access the device |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_module_reset¶
Syntax:
int xvsec_mcap_module_reset (xvsec_handle_t* handle)
Details:
xvsec_mcap_module_reset() - Resets the MCAP module of the given handle
Parameters:
handle |
Unique handle to access the device |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_full_reset¶
Syntax:
int xvsec_mcap_full_reset (xvsec_handle_t* handle)
Details:
xvsec_mcap_full_reset() - Resets bothconfiguration logic & MCAP module of the given handle
Parameters:
handle |
Unique handle to access the device |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_get_data_registers¶
Syntax:
int xvsec_mcap_get_data_registers ( xvsec_handle_t* handle, uint32_t data [4] )
Details:
xvsec_mcap_get_data_registers() - Returns the MCAP read data registers
Parameters:
handle |
Unique handle to access the device |
data[] |
MCAP read data register values |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_get_revision¶
Syntax:
int xvsec_mcap_get_revision ( xvsec_handle_t* handle, uint32_t* rev )
Details:
xvsec_mcap_get_revision() - Returns the MCAP read data registers
Parameters:
handle |
Unique handle to access the device |
rev[] |
MCAP read data register values |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_get_registers¶
Syntax:
int xvsec_mcap_get_registers ( xvsec_handle_t* handle, xvsec_mcap_regs_t* mcap_regs )
Details:
xvsec_mcap_get_registers() - Returns the MCAP register set
Parameters:
handle |
Unique handle to access the device |
MCAP register values |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_get_fpga_registers¶
Syntax:
int xvsec_mcap_get_fpga_registers ( xvsec_handle_t* handle, xvsec_fpga_cfg_regs_t* fpga_cfg_regs )
Details:
xvsec_mcap_get_fpga_registers() - Returns the FPGA configuration register set
Parameters:
handle |
Unique handle to access the device |
FPGA configuration register values |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_access_config_reg¶
Syntax:
int xvsec_mcap_access_config_reg ( xvsec_handle_t* handle, uint16_t offset, void* data, access_type_t access, bool write )
Details:
xvsec_mcap_access_config_reg() - Performs read/write operations on the MCAP register set
Parameters:
handle |
Unique handle to access the device |
offset |
Register address offset from MCAP Base address |
data |
Data pointer which holds the data to write / the data after read |
access |
Control specifier which specifies type of access (8 bits/16 bits/32 bits) |
write |
Control specifier which specifies write/read operation |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_INVALID_OFFSET : Failure
XVSEC_ERR_INVALID_OFFSET_ACCESS_COMBO : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_access_fpga_config_reg¶
Syntax:
int xvsec_mcap_access_fpga_config_reg ( xvsec_handle_t* handle, uint16_t offset, void* data, bool write )
Details:
xvsec_mcap_access_fpga_config_reg() - Performs read/write operations on the FPGA configuration register set
Parameters:
handle |
Unique handle to access the device |
offset |
Register address offset from MCAP Base address |
data |
Data pointer which holds the data to write / the data after read |
write |
Control specifier which specifies write/read operation |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
XVSEC_ERR_INVALID_FPGA_REG_NUM : Failure
xvsec_mcap_configure_fpga¶
Syntax:
int xvsec_mcap_configure_fpga ( xvsec_handle_t* handle, char* partial_cfg_file, char* bitfile )
Details:
xvsec_mcap_configure_fpga() - Performs bitstream programming on FPGA
Parameters:
handle |
Unique handle to access the device |
partial_cfg_file |
Partial Clear bitstream file |
bitfile |
Bitstream file |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
XVSEC_ERR_INVALID_FPGA_REG_NUM : Failure
xvsec_mcap_access_axi_reg¶
Syntax:
int xvsec_mcap_access_axi_reg ( xvsec_handle_t* handle, uint32_t address, void* value, bool write, axi_access_mode_t mode )
Details:
xvsec_mcap_access_axi_reg - Performs AXI read/write operations
Parameters:
handle |
Unique handle to access the device |
address |
axi address to be read/write |
value |
Data pointer which holds the data to write/read For Read Only 32b mode is supported. For Write 32b/128b modes are supported. Data buffer size is assumed 4 bytes in case of 32b mode Data buffer size is assumed 16 bytes in case of 128b mode |
write |
Control specifier which specifies write/read operation |
mode |
32bit or 128bit axi mode |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_file_download¶
Syntax:
int xvsec_mcap_file_download ( xvsec_handle_t* handle, bool fixed_address, bool mode_128_bit, char* file_name, uint32_t dev_address, data_transfer_mode_t tr_mode, uint32_t sbi_address, file_operation_status_t* op_status, size_t* err_index )
Details:
xvsec_mcap_file_download() - Performs File download at specified address
Parameters:
handle |
Unique handle to access the device |
fixed_address |
Address Type (is it fixed/incr) |
mode_128_bit |
Access Mode (128 bit or 32 bit) |
file_name |
File to download |
dev_address |
The address to download the file |
tr_mode |
Data transfer mode(slow/fast) |
sbi_address |
SBI reg block address |
op_status |
file download status |
err_index |
file download error index |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_mcap_file_upload¶
Syntax:
int xvsec_mcap_file_upload ( xvsec_handle_t* handle, bool fixed_address, char* file_name, uint32_t dev_address, size_t length, file_operation_status_t* op_status, size_t* err_index )
Details:
xvsec_mcap_file_upload() - Performs File Upload from specified address
Parameters:
handle |
Unique handle to access the device |
fixed_address |
Address Type (is it fixed/incr) |
file_name |
File to download |
dev_address |
The address to download the file |
length |
Length of the file to upload |
op_status |
file upload status |
err_index |
file upload error index |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
XVSEC_FAILURE : Failure
xvsec_mcap_set_axi_cache_attr¶
Syntax:
int xvsec_mcap_set_axi_cache_attr ( xvsec_handle_t* handle, axi_cache_attr_t* user_attr )
Details:
xvsec_mcap_set_axi_cache_attr - To set AXI cache and protection bits
Parameters:
handle |
Unique handle to access the device |
user_attr |
structure having axi cache and protection value to be set |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure
XVSEC_ERR_LINUX_SYSTEM_CALL : Failure
xvsec_lib_get_mcap_revision¶
Syntax:
int xvsec_lib_get_mcap_revision ( xvsec_handle_t* handle, uint8_t* mrev )
Details:
xvsec_lib_get_mcap_revision - To get the MCAP version info from Library
Parameters:
handle |
Unique handle to access the device |
mrev |
Pointer variable to get the MCAP revision |
Returns:
XVSEC_SUCCESS : Success
XVSEC_ERR_INVALID_PARAM : Failure
XVSEC_ERR_OPERATION_NOT_SUPPORTED : Failure