Hardware Abstraction Layer for FreeRTOS
Collaboration diagram for Remoteproc Subssystem:

Data Structures

struct  resource_table
 
struct  fw_rsc_hdr
 
struct  fw_rsc_carveout
 
struct  fw_rsc_devmem
 
struct  fw_rsc_trace
 
struct  fw_rsc_vdev_vring
 
struct  fw_rsc_vdev
 
struct  rproc_ops
 

Macros

#define FW_RSC_ADDR_ANY   (0xFFFFFFFFFFFFFFFF)
 
#define __packed   PACKED
 

Enumerations

enum  fw_resource_type {
  RSC_CARVEOUT = 0, RSC_DEVMEM = 1, RSC_TRACE = 2, RSC_VDEV = 3,
  RSC_LAST = 4
}
 

Functions

struct rproc * rproc_init (const struct rproc_ops *ops, void *initData, struct resource_table *rsc, uint32_t cpuID, bool master)
 
int32_t rproc_deinit (struct rproc *rproc)
 
int32_t rproc_isr (struct rproc *rproc, uint32_t virtID)
 
int32_t rproc_notify (struct rproc *rproc, uint32_t virtID)
 

Variables

struct resource_table __packed
 

Detailed Description

Remoteproc based on Linux Kernel Documention

Macro Definition Documentation

◆ __packed

struct fw_rsc_vdev __packed   PACKED

◆ FW_RSC_ADDR_ANY

#define FW_RSC_ADDR_ANY   (0xFFFFFFFFFFFFFFFF)

Enumeration Type Documentation

◆ fw_resource_type

enum fw_resource_type - types of resource entries

For more details regarding a specific resource type, please see its dedicated structure below.

Please note that these values are used as indices to the rproc_handle_rsc lookup table, so please keep them sane. Moreover, RSC_LAST is used to check the validity of an index before the lookup table is accessed, so please update it as needed.

Enumerator
RSC_CARVEOUT 

request for allocation of a physically contiguous memory region.

RSC_DEVMEM 

request to iommu_map a memory-based peripheral.

RSC_TRACE 

announces the availability of a trace buffer into which the remote processor will be writing logs.

RSC_VDEV 

declare support for a virtio device, and serve as its virtio header.

RSC_LAST 

just keep this one at the end

Function Documentation

◆ rproc_deinit()

int32_t rproc_deinit ( struct rproc *  rproc)

Remoteproc deinit

Returns
0 on ok -1 on error

◆ rproc_init()

struct rproc* rproc_init ( const struct rproc_ops ops,
void *  initData,
struct resource_table rsc,
uint32_t  cpuID,
bool  master 
)

Remoteproc Init

Returns
0 on ok -1 on error

◆ rproc_isr()

int32_t rproc_isr ( struct rproc *  rproc,
uint32_t  virtID 
)

◆ rproc_notify()

int32_t rproc_notify ( struct rproc *  rproc,
uint32_t  virtID 
)

Variable Documentation

◆ __packed

struct fw_rsc_vdev __packed