PMSIS API
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
hyperbus.h File Reference

Data Structures

struct  pi_hyper_conf_t
 

Macros

#define PI_INLINE_HYPER_LVL_0
 

Typedefs

typedef struct pi_cl_hyper_req_s pi_cl_hyper_req_t
 Hyperbus cluster request structure. More...
 

Enumerations

enum  pi_hyper_type_e
 Type of the device connected to the hyperbus interface. More...
 
enum  pi_hyper_ioctl_cmd
 

Functions

void pi_hyper_conf_init (struct pi_hyper_conf *conf)
 Initialize an Hyperbus configuration with default values. More...
 
int32_t pi_hyper_open (struct pi_device *device)
 Open an Hyperbus device. More...
 
void pi_hyper_close (struct pi_device *device)
 Close an opened Hyperbus device. More...
 
int pi_hyper_ioctl (struct pi_device *device, uint32_t cmd, void *arg)
 Dynamically change the device configuration. More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_read (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size)
 Enqueue a read copy to the Hyperbus (from Hyperbus to processor). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_read_async (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, struct pi_task *task)
 Enqueue an asynchronous read copy to the Hyperbus (from Hyperbus to processor). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_write (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size)
 Enqueue a write copy to the Hyperbus (from processor to Hyperbus). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_write_async (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, struct pi_task *task)
 Enqueue an asynchronous write copy to the Hyperbus (from processor to Hyperbus). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_read_2d (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length)
 Enqueue a 2D read copy (rectangle area) to the Hyperbus (from Hyperbus to processor). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_read_2d_async (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length, struct pi_task *task)
 Enqueue an asynchronous 2D read copy (rectangle area) to the Hyperbus (from Hyperbus to processor). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_write_2d (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length)
 Enqueue a 2D write copy (rectangle area) to the Hyperbus (from processor to Hyperbus). More...
 
PI_INLINE_HYPER_LVL_0 void pi_hyper_write_2d_async (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length, struct pi_task *task)
 Enqueue an asynchronous 2D write copy (rectangle area) to the Hyperbus (from processor to Hyperbus). More...
 
static void pi_cl_hyper_read (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, pi_cl_hyper_req_t *req)
 Enqueue a read copy to the Hyperbus from cluster side (from Hyperbus to processor). More...
 
static void pi_cl_hyper_read_2d (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length, pi_cl_hyper_req_t *req)
 Enqueue a 2D read copy (rectangle area) to the Hyperbus from cluster side (from Hyperbus to processor). More...
 
static void pi_cl_hyper_read_wait (pi_cl_hyper_req_t *req)
 Wait until the specified hyperbus request has finished. More...
 
static void pi_cl_hyper_write (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, pi_cl_hyper_req_t *req)
 Enqueue a write copy to the Hyperbus from cluster side (from Hyperbus to processor). More...
 
static void pi_cl_hyper_write_2d (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length, pi_cl_hyper_req_t *req)
 Enqueue a 2D write copy (rectangle area) to the Hyperbus from cluster side (from Hyperbus to processor). More...
 
static void pi_cl_hyper_write_wait (pi_cl_hyper_req_t *req)
 Wait until the specified hyperbus request has finished. More...
 
static void pi_cl_hyper_copy (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, int ext2loc, pi_cl_hyper_req_t *req)
 Enqueue a copy with the Hyperbus from cluster side. More...
 
static void pi_cl_hyper_copy_2d (struct pi_device *device, uint32_t hyper_addr, void *addr, uint32_t size, uint32_t stride, uint32_t length, int ext2loc, pi_cl_hyper_req_t *req)
 Enqueue a 2D copy (rectangle area) with the Hyperbus from cluster side. More...
 
void pi_hyper_xip_lock (struct pi_device *device)
 Forbid XIP refills. More...
 
void pi_hyper_xip_unlock (struct pi_device *device)
 Allow XIP refills. More...
 

Macro Definition Documentation

#define PI_INLINE_HYPER_LVL_0