xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-rockchip/rk_meta.h (revision 0c7f2afdd1e1c535f8dad1fb2da77397b32e5ef6)
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 (16 * 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 SENSOR_IQ_BIN_OFFSET			(MAX_META_SEGMENT_SIZE)
84 #define SENSOR_IQ_BIN_MAX_SIZE			(320 * 1024)
85 #define MAX_META_BIN_SIZE (MAX_META_SEGMENT_SIZE + SENSOR_IQ_BIN_MAX_SIZE)
86 #define META_SIZE						MAX_META_BIN_SIZE
87 
88 /* 512 - sizeof(tag/load/size/comp_type/comp_size/comp_off/crc32/meta_flags) */
89 #define	META_HEAD_RESERVED_SIZE	   (120*4)
90 #define META_READ_DONE_FLAG (1 << 0)
91 
92 #define AE_TABLE_SHARE2KERNEL_OFFSET	(PARAM_SHARE2KERNEL_OFFSET)
93 
94 #define	META_COMPRESS_TYPE_GZ 0x1
95 
96 struct meta_head {
97 	uint32_t tag;
98 	uint32_t load;
99 	uint32_t size;
100 	uint32_t comp_type;
101 	uint32_t comp_size;
102 	uint32_t comp_off;
103 	uint8_t  reserved[META_HEAD_RESERVED_SIZE];
104 	uint32_t crc32;
105 	uint32_t meta_flags;
106 };
107 
108 struct cmdline_info {
109 	uint32_t tag;
110 	uint8_t data[MAX_CMDLINE_LENGTH];
111 	uint32_t crc32;
112 };
113 
114 #endif
115