Files
Linux_Drivers/middleware/v2/include/linux/cvi_tpu_ioctl.h
wangliang.wang db9bea8b47 fix build error.
Change-Id: I733d10d084d6cea8f281eb3d38a3bdd06c042b33
2023-03-10 20:30:16 +08:00

93 lines
2.4 KiB
C

/*
* Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved.
*
* File Name: cvi_tpu_ioctl.h
* Description:
*/
#ifndef __CVI_TPU_IOCTL_H__
#define __CVI_TPU_IOCTL_H__
struct cvi_cache_op_arg {
unsigned long long paddr;
unsigned long long size;
int dma_fd;
};
struct cvi_submit_dma_arg {
int fd;
unsigned int seq_no;
};
struct cvi_wait_dma_arg {
unsigned int seq_no;
int ret;
};
struct cvi_pio_mode {
unsigned long long cmdbuf;
unsigned long long sz;
};
struct cvi_load_tee_arg {
// normal domain
unsigned long long cmdbuf_addr_ree;
unsigned int cmdbuf_len_ree;
unsigned long long weight_addr_ree;
unsigned int weight_len_ree;
unsigned long long neuron_addr_ree;
// security domain
unsigned long long dmabuf_addr_tee;
};
struct cvi_submit_tee_arg {
unsigned long long dmabuf_tee_addr;
unsigned long long gaddr_base2;
unsigned long long gaddr_base3;
unsigned long long gaddr_base4;
unsigned long long gaddr_base5;
unsigned long long gaddr_base6;
unsigned long long gaddr_base7;
unsigned int seq_no;
};
struct cvi_unload_tee_arg {
unsigned long long addr;
unsigned long long size;
};
struct cvi_tdma_copy_arg {
unsigned long long paddr_src;
unsigned long long paddr_dst;
unsigned int h;
unsigned int w_bytes;
unsigned int stride_bytes_src;
unsigned int stride_bytes_dst;
unsigned int enable_2d;
unsigned int leng_bytes;
unsigned int seq_no;
};
struct cvi_tdma_wait_arg {
unsigned int seq_no;
int ret;
};
#define IOCTL_TPU_BASE 'p'
#define CVITPU_SUBMIT_DMABUF _IOW(IOCTL_TPU_BASE, 0x01, unsigned long long)
#define CVITPU_DMABUF_FLUSH_FD _IOW(IOCTL_TPU_BASE, 0x02, unsigned long long)
#define CVITPU_DMABUF_INVLD_FD _IOW(IOCTL_TPU_BASE, 0x03, unsigned long long)
#define CVITPU_DMABUF_FLUSH _IOW(IOCTL_TPU_BASE, 0x04, unsigned long long)
#define CVITPU_DMABUF_INVLD _IOW(IOCTL_TPU_BASE, 0x05, unsigned long long)
#define CVITPU_WAIT_DMABUF _IOWR(IOCTL_TPU_BASE, 0x06, unsigned long long)
#define CVITPU_PIO_MODE _IOW(IOCTL_TPU_BASE, 0x07, unsigned long long)
#define CVITPU_LOAD_TEE _IOWR(IOCTL_TPU_BASE, 0x08, unsigned long long)
#define CVITPU_SUBMIT_TEE _IOW(IOCTL_TPU_BASE, 0x09, unsigned long long)
#define CVITPU_UNLOAD_TEE _IOW(IOCTL_TPU_BASE, 0x0A, unsigned long long)
#define CVITPU_SUBMIT_PIO _IOW(IOCTL_TPU_BASE, 0x0B, unsigned long long)
#define CVITPU_WAIT_PIO _IOWR(IOCTL_TPU_BASE, 0x0C, unsigned long long)
#endif /* __CVI_TPU_IOCTL_H__ */