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