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_regs

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_cfg_regs

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