1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | // |
3 | // aw88395_lib.h -- ACF bin parsing and check library file for aw88395 |
4 | // |
5 | // Copyright (c) 2022-2023 AWINIC Technology CO., LTD |
6 | // |
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 (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 (4) |
37 | |
38 | enum { |
39 | = 0x01000000, |
40 | }; |
41 | |
42 | enum 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 | |
52 | enum data_version_enum { |
53 | DATA_VERSION_V1 = 0x00000001, |
54 | DATA_VERSION_MAX, |
55 | }; |
56 | |
57 | struct { |
58 | unsigned int ; |
59 | unsigned int ; |
60 | unsigned int ; |
61 | unsigned int ; |
62 | unsigned int ; |
63 | unsigned int ; |
64 | unsigned char [8]; |
65 | unsigned int ; |
66 | unsigned int ; |
67 | unsigned int ; |
68 | unsigned int ; |
69 | unsigned int ; |
70 | |
71 | unsigned int ; |
72 | unsigned int ; |
73 | unsigned int ; |
74 | unsigned int ; |
75 | unsigned int ; |
76 | }; |
77 | |
78 | struct bin_container { |
79 | unsigned int len; |
80 | unsigned char data[]; |
81 | }; |
82 | |
83 | struct 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 [BIN_NUM_MAX]; |
89 | struct bin_container info; |
90 | }; |
91 | |
92 | #endif |
93 | |