1
0
mirror of https://github.com/physwizz/a155-U-u1.git synced 2025-09-16 03:59:21 +00:00
Files
physwizz 99537be4e2 first
2024-03-11 06:53:12 +11:00

154 lines
3.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2015 MediaTek Inc.
*/
#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;
};
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__ */