148201c4cSJason Zhu /* SPDX-License-Identifier: GPL-2.0+ */ 248201c4cSJason Zhu /* 348201c4cSJason Zhu * (C) Copyright 2022 Rockchip Electronics Co., Ltd 448201c4cSJason Zhu * 548201c4cSJason Zhu */ 648201c4cSJason Zhu 748201c4cSJason Zhu #ifndef _RK_CFG_H_ 848201c4cSJason Zhu #define _RK_CFG_H_ 948201c4cSJason Zhu 1048201c4cSJason Zhu /* META storage layout */ 1148201c4cSJason Zhu /***************************/ /* ----- ITEM start -----*/ 120236dc36SWeiwen Chen /** META_HEAD **/ 1348201c4cSJason Zhu /***************************/ 1448201c4cSJason Zhu /** ITEM 1 **/ 1548201c4cSJason Zhu /***************************/ 1648201c4cSJason Zhu /** ITEM 2 **/ 1748201c4cSJason Zhu /***************************/ 1848201c4cSJason Zhu /** ITEM 3 **/ 1948201c4cSJason Zhu /***************************/ 2048201c4cSJason Zhu /** .... **/ 2148201c4cSJason Zhu /***************************/ /* --- ITEM backup start 32KB ---*/ 2248201c4cSJason Zhu /** ITEM 1 BACKUP **/ 2348201c4cSJason Zhu /***************************/ 2448201c4cSJason Zhu /** ITEM 2 BACKUP **/ 2548201c4cSJason Zhu /***************************/ 2648201c4cSJason Zhu /** ITEM 3 BACKUP **/ 2748201c4cSJason Zhu /***************************/ 2848201c4cSJason Zhu /** .... **/ 2948201c4cSJason Zhu /***************************/ 300236dc36SWeiwen Chen /** META_END **/ 3148201c4cSJason Zhu /***************************/ /* ----- ITEM backup end -----*/ 3248201c4cSJason Zhu /** IQ FILE BIN **/ /* 320K sensor iq file bin */ 3348201c4cSJason Zhu /***************************/ 3448201c4cSJason Zhu 3548201c4cSJason Zhu /* META memory layout */ 3648201c4cSJason Zhu /***************************/ /* ----- ITEM start -----*/ 370236dc36SWeiwen Chen /** META_HEAD **/ 3848201c4cSJason Zhu /***************************/ 3948201c4cSJason Zhu /** ITEM 1 **/ 4048201c4cSJason Zhu /***************************/ 4148201c4cSJason Zhu /** ITEM 2 **/ 4248201c4cSJason Zhu /***************************/ 4348201c4cSJason Zhu /** ITEM 3 **/ 4448201c4cSJason Zhu /***************************/ 4548201c4cSJason Zhu /** .... **/ 4648201c4cSJason Zhu /***************************/ /* --- ITEM backup start 32KB ---*/ 4748201c4cSJason Zhu /** ITEM 1 BACKUP **/ 4848201c4cSJason Zhu /***************************/ 4948201c4cSJason Zhu /** ITEM 2 BACKUP **/ 5048201c4cSJason Zhu /***************************/ 5148201c4cSJason Zhu /** ITEM 3 BACKUP **/ 5248201c4cSJason Zhu /***************************/ 5348201c4cSJason Zhu /** .... **/ 5448201c4cSJason Zhu /***************************/ 550236dc36SWeiwen Chen /** META_END **/ 5648201c4cSJason Zhu /***************************/ /* ----- ITEM backup end -----*/ 5748201c4cSJason Zhu /** IQ FILE BIN **/ /* 320K sensor iq file bin */ 5848201c4cSJason Zhu /***************************/ 5948201c4cSJason Zhu 6048201c4cSJason Zhu #define RK_META 0x544d4b52 6148201c4cSJason Zhu #define RK_META_END 0x55aabbcc 6248201c4cSJason Zhu #define RK_CMDLINE 0x4c444d43 6348201c4cSJason Zhu 64b367cbabSWeiwen Chen #define ITEM_SIZE (1 * 1024) 6548201c4cSJason Zhu #define MAX_HEAD_SIZE 4 66d3bb9fb9Scww #define MAX_META_SEGMENT_SIZE (64 * 1024) 6748201c4cSJason Zhu #define BACKUP_META_SIZE (MAX_META_SEGMENT_SIZE / 2) 6848201c4cSJason Zhu #define META_INFO_HEAD_OFFSET 0 69117a504cSWeiwen Chen #define META_INFO_SIZE ITEM_SIZE 70117a504cSWeiwen Chen #define PARAM_SHARE2KERNEL_OFFSET (META_INFO_HEAD_OFFSET + META_INFO_SIZE) 71117a504cSWeiwen Chen #define PARAM_SHARE2KERNEL_SIZE (ITEM_SIZE) 72117a504cSWeiwen Chen #define SENSOR_INIT_OFFSET (PARAM_SHARE2KERNEL_OFFSET + PARAM_SHARE2KERNEL_SIZE) 73117a504cSWeiwen Chen #define SENSOR_INIT_MAX_SIZE ITEM_SIZE 7448201c4cSJason Zhu #define CMDLINE_OFFSET (SENSOR_INIT_OFFSET + SENSOR_INIT_MAX_SIZE) 75117a504cSWeiwen Chen #define CMDLINE_MAX_SIZE ITEM_SIZE 7648201c4cSJason Zhu #define AE_TABLE_OFFSET (CMDLINE_OFFSET + CMDLINE_MAX_SIZE) 77117a504cSWeiwen Chen #define AE_TABLE_MAX_SIZE ITEM_SIZE 78117a504cSWeiwen Chen 79117a504cSWeiwen Chen #define APP_PARAM_OFFSET (AE_TABLE_OFFSET + AE_TABLE_MAX_SIZE) 80117a504cSWeiwen Chen #define APP_PARAM_MAX_SIZE ITEM_SIZE 81117a504cSWeiwen Chen 82d3bb9fb9Scww #define SECONDARY_SENSOR_INIT_OFFSET (APP_PARAM_OFFSET + APP_PARAM_MAX_SIZE) 83d3bb9fb9Scww #define SECONDARY_SENSOR_INIT_MAX_SIZE ITEM_SIZE 84d3bb9fb9Scww 859577fd73SWeiwen Chen #define WAKEUP_PARAM_OFFSET (SECONDARY_SENSOR_INIT_OFFSET + SECONDARY_SENSOR_INIT_MAX_SIZE) 869577fd73SWeiwen Chen #define WAKEUP_PARAM_MAX_SIZE ITEM_SIZE 879577fd73SWeiwen Chen 889577fd73SWeiwen Chen #define WAKEUP_AOV_PARAM_OFFSET (WAKEUP_PARAM_OFFSET + WAKEUP_PARAM_MAX_SIZE) 899577fd73SWeiwen Chen #define WAKEUP_AOV_PARAM_MAX_SIZE ITEM_SIZE 909577fd73SWeiwen Chen 9148201c4cSJason Zhu #define SENSOR_IQ_BIN_OFFSET (MAX_META_SEGMENT_SIZE) 92b367cbabSWeiwen Chen 93dc66eaafSWeiwen Chen /* 512 - sizeof(tag/load/size/comp_type/comp_size/comp_off/crc32/meta_flags/iq_item_size/total_part_num/part_flag/part_reserved_size/iqbin_max_size) */ 94dc66eaafSWeiwen Chen #define META_HEAD_RESERVED_SIZE (115*4) 950236dc36SWeiwen Chen #define META_READ_DONE_FLAG (1 << 0) 9648201c4cSJason Zhu 97117a504cSWeiwen Chen #define AE_TABLE_SHARE2KERNEL_OFFSET (PARAM_SHARE2KERNEL_OFFSET) 98117a504cSWeiwen Chen 99b367cbabSWeiwen Chen #define META_COMPRESS_TYPE_GZ 0x1 100b367cbabSWeiwen Chen 10148201c4cSJason Zhu struct meta_head { 10248201c4cSJason Zhu uint32_t tag; 10348201c4cSJason Zhu uint32_t load; 10448201c4cSJason Zhu uint32_t size; 105b367cbabSWeiwen Chen uint32_t comp_type; 106b367cbabSWeiwen Chen uint32_t comp_size; 107b367cbabSWeiwen Chen uint32_t comp_off; 10894e11c15Scww uint32_t iq_item_size; 109f23e78c3SZhichao Guo uint32_t total_part_num; 110f23e78c3SZhichao Guo uint32_t part_flag; 111f23e78c3SZhichao Guo uint32_t part_reserved_size; 112dc66eaafSWeiwen Chen uint32_t iqbin_max_size; 11348201c4cSJason Zhu uint8_t reserved[META_HEAD_RESERVED_SIZE]; 11448201c4cSJason Zhu uint32_t crc32; 1150236dc36SWeiwen Chen uint32_t meta_flags; 11648201c4cSJason Zhu }; 11748201c4cSJason Zhu 1189577fd73SWeiwen Chen #define MAX_CMDLINE_LENGTH (ITEM_SIZE - 8) /* 1024 - sizeof(tag/crc32) */ 11948201c4cSJason Zhu struct cmdline_info { 12048201c4cSJason Zhu uint32_t tag; 12148201c4cSJason Zhu uint8_t data[MAX_CMDLINE_LENGTH]; 12248201c4cSJason Zhu uint32_t crc32; 12348201c4cSJason Zhu }; 12448201c4cSJason Zhu 125*b6bda7d5SXuhui Lin void rk_meta_bootargs_append(void *fdt); 12648201c4cSJason Zhu #endif 127