xref: /arm-trusted-firmware/plat/mediatek/mt8188/include/platform_def.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2022-2023, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef PLATFORM_DEF_H
8*91f16700Schasinglulu #define PLATFORM_DEF_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <arch_def.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #define PLAT_PRIMARY_CPU	(0x0)
13*91f16700Schasinglulu 
14*91f16700Schasinglulu #define MT_GIC_BASE		(0x0C000000)
15*91f16700Schasinglulu #define MCUCFG_BASE		(0x0C530000)
16*91f16700Schasinglulu #define MCUCFG_REG_SIZE		(0x10000)
17*91f16700Schasinglulu #define IO_PHYS			(0x10000000)
18*91f16700Schasinglulu 
19*91f16700Schasinglulu /* Aggregate of all devices for MMU mapping */
20*91f16700Schasinglulu #define MTK_DEV_RNG0_BASE	(MT_GIC_BASE)
21*91f16700Schasinglulu #define MTK_DEV_RNG0_SIZE	(0x600000)
22*91f16700Schasinglulu #define MTK_DEV_RNG1_BASE	(IO_PHYS)
23*91f16700Schasinglulu #define MTK_DEV_RNG1_SIZE	(0x10000000)
24*91f16700Schasinglulu 
25*91f16700Schasinglulu #define TOPCKGEN_BASE		(IO_PHYS)
26*91f16700Schasinglulu 
27*91f16700Schasinglulu /*******************************************************************************
28*91f16700Schasinglulu  * APUSYS related constants
29*91f16700Schasinglulu  ******************************************************************************/
30*91f16700Schasinglulu #define BCRM_FMEM_PDN_BASE	(IO_PHYS + 0x00276000)
31*91f16700Schasinglulu #define APU_MD32_SYSCTRL	(IO_PHYS + 0x09001000)
32*91f16700Schasinglulu #define APU_MD32_WDT		(IO_PHYS + 0x09002000)
33*91f16700Schasinglulu #define APU_RCX_CONFIG		(IO_PHYS + 0x09020000)
34*91f16700Schasinglulu #define APU_CTRL_DAPC_RCX_BASE	(IO_PHYS + 0x09034000)
35*91f16700Schasinglulu #define APU_NOC_DAPC_RCX_BASE	(IO_PHYS + 0x09038000)
36*91f16700Schasinglulu #define APU_REVISER		(IO_PHYS + 0x0903c000)
37*91f16700Schasinglulu #define APU_RCX_VCORE_CONFIG	(IO_PHYS + 0x090e0000)
38*91f16700Schasinglulu #define APU_MBOX0		(IO_PHYS + 0x090e1000)
39*91f16700Schasinglulu #define APU_MBOX1		(IO_PHYS + 0x090e2000)
40*91f16700Schasinglulu #define APU_RPCTOP		(IO_PHYS + 0x090f0000)
41*91f16700Schasinglulu #define APU_PCUTOP		(IO_PHYS + 0x090f1000)
42*91f16700Schasinglulu #define APU_AO_CTRL		(IO_PHYS + 0x090f2000)
43*91f16700Schasinglulu #define APU_PLL			(IO_PHYS + 0x090f3000)
44*91f16700Schasinglulu #define APU_ACC			(IO_PHYS + 0x090f4000)
45*91f16700Schasinglulu #define APU_SEC_CON		(IO_PHYS + 0x090f5000)
46*91f16700Schasinglulu #define APU_ARETOP_ARE0		(IO_PHYS + 0x090f6000)
47*91f16700Schasinglulu #define APU_ARETOP_ARE1		(IO_PHYS + 0x090f7000)
48*91f16700Schasinglulu #define APU_ARETOP_ARE2		(IO_PHYS + 0x090f8000)
49*91f16700Schasinglulu #define APU_CTRL_DAPC_AO_BASE	(IO_PHYS + 0x090fc000)
50*91f16700Schasinglulu #define APU_ACX0_RPC_LITE	(IO_PHYS + 0x09140000)
51*91f16700Schasinglulu #define BCRM_FMEM_PDN_SIZE	(0x1000)
52*91f16700Schasinglulu 
53*91f16700Schasinglulu /*******************************************************************************
54*91f16700Schasinglulu  * AUDIO related constants
55*91f16700Schasinglulu  ******************************************************************************/
56*91f16700Schasinglulu #define AUDIO_BASE		(IO_PHYS + 0x00b10000)
57*91f16700Schasinglulu 
58*91f16700Schasinglulu /*******************************************************************************
59*91f16700Schasinglulu  * SPM related constants
60*91f16700Schasinglulu  ******************************************************************************/
61*91f16700Schasinglulu #define SPM_BASE		(IO_PHYS + 0x00006000)
62*91f16700Schasinglulu 
63*91f16700Schasinglulu /*******************************************************************************
64*91f16700Schasinglulu  * GPIO related constants
65*91f16700Schasinglulu  ******************************************************************************/
66*91f16700Schasinglulu #define GPIO_BASE		(IO_PHYS + 0x00005000)
67*91f16700Schasinglulu #define RGU_BASE		(IO_PHYS + 0x00007000)
68*91f16700Schasinglulu #define DRM_BASE		(IO_PHYS + 0x0000D000)
69*91f16700Schasinglulu #define IOCFG_RM_BASE		(IO_PHYS + 0x01C00000)
70*91f16700Schasinglulu #define IOCFG_LT_BASE		(IO_PHYS + 0x01E10000)
71*91f16700Schasinglulu #define IOCFG_LM_BASE		(IO_PHYS + 0x01E20000)
72*91f16700Schasinglulu #define IOCFG_RT_BASE		(IO_PHYS + 0x01EA0000)
73*91f16700Schasinglulu 
74*91f16700Schasinglulu /*******************************************************************************
75*91f16700Schasinglulu  * UART related constants
76*91f16700Schasinglulu  ******************************************************************************/
77*91f16700Schasinglulu #define UART0_BASE	(IO_PHYS + 0x01002000)
78*91f16700Schasinglulu #define UART_BAUDRATE	(115200)
79*91f16700Schasinglulu 
80*91f16700Schasinglulu /*******************************************************************************
81*91f16700Schasinglulu  * PMIC related constants
82*91f16700Schasinglulu  ******************************************************************************/
83*91f16700Schasinglulu #define PMIC_WRAP_BASE		(IO_PHYS + 0x00024000)
84*91f16700Schasinglulu 
85*91f16700Schasinglulu /*******************************************************************************
86*91f16700Schasinglulu  * Infra IOMMU related constants
87*91f16700Schasinglulu  ******************************************************************************/
88*91f16700Schasinglulu #define INFRACFG_AO_BASE	(IO_PHYS + 0x00001000)
89*91f16700Schasinglulu #define INFRACFG_AO_MEM_BASE	(IO_PHYS + 0x00002000)
90*91f16700Schasinglulu #define PERICFG_AO_BASE		(IO_PHYS + 0x01003000)
91*91f16700Schasinglulu #define PERICFG_AO_REG_SIZE	(0x1000)
92*91f16700Schasinglulu 
93*91f16700Schasinglulu /*******************************************************************************
94*91f16700Schasinglulu  * GIC-600 & interrupt handling related constants
95*91f16700Schasinglulu  ******************************************************************************/
96*91f16700Schasinglulu /* Base MTK_platform compatible GIC memory map */
97*91f16700Schasinglulu #define BASE_GICD_BASE		(MT_GIC_BASE)
98*91f16700Schasinglulu #define MT_GIC_RDIST_BASE	(MT_GIC_BASE + 0x40000)
99*91f16700Schasinglulu 
100*91f16700Schasinglulu /*******************************************************************************
101*91f16700Schasinglulu  * CIRQ related constants
102*91f16700Schasinglulu  ******************************************************************************/
103*91f16700Schasinglulu #define SYS_CIRQ_BASE		(IO_PHYS + 0x204000)
104*91f16700Schasinglulu #define MD_WDT_IRQ_BIT_ID	(141)
105*91f16700Schasinglulu #define CIRQ_IRQ_NUM		(730)
106*91f16700Schasinglulu #define CIRQ_REG_NUM		(23)
107*91f16700Schasinglulu #define CIRQ_SPI_START		(96)
108*91f16700Schasinglulu 
109*91f16700Schasinglulu /*******************************************************************************
110*91f16700Schasinglulu  * MM IOMMU & SMI related constants
111*91f16700Schasinglulu  ******************************************************************************/
112*91f16700Schasinglulu #define SMI_LARB_0_BASE		(IO_PHYS + 0x0c022000)
113*91f16700Schasinglulu #define SMI_LARB_1_BASE		(IO_PHYS + 0x0c023000)
114*91f16700Schasinglulu #define SMI_LARB_2_BASE		(IO_PHYS + 0x0c102000)
115*91f16700Schasinglulu #define SMI_LARB_3_BASE		(IO_PHYS + 0x0c103000)
116*91f16700Schasinglulu #define SMI_LARB_4_BASE		(IO_PHYS + 0x04013000)
117*91f16700Schasinglulu #define SMI_LARB_5_BASE		(IO_PHYS + 0x04f02000)
118*91f16700Schasinglulu #define SMI_LARB_6_BASE		(IO_PHYS + 0x04f03000)
119*91f16700Schasinglulu #define SMI_LARB_7_BASE		(IO_PHYS + 0x04e04000)
120*91f16700Schasinglulu #define SMI_LARB_9_BASE		(IO_PHYS + 0x05001000)
121*91f16700Schasinglulu #define SMI_LARB_10_BASE	(IO_PHYS + 0x05120000)
122*91f16700Schasinglulu #define SMI_LARB_11A_BASE	(IO_PHYS + 0x05230000)
123*91f16700Schasinglulu #define SMI_LARB_11B_BASE	(IO_PHYS + 0x05530000)
124*91f16700Schasinglulu #define SMI_LARB_11C_BASE	(IO_PHYS + 0x05630000)
125*91f16700Schasinglulu #define SMI_LARB_12_BASE	(IO_PHYS + 0x05340000)
126*91f16700Schasinglulu #define SMI_LARB_13_BASE	(IO_PHYS + 0x06001000)
127*91f16700Schasinglulu #define SMI_LARB_14_BASE	(IO_PHYS + 0x06002000)
128*91f16700Schasinglulu #define SMI_LARB_15_BASE	(IO_PHYS + 0x05140000)
129*91f16700Schasinglulu #define SMI_LARB_16A_BASE	(IO_PHYS + 0x06008000)
130*91f16700Schasinglulu #define SMI_LARB_16B_BASE	(IO_PHYS + 0x0600a000)
131*91f16700Schasinglulu #define SMI_LARB_17A_BASE	(IO_PHYS + 0x06009000)
132*91f16700Schasinglulu #define SMI_LARB_17B_BASE	(IO_PHYS + 0x0600b000)
133*91f16700Schasinglulu #define SMI_LARB_19_BASE	(IO_PHYS + 0x0a010000)
134*91f16700Schasinglulu #define SMI_LARB_21_BASE	(IO_PHYS + 0x0802e000)
135*91f16700Schasinglulu #define SMI_LARB_23_BASE	(IO_PHYS + 0x0800d000)
136*91f16700Schasinglulu #define SMI_LARB_27_BASE	(IO_PHYS + 0x07201000)
137*91f16700Schasinglulu #define SMI_LARB_28_BASE	(IO_PHYS + 0x00000000)
138*91f16700Schasinglulu #define SMI_LARB_REG_RNG_SIZE	(0x1000)
139*91f16700Schasinglulu 
140*91f16700Schasinglulu /*******************************************************************************
141*91f16700Schasinglulu  * SPM related constants
142*91f16700Schasinglulu  ******************************************************************************/
143*91f16700Schasinglulu #define SPM_BASE		(IO_PHYS + 0x00006000)
144*91f16700Schasinglulu 
145*91f16700Schasinglulu /*******************************************************************************
146*91f16700Schasinglulu  * APMIXEDSYS related constants
147*91f16700Schasinglulu  ******************************************************************************/
148*91f16700Schasinglulu #define APMIXEDSYS		(IO_PHYS + 0x0000C000)
149*91f16700Schasinglulu 
150*91f16700Schasinglulu /*******************************************************************************
151*91f16700Schasinglulu  * VPPSYS related constants
152*91f16700Schasinglulu  ******************************************************************************/
153*91f16700Schasinglulu #define VPPSYS0_BASE		(IO_PHYS + 0x04000000)
154*91f16700Schasinglulu #define VPPSYS1_BASE		(IO_PHYS + 0x04f00000)
155*91f16700Schasinglulu 
156*91f16700Schasinglulu /*******************************************************************************
157*91f16700Schasinglulu  * VDOSYS related constants
158*91f16700Schasinglulu  ******************************************************************************/
159*91f16700Schasinglulu #define VDOSYS0_BASE		(IO_PHYS + 0x0C01D000)
160*91f16700Schasinglulu #define VDOSYS1_BASE		(IO_PHYS + 0x0C100000)
161*91f16700Schasinglulu 
162*91f16700Schasinglulu /*******************************************************************************
163*91f16700Schasinglulu  * SSPM_MBOX_3 related constants
164*91f16700Schasinglulu  ******************************************************************************/
165*91f16700Schasinglulu #define SSPM_MBOX_3_BASE	(IO_PHYS + 0x00480000)
166*91f16700Schasinglulu 
167*91f16700Schasinglulu /*******************************************************************************
168*91f16700Schasinglulu  * DP related constants
169*91f16700Schasinglulu  ******************************************************************************/
170*91f16700Schasinglulu #define EDP_SEC_BASE		(IO_PHYS + 0x0C504000)
171*91f16700Schasinglulu #define DP_SEC_BASE		(IO_PHYS + 0x0C604000)
172*91f16700Schasinglulu #define EDP_SEC_SIZE		(0x1000)
173*91f16700Schasinglulu #define DP_SEC_SIZE		(0x1000)
174*91f16700Schasinglulu 
175*91f16700Schasinglulu /*******************************************************************************
176*91f16700Schasinglulu  * EMI MPU related constants
177*91f16700Schasinglulu  *******************************************************************************/
178*91f16700Schasinglulu #define EMI_MPU_BASE		(IO_PHYS + 0x00226000)
179*91f16700Schasinglulu #define SUB_EMI_MPU_BASE	(IO_PHYS + 0x00225000)
180*91f16700Schasinglulu 
181*91f16700Schasinglulu /*******************************************************************************
182*91f16700Schasinglulu  * System counter frequency related constants
183*91f16700Schasinglulu  ******************************************************************************/
184*91f16700Schasinglulu #define SYS_COUNTER_FREQ_IN_HZ	(13000000)
185*91f16700Schasinglulu #define SYS_COUNTER_FREQ_IN_MHZ	(13)
186*91f16700Schasinglulu 
187*91f16700Schasinglulu /*******************************************************************************
188*91f16700Schasinglulu  * Platform binary types for linking
189*91f16700Schasinglulu  ******************************************************************************/
190*91f16700Schasinglulu #define PLATFORM_LINKER_FORMAT		"elf64-littleaarch64"
191*91f16700Schasinglulu #define PLATFORM_LINKER_ARCH		aarch64
192*91f16700Schasinglulu 
193*91f16700Schasinglulu /*******************************************************************************
194*91f16700Schasinglulu  * Generic platform constants
195*91f16700Schasinglulu  ******************************************************************************/
196*91f16700Schasinglulu #define PLATFORM_STACK_SIZE		(0x800)
197*91f16700Schasinglulu #define FIRMWARE_WELCOME_STR		"Booting Trusted Firmware\n"
198*91f16700Schasinglulu #define SOC_CHIP_ID			U(0x8188)
199*91f16700Schasinglulu 
200*91f16700Schasinglulu /*******************************************************************************
201*91f16700Schasinglulu  * Platform memory map related constants
202*91f16700Schasinglulu  ******************************************************************************/
203*91f16700Schasinglulu #define TZRAM_BASE			(0x54600000)
204*91f16700Schasinglulu #define TZRAM_SIZE			(0x00040000)
205*91f16700Schasinglulu 
206*91f16700Schasinglulu /*******************************************************************************
207*91f16700Schasinglulu  * BL31 specific defines.
208*91f16700Schasinglulu  ******************************************************************************/
209*91f16700Schasinglulu /*
210*91f16700Schasinglulu  * Put BL3-1 at the top of the Trusted SRAM (just below the shared memory, if
211*91f16700Schasinglulu  * present). BL31_BASE is calculated using the current BL3-1 debug size plus a
212*91f16700Schasinglulu  * little space for growth.
213*91f16700Schasinglulu  */
214*91f16700Schasinglulu #define BL31_BASE			(TZRAM_BASE + 0x1000)
215*91f16700Schasinglulu #define BL31_LIMIT			(TZRAM_BASE + TZRAM_SIZE)
216*91f16700Schasinglulu 
217*91f16700Schasinglulu /*******************************************************************************
218*91f16700Schasinglulu  * Platform specific page table and MMU setup constants
219*91f16700Schasinglulu  ******************************************************************************/
220*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE	(1ULL << 32)
221*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE	(1ULL << 32)
222*91f16700Schasinglulu #define MAX_XLAT_TABLES			(16)
223*91f16700Schasinglulu #define MAX_MMAP_REGIONS		(16)
224*91f16700Schasinglulu 
225*91f16700Schasinglulu /*******************************************************************************
226*91f16700Schasinglulu  * CPU_EB TCM handling related constants
227*91f16700Schasinglulu  ******************************************************************************/
228*91f16700Schasinglulu #define CPU_EB_TCM_BASE		(0x0C550000)
229*91f16700Schasinglulu #define CPU_EB_TCM_SIZE		(0x10000)
230*91f16700Schasinglulu #define CPU_EB_MBOX3_OFFSET	(0xFCE0)
231*91f16700Schasinglulu 
232*91f16700Schasinglulu /*******************************************************************************
233*91f16700Schasinglulu  * CPU PM definitions
234*91f16700Schasinglulu  *******************************************************************************/
235*91f16700Schasinglulu #define PLAT_CPU_PM_B_BUCK_ISO_ID	(6)
236*91f16700Schasinglulu #define PLAT_CPU_PM_ILDO_ID		(6)
237*91f16700Schasinglulu #define CPU_IDLE_SRAM_BASE		(0x11B000)
238*91f16700Schasinglulu #define CPU_IDLE_SRAM_SIZE		(0x1000)
239*91f16700Schasinglulu 
240*91f16700Schasinglulu #endif /* PLATFORM_DEF_H */
241