blob: 09180c0b23027101421db11a637201edb3e02809 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * dsp_excep_hdlr.h
41 *
42 * Project:
43 * --------
44 * UMOLY
45 *
46 * Description:
47 * ------------
48 * This file provides typedefs and definiton for PS index trace.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 *------------------------------------------------------------------------------
59 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
60 *============================================================================
61 ****************************************************************************/
62
63#ifndef __CS_EXCEP_HDLR_H__
64#define __CS_EXCEP_HDLR_H__
65
66#include "cs_ex_hdr_public.h"
67#include "cs_excep_hdlr_format.h"
68
69#if !defined(MT6763) && !defined(MT6739) && !defined(MT6771)
70#include "kal_general_types.h"
71#include "csdebug_pctrace_api.h"
72
73// ----------------- macro definition ---------------
74#define CS_PC_TRACE_SIZE (64*2)
75
76#define CS_EXCEPTION_SYNC_TIME (0x100000) // 100 subframes
77/* sync. information with DSP core */
78#define CS_EXCEPTION_EVENT_CTI (0x1) // !!CAUTION!! MUST sync. with DSP side CTI event bit definition
79
80#define CS_EXCEPTION_PC_TRACE (0x52544350)
81
82#define CS_EXCEPTION_INFO_STR_LEN (128)
83
84/* MEMORY DUMP INFO */
85#define CS_EXCEPTION_ADDR_MAP_ICC (0x20636369)
86
87#define CS_EXCEPTION_ADDR_MAP_IMC (0x20636D69)
88
89#define CS_EXCEPTION_ADDR_MAP_MPC (0x2063706D)
90
91#define CS_EXCEPTION_ADDR_MAP_ICM (0x204D4349)
92
93#define CS_EXCEPTION_ADDR_MAP_PM (0x20204D50)
94
95#define CS_EXCEPTION_ADDR_MAP_CRF (0x20465243)
96
97#define CS_EXCEPTION_ADDR_MAP_CSIF (0x46495343)
98
99#define CS_EXCEPTION_ADDR_MAP_SSIF0 (0x30305353)
100
101#define CS_EXCEPTION_ADDR_MAP_SSIF1 (0x31305353)
102
103#define CS_EXCEPTION_ADDR_MAP_SSIF2 (0x32305353)
104
105#define CS_EXCEPTION_ADDR_MAP_HEADER (0x594D454D)
106
107#define CS_EXCEPTION_ADDR_MAP_END (0x20444E45)
108
109#define CS_EXCEPTION_MEMY_DUMP_SIZE (14) // except PM
110
111#define CS_EXCEPTION_CTI_ERROR_CODE (0x0)
112
113// ----------------- Sync step logging Definition -------------------
114#define CS_SYNC_BEGIN (0xABCD0001)
115
116#define CS_SYNC_ICC (0xABCD00AA)
117#define CS_SYNC_IMC (0xABCD00BB)
118#define CS_SYNC_MPC (0xABCD00CC)
119
120#define CS_SYNC_END (0xABCDABCD)
121
122// ------------------ bus status dump --------------------------------
123#define DBG_MMUBUS_STATUS_CONFIG (8)
124#define DBG_MMUBUS_SEL_OFFSET (0x20)
125#define DBG_MMUBUS_STAT_OFFSET (0x90)
126
127#define DBG_SMI_DUMP_CNT (3)
128#define DBG_SMI_DUMP_SIZE (16)
129#define DBG_SMI_DUMP_START_OFFSET (0x400)
130
131#define L1_BASE_MADDR_MMUSYS_BASE (0xFE712000)
132#define L1_BASE_MADDR_MMUSMI_BASE (0xFE716000)
133
134#define DBG_MMUBUS_NAME (0x20554D4D)
135#define DBG_SMI_NAME (0x20494D53)
136
137
138// ----------------- data type Definition -------------------
139typedef struct {
140 unsigned long dump_header;
141 //unsigned long pctrace_dump_data[CS_CORE_NUMBER][CS_PC_TRACE_SIZE];
142 PCTRACE_BUFFER pctrace_dump_data;
143} DSP_ASSERT_PC_TRACE_DUMP_T;
144
145typedef enum
146{
147 CoreSonic_ICC_FAIL_BIT_MASK = (1<<0),
148 CoreSonic_IMC_FAIL_BIT_MASK = (1<<1),
149 CoreSonic_MPC_FAIL_BIT_MASK = (1<<2)
150} CoreSonic_EX_CORE_BIT_MASK_TYPE;
151
152
153typedef struct {
154 unsigned long core_name;
155 unsigned long addr_name;
156 unsigned long addr_base;
157 unsigned long addr_size;
158} DSP_MEMORY_ADDR_SET_T;
159
160typedef struct {
161 unsigned long mem_header;
162 DSP_MEMORY_ADDR_SET_T mem_addr_set[CS_EXCEPTION_MEMY_DUMP_SIZE];
163 DSP_MEMORY_ADDR_SET_T mem_pm_addr_set[CS_CORE_NUMBER];
164 unsigned long mem_end;
165
166} DSP_MEMORY_ADDR_DUMP_T;
167
168typedef struct {
169
170 unsigned long dbg_mmubus_name;
171 unsigned long dbg_mmubus_status_rdata[DBG_MMUBUS_STATUS_CONFIG];
172
173 unsigned long dbg_smi_name;
174 unsigned long dbg_smi_register_status[DBG_SMI_DUMP_CNT][DBG_SMI_DUMP_SIZE];
175
176} DSP_DBG_BUS_STATUS_T;
177#endif
178
179// ----------------- function declaration -------------------
180extern void INT_GetSonicBBMemoryInfo(void);
181
182extern void INT_GetSonicDumpMemoryInfo(kal_uint32 **info, kal_uint32 *count);
183
184extern kal_bool INT_SyncSonicExceptionInfo(void);
185
186extern void INT_GetSonicExceptionRecord(CORESONIC_EXCEPTION_RECORD_T *record);
187
188extern kal_bool INT_EnableSonicMemoryDump(void);
189
190extern void INT_GetSonicBBMemoryInfo(void);
191
192
193extern kal_bool Sonic_IsSyncFinished(void);
194
195extern kal_bool Sonic_RequestEMIFlush(void);
196
197extern kal_bool Sonic_AckEMIFlushFinish(void);
198
199extern void Exception_Bring_Up_Init_ICC(void);
200
201extern void Exception_Bring_Up_Init_IMC(void);
202
203extern void Exception_Bring_Up_Init_MPC(void);
204
205extern kal_char* INT_GetCSCoreName(kal_uint32 core_index);
206
207extern kal_uint32 INT_GetSonicFailCore(void);
208extern kal_uint32 INT_GetSonicFailCoreIndex(void);
209
210#endif /* __CS_EXCEP_HDLR_H__ */