You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.3 KiB
145 lines
4.3 KiB
/* |
|
* Copyright (c) 2018-2018 Ambarella, Inc. |
|
* 2018/08/17 - [Monica Yang] created file |
|
* |
|
* This file and its contents ("Software") are protected by intellectual |
|
* property rights including, without limitation, U.S. and/or foreign copyrights. |
|
* This Software is also the confidential and proprietary information of |
|
* Ambarella, Inc. and its licensors. You may not use, reproduce, disclose, |
|
* distribute, modify, or otherwise prepare derivative works of this Software |
|
* or any portion thereof except pursuant to a signed license agreement or |
|
* nondisclosure agreement with Ambarella, Inc. or its authorized affiliates. |
|
* In the absence of such an agreement, you agree to promptly notify and |
|
* return this Software to Ambarella, Inc. |
|
* |
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, |
|
* MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
|
* EVENT SHALL AMBARELLA, INC. OR ITS AFFILIATES BE LIABLE FOR ANY DIRECT, |
|
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; COMPUTER FAILURE OR MALFUNCTION; |
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
*/ |
|
|
|
#ifndef __CAVALRY_GEN_H__ |
|
#define __CAVALRY_GEN_H__ |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#include <stdint.h> |
|
|
|
#define CAVALRY_GEN_VERSION (0x02010007) |
|
#define CAVALRY_FILENAME_MAX (128) |
|
#define CAVALRY_VAR_NAME_MAX (128) |
|
#define CAVALRY_IO_NAME_MAX (512) |
|
#define CAVALRY_IO_DEMNGL_NAME_MAX (512) |
|
#define CAVALRY_IO_PARENT_NAME_MAX (64) |
|
#define CAVALRY_VPROC_VAR_NAME_MAX (32) |
|
#define CAVALRY_VPROC_SMB_NAME_MAX (16) |
|
#define CAVALRY_PATH_MAX (2048) |
|
#define CAVALRY_LINE_LEN_MAX (1024) |
|
|
|
/* cavalry_gen will set invalid value if not found data_format */ |
|
typedef enum datasize_type_s { |
|
DATASIZE_8_BITS = 0, |
|
DATASIZE_16_BITS = 1, |
|
DATASIZE_32_BITS = 2, |
|
DATASIZE_64_BITS = 3, |
|
DATASIZE_INVALID = 0xFF, |
|
} datasize_type_t; |
|
|
|
/* header info */ |
|
typedef struct cavalry_gen_header_s { |
|
uint32_t version_info; |
|
uint32_t version_hash; |
|
uint32_t dvi_num; |
|
} cavalry_gen_header_t; |
|
|
|
/*per dvi descriptor */ |
|
typedef struct dvi_desc_s { |
|
uint8_t dvi_id; |
|
uint8_t vproc_id; |
|
uint8_t dvi_ppv; |
|
uint8_t reserve_dvi; |
|
uint32_t dvi_img_vaddr; |
|
uint32_t dvi_img_size; |
|
uint32_t dvi_dag_vaddr; |
|
uint32_t input_num; |
|
uint32_t output_num; |
|
uint32_t dvi_pkg_size; |
|
char dag_name[CAVALRY_VAR_NAME_MAX]; |
|
} dvi_desc_t; |
|
|
|
/*per port descriptor (HMB_input HMB_output) */ |
|
typedef struct io_descriptor_s{ |
|
uint32_t port_dim_p; |
|
uint32_t port_dim_d; |
|
uint32_t port_dim_h; |
|
uint32_t port_dim_w; |
|
uint32_t port_pitch; /* dpitch_num_bytes */ |
|
uint32_t port_pitch_offset; |
|
uint32_t port_pitch_bsize: 6; |
|
uint32_t port_dram_format: 4; |
|
uint32_t port_dim_bitvector: 1; |
|
uint32_t port_drotate: 1; |
|
uint32_t port_hflip: 1; |
|
uint32_t port_vflip: 1; |
|
uint32_t port_dflip: 1; |
|
uint32_t port_pflip: 1; |
|
uint32_t reserve_port: 7; |
|
uint32_t port_slice_total_num : 4; |
|
uint32_t port_slice_seq : 4; |
|
uint32_t port_is_main_io: 1; |
|
uint32_t port_slice_byte_offset; |
|
char port_slice_parent_name[CAVALRY_IO_PARENT_NAME_MAX]; |
|
|
|
uint32_t port_drotate_bit_offset; |
|
uint32_t port_hflip_bit_offset; |
|
uint32_t port_vflip_bit_offset; |
|
uint32_t port_dflip_bit_offset; |
|
uint32_t port_pflip_bit_offset; |
|
|
|
uint8_t port_data_sign; /*data format: sign, datasize, expoffset, expbits*/ |
|
uint8_t port_data_size; |
|
int8_t port_data_expoffset; |
|
uint8_t port_data_expbits; |
|
|
|
uint32_t port_size; |
|
uint32_t port_byte_offset; /* dbase_byte_offset */ |
|
char port_name[CAVALRY_IO_NAME_MAX]; |
|
char port_demangled_name[CAVALRY_IO_DEMNGL_NAME_MAX]; |
|
} io_descriptor_t; |
|
|
|
/* vproc descriptors */ |
|
typedef struct vproc_desc_s { |
|
uint32_t var_num; |
|
uint32_t smb_num; |
|
uint32_t vproc_pkg_size; |
|
}vproc_desc_t; |
|
|
|
/* functional parameters */ |
|
typedef struct func_variable_s{ |
|
char var_name[CAVALRY_VPROC_VAR_NAME_MAX]; |
|
uint32_t var_boffset; |
|
uint32_t var_bsize; |
|
} func_variable_t; |
|
|
|
/* SMB descriptor */ |
|
typedef struct smb_descriptor_s{ |
|
char smb_name[CAVALRY_VPROC_SMB_NAME_MAX]; |
|
uint32_t vbase_byte_offset; |
|
} smb_descriptor_t; |
|
|
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif |
|
|
|
|