xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-rockchip/rk_meta.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier:     GPL-2.0+ */
2 /*
3  * (C) Copyright 2022 Rockchip Electronics Co., Ltd
4  *
5  */
6 
7 #ifndef _RK_CFG_H_
8 #define _RK_CFG_H_
9 
10 /*      META storage layout        */
11 /***************************/      /* ----- ITEM start -----*/
12 /**     META_HEAD         **/
13 /***************************/
14 /**     ITEM 1            **/
15 /***************************/
16 /**     ITEM 2            **/
17 /***************************/
18 /**     ITEM 3            **/
19 /***************************/
20 /**       ....            **/
21 /***************************/      /* --- ITEM backup start 32KB ---*/
22 /**     ITEM 1 BACKUP     **/
23 /***************************/
24 /**     ITEM 2 BACKUP     **/
25 /***************************/
26 /**     ITEM 3 BACKUP     **/
27 /***************************/
28 /**       ....            **/
29 /***************************/
30 /**     META_END          **/
31 /***************************/      /* ----- ITEM backup end -----*/
32 /**     IQ FILE BIN       **/       /* 320K sensor iq file bin */
33 /***************************/
34 
35 /*      META memory layout        */
36 /***************************/      /* ----- ITEM start -----*/
37 /**     META_HEAD         **/
38 /***************************/
39 /**     ITEM 1            **/
40 /***************************/
41 /**     ITEM 2            **/
42 /***************************/
43 /**     ITEM 3            **/
44 /***************************/
45 /**       ....            **/
46 /***************************/      /* --- ITEM backup start 32KB ---*/
47 /**     ITEM 1 BACKUP     **/
48 /***************************/
49 /**     ITEM 2 BACKUP     **/
50 /***************************/
51 /**     ITEM 3 BACKUP     **/
52 /***************************/
53 /**       ....            **/
54 /***************************/
55 /**     META_END          **/
56 /***************************/      /* ----- ITEM backup end -----*/
57 /**     IQ FILE BIN       **/       /* 320K sensor iq file bin */
58 /***************************/
59 
60 #define RK_META			0x544d4b52
61 #define RK_META_END		0x55aabbcc
62 #define RK_CMDLINE		0x4c444d43
63 
64 #define ITEM_SIZE		(1 * 1024)
65 #define MAX_CMDLINE_LENGTH	(1024 / 2)
66 #define MAX_HEAD_SIZE 4
67 #define MAX_META_SEGMENT_SIZE (64 * 1024)
68 #define BACKUP_META_SIZE (MAX_META_SEGMENT_SIZE / 2)
69 #define META_INFO_HEAD_OFFSET	0
70 #define META_INFO_SIZE		ITEM_SIZE
71 #define PARAM_SHARE2KERNEL_OFFSET	(META_INFO_HEAD_OFFSET + META_INFO_SIZE)
72 #define PARAM_SHARE2KERNEL_SIZE (ITEM_SIZE)
73 #define SENSOR_INIT_OFFSET	(PARAM_SHARE2KERNEL_OFFSET + PARAM_SHARE2KERNEL_SIZE)
74 #define SENSOR_INIT_MAX_SIZE	ITEM_SIZE
75 #define CMDLINE_OFFSET		(SENSOR_INIT_OFFSET + SENSOR_INIT_MAX_SIZE)
76 #define CMDLINE_MAX_SIZE	ITEM_SIZE
77 #define AE_TABLE_OFFSET		(CMDLINE_OFFSET + CMDLINE_MAX_SIZE)
78 #define AE_TABLE_MAX_SIZE	ITEM_SIZE
79 
80 #define APP_PARAM_OFFSET	(AE_TABLE_OFFSET + AE_TABLE_MAX_SIZE)
81 #define APP_PARAM_MAX_SIZE	ITEM_SIZE
82 
83 #define SECONDARY_SENSOR_INIT_OFFSET	(APP_PARAM_OFFSET + APP_PARAM_MAX_SIZE)
84 #define SECONDARY_SENSOR_INIT_MAX_SIZE	ITEM_SIZE
85 
86 #define SENSOR_IQ_BIN_OFFSET			(MAX_META_SEGMENT_SIZE)
87 #define SENSOR_IQ_BIN_MAX_SIZE			(320 * 1024)
88 
89 #define SECONDARY_SENSOR_IQ_BIN_OFFSET			(SENSOR_IQ_BIN_OFFSET + SENSOR_IQ_BIN_MAX_SIZE)
90 #define SECONDARY_SENSOR_IQ_BIN_MAX_SIZE		(SENSOR_IQ_BIN_MAX_SIZE)
91 
92 /* 512 - sizeof(tag/load/size/comp_type/comp_size/comp_off/crc32/meta_flags/iq_item_size) */
93 #define	META_HEAD_RESERVED_SIZE	   (119*4)
94 #define META_READ_DONE_FLAG (1 << 0)
95 
96 #define AE_TABLE_SHARE2KERNEL_OFFSET	(PARAM_SHARE2KERNEL_OFFSET)
97 
98 #define	META_COMPRESS_TYPE_GZ 0x1
99 
100 struct meta_head {
101 	uint32_t tag;
102 	uint32_t load;
103 	uint32_t size;
104 	uint32_t comp_type;
105 	uint32_t comp_size;
106 	uint32_t comp_off;
107 	uint32_t iq_item_size;
108 	uint8_t  reserved[META_HEAD_RESERVED_SIZE];
109 	uint32_t crc32;
110 	uint32_t meta_flags;
111 };
112 
113 struct cmdline_info {
114 	uint32_t tag;
115 	uint8_t data[MAX_CMDLINE_LENGTH];
116 	uint32_t crc32;
117 };
118 
119 #endif
120