kernel-brax3-ubuntu-touch/drivers/misc/mediatek/ccci_util/ccci_util_lib_main.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

316 lines
7.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2015 MediaTek Inc.
*/
#ifndef __CCCI_UTIL_LIB_MAIN_H__
#define __CCCI_UTIL_LIB_MAIN_H__
#include "mt-plat/mtk_ccci_common.h"
struct md_check_header_v3 {
/* magic number is "CHECK_HEADER"*/
unsigned char check_header[12];
/* header structure version number */
unsigned int header_verno;
/* 0x0:invalid;
* 0x1:debug version;
* 0x2:release version
*/
unsigned int product_ver;
/* 0x0:invalid;
* 0x1:2G modem;
* 0x2: 3G modem
*/
unsigned int image_type;
/* MT6573_S01 or MT6573_S02 */
unsigned char platform[16];
/* build time string */
unsigned char build_time[64];
/* project version, ex:11A_MD.W11.28 */
unsigned char build_ver[64];
/* bind to md sys id,
* MD SYS1: 1,
* MD SYS2: 2,
* MD SYS5: 5
*/
unsigned char bind_sys_id;
/* no shrink: 0, shrink: 1 */
unsigned char ext_attr;
/* for reserved */
unsigned char reserved[2];
/* md ROM/RAM image size requested by md */
unsigned int mem_size;
/* md image size, exclude head size */
unsigned int md_img_size;
/* RPC secure memory address */
unsigned int rpc_sec_mem_addr;
unsigned int dsp_img_offset;
unsigned int dsp_img_size;
unsigned char reserved2[88];
/* the size of this structure */
unsigned int size;
} __packed;
struct md_check_header_v4 {
/* magic number is "CHECK_HEADER"*/
unsigned char check_header[12];
/* header structure version number */
unsigned int header_verno;
/* 0x0:invalid;
* 0x1:debug version;
* 0x2:release version
*/
unsigned int product_ver;
/* 0x0:invalid;
* 0x1:2G modem;
* 0x2: 3G modem
*/
unsigned int image_type;
/* MT6573_S01 or MT6573_S02 */
unsigned char platform[16];
/* build time string */
unsigned char build_time[64];
/* project version, ex:11A_MD.W11.28 */
unsigned char build_ver[64];
/* bind to md sys id,
* MD SYS1: 1,
* MD SYS2: 2,
* MD SYS5: 5
*/
unsigned char bind_sys_id;
/* no shrink: 0, shrink: 1 */
unsigned char ext_attr;
/* for reserved */
unsigned char reserved[2];
/* md ROM/RAM image size requested by md */
unsigned int mem_size;
/* md image size, exclude head size */
unsigned int md_img_size;
/* RPC secure memory address */
unsigned int rpc_sec_mem_addr;
unsigned int dsp_img_offset;
unsigned int dsp_img_size;
/* total region number */
unsigned int region_num;
/* max support 8 regions */
struct _md_regin_info region_info[8];
/* max support 4 domain settings,
* each region has 4 control bits
*/
unsigned int domain_attr[4];
unsigned char reserved2[4];
/* the size of this structure */
unsigned int size;
} __packed;
struct md_check_header_v5 {
/* magic number is "CHECK_HEADER" */
unsigned char check_header[12];
/* header structure version number */
unsigned int header_verno;
/* 0x0:invalid;
* 0x1:debug version;
* 0x2:release version
*/
unsigned int product_ver;
/* 0x0:invalid;
* 0x1:2G modem;
* 0x2: 3G modem
*/
unsigned int image_type;
/* MT6573_S01 or MT6573_S02 */
unsigned char platform[16];
/* build time string */
unsigned char build_time[64];
/* project version, ex:11A_MD.W11.28 */
unsigned char build_ver[64];
/* bind to md sys id,
* MD SYS1: 1,
* MD SYS2: 2,
* MD SYS5: 5
*/
unsigned char bind_sys_id;
/* no shrink: 0, shrink: 1 */
unsigned char ext_attr;
/* for reserved */
unsigned char reserved[2];
/* md ROM/RAM image size requested by md */
unsigned int mem_size;
/* md image size, exclude head size */
unsigned int md_img_size;
/* RPC secure memory address */
unsigned int rpc_sec_mem_addr;
unsigned int dsp_img_offset;
unsigned int dsp_img_size;
/* total region number */
unsigned int region_num;
/* max support 8 regions */
struct _md_regin_info region_info[8];
/* max support 4 domain settings,
* each region has 4 control bits
*/
unsigned int domain_attr[4];
unsigned int arm7_img_offset;
unsigned int arm7_img_size;
unsigned char reserved_1[56];
/* the size of this structure */
unsigned int size;
} __packed;
struct md_check_header_struct {
/* magic number is "CHECK_HEADER"*/
unsigned char check_header[12];
/* header structure version number */
unsigned int header_verno;
/* 0x0:invalid;
* 0x1:debug version;
* 0x2:release version
*/
unsigned int product_ver;
/* 0x0:invalid;
* 0x1:2G modem;
* 0x2: 3G modem
*/
unsigned int image_type;
/* MT6573_S01 or MT6573_S02 */
unsigned char platform[16];
/* build time string */
unsigned char build_time[64];
/* project version, ex:11A_MD.W11.28 */
unsigned char build_ver[64];
/* bind to md sys id,
* MD SYS1: 1,
* MD SYS2: 2
*/
unsigned char bind_sys_id;
/* no shrink: 0, shrink: 1*/
unsigned char ext_attr;
/* for reserved */
unsigned char reserved[2];
/* md ROM/RAM image size requested by md */
unsigned int mem_size;
/* md image size, exclude head size*/
unsigned int md_img_size;
} __packed;
struct _free_padding_block {
unsigned int start_offset;
unsigned int length;
};
struct md_check_header_v6 {
/* magic number is "CHECK_HEADER"*/
unsigned char check_header[12];
/* header structure version number */
unsigned int header_verno;
/* 0x0:invalid;
* 0x1:debug version;
* 0x2:release version
*/
unsigned int product_ver;
/* 0x0:invalid;
* 0x1:2G modem;
* 0x2: 3G modem
*/
unsigned int image_type;
/* MT6573_S01 or MT6573_S02 */
unsigned char platform[16];
/* build time string */
unsigned char build_time[64];
/* project version, ex:11A_MD.W11.28 */
unsigned char build_ver[64];
/* bind to md sys id,
* MD SYS1: 1,
* MD SYS2: 2,
* MD SYS5: 5
*/
unsigned char bind_sys_id;
/* no shrink: 0, shrink: 1 */
unsigned char ext_attr;
/* for reserved */
unsigned char reserved[2];
/* md ROM/RAM image size requested by md */
unsigned int mem_size;
/* md image size, exclude head size */
unsigned int md_img_size;
/* RPC secure memory address */
unsigned int rpc_sec_mem_addr;
unsigned int dsp_img_offset;
unsigned int dsp_img_size;
/* total region number */
unsigned int region_num;
/* max support 8 regions */
struct _md_regin_info region_info[8];
/* max support 4 domain settings,
* each region has 4 control bits
*/
unsigned int domain_attr[4];
unsigned int arm7_img_offset;
unsigned int arm7_img_size;
struct _free_padding_block padding_blk[8];
unsigned int ap_md_smem_size;
unsigned int md_to_md_smem_size;
unsigned int ramdisk_offset;
unsigned int ramdisk_size;
unsigned char reserved_1[144];
/* the size of this structure */
unsigned int size;
};
extern int ccci_common_sysfs_init(void);
extern void ccci_log_init(void);
extern int mtk_ccci_args_key_val_init(void);
extern int mtk_ccci_compatible_md_chk_hdr_parsing(void);
extern int __init ccci_util_fo_init(void);
extern const char *ld_md_errno_to_str(int errno);
extern int ccci_util_broadcast_init(void);
extern int ccci_sib_init(void);
extern int ccci_util_pin_broadcast_init(void);
enum args_src {
FROM_LK_TAG = 0,
FROM_KERNEL,
};
int mtk_ccci_find_args_val(const char key[], unsigned char o_val[], unsigned int val_buf_size);
int mtk_ccci_add_new_args(const char key[], unsigned char val[], unsigned int val_size,
enum args_src src);
void mtk_ccci_dump_args_info(void);
int mtk_ccci_get_lk_load_md_info(char buf[], int size);
const char *ccci_get_md_product_str(unsigned int val);
const char *ccci_get_md_cap_str(unsigned int val);
#define MAX_MD_NUM_AT_LK (4)
#endif