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