xref: /rk3399_ARM-atf/plat/brcm/board/stingray/include/sr_def.h (revision 717448d622b13233e15aa43767fc8aa2f007486c)
1*717448d6SSheetal Tigadoli /*
2*717448d6SSheetal Tigadoli  * Copyright (c) 2016-2020, Broadcom
3*717448d6SSheetal Tigadoli  *
4*717448d6SSheetal Tigadoli  * SPDX-License-Identifier: BSD-3-Clause
5*717448d6SSheetal Tigadoli  */
6*717448d6SSheetal Tigadoli 
7*717448d6SSheetal Tigadoli #ifndef SR_DEF_H
8*717448d6SSheetal Tigadoli #define SR_DEF_H
9*717448d6SSheetal Tigadoli 
10*717448d6SSheetal Tigadoli #ifndef __ASSEMBLER__
11*717448d6SSheetal Tigadoli #include <lib/mmio.h>
12*717448d6SSheetal Tigadoli #endif
13*717448d6SSheetal Tigadoli 
14*717448d6SSheetal Tigadoli #include <common/interrupt_props.h>
15*717448d6SSheetal Tigadoli #include <drivers/arm/gic_common.h>
16*717448d6SSheetal Tigadoli 
17*717448d6SSheetal Tigadoli #include <crmu_def.h>
18*717448d6SSheetal Tigadoli 
19*717448d6SSheetal Tigadoli /* Special value used to verify platform parameters from BL2 to BL3-1 */
20*717448d6SSheetal Tigadoli #define BRCM_BL31_PLAT_PARAM_VAL	ULL(0x0f1e2d3c4b5a6978)
21*717448d6SSheetal Tigadoli 
22*717448d6SSheetal Tigadoli #define MHB_BASE_ADDR		0x60000000
23*717448d6SSheetal Tigadoli #define PLAT_BRCM_CCN_BASE	0x61000000
24*717448d6SSheetal Tigadoli #define CORESIGHT_BASE_ADDR	0x62000000
25*717448d6SSheetal Tigadoli #define SMMU_BASE		0x64000000
26*717448d6SSheetal Tigadoli 
27*717448d6SSheetal Tigadoli /* memory map entries*/
28*717448d6SSheetal Tigadoli /* Grouping block device for bigger MMU region */
29*717448d6SSheetal Tigadoli /* covers MHB, CNN, coresight, GIC, MMU, APB, CRMU */
30*717448d6SSheetal Tigadoli #define PERIPH0_BASE	MHB_BASE_ADDR
31*717448d6SSheetal Tigadoli #define PERIPH0_SIZE	0x06d00000
32*717448d6SSheetal Tigadoli 
33*717448d6SSheetal Tigadoli #define PERIPH1_BASE	0x66d80000
34*717448d6SSheetal Tigadoli #define PERIPH1_SIZE	0x00f80000
35*717448d6SSheetal Tigadoli 
36*717448d6SSheetal Tigadoli #define HSLS_BASE_ADDR	0x68900000
37*717448d6SSheetal Tigadoli #define HSLS_SIZE	0x04500000
38*717448d6SSheetal Tigadoli 
39*717448d6SSheetal Tigadoli #define GIC500_BASE	0x63c00000
40*717448d6SSheetal Tigadoli #define GIC500_SIZE	0x400000
41*717448d6SSheetal Tigadoli 
42*717448d6SSheetal Tigadoli /*******************************************************************************
43*717448d6SSheetal Tigadoli  * CCN related constants
44*717448d6SSheetal Tigadoli  ******************************************************************************/
45*717448d6SSheetal Tigadoli #define OLY_MN_REGISTERS_NODE0_SECURE_ACCESS	(PLAT_BRCM_CCN_BASE + 0x0)
46*717448d6SSheetal Tigadoli 
47*717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL	(PLAT_BRCM_CCN_BASE + 0x880500)
48*717448d6SSheetal Tigadoli 
49*717448d6SSheetal Tigadoli /* Used for acceleration of coherent ordered writes */
50*717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WUO  BIT(4)
51*717448d6SSheetal Tigadoli /* Wait for completion of requests at RN-I */
52*717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WFC  BIT(3)
53*717448d6SSheetal Tigadoli 
54*717448d6SSheetal Tigadoli /*
55*717448d6SSheetal Tigadoli  * Forces all reads from the RN-I to be sent with the request order bit set
56*717448d6SSheetal Tigadoli  * and this ensures ordered allocation of read data buffers in the RN-I
57*717448d6SSheetal Tigadoli  */
58*717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_RQO  BIT(5)
59*717448d6SSheetal Tigadoli 
60*717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL	(PLAT_BRCM_CCN_BASE + 0x8e0500)
61*717448d6SSheetal Tigadoli 
62*717448d6SSheetal Tigadoli /* Wait for completion of requests at RN-I */
63*717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL_WFC BIT(3)
64*717448d6SSheetal Tigadoli 
65*717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_POS_CONTROL	  (PLAT_BRCM_CCN_BASE + 0x80000)
66*717448d6SSheetal Tigadoli #define POS_CONTROL_HNI_POS_EN			  BIT(0)
67*717448d6SSheetal Tigadoli 
68*717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_PCIERC_RNI_NODEID_LIST \
69*717448d6SSheetal Tigadoli 						  (PLAT_BRCM_CCN_BASE + 0x80008)
70*717448d6SSheetal Tigadoli /* PAXB and PAXC connected to 8th Node */
71*717448d6SSheetal Tigadoli #define SR_RNI_PCIE_CONNECTED			  BIT(8)
72*717448d6SSheetal Tigadoli /* PAXB connected to 6th Node */
73*717448d6SSheetal Tigadoli #define SRP_RNI_PCIE_CONNECTED			  BIT(6)
74*717448d6SSheetal Tigadoli 
75*717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_SA_AUX_CTL	  (PLAT_BRCM_CCN_BASE + 0x80500)
76*717448d6SSheetal Tigadoli #define SA_AUX_CTL_POS_EARLY_WR_COMP_EN		  BIT(5)
77*717448d6SSheetal Tigadoli #define SA_AUX_CTL_SER_DEVNE_WR			  BIT(9)
78*717448d6SSheetal Tigadoli 
79*717448d6SSheetal Tigadoli /*******************************************************************************
80*717448d6SSheetal Tigadoli  * Coresight related constants
81*717448d6SSheetal Tigadoli  ******************************************************************************/
82*717448d6SSheetal Tigadoli #define CORESIGHT_BASE_ADDR	0x62000000
83*717448d6SSheetal Tigadoli 
84*717448d6SSheetal Tigadoli #define IHOST0_BASE			0x66000000
85*717448d6SSheetal Tigadoli #define IHOST_ADDR_SPACE		0x2000
86*717448d6SSheetal Tigadoli 
87*717448d6SSheetal Tigadoli /*******************************************************************************
88*717448d6SSheetal Tigadoli  * SCR related constants
89*717448d6SSheetal Tigadoli  ******************************************************************************/
90*717448d6SSheetal Tigadoli #define SCR_BASE			0x6600a000
91*717448d6SSheetal Tigadoli #define SCR_ARCACHE_OFFSET		4
92*717448d6SSheetal Tigadoli #define SCR_ARCACHE_MASK		(0x3 << SCR_ARCACHE_OFFSET)
93*717448d6SSheetal Tigadoli #define SCR_AWCACHE_OFFSET		6
94*717448d6SSheetal Tigadoli #define SCR_AWCACHE_MASK		(0x3 << SCR_AWCACHE_OFFSET)
95*717448d6SSheetal Tigadoli #define SCR_AXCACHE_CONFIG_MASK		(SCR_ARCACHE_MASK | SCR_AWCACHE_MASK)
96*717448d6SSheetal Tigadoli #define SCR_TBUX_AXCACHE_CONFIG		((0x1 << SCR_AWCACHE_OFFSET) | \
97*717448d6SSheetal Tigadoli 					 (0x1 << SCR_ARCACHE_OFFSET))
98*717448d6SSheetal Tigadoli 
99*717448d6SSheetal Tigadoli #define SCR_REGS_SCR_SOFT_RESET		(SCR_BASE + 0x1c)
100*717448d6SSheetal Tigadoli #define SCR_REGS_GIC_SOFT_RESET		BIT(0)
101*717448d6SSheetal Tigadoli 
102*717448d6SSheetal Tigadoli #define SCR_GPV_BASE			0x66100000
103*717448d6SSheetal Tigadoli #define SCR_NOC_SECURITY0		(SCR_GPV_BASE + 0x08)
104*717448d6SSheetal Tigadoli #define SCR_NOC_DDR_REGISTER_ACCESS	(SCR_GPV_BASE + 0x30)
105*717448d6SSheetal Tigadoli 
106*717448d6SSheetal Tigadoli /*******************************************************************************
107*717448d6SSheetal Tigadoli  * MEMC and DDR related constants
108*717448d6SSheetal Tigadoli  ******************************************************************************/
109*717448d6SSheetal Tigadoli #define DDR0_CONTROL_ROOT	0x66200000
110*717448d6SSheetal Tigadoli #define EMEM_SS_CFG_0_ROOT	0x66202000
111*717448d6SSheetal Tigadoli #define EMEM_SYS_IF_0_ROOT	0x66204000
112*717448d6SSheetal Tigadoli #define DDR_PHY0_ROOT		0x66240000
113*717448d6SSheetal Tigadoli 
114*717448d6SSheetal Tigadoli #define DDR1_CONTROL_ROOT	0x66280000
115*717448d6SSheetal Tigadoli #define EMEM_SS_CFG_1_ROOT	0x66282000
116*717448d6SSheetal Tigadoli #define EMEM_SYS_IF_1_ROOT	0x66284000
117*717448d6SSheetal Tigadoli #define DDR_PHY1_ROOT		0x662c0000
118*717448d6SSheetal Tigadoli 
119*717448d6SSheetal Tigadoli #define DDR2_CONTROL_ROOT	0x66300000
120*717448d6SSheetal Tigadoli #define EMEM_SS_CFG_2_ROOT	0x66302000
121*717448d6SSheetal Tigadoli #define EMEM_SYS_IF_2_ROOT	0x66304000
122*717448d6SSheetal Tigadoli #define DDR_PHY2_ROOT		0x66340000
123*717448d6SSheetal Tigadoli 
124*717448d6SSheetal Tigadoli /*******************************************************************************
125*717448d6SSheetal Tigadoli  * TZC400 related constants
126*717448d6SSheetal Tigadoli  ******************************************************************************/
127*717448d6SSheetal Tigadoli #define TZC_400_BASE		0x66d84000
128*717448d6SSheetal Tigadoli 
129*717448d6SSheetal Tigadoli /*******************************************************************************
130*717448d6SSheetal Tigadoli  * FS4 related constants
131*717448d6SSheetal Tigadoli  ******************************************************************************/
132*717448d6SSheetal Tigadoli #define FS4_SRAM_IDM_IO_CONTROL_DIRECT	 0x66d8a408
133*717448d6SSheetal Tigadoli 
134*717448d6SSheetal Tigadoli #define FS4_CRYPTO_IDM_IO_CONTROL_DIRECT 0x66d8e408
135*717448d6SSheetal Tigadoli #define FS4_CRYPTO_IDM_RESET_CONTROL	 0x66d8e800
136*717448d6SSheetal Tigadoli #define FS4_CRYPTO_BASE			 0x67000000
137*717448d6SSheetal Tigadoli #define FS4_CRYPTO_DME_BASE		 (FS4_CRYPTO_BASE + 0x280000)
138*717448d6SSheetal Tigadoli 
139*717448d6SSheetal Tigadoli #define FS4_RAID_IDM_IO_CONTROL_DIRECT	 0x66d8f408
140*717448d6SSheetal Tigadoli #define FS4_RAID_IDM_IO_STATUS		 0x66d8f500
141*717448d6SSheetal Tigadoli #define FS4_RAID_IDM_RESET_CONTROL	 0x66d8f800
142*717448d6SSheetal Tigadoli #define FS4_RAID_BASE			 0x67400000
143*717448d6SSheetal Tigadoli #define FS4_RAID_DME_BASE		 (FS4_RAID_BASE + 0x280000)
144*717448d6SSheetal Tigadoli 
145*717448d6SSheetal Tigadoli #define FS4_CRYPTO_GPV_BASE		 0x67300000
146*717448d6SSheetal Tigadoli #define FS4_RAID_GPV_BASE		 0x67700000
147*717448d6SSheetal Tigadoli 
148*717448d6SSheetal Tigadoli #define FS6_PKI_BASE			0x67400000
149*717448d6SSheetal Tigadoli #define FS6_PKI_DME_BASE		0x66D90000
150*717448d6SSheetal Tigadoli 
151*717448d6SSheetal Tigadoli #define TZC400_FS_SRAM_ROOT		 0x66d84000
152*717448d6SSheetal Tigadoli #define GATE_KEEPER_OFFSET		 0x8
153*717448d6SSheetal Tigadoli #define REGION_ATTRIBUTES_0_OFFSET	 0x110
154*717448d6SSheetal Tigadoli #define REGION_ID_ACCESS_0_OFFSET	 0x114
155*717448d6SSheetal Tigadoli 
156*717448d6SSheetal Tigadoli #define NIC400_FS_NOC_ROOT		 0x66e00000
157*717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY2_OFFSET	 0x10
158*717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY4_OFFSET	 0x18
159*717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY7_OFFSET	 0x24
160*717448d6SSheetal Tigadoli 
161*717448d6SSheetal Tigadoli /*******************************************************************************
162*717448d6SSheetal Tigadoli  * SATA PHY related constants
163*717448d6SSheetal Tigadoli  ******************************************************************************/
164*717448d6SSheetal Tigadoli #define SATA_BASE	0x67d00000
165*717448d6SSheetal Tigadoli 
166*717448d6SSheetal Tigadoli /*******************************************************************************
167*717448d6SSheetal Tigadoli  * USB related constants
168*717448d6SSheetal Tigadoli  ******************************************************************************/
169*717448d6SSheetal Tigadoli #define USB_BASE	0x68500000
170*717448d6SSheetal Tigadoli #define USB_SIZE	0x00400000
171*717448d6SSheetal Tigadoli #define XHC_BASE	(USB_BASE + 0x11000)
172*717448d6SSheetal Tigadoli #define MAX_USB_PORTS	3
173*717448d6SSheetal Tigadoli 
174*717448d6SSheetal Tigadoli /*******************************************************************************
175*717448d6SSheetal Tigadoli  * HSLS related constants
176*717448d6SSheetal Tigadoli  ******************************************************************************/
177*717448d6SSheetal Tigadoli #define IPROC_ROOT		0x68900000
178*717448d6SSheetal Tigadoli #define HSLS_ICFG_REGS_BASE	IPROC_ROOT
179*717448d6SSheetal Tigadoli #define HSLS_IDM_REGS_BASE	0x68e00000
180*717448d6SSheetal Tigadoli #define HSLS_MODE_SEL_CONTROL	0x68a40000
181*717448d6SSheetal Tigadoli #define HSLS_TZPC_BASE		0x68b40000
182*717448d6SSheetal Tigadoli #define HSLS_GPV_BASE		0x6cd00000
183*717448d6SSheetal Tigadoli 
184*717448d6SSheetal Tigadoli /*******************************************************************************
185*717448d6SSheetal Tigadoli  * Chip ID related constants
186*717448d6SSheetal Tigadoli  ******************************************************************************/
187*717448d6SSheetal Tigadoli #define ICFG_CHIP_ID		HSLS_ICFG_REGS_BASE
188*717448d6SSheetal Tigadoli #define CHIP_ID_SR		0xd730
189*717448d6SSheetal Tigadoli #define CHIP_ID_NS3Z		0xe56d
190*717448d6SSheetal Tigadoli #define CHIP_ID_MASK		0xf000
191*717448d6SSheetal Tigadoli #define ICFG_CHIP_REVISION_ID	(HSLS_ICFG_REGS_BASE + 0x4)
192*717448d6SSheetal Tigadoli #define PLAT_CHIP_ID_GET	(mmio_read_32(ICFG_CHIP_ID))
193*717448d6SSheetal Tigadoli #define PLAT_CHIP_REV_GET	(mmio_read_32(ICFG_CHIP_REVISION_ID))
194*717448d6SSheetal Tigadoli 
195*717448d6SSheetal Tigadoli /*******************************************************************************
196*717448d6SSheetal Tigadoli  * Timers related constants
197*717448d6SSheetal Tigadoli  ******************************************************************************/
198*717448d6SSheetal Tigadoli /* ChipcommonG_tim0_TIM_TIMER1Load 0x68930000 */
199*717448d6SSheetal Tigadoli #define SP804_TIMER0_BASE	0x68930000
200*717448d6SSheetal Tigadoli #define SP804_TIMER1_BASE	0x68940000
201*717448d6SSheetal Tigadoli #define SP804_TIMER0_TIMER_VAL_REG_OFFSET 0x4
202*717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKMULT	2
203*717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKDIV	25
204*717448d6SSheetal Tigadoli 
205*717448d6SSheetal Tigadoli /*******************************************************************************
206*717448d6SSheetal Tigadoli  * GPIO related constants
207*717448d6SSheetal Tigadoli  ******************************************************************************/
208*717448d6SSheetal Tigadoli #define IPROC_GPIO_NS_BASE	0x689d0000
209*717448d6SSheetal Tigadoli #define IPROC_GPIO_S_BASE	0x68b00000
210*717448d6SSheetal Tigadoli #define IPROC_GPIO_NR		151
211*717448d6SSheetal Tigadoli #define GPIO_S_CNTRL_REG	0x68b60000
212*717448d6SSheetal Tigadoli 
213*717448d6SSheetal Tigadoli /*******************************************************************************
214*717448d6SSheetal Tigadoli  * I2C SMBUS related constants
215*717448d6SSheetal Tigadoli  ******************************************************************************/
216*717448d6SSheetal Tigadoli #define SMBUS0_REGS_BASE	0x689b0000
217*717448d6SSheetal Tigadoli #define SMBUS1_REGS_BASE	0x689e0000
218*717448d6SSheetal Tigadoli 
219*717448d6SSheetal Tigadoli /*******************************************************************************
220*717448d6SSheetal Tigadoli  * UART related constants
221*717448d6SSheetal Tigadoli  ******************************************************************************/
222*717448d6SSheetal Tigadoli #define ChipcommonG_UART0_UART_RBR_THR_DLL	0x68a00000
223*717448d6SSheetal Tigadoli #define ChipcommonG_UART1_UART_RBR_THR_DLL	0x68a10000
224*717448d6SSheetal Tigadoli #define ChipcommonG_UART2_UART_RBR_THR_DLL	0x68a20000
225*717448d6SSheetal Tigadoli #define ChipcommonG_UART3_UART_RBR_THR_DLL	0x68a30000
226*717448d6SSheetal Tigadoli 
227*717448d6SSheetal Tigadoli #define UART0_BASE_ADDR		ChipcommonG_UART0_UART_RBR_THR_DLL
228*717448d6SSheetal Tigadoli #define UART1_BASE_ADDR		ChipcommonG_UART1_UART_RBR_THR_DLL
229*717448d6SSheetal Tigadoli #define UART2_BASE_ADDR		ChipcommonG_UART2_UART_RBR_THR_DLL
230*717448d6SSheetal Tigadoli #define UART3_BASE_ADDR		ChipcommonG_UART3_UART_RBR_THR_DLL
231*717448d6SSheetal Tigadoli 
232*717448d6SSheetal Tigadoli #define UART_SPR_OFFSET		0x1c    /* Scratch Pad Register */
233*717448d6SSheetal Tigadoli 
234*717448d6SSheetal Tigadoli #define LOG_LEVEL_REGISTER	CRMU_SPARE_REG_3
235*717448d6SSheetal Tigadoli #define GET_LOG_LEVEL()		(mmio_read_32(LOG_LEVEL_REGISTER))
236*717448d6SSheetal Tigadoli #define SET_LOG_LEVEL(x)	(mmio_write_32(LOG_LEVEL_REGISTER, x))
237*717448d6SSheetal Tigadoli 
238*717448d6SSheetal Tigadoli #define IO_RETRY_REGISTER	CRMU_SPARE_REG_4
239*717448d6SSheetal Tigadoli 
240*717448d6SSheetal Tigadoli #define DWC_UART_REFCLK		(25 * 1000 * 1000)
241*717448d6SSheetal Tigadoli #define DWC_UART_REFCLK_DIV	16
242*717448d6SSheetal Tigadoli /* Baud rate in emulation will vary based on setting of 25MHz SCLK */
243*717448d6SSheetal Tigadoli #define DWC_UART_BAUDRATE	115200
244*717448d6SSheetal Tigadoli 
245*717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BASE		UART1_BASE_ADDR
246*717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_REFCLK	DWC_UART_REFCLK
247*717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BAUDRATE	DWC_UART_BAUDRATE
248*717448d6SSheetal Tigadoli 
249*717448d6SSheetal Tigadoli #ifdef BOARD_CONSOLE_UART
250*717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE	BOARD_CONSOLE_UART
251*717448d6SSheetal Tigadoli #else
252*717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE	UART1_BASE_ADDR
253*717448d6SSheetal Tigadoli #endif
254*717448d6SSheetal Tigadoli #define CONSOLE_UART_ID	((PLAT_BRCM_BOOT_UART_BASE >> 16) & 0x3)
255*717448d6SSheetal Tigadoli 
256*717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_CLK_IN_HZ	DWC_UART_REFCLK
257*717448d6SSheetal Tigadoli #define BRCM_CONSOLE_BAUDRATE		DWC_UART_BAUDRATE
258*717448d6SSheetal Tigadoli 
259*717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_BASE	 PLAT_BRCM_BOOT_UART_BASE
260*717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_CLK_IN_HZ PLAT_BRCM_BOOT_UART_CLK_IN_HZ
261*717448d6SSheetal Tigadoli 
262*717448d6SSheetal Tigadoli /*******************************************************************************
263*717448d6SSheetal Tigadoli  * IOMUX related constants
264*717448d6SSheetal Tigadoli  ******************************************************************************/
265*717448d6SSheetal Tigadoli #define HSLS_IOPAD_BASE			HSLS_MODE_SEL_CONTROL
266*717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MASK	0x7
267*717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE0	0x0
268*717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE1	0x1
269*717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE2	0x2
270*717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE3	0x3
271*717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_DEBUG	0x4
272*717448d6SSheetal Tigadoli #define IPROC_IOPAD_MODE_BASE		(HSLS_MODE_SEL_CONTROL + 0x29c)
273*717448d6SSheetal Tigadoli #define UART0_SIN_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x4a8)
274*717448d6SSheetal Tigadoli #define UART0_SOUT_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x4ac)
275*717448d6SSheetal Tigadoli #define UART1_SIN_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x3b8)
276*717448d6SSheetal Tigadoli #define UART1_SOUT_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x3bc)
277*717448d6SSheetal Tigadoli #define UARTx_SIN_MODE_SEL_CONTROL_FSEL		0
278*717448d6SSheetal Tigadoli #define UARTx_SOUT_MODE_SEL_CONTROL_FSEL	0
279*717448d6SSheetal Tigadoli 
280*717448d6SSheetal Tigadoli /*******************************************************************************
281*717448d6SSheetal Tigadoli  * PKA constants
282*717448d6SSheetal Tigadoli  ******************************************************************************/
283*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL			(HSLS_ICFG_REGS_BASE + 0xac0)
284*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONIN	BIT(0)
285*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKIN	BIT(1)
286*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONIN	BIT(2)
287*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKIN	BIT(3)
288*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONOUT	BIT(4)
289*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKOUT	BIT(5)
290*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONOUT	BIT(6)
291*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKOUT	BIT(7)
292*717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ISO		BIT(8)
293*717448d6SSheetal Tigadoli 
294*717448d6SSheetal Tigadoli /*******************************************************************************
295*717448d6SSheetal Tigadoli  * Trusted Watchdog constants
296*717448d6SSheetal Tigadoli  ******************************************************************************/
297*717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_BASE		0x68b30000
298*717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_CLK_HZ		((25 * 1000 * 1000) / 2)
299*717448d6SSheetal Tigadoli /*
300*717448d6SSheetal Tigadoli  * The TBBR document specifies a watchdog timeout of 256 seconds. SP805
301*717448d6SSheetal Tigadoli  * asserts reset after two consecutive countdowns (2 x 128 = 256 sec)
302*717448d6SSheetal Tigadoli  */
303*717448d6SSheetal Tigadoli #define ARM_TWDG_TIMEOUT_SEC		128
304*717448d6SSheetal Tigadoli #define ARM_TWDG_LOAD_VAL		(ARM_SP805_TWDG_CLK_HZ * \
305*717448d6SSheetal Tigadoli 					 ARM_TWDG_TIMEOUT_SEC)
306*717448d6SSheetal Tigadoli 
307*717448d6SSheetal Tigadoli /*******************************************************************************
308*717448d6SSheetal Tigadoli  * SOTP related constants
309*717448d6SSheetal Tigadoli  ******************************************************************************/
310*717448d6SSheetal Tigadoli #define SOTP_REGS_OTP_BASE		0x68b50000
311*717448d6SSheetal Tigadoli #define SOTP_CHIP_CTRL			(SOTP_REGS_OTP_BASE + 0x4c)
312*717448d6SSheetal Tigadoli #define SOTP_CLEAR_SYSCTRL_ALL_MASTER_NS  0
313*717448d6SSheetal Tigadoli 
314*717448d6SSheetal Tigadoli /*******************************************************************************
315*717448d6SSheetal Tigadoli  * DMAC/PL330 related constants
316*717448d6SSheetal Tigadoli  ******************************************************************************/
317*717448d6SSheetal Tigadoli #define DMAC_M0_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x408)
318*717448d6SSheetal Tigadoli #define BOOT_MANAGER_NS			BIT(25)
319*717448d6SSheetal Tigadoli #define DMAC_M0_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0x800)
320*717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_0		(HSLS_ICFG_REGS_BASE + 0x190)
321*717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_1		(HSLS_ICFG_REGS_BASE + 0x194)
322*717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_2		(HSLS_ICFG_REGS_BASE + 0x198)
323*717448d6SSheetal Tigadoli #define BOOT_PERIPHERAL_NS		0xffffffff
324*717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_3		(HSLS_ICFG_REGS_BASE + 0x19c)
325*717448d6SSheetal Tigadoli #define BOOT_IRQ_NS			0x0000ffff
326*717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_ARADDR_CONTROL	(HSLS_ICFG_REGS_BASE + 0xaf0)
327*717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_AWADDR_CONTROL	(HSLS_ICFG_REGS_BASE + 0xaf4)
328*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONIN	BIT(0)
329*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKIN	BIT(1)
330*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONIN	BIT(2)
331*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKIN	BIT(3)
332*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONOUT	BIT(4)
333*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKOUT	BIT(5)
334*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONOUT	BIT(6)
335*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKOUT	BIT(7)
336*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ISO		BIT(8)
337*717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL		(HSLS_ICFG_REGS_BASE + 0xadc)
338*717448d6SSheetal Tigadoli 
339*717448d6SSheetal Tigadoli /*******************************************************************************
340*717448d6SSheetal Tigadoli  * PNOR related constants
341*717448d6SSheetal Tigadoli  ******************************************************************************/
342*717448d6SSheetal Tigadoli #define PNOR_ICFG_BASE			(HSLS_ICFG_REGS_BASE + 0x780)
343*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_0			PNOR_ICFG_BASE
344*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_1			(PNOR_ICFG_BASE + 0x4)
345*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_2			(PNOR_ICFG_BASE + 0x8)
346*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_MASK	0xff
347*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_SHIFT	8
348*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_MASK	0xff
349*717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_SHIFT	0
350*717448d6SSheetal Tigadoli 
351*717448d6SSheetal Tigadoli #define PNOR_IDM_BASE			(HSLS_IDM_REGS_BASE + 0xb000)
352*717448d6SSheetal Tigadoli #define PNOR_IDM_IO_CONTROL_DIRECT	(PNOR_IDM_BASE + 0x408)
353*717448d6SSheetal Tigadoli #define PNOR_IDM_IO_RESET_CONTROL	(PNOR_IDM_BASE + 0x800)
354*717448d6SSheetal Tigadoli 
355*717448d6SSheetal Tigadoli #define PNOR_REG_BASE			0x68c50000
356*717448d6SSheetal Tigadoli #define PNOR_REG_DIRECT_CMD		(PNOR_REG_BASE + 0x010)
357*717448d6SSheetal Tigadoli #define PNOR_REG_SET_CYCLES		(PNOR_REG_BASE + 0x014)
358*717448d6SSheetal Tigadoli #define PNOR_REG_SET_OPMODE		(PNOR_REG_BASE + 0x018)
359*717448d6SSheetal Tigadoli #define PNOR_REG_REFRESH_0		(PNOR_REG_BASE + 0x020)
360*717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID0		(PNOR_REG_BASE + 0xfe0)
361*717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID1		(PNOR_REG_BASE + 0xfe4)
362*717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID2		(PNOR_REG_BASE + 0xfe8)
363*717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID3		(PNOR_REG_BASE + 0xfec)
364*717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_IDx_MASK	0xff
365*717448d6SSheetal Tigadoli 
366*717448d6SSheetal Tigadoli /*******************************************************************************
367*717448d6SSheetal Tigadoli  * NAND related constants
368*717448d6SSheetal Tigadoli  ******************************************************************************/
369*717448d6SSheetal Tigadoli #define NAND_FLASH_REVISION		0x68c60000
370*717448d6SSheetal Tigadoli #define NAND_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0xa408)
371*717448d6SSheetal Tigadoli #define NAND_IDM_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0xa800)
372*717448d6SSheetal Tigadoli 
373*717448d6SSheetal Tigadoli /*******************************************************************************
374*717448d6SSheetal Tigadoli  * eMMC related constants
375*717448d6SSheetal Tigadoli  ******************************************************************************/
376*717448d6SSheetal Tigadoli #define PLAT_SD_MAX_READ_LENGTH		0x400
377*717448d6SSheetal Tigadoli 
378*717448d6SSheetal Tigadoli #define SDIO0_EMMCSDXC_SYSADDR		0x68cf1000
379*717448d6SSheetal Tigadoli #define SDIO_IDM0_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x2408)
380*717448d6SSheetal Tigadoli #define SDIO_IDM1_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x3408)
381*717448d6SSheetal Tigadoli #define SDIO_IDM0_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0x2800)
382*717448d6SSheetal Tigadoli #define ICFG_SDIO0_BASE			(HSLS_ICFG_REGS_BASE + 0x6e4)
383*717448d6SSheetal Tigadoli #define ICFG_SDIO1_BASE			(HSLS_ICFG_REGS_BASE + 0x734)
384*717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP0			(ICFG_SDIO0_BASE + 0x10)
385*717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP1			(ICFG_SDIO0_BASE + 0x14)
386*717448d6SSheetal Tigadoli #define ICFG_SDIO0_SID			(HSLS_ICFG_REGS_BASE + 0xb00)
387*717448d6SSheetal Tigadoli #define ICFG_SDIO1_SID			(HSLS_ICFG_REGS_BASE + 0xb08)
388*717448d6SSheetal Tigadoli 
389*717448d6SSheetal Tigadoli /*******************************************************************************
390*717448d6SSheetal Tigadoli  * Bootstrap related constants
391*717448d6SSheetal Tigadoli  ******************************************************************************/
392*717448d6SSheetal Tigadoli #define ROM_S0_IDM_IO_STATUS		(HSLS_IDM_REGS_BASE + 0x9500)
393*717448d6SSheetal Tigadoli 
394*717448d6SSheetal Tigadoli /*******************************************************************************
395*717448d6SSheetal Tigadoli  * ROM related constants
396*717448d6SSheetal Tigadoli  ******************************************************************************/
397*717448d6SSheetal Tigadoli #define ROM_BASE_ADDR		0x6ce00000
398*717448d6SSheetal Tigadoli #define ROM_VERSION_STRING_ADDR	(ROM_BASE_ADDR + 0x28000)
399*717448d6SSheetal Tigadoli #define ROM_BUILD_MESSAGE_ADDR	(ROM_BASE_ADDR + 0x28018)
400*717448d6SSheetal Tigadoli 
401*717448d6SSheetal Tigadoli /*******************************************************************************
402*717448d6SSheetal Tigadoli  * Boot source peripheral related constants
403*717448d6SSheetal Tigadoli  ******************************************************************************/
404*717448d6SSheetal Tigadoli #define QSPI_CTRL_BASE_ADDR	0x68c70000
405*717448d6SSheetal Tigadoli #define QSPI_BASE_ADDR		0x70000000
406*717448d6SSheetal Tigadoli #define QSPI_SIZE		0x08000000
407*717448d6SSheetal Tigadoli #define NOR_BASE_ADDR		0x74000000
408*717448d6SSheetal Tigadoli #define NOR_SIZE		0x04000000
409*717448d6SSheetal Tigadoli #define NAND_BASE_ADDR		0x78000000
410*717448d6SSheetal Tigadoli #define NAND_SIZE		0x08000000
411*717448d6SSheetal Tigadoli 
412*717448d6SSheetal Tigadoli #define QSPI_IDM_RESET_CONTROL		(HSLS_IDM_REGS_BASE + 0xc800)
413*717448d6SSheetal Tigadoli 
414*717448d6SSheetal Tigadoli #define APBR_IDM_RESET_CONTROL		(HSLS_IDM_REGS_BASE + 0xe800)
415*717448d6SSheetal Tigadoli #define APBS_IDM_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0xf800)
416*717448d6SSheetal Tigadoli 
417*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x10408)
418*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
419*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL	2
420*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM0_SCLK_SEL	4
421*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM1_SCLK_SEL	6
422*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM2_SCLK_SEL	8
423*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM3_SCLK_SEL	10
424*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM4_SCLK_SEL	12
425*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM5_SCLK_SEL	13
426*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM6_SCLK_SEL	14
427*717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM7_SCLK_SEL	15
428*717448d6SSheetal Tigadoli 
429*717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x11408)
430*717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
431*717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART0_SCLK_SEL	2
432*717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART1_SCLK_SEL	4
433*717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART2_SCLK_SEL	6
434*717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART3_SCLK_SEL	8
435*717448d6SSheetal Tigadoli 
436*717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x12408)
437*717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
438*717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL	2
439*717448d6SSheetal Tigadoli 
440*717448d6SSheetal Tigadoli /*******************************************************************************
441*717448d6SSheetal Tigadoli  * Stingray memory map related constants
442*717448d6SSheetal Tigadoli  ******************************************************************************/
443*717448d6SSheetal Tigadoli 
444*717448d6SSheetal Tigadoli /* The last 4KB of Trusted SRAM are used as shared memory */
445*717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_SIZE		0x0
446*717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_BASE		(PLAT_BRCM_TRUSTED_SRAM_BASE + \
447*717448d6SSheetal Tigadoli 					 PLAT_BRCM_TRUSTED_SRAM_SIZE - \
448*717448d6SSheetal Tigadoli 					 BRCM_SHARED_RAM_SIZE)
449*717448d6SSheetal Tigadoli 
450*717448d6SSheetal Tigadoli /* Reserve 4 KB to store error logs in BL2 */
451*717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_SIZE		0x00001000
452*717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_BASE		BL1_RW_LIMIT
453*717448d6SSheetal Tigadoli 
454*717448d6SSheetal Tigadoli /* The remaining Trusted SRAM is used to load the BL images */
455*717448d6SSheetal Tigadoli #define BRCM_BL_RAM_BASE		(PLAT_BRCM_TRUSTED_SRAM_BASE)
456*717448d6SSheetal Tigadoli #define BRCM_BL_RAM_SIZE		(PLAT_BRCM_TRUSTED_SRAM_SIZE - \
457*717448d6SSheetal Tigadoli 					 BRCM_SHARED_RAM_SIZE)
458*717448d6SSheetal Tigadoli 
459*717448d6SSheetal Tigadoli /* DDR Address where TMON temperature values are written */
460*717448d6SSheetal Tigadoli #define TMON_SHARED_DDR_ADDRESS		0x8f100000
461*717448d6SSheetal Tigadoli 
462*717448d6SSheetal Tigadoli /* Reserve 4 kB to pass data to BL33 */
463*717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_BASE		0x8f102000
464*717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_SIZE		0x1000
465*717448d6SSheetal Tigadoli 
466*717448d6SSheetal Tigadoli /* Default AP error logging base addr */
467*717448d6SSheetal Tigadoli #ifndef ELOG_AP_UART_LOG_BASE
468*717448d6SSheetal Tigadoli #define ELOG_AP_UART_LOG_BASE		0x8f110000
469*717448d6SSheetal Tigadoli #endif
470*717448d6SSheetal Tigadoli 
471*717448d6SSheetal Tigadoli /* Reserve 16 to store error logs in BL31 */
472*717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_BASE		ELOG_AP_UART_LOG_BASE
473*717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_SIZE		0x4000
474*717448d6SSheetal Tigadoli 
475*717448d6SSheetal Tigadoli /*******************************************************************************
476*717448d6SSheetal Tigadoli  * Non-secure DDR Map
477*717448d6SSheetal Tigadoli  ******************************************************************************/
478*717448d6SSheetal Tigadoli #define BRCM_DRAM1_BASE		ULL(0x80000000)
479*717448d6SSheetal Tigadoli #define BRCM_DRAM1_SIZE		ULL(0x10000000)
480*717448d6SSheetal Tigadoli #define BRCM_DRAM2_BASE		ULL(0x880000000)
481*717448d6SSheetal Tigadoli #define BRCM_DRAM2_SIZE		ULL(0x780000000)
482*717448d6SSheetal Tigadoli #define BRCM_DRAM3_BASE		ULL(0x8800000000)
483*717448d6SSheetal Tigadoli #define BRCM_DRAM3_SIZE		ULL(0x7800000000)
484*717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_BASE	BL33_SHARED_DDR_BASE
485*717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_SIZE	BL33_SHARED_DDR_SIZE
486*717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_BASE	ULL(0x74000000)
487*717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_SIZE	ULL(0x4000000)
488*717448d6SSheetal Tigadoli 
489*717448d6SSheetal Tigadoli /* Priority levels for platforms */
490*717448d6SSheetal Tigadoli #define PLAT_RAS_PRI			0x10
491*717448d6SSheetal Tigadoli #define PLAT_SDEI_CRITICAL_PRI		0x60
492*717448d6SSheetal Tigadoli #define PLAT_SDEI_NORMAL_PRI		0x70
493*717448d6SSheetal Tigadoli 
494*717448d6SSheetal Tigadoli /* Define a list of Group 1 Secure and Group 0 interrupts as per GICv3 */
495*717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_0	14
496*717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_1	15
497*717448d6SSheetal Tigadoli 
498*717448d6SSheetal Tigadoli /* RTC periodic interrupt */
499*717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SPI_0	49
500*717448d6SSheetal Tigadoli 
501*717448d6SSheetal Tigadoli /*
502*717448d6SSheetal Tigadoli  *  Macros for local power states in SR platforms encoded by State-ID field
503*717448d6SSheetal Tigadoli  *  within the power-state parameter.
504*717448d6SSheetal Tigadoli  */
505*717448d6SSheetal Tigadoli 
506*717448d6SSheetal Tigadoli /* Local power state for power domains in Run state. */
507*717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RUN	0
508*717448d6SSheetal Tigadoli 
509*717448d6SSheetal Tigadoli /* Local power state for retention. Valid only for CPU power domains */
510*717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RET	1
511*717448d6SSheetal Tigadoli 
512*717448d6SSheetal Tigadoli /*
513*717448d6SSheetal Tigadoli  * Local power state for OFF/power-down. Valid for CPU and cluster power
514*717448d6SSheetal Tigadoli  * domains.
515*717448d6SSheetal Tigadoli  */
516*717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_OFF	2
517*717448d6SSheetal Tigadoli 
518*717448d6SSheetal Tigadoli /*
519*717448d6SSheetal Tigadoli  * This macro defines the deepest retention state possible. A higher state
520*717448d6SSheetal Tigadoli  * id will represent an invalid or a power down state.
521*717448d6SSheetal Tigadoli  */
522*717448d6SSheetal Tigadoli #define PLAT_MAX_RET_STATE	PLAT_LOCAL_STATE_RET
523*717448d6SSheetal Tigadoli 
524*717448d6SSheetal Tigadoli /*
525*717448d6SSheetal Tigadoli  * This macro defines the deepest power down states possible. Any state ID
526*717448d6SSheetal Tigadoli  * higher than this is invalid.
527*717448d6SSheetal Tigadoli  */
528*717448d6SSheetal Tigadoli #define PLAT_MAX_OFF_STATE	PLAT_LOCAL_STATE_OFF
529*717448d6SSheetal Tigadoli 
530*717448d6SSheetal Tigadoli /* ChiMP-related constants */
531*717448d6SSheetal Tigadoli 
532*717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr		0x60c01808
533*717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr__DECPROT0_chimp_m_clr_R		1
534*717448d6SSheetal Tigadoli 
535*717448d6SSheetal Tigadoli #define NIC400_NITRO_CHIMP_S_IDM_IO_CONTROL_DIRECT		0x60e00408
536*717448d6SSheetal Tigadoli 
537*717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_ADDR_MASK		0x3fffff
538*717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_BASE		0x60800000
539*717448d6SSheetal Tigadoli 
540*717448d6SSheetal Tigadoli #define CHIMP_REG_ECO_RESERVED		0x3042400
541*717448d6SSheetal Tigadoli 
542*717448d6SSheetal Tigadoli #define CHIMP_FLASH_ACCESS_DONE_BIT		2
543*717448d6SSheetal Tigadoli 
544*717448d6SSheetal Tigadoli /* indicate FRU table programming is done successfully */
545*717448d6SSheetal Tigadoli #define CHIMP_FRU_PROG_DONE_BIT			9
546*717448d6SSheetal Tigadoli 
547*717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_MODE_REG		0x0
548*717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_STAT_REG		0x4
549*717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_FSTBOOT_PTR_REG		0x8
550*717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_L		1
551*717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_R		1
552*717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BASE		0x3040000
553*717448d6SSheetal Tigadoli #define CHIMP_FAST_BOOT_MODE_BIT		2
554*717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_APE_SCPAD		0x3300000
555*717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_SCPAD		0x3100000
556*717448d6SSheetal Tigadoli 
557*717448d6SSheetal Tigadoli /* Chimp health status offset in scratch pad ram */
558*717448d6SSheetal Tigadoli #define CHIMP_HEALTH_STATUS_OFFSET	0x8
559*717448d6SSheetal Tigadoli /*
560*717448d6SSheetal Tigadoli  * If not in NIC mode then FASTBOOT can be enabled.
561*717448d6SSheetal Tigadoli  *  "Not in NIC mode" means that FORCE_FASTBOOT is set
562*717448d6SSheetal Tigadoli  *  and a valid (1 or 2) fastboot type is specified.
563*717448d6SSheetal Tigadoli  *
564*717448d6SSheetal Tigadoli  *  Three types of fastboot are supported:
565*717448d6SSheetal Tigadoli  *  0 = No fastboot. Boots Nitro/ChiMP and lets ROM loader
566*717448d6SSheetal Tigadoli  *		initialize ChiMP from NVRAM (QSPI).
567*717448d6SSheetal Tigadoli  *
568*717448d6SSheetal Tigadoli  *  1 = Jump in place (need a flat image)
569*717448d6SSheetal Tigadoli  *		This is intended to speedup Nitro FW boot on Palladium,
570*717448d6SSheetal Tigadoli  *		can be used with a real chip as well.
571*717448d6SSheetal Tigadoli  *  2 = Jump normally with decompression
572*717448d6SSheetal Tigadoli  *		Modus operandi for a real chip. Works also on Palladium
573*717448d6SSheetal Tigadoli  *		Note: image decompressing takes time on Palladium.
574*717448d6SSheetal Tigadoli  *  3 = No fastboot support. No ChiMP bringup
575*717448d6SSheetal Tigadoli  *		(use only for AP debug or for ChiMP's deferred setup).
576*717448d6SSheetal Tigadoli  */
577*717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_DECOMPRESS		2
578*717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_IN_PLACE		1
579*717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_NITRO_RESET		0
580*717448d6SSheetal Tigadoli /*
581*717448d6SSheetal Tigadoli  * Definitions for a non-Nitro access
582*717448d6SSheetal Tigadoli  * to QSPI PAD after the handshake
583*717448d6SSheetal Tigadoli  */
584*717448d6SSheetal Tigadoli #define	QSPI_HOLD_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3e8)
585*717448d6SSheetal Tigadoli #define QSPI_WP_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3ec)
586*717448d6SSheetal Tigadoli #define QSPI_SCK_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f0)
587*717448d6SSheetal Tigadoli #define QSPI_CS_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f4)
588*717448d6SSheetal Tigadoli #define QSPI_MOSI_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f8)
589*717448d6SSheetal Tigadoli #define QSPI_MISO_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3fc)
590*717448d6SSheetal Tigadoli 
591*717448d6SSheetal Tigadoli /*******************************************************************************
592*717448d6SSheetal Tigadoli  * Stream IDs for different blocks of SR
593*717448d6SSheetal Tigadoli  * block_id for different blocks is as follows:
594*717448d6SSheetal Tigadoli  * PCIE		: 0x0
595*717448d6SSheetal Tigadoli  * PAXC		: 0x1
596*717448d6SSheetal Tigadoli  * FS4		: 0x2
597*717448d6SSheetal Tigadoli  * Rest of the masters(includes MHB via RNI): 0x3
598*717448d6SSheetal Tigadoli  ******************************************************************************/
599*717448d6SSheetal Tigadoli #define SR_SID_VAL(block_id, subblock_id, device_num)	((block_id << 13) | \
600*717448d6SSheetal Tigadoli 							(subblock_id << 11) | \
601*717448d6SSheetal Tigadoli 							(device_num))
602*717448d6SSheetal Tigadoli 
603*717448d6SSheetal Tigadoli #define CRMU_STREAM_ID		SR_SID_VAL(0x3, 0x0, 0x7)
604*717448d6SSheetal Tigadoli #define CRMU_SID_SHIFT		5
605*717448d6SSheetal Tigadoli 
606*717448d6SSheetal Tigadoli #define DMAC_STREAM_ID		SR_SID_VAL(0x3, 0x0, 0x0)
607*717448d6SSheetal Tigadoli #define DMAC_SID_SHIFT		5
608*717448d6SSheetal Tigadoli 
609*717448d6SSheetal Tigadoli /* DDR SHMOO Values defines */
610*717448d6SSheetal Tigadoli #define IDRAM_SHMOO_VALUES_ADDR CRMU_IDRAM_BASE_ADDR
611*717448d6SSheetal Tigadoli #define DDR_SHMOO_VALUES_ADDR 0x8f103000
612*717448d6SSheetal Tigadoli #define SHMOO_SIZE_PER_CHANNEL 0x1000
613*717448d6SSheetal Tigadoli 
614*717448d6SSheetal Tigadoli #endif /* SR_DEF_H */
615