Hardware Abstraction Layer for FreeRTOS
remoteproc.h
Go to the documentation of this file.
1 #ifndef REMOTEPROC_H_
2 #define REMOTEPROC_H_
3 #include <stdint.h>
4 #include <system.h>
5 #include <mailbox.h>
6 typedef uint32_t u32;
7 typedef uint16_t u16;
8 typedef uint8_t u8;
9 #ifndef __packed
10 # define __packed PACKED
11 #endif
12 
57  uint32_t offset[0];
59 
67 struct fw_rsc_hdr {
72 } __packed;
73 
105  RSC_VDEV = 3,
109  RSC_LAST = 4,
110 };
111 
112 #define FW_RSC_ADDR_ANY (0xFFFFFFFFFFFFFFFF)
113 
182  u8 name[32];
183 } __packed;
184 
241  u8 name[32];
242 } __packed;
243 
253 struct fw_rsc_trace {
278  u8 name[32];
279 } __packed;
280 
314 } __packed;
315 
338 struct fw_rsc_vdev {
383  struct fw_rsc_vdev_vring vring[0];
384 } __packed;
385 
386 struct rproc;
387 struct rproc_ops {
388  void *(*init)(struct rproc *rpoc, void *initData, uint32_t cpuID);
389  int32_t (*deinit)(struct rproc *rproc, void *data);
390  int32_t (*notify)(struct rproc *rproc, void *data, uint32_t virtID);
391 };
396 struct rproc *rproc_init(const struct rproc_ops *ops, void *initData, struct resource_table *rsc, uint32_t cpuID, bool master);
401 int32_t rproc_deinit(struct rproc *rproc);
402 int32_t rproc_isr(struct rproc *rproc, uint32_t virtID);
403 int32_t rproc_notify(struct rproc *rproc, uint32_t virtID);
406 #endif
fw_rsc_trace::reserved
u32 reserved
Definition: remoteproc.h:274
RSC_TRACE
@ RSC_TRACE
Definition: remoteproc.h:100
fw_rsc_carveout::len
u32 len
Definition: remoteproc.h:165
fw_rsc_vdev::gfeatures
u32 gfeatures
Definition: remoteproc.h:362
fw_rsc_trace::name
u8 name[32]
Definition: remoteproc.h:278
fw_rsc_carveout::pa
u32 pa
Definition: remoteproc.h:161
fw_rsc_devmem::da
u32 da
Definition: remoteproc.h:214
fw_rsc_devmem::reserved
u32 reserved
Definition: remoteproc.h:235
RSC_DEVMEM
@ RSC_DEVMEM
Definition: remoteproc.h:95
resource_table::reserved
u32 reserved[2]
Definition: remoteproc.h:53
fw_rsc_vdev::config_len
u32 config_len
Definition: remoteproc.h:367
rproc_init
struct rproc * rproc_init(const struct rproc_ops *ops, void *initData, struct resource_table *rsc, uint32_t cpuID, bool master)
fw_rsc_devmem::name
u8 name[32]
Definition: remoteproc.h:241
fw_rsc_vdev_vring
Definition: remoteproc.h:287
RSC_LAST
@ RSC_LAST
Definition: remoteproc.h:109
fw_rsc_trace
Definition: remoteproc.h:253
fw_resource_type
fw_resource_type
Definition: remoteproc.h:86
u32
uint32_t u32
Definition: remoteproc.h:6
mailbox.h
fw_rsc_vdev_vring::notifyid
u32 notifyid
Definition: remoteproc.h:309
fw_rsc_carveout::reserved
u32 reserved
Definition: remoteproc.h:175
rproc_deinit
int32_t rproc_deinit(struct rproc *rproc)
fw_rsc_vdev::type
u32 type
Definition: remoteproc.h:343
resource_table::ver
u32 ver
Definition: remoteproc.h:45
fw_rsc_vdev::id
u32 id
Definition: remoteproc.h:347
fw_rsc_carveout::name
u8 name[32]
Definition: remoteproc.h:182
fw_rsc_vdev::reserved
u8 reserved[2]
Definition: remoteproc.h:379
fw_rsc_carveout::da
u32 da
Definition: remoteproc.h:157
fw_rsc_trace::len
u32 len
Definition: remoteproc.h:270
fw_rsc_vdev::status
u8 status
Definition: remoteproc.h:371
rproc_ops
Definition: remoteproc.h:387
__packed
#define __packed
Definition: remoteproc.h:10
u8
uint8_t u8
Definition: remoteproc.h:8
fw_rsc_hdr::type
u32 type
Definition: remoteproc.h:71
fw_rsc_devmem
Definition: remoteproc.h:203
resource_table::num
u32 num
Definition: remoteproc.h:49
fw_rsc_carveout::flags
u32 flags
Definition: remoteproc.h:171
fw_rsc_vdev::notifyid
u32 notifyid
Definition: remoteproc.h:353
resource_table::offset
uint32_t offset[0]
Definition: remoteproc.h:57
fw_rsc_vdev_vring::da
u32 da
Definition: remoteproc.h:295
fw_rsc_vdev::vring
struct fw_rsc_vdev_vring vring[0]
Definition: remoteproc.h:383
system.h
fw_rsc_trace::type
u32 type
Definition: remoteproc.h:258
fw_rsc_devmem::flags
u32 flags
Definition: remoteproc.h:231
RSC_CARVEOUT
@ RSC_CARVEOUT
Definition: remoteproc.h:91
fw_rsc_trace::da
u32 da
Definition: remoteproc.h:264
resource_table
Definition: remoteproc.h:41
fw_rsc_hdr
Definition: remoteproc.h:67
rproc_ops::deinit
int32_t(* deinit)(struct rproc *rproc, void *data)
Definition: remoteproc.h:389
fw_rsc_vdev_vring::reserved
u32 reserved
Definition: remoteproc.h:313
fw_rsc_devmem::len
u32 len
Definition: remoteproc.h:225
fw_rsc_vdev_vring::align
u32 align
Definition: remoteproc.h:299
fw_rsc_carveout::type
u32 type
Definition: remoteproc.h:153
u16
uint16_t u16
Definition: remoteproc.h:7
RSC_VDEV
@ RSC_VDEV
Definition: remoteproc.h:105
fw_rsc_vdev::dfeatures
u32 dfeatures
Definition: remoteproc.h:357
rproc_notify
int32_t rproc_notify(struct rproc *rproc, uint32_t virtID)
fw_rsc_vdev_vring::num
u32 num
Definition: remoteproc.h:303
fw_rsc_carveout
Definition: remoteproc.h:148
fw_rsc_vdev::num_of_vrings
u8 num_of_vrings
Definition: remoteproc.h:375
rproc_isr
int32_t rproc_isr(struct rproc *rproc, uint32_t virtID)
fw_rsc_devmem::type
u32 type
Definition: remoteproc.h:208
fw_rsc_devmem::pa
u32 pa
Definition: remoteproc.h:220
rproc_ops::notify
int32_t(* notify)(struct rproc *rproc, void *data, uint32_t virtID)
Definition: remoteproc.h:390
fw_rsc_vdev
Definition: remoteproc.h:338