blob: f3551808b9efdcb8f8543deaf0e6803a547fcf36 [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#ifndef _DEBUG_FLAG_H
36#define _DEBUG_FLAG_H
37#include "reg_base.h"
38#include "drv_comm.h"
39
40#define TOP_MDSYS 0
41#define TOP_APPERISYS 1
42#define TOP_MODEMSYS 2
43#define TOP_MODEMSYS2 3
44#define TOP_TDDSYS 4
45#define TOP_MML1 5
46#define TOP_LA_TEST 6 //(only FPGA mode)
47#define TOP_CLKCTL 7
48#define TOP_EFUSE 8
49#define TOP_APCIRQ 9
50
51#define MDSYS_RSTCTL 0
52#define MDSYS_GPIOMUX 3
53#define MDSYS_MDCFG_AHB2APB 4
54#define MDSYS_DBSYS 5
55#define MDSYS_MD_TOPSM 6
56#define MDSYS_MD_OSTIMER 7
57#define MDSYS_AP_TOPSM 8
58#define MDSYS_AP_OSTIMER 9
59#define MDSYS_MEMSYS 10
60#define MDSYS_ARM7 11
61#define MDSYS_LTEL2 12
62#define MDSYS_MDINFRASYS 13
63#define MDSYS_MDPERISYS 14
64#define MDSYS_MDMCUSYS 15
65
66#define APPERISYS_MD2AP_CLDMA 0
67#define APPERISYS_AP2MD_CLDMA 1
68#define APPERISYS_MSDC_0P 2
69#define APPERISYS_NFI 3
70#define APPERISYS_IPSEC 4
71#define APPERISYS_USB20 5
72#define APPERISYS_ETHER_NIC 6
73#define APPERISYS_MSDC_1P 7
74#define APPERISYS_AP_UART 9
75#define APPERISYS_APGDMA 10
76#define APPERISYS_SPI 11
77#define APPERISYS_APPERISYS_BUSMON 12
78#define APPERISYS_APPERI_DBG0 13
79#define APPERISYS_AP_GPTM 14
80#define APPERISYS_APMCUSYS 15
81#define APPERISYS_SSUSB 17
82#define APPERISYS_APMCUSYS_BUSMON 18
83#define APPERISYS_PFC 19
84#define APPERISYS_TRACE 20
85#define APPERISYS_PLAYBACK 21
86
87#define MDPERISYS_MD_UART 0
88#define MDPERISYS_SUART0 1
89#define MDPERISYS_MD_GDMA 2
90#define MDPERISYS_MD_CIRQ 3
91#define MDPERISYS_USIM1 4
92#define MDPERISYS_USIM2 5
93#define MDPERISYS_RTC 6
94#define MDPERISYS_SUART1 7
95#define MDPERISYS_GPTM 8
96#define MDPERISYS_LED 9
97#define MDPERISYS_SDIO 10
98
99#define MDINFRASYS_BUS_FABRIC 0
100#define MDINFRASYS_BUSMON 1
101
102#define __SET_SEL_64X1(SUBSYS_ID,REG_ADDR0, REG_ADDR1) do{ \
103 kal_uint32 __sel_id; \
104 __sel_id = (SUBSYS_ID)&0xff; \
105 __sel_id = __sel_id | (__sel_id<<8) | (__sel_id <<16) | (__sel_id <<24); \
106 DRV_WriteReg32((REG_ADDR0),__sel_id); \
107 DRV_WriteReg32((REG_ADDR1),__sel_id); \
108 }while(0)
109
110#define __SET_SEL_32X2(SUBSYS_ID0,SUBSYS_ID1,REG_ADDR0, REG_ADDR1) do{ \
111 kal_uint32 __sel_id0,__sel_id1; \
112 __sel_id0 = (SUBSYS_ID0)&0xff; \
113 __sel_id1 = (SUBSYS_ID1)&0xff; \
114 __sel_id0 = __sel_id0 | (__sel_id0<<8) | (__sel_id0 <<16) | (__sel_id0 <<24); \
115 __sel_id1 = __sel_id1 | (__sel_id1<<8) | (__sel_id1 <<16) | (__sel_id1 <<24); \
116 DRV_WriteReg32((REG_ADDR0),__sel_id0); \
117 DRV_WriteReg32((REG_ADDR1),__sel_id1); \
118 }while(0)
119
120#define __SET_SEL_16X4(SUBSYS_ID0,SUBSYS_ID1,SUBSYS_ID2,SUBSYS_ID3,REG_ADDR0, REG_ADDR1) do{ \
121 kal_uint32 __sel_id0,__sel_id1; \
122 __sel_id0 = ((SUBSYS_ID0)&0xff) | (((SUBSYS_ID1)&0xff)<<16); \
123 __sel_id0 = __sel_id0 | (__sel_id0<<8); \
124 __sel_id1 = ((SUBSYS_ID2)&0xff) | (((SUBSYS_ID3)&0xff)<<16); \
125 __sel_id1 = __sel_id1 | (__sel_id1<<8); \
126 DRV_WriteReg32((REG_ADDR0),__sel_id0); \
127 DRV_WriteReg32((REG_ADDR1),__sel_id1); \
128 }while(0)
129
130#define __SET_SEL_8X8(SUBSYS_ID0,SUBSYS_ID1,SUBSYS_ID2,SUBSYS_ID3,SUBSYS_ID4,SUBSYS_ID5,SUBSYS_ID6,SUBSYS_ID7,REG_ADDR0, REG_ADDR1) do{ \
131 kal_uint32 __sel_id0,__sel_id1; \
132 __sel_id0 = ((SUBSYS_ID0)&0xff) | (((SUBSYS_ID1)&0xff)<<8)| (((SUBSYS_ID2)&0xff)<<16)| (((SUBSYS_ID3)&0xff)<<24); \
133 __sel_id1 = ((SUBSYS_ID4)&0xff) | (((SUBSYS_ID5)&0xff)<<8)| (((SUBSYS_ID6)&0xff)<<16)| (((SUBSYS_ID7)&0xff)<<24); \
134 DRV_WriteReg32((REG_ADDR0),__sel_id0); \
135 DRV_WriteReg32((REG_ADDR1),__sel_id1); \
136 }while(0)
137
138#define SET_TOPSUBSYS_SEL_64X1(SUBSYS_ID) \
139 __SET_SEL_64X1(SUBSYS_ID,BASE_ADDR_TOPMISC+0xc,BASE_ADDR_TOPMISC+0x10)
140
141
142#define SET_TOPSUBSYS_SEL_32X2(SUBSYS_ID0,SUBSYS_ID1) \
143 __SET_SEL_32X2(SUBSYS_ID0,SUBSYS_ID1,BASE_ADDR_TOPMISC+0xc,BASE_ADDR_TOPMISC+0x10)
144
145
146#define SET_TOPSUBSYS_SEL_16X4(SUBSYS_ID0,SUBSYS_ID1,SUBSYS_ID2,SUBSYS_ID3) \
147 __SET_SEL_16X4(SUBSYS_ID0,SUBSYS_ID1,SUBSYS_ID2,SUBSYS_ID3,BASE_ADDR_TOPMISC+0xc,BASE_ADDR_TOPMISC+0x10)
148
149
150#define SET_TOPSUBSYS_SEL_8X8(SUBSYS_ID0,SUBSYS_ID1,SUBSYS_ID2,SUBSYS_ID3,SUBSYS_ID4,SUBSYS_ID5,SUBSYS_ID6,SUBSYS_ID7) \
151 __SET_SEL_8X8(SUBSYS_ID0,SUBSYS_ID1,SUBSYS_ID2,SUBSYS_ID3,SUBSYS_ID4,SUBSYS_ID5,SUBSYS_ID6,SUBSYS_ID7,BASE_ADDR_TOPMISC+0xc,BASE_ADDR_TOPMISC+0x10)
152
153
154#define SET_MDSYS_SUBMOD_SEL_64X1(SUBMOD_ID) \
155 __SET_SEL_64X1(SUBMOD_ID,BASE_ADDR_MDDBGMON+0x8,BASE_ADDR_MDDBGMON+0xc)
156
157
158#define SET_MDSYS_SUBMOD_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1) \
159 __SET_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1,BASE_ADDR_MDDBGMON+0x8,BASE_ADDR_MDDBGMON+0xc)
160
161
162#define SET_MDSYS_SUBMOD_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3) \
163 __SET_SEL_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,BASE_ADDR_MDDBGMON+0x8,BASE_ADDR_MDDBGMON+0xc)
164
165
166#define SET_MDSYS_SUBMOD_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7) \
167 __SET_SEL_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7,BASE_ADDR_MDDBGMON+0x8,BASE_ADDR_MDDBGMON+0xc)
168
169#define SET_MDSYS_MOD_FLAG_SEL(FLAG_SEL0,FLAG_SEL1) do{\
170 DRV_WriteReg32(BASE_ADDR_MDDBGMON,FLAG_SEL0);\
171 DRV_WriteReg32(BASE_ADDR_MDDBGMON+4,FLAG_SEL1);\
172 }while(0)
173
174#define GET_MDSYS_FLAG0() DRV_Reg32(BASE_ADDR_MDDBGMON+0x10)
175#define GET_MDSYS_FLAG1() DRV_Reg32(BASE_ADDR_MDDBGMON+0x14)
176
177#define SET_APPERISYS_SUBMOD_SEL_64X1(SUBMOD_ID) \
178 __SET_SEL_64X1(SUBMOD_ID,BASE_ADDR_APDBGMON+0x8,BASE_ADDR_APDBGMON+0xc)
179
180
181#define SET_APPERISYS_SUBMOD_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1) \
182 __SET_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1,BASE_ADDR_APDBGMON+0x8,BASE_ADDR_APDBGMON+0xc)
183
184
185#define SET_APPERISYS_SUBMOD_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3) \
186 __SET_SEL_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,BASE_ADDR_APDBGMON+0x8,BASE_ADDR_APDBGMON+0xc)
187
188
189#define SET_APPERISYS_SUBMOD_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7) \
190 __SET_SEL_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7,BASE_ADDR_APDBGMON+0x8,BASE_ADDR_APDBGMON+0xc)
191
192#define SET_APPERISYS_MOD_FLAG_SEL(FLAG_SEL0,FLAG_SEL1) do{\
193 DRV_WriteReg32(BASE_ADDR_APDBGMON,FLAG_SEL0);\
194 DRV_WriteReg32(BASE_ADDR_APDBGMON+4,FLAG_SEL1);\
195 }while(0)
196
197#define GET_APPERISYS_FLAG0() DRV_Reg32(BASE_ADDR_APDBGMON+0x10)
198#define GET_APPERISYS_FLAG1() DRV_Reg32(BASE_ADDR_APDBGMON+0x14)
199
200
201#define SET_MDPERISYS_SUBMOD_SEL_64X1(SUBMOD_ID) \
202 __SET_SEL_64X1(SUBMOD_ID,BASE_ADDR_MDPERIDBGMON+0x8,BASE_ADDR_MDPERIDBGMON+0xc)
203
204
205#define SET_MDPERISYS_SUBMOD_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1) \
206 __SET_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1,BASE_ADDR_MDPERIDBGMON+0x8,BASE_ADDR_MDPERIDBGMON+0xc)
207
208
209#define SET_MDPERISYS_SUBMOD_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3) \
210 __SET_SEL_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,BASE_ADDR_MDPERIDBGMON+0x8,BASE_ADDR_MDPERIDBGMON+0xc)
211
212
213#define SET_MDPERISYS_SUBMOD_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7) \
214 __SET_SEL_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7,BASE_ADDR_MDPERIDBGMON+0x8,BASE_ADDR_MDPERIDBGMON+0xc)
215
216#define SET_MDPERISYS_MOD_FLAG_SEL(FLAG_SEL0,FLAG_SEL1) do{\
217 DRV_WriteReg32(BASE_ADDR_MDPERIDBGMON,FLAG_SEL0);\
218 DRV_WriteReg32(BASE_ADDR_MDPERIDBGMON+4,FLAG_SEL1);\
219 }while(0)
220
221#define GET_MDPERISYS_FLAG0() DRV_Reg32(BASE_ADDR_MDPERIDBGMON+0x10)
222#define GET_MDPERISYS_FLAG1() DRV_Reg32(BASE_ADDR_MDPERIDBGMON+0x14)
223
224
225#define SET_MDINFRASYS_SUBMOD_SEL_64X1(SUBMOD_ID) \
226 __SET_SEL_64X1(SUBMOD_ID,BASE_ADDR_MDINFRADBGMON+0x8,BASE_ADDR_MDINFRADBGMON+0xc)
227
228
229#define SET_MDINFRASYS_SUBMOD_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1) \
230 __SET_SEL_32X2(SUBMOD_ID0,SUBMOD_ID1,BASE_ADDR_MDINFRADBGMON+0x8,BASE_ADDR_MDINFRADBGMON+0xc)
231
232
233#define SET_MDINFRASYS_SUBMOD_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3) \
234 __SET_SEL_16X4(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,BASE_ADDR_MDINFRADBGMON+0x8,BASE_ADDR_MDINFRADBGMON+0xc)
235
236
237#define SET_MDINFRASYS_SUBMOD_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7) \
238 __SET_SEL_8X8(SUBMOD_ID0,SUBMOD_ID1,SUBMOD_ID2,SUBMOD_ID3,SUBMOD_ID4,SUBMOD_ID5,SUBMOD_ID6,SUBMOD_ID7,BASE_ADDR_MDINFRADBGMON+0x8,BASE_ADDR_MDINFRADBGMON+0xc)
239
240#define SET_MDINFRASYS_MOD_FLAG_SEL(FLAG_SEL0,FLAG_SEL1) do{\
241 DRV_WriteReg32(BASE_ADDR_MDINFRADBGMON,FLAG_SEL0);\
242 DRV_WriteReg32(BASE_ADDR_MDINFRADBGMON+4,FLAG_SEL1);\
243 }while(0)
244
245#define GET_MDINFRASYS_FLAG0() DRV_Reg32(BASE_ADDR_MDINFRADBGMON+0x10)
246#define GET_MDINFRASYS_FLAG1() DRV_Reg32(BASE_ADDR_MDINFRADBGMON+0x14)
247
248#define DEBUG_FLAG_LA_TEST() do{SET_TOPSUBSYS_SEL_64X1(TOP_CLKCTL);}while(0)
249#endif