Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
164 lines
3.8 KiB
C
164 lines
3.8 KiB
C
/*
|
|
* Copyright (C) 2015 MediaTek Inc.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef __MDEE_DUMPER_V1_H__
|
|
#define __MDEE_DUMPER_V1_H__
|
|
#include "ccci_fsm_internal.h"
|
|
|
|
#define EE_BUF_LEN (256)
|
|
#define AED_STR_LEN (512)
|
|
|
|
#define CCCI_EXREC_OFFSET_OFFENDER 288
|
|
|
|
enum {
|
|
MD_EX_TYPE_INVALID = 0,
|
|
MD_EX_TYPE_UNDEF = 1,
|
|
MD_EX_TYPE_SWI = 2,
|
|
MD_EX_TYPE_PREF_ABT = 3,
|
|
MD_EX_TYPE_DATA_ABT = 4,
|
|
MD_EX_TYPE_ASSERT = 5,
|
|
MD_EX_TYPE_FATALERR_TASK = 6,
|
|
MD_EX_TYPE_FATALERR_BUF = 7,
|
|
MD_EX_TYPE_LOCKUP = 8,
|
|
MD_EX_TYPE_ASSERT_DUMP = 9,
|
|
MD_EX_TYPE_ASSERT_FAIL = 10,
|
|
DSP_EX_TYPE_ASSERT = 11,
|
|
DSP_EX_TYPE_EXCEPTION = 12,
|
|
DSP_EX_FATAL_ERROR = 13,
|
|
|
|
/*cross core trigger exception, only md3 will trigger this exception*/
|
|
CC_MD1_EXCEPTION = 15,
|
|
|
|
NUM_EXCEPTION,
|
|
MD_EX_TYPE_C2K_ERROR = 0x25,
|
|
MD_EX_TYPE_EMI_CHECK = 99,
|
|
MD_EX_C2K_FATAL_ERROR = 0x3000,
|
|
};
|
|
|
|
/* MODEM MAUI Exception header (4 bytes)*/
|
|
struct _exception_record_header_t {
|
|
u8 ex_type;
|
|
u8 ex_nvram;
|
|
u16 ex_serial_num;
|
|
} __packed;
|
|
|
|
/* MODEM MAUI Environment information (164 bytes) */
|
|
struct _ex_environment_info_t {
|
|
u8 boot_mode; /* offset: +0x10 */
|
|
u8 reserved1[8];
|
|
u8 execution_unit[8];
|
|
u8 status; /* offset: +0x21, length: 1 */
|
|
u8 ELM_status; /* offset: +0x22, length: 1 */
|
|
u8 reserved2[145];
|
|
} __packed;
|
|
|
|
/* MODEM MAUI Special for fatal error (8 bytes)*/
|
|
struct ex_fatalerror_code {
|
|
u32 code1;
|
|
u32 code2;
|
|
} __packed;
|
|
|
|
/* MODEM MAUI fatal error (296 bytes)*/
|
|
struct ex_fatalerror {
|
|
struct ex_fatalerror_code error_code;
|
|
u8 reserved1[288];
|
|
} __packed;
|
|
|
|
/* MODEM MAUI Assert fail (296 bytes)*/
|
|
struct ex_assert_fail {
|
|
u8 filename[24];
|
|
u32 linenumber;
|
|
u32 parameters[3];
|
|
u8 reserved1[256];
|
|
} __packed;
|
|
/* enlarge file name zone only for C2K */
|
|
struct ex_c2k_assert_fail {
|
|
u8 filename[64];
|
|
u32 linenumber;
|
|
u32 parameters[3];
|
|
u8 reserved1[216];
|
|
} __packed EX_C2K_ASSERTFAIL_T;
|
|
|
|
/* MODEM MAUI Globally exported data structure (300 bytes) */
|
|
union EX_CONTENT_T {
|
|
struct ex_fatalerror fatalerr;
|
|
struct ex_assert_fail assert;
|
|
struct ex_c2k_assert_fail c2k_assert;
|
|
} __packed;
|
|
|
|
/* MODEM MAUI Standard structure of an exception log ( */
|
|
struct ex_log_t {
|
|
struct _exception_record_header_t header;
|
|
u8 reserved1[12];
|
|
struct _ex_environment_info_t envinfo;
|
|
u8 reserved2[36];
|
|
union EX_CONTENT_T content;
|
|
} __packed;
|
|
|
|
struct ccci_msg_t {
|
|
union {
|
|
u32 magic; /* For mail box magic number */
|
|
u32 addr; /* For stream start addr */
|
|
u32 data0; /* For ccci common data[0] */
|
|
};
|
|
union {
|
|
u32 id; /* For mail box message id */
|
|
u32 len; /* For stream len */
|
|
u32 data1; /* For ccci common data[1] */
|
|
};
|
|
u32 channel;
|
|
u32 reserved;
|
|
} __packed;
|
|
|
|
struct debug_info_t {
|
|
unsigned int type;
|
|
char *name;
|
|
union {
|
|
struct {
|
|
char file_name[30];
|
|
int line_num;
|
|
unsigned int parameters[3];
|
|
} assert;
|
|
struct {
|
|
int err_code1;
|
|
int err_code2;
|
|
char offender[9];
|
|
} fatal_error;
|
|
struct ccci_msg_t data;
|
|
struct {
|
|
unsigned char execution_unit[9]; /* 8+1 */
|
|
char file_name[30];
|
|
int line_num;
|
|
unsigned int parameters[3];
|
|
} dsp_assert;
|
|
struct {
|
|
unsigned char execution_unit[9];
|
|
unsigned int code1;
|
|
} dsp_exception;
|
|
struct {
|
|
unsigned char execution_unit[9];
|
|
unsigned int err_code[2];
|
|
} dsp_fatal_err;
|
|
};
|
|
void *ext_mem;
|
|
size_t ext_size;
|
|
void *md_image;
|
|
size_t md_size;
|
|
};
|
|
struct mdee_dumper_v1 {
|
|
struct debug_info_t debug_info;
|
|
struct ex_log_t ex_info;
|
|
unsigned int more_info;
|
|
};
|
|
#endif /* __MDEE_DUMPER_V1_H__ */
|