brintos

brintos / linux-shallow public Read only

0
0
Text · 2.2 KiB · 8a62092 Raw
93 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2//3// aw88395_lib.h  -- ACF bin parsing and check library file for aw883954//5// Copyright (c) 2022-2023 AWINIC Technology CO., LTD6//7// Author: Bruce zhao <zhaolei@awinic.com>8//9 10#ifndef __AW88395_LIB_H__11#define __AW88395_LIB_H__12 13#define CHECK_REGISTER_NUM_OFFSET	(4)14#define VALID_DATA_LEN			(4)15#define VALID_DATA_ADDR		(4)16#define PARSE_DSP_REG_NUM		(4)17#define REG_DATA_BYTP_LEN		(8)18#define CHECK_DSP_REG_NUM		(12)19#define DSP_VALID_DATA_LEN		(12)20#define DSP_VALID_DATA_ADDR		(12)21#define PARSE_SOC_APP_NUM		(8)22#define CHECK_SOC_APP_NUM		(12)23#define APP_DOWNLOAD_ADDR		(4)24#define APP_VALID_DATA_LEN		(12)25#define APP_VALID_DATA_ADDR		(12)26#define BIN_NUM_MAX			(100)27#define HEADER_LEN			(60)28#define BIN_DATA_TYPE_OFFSET		(8)29#define DATA_LEN			(44)30#define VALID_DATA_ADDR_OFFSET		(60)31#define START_ADDR_OFFSET		(64)32 33#define AW88395_FW_CHECK_PART		(10)34#define HDADER_LEN			(60)35 36#define HEADER_VERSION_OFFSET		(4)37 38enum bin_header_version_enum {39	HEADER_VERSION_V1 = 0x01000000,40};41 42enum data_type_enum {43	DATA_TYPE_REGISTER   = 0x00000000,44	DATA_TYPE_DSP_REG    = 0x00000010,45	DATA_TYPE_DSP_CFG    = 0x00000011,46	DATA_TYPE_SOC_REG    = 0x00000020,47	DATA_TYPE_SOC_APP    = 0x00000021,48	DATA_TYPE_DSP_FW     = 0x00000022,49	DATA_TYPE_MULTI_BINS = 0x00002000,50};51 52enum data_version_enum {53	DATA_VERSION_V1 = 0x00000001,54	DATA_VERSION_MAX,55};56 57struct bin_header_info {58	unsigned int check_sum;59	unsigned int header_ver;60	unsigned int bin_data_type;61	unsigned int bin_data_ver;62	unsigned int bin_data_len;63	unsigned int ui_ver;64	unsigned char chip_type[8];65	unsigned int reg_byte_len;66	unsigned int data_byte_len;67	unsigned int device_addr;68	unsigned int valid_data_len;69	unsigned int valid_data_addr;70 71	unsigned int reg_num;72	unsigned int reg_data_byte_len;73	unsigned int download_addr;74	unsigned int app_version;75	unsigned int header_len;76};77 78struct bin_container {79	unsigned int len;80	unsigned char data[];81};82 83struct aw_bin {84	unsigned char *p_addr;85	unsigned int all_bin_parse_num;86	unsigned int multi_bin_parse_num;87	unsigned int single_bin_parse_num;88	struct bin_header_info header_info[BIN_NUM_MAX];89	struct bin_container info;90};91 92#endif93