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