xref: /rk3399_ARM-atf/plat/brcm/board/stingray/include/sr_def.h (revision bab737d3976353cb4b492d9be70d0da539a03b33)
1717448d6SSheetal Tigadoli /*
2*441a065aSBharat Gooty  * Copyright (c) 2016-2021, Broadcom
3717448d6SSheetal Tigadoli  *
4717448d6SSheetal Tigadoli  * SPDX-License-Identifier: BSD-3-Clause
5717448d6SSheetal Tigadoli  */
6717448d6SSheetal Tigadoli 
7717448d6SSheetal Tigadoli #ifndef SR_DEF_H
8717448d6SSheetal Tigadoli #define SR_DEF_H
9717448d6SSheetal Tigadoli 
10717448d6SSheetal Tigadoli #ifndef __ASSEMBLER__
11717448d6SSheetal Tigadoli #include <lib/mmio.h>
12717448d6SSheetal Tigadoli #endif
13717448d6SSheetal Tigadoli 
14717448d6SSheetal Tigadoli #include <common/interrupt_props.h>
15717448d6SSheetal Tigadoli #include <drivers/arm/gic_common.h>
16717448d6SSheetal Tigadoli 
17717448d6SSheetal Tigadoli #include <crmu_def.h>
18717448d6SSheetal Tigadoli 
19717448d6SSheetal Tigadoli /* Special value used to verify platform parameters from BL2 to BL3-1 */
20717448d6SSheetal Tigadoli #define BRCM_BL31_PLAT_PARAM_VAL	ULL(0x0f1e2d3c4b5a6978)
21717448d6SSheetal Tigadoli 
22717448d6SSheetal Tigadoli #define MHB_BASE_ADDR		0x60000000
23717448d6SSheetal Tigadoli #define PLAT_BRCM_CCN_BASE	0x61000000
24717448d6SSheetal Tigadoli #define CORESIGHT_BASE_ADDR	0x62000000
25717448d6SSheetal Tigadoli #define SMMU_BASE		0x64000000
26717448d6SSheetal Tigadoli 
27717448d6SSheetal Tigadoli /* memory map entries*/
28717448d6SSheetal Tigadoli /* Grouping block device for bigger MMU region */
29717448d6SSheetal Tigadoli /* covers MHB, CNN, coresight, GIC, MMU, APB, CRMU */
30717448d6SSheetal Tigadoli #define PERIPH0_BASE	MHB_BASE_ADDR
31717448d6SSheetal Tigadoli #define PERIPH0_SIZE	0x06d00000
32717448d6SSheetal Tigadoli 
33717448d6SSheetal Tigadoli #define PERIPH1_BASE	0x66d80000
34717448d6SSheetal Tigadoli #define PERIPH1_SIZE	0x00f80000
35717448d6SSheetal Tigadoli 
36717448d6SSheetal Tigadoli #define HSLS_BASE_ADDR	0x68900000
37717448d6SSheetal Tigadoli #define HSLS_SIZE	0x04500000
38717448d6SSheetal Tigadoli 
39717448d6SSheetal Tigadoli #define GIC500_BASE	0x63c00000
40717448d6SSheetal Tigadoli #define GIC500_SIZE	0x400000
41717448d6SSheetal Tigadoli 
42717448d6SSheetal Tigadoli /*******************************************************************************
43717448d6SSheetal Tigadoli  * CCN related constants
44717448d6SSheetal Tigadoli  ******************************************************************************/
45717448d6SSheetal Tigadoli #define OLY_MN_REGISTERS_NODE0_SECURE_ACCESS	(PLAT_BRCM_CCN_BASE + 0x0)
46717448d6SSheetal Tigadoli 
47717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL	(PLAT_BRCM_CCN_BASE + 0x880500)
48717448d6SSheetal Tigadoli 
49717448d6SSheetal Tigadoli /* Used for acceleration of coherent ordered writes */
50717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WUO  BIT(4)
51717448d6SSheetal Tigadoli /* Wait for completion of requests at RN-I */
52717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_WFC  BIT(3)
53717448d6SSheetal Tigadoli 
54717448d6SSheetal Tigadoli /*
55717448d6SSheetal Tigadoli  * Forces all reads from the RN-I to be sent with the request order bit set
56717448d6SSheetal Tigadoli  * and this ensures ordered allocation of read data buffers in the RN-I
57717448d6SSheetal Tigadoli  */
58717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE8_AUX_CTL_RQO  BIT(5)
59717448d6SSheetal Tigadoli 
60717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL	(PLAT_BRCM_CCN_BASE + 0x8e0500)
61717448d6SSheetal Tigadoli 
62717448d6SSheetal Tigadoli /* Wait for completion of requests at RN-I */
63717448d6SSheetal Tigadoli #define OLY_RNI3PDVM_REGISTERS_NODE14_AUX_CTL_WFC BIT(3)
64717448d6SSheetal Tigadoli 
65717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_POS_CONTROL	  (PLAT_BRCM_CCN_BASE + 0x80000)
66717448d6SSheetal Tigadoli #define POS_CONTROL_HNI_POS_EN			  BIT(0)
67717448d6SSheetal Tigadoli 
68717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_PCIERC_RNI_NODEID_LIST \
69717448d6SSheetal Tigadoli 						  (PLAT_BRCM_CCN_BASE + 0x80008)
70717448d6SSheetal Tigadoli /* PAXB and PAXC connected to 8th Node */
71717448d6SSheetal Tigadoli #define SR_RNI_PCIE_CONNECTED			  BIT(8)
72717448d6SSheetal Tigadoli /* PAXB connected to 6th Node */
73717448d6SSheetal Tigadoli #define SRP_RNI_PCIE_CONNECTED			  BIT(6)
74717448d6SSheetal Tigadoli 
75717448d6SSheetal Tigadoli #define OLY_HNI_REGISTERS_NODE0_SA_AUX_CTL	  (PLAT_BRCM_CCN_BASE + 0x80500)
76717448d6SSheetal Tigadoli #define SA_AUX_CTL_POS_EARLY_WR_COMP_EN		  BIT(5)
77717448d6SSheetal Tigadoli #define SA_AUX_CTL_SER_DEVNE_WR			  BIT(9)
78717448d6SSheetal Tigadoli 
79717448d6SSheetal Tigadoli /*******************************************************************************
80717448d6SSheetal Tigadoli  * Coresight related constants
81717448d6SSheetal Tigadoli  ******************************************************************************/
82717448d6SSheetal Tigadoli #define CORESIGHT_BASE_ADDR	0x62000000
83717448d6SSheetal Tigadoli 
84717448d6SSheetal Tigadoli #define IHOST0_BASE			0x66000000
85717448d6SSheetal Tigadoli #define IHOST_ADDR_SPACE		0x2000
86717448d6SSheetal Tigadoli 
87717448d6SSheetal Tigadoli /*******************************************************************************
88717448d6SSheetal Tigadoli  * SCR related constants
89717448d6SSheetal Tigadoli  ******************************************************************************/
90717448d6SSheetal Tigadoli #define SCR_BASE			0x6600a000
91717448d6SSheetal Tigadoli #define SCR_ARCACHE_OFFSET		4
92717448d6SSheetal Tigadoli #define SCR_ARCACHE_MASK		(0x3 << SCR_ARCACHE_OFFSET)
93717448d6SSheetal Tigadoli #define SCR_AWCACHE_OFFSET		6
94717448d6SSheetal Tigadoli #define SCR_AWCACHE_MASK		(0x3 << SCR_AWCACHE_OFFSET)
95717448d6SSheetal Tigadoli #define SCR_AXCACHE_CONFIG_MASK		(SCR_ARCACHE_MASK | SCR_AWCACHE_MASK)
96717448d6SSheetal Tigadoli #define SCR_TBUX_AXCACHE_CONFIG		((0x1 << SCR_AWCACHE_OFFSET) | \
97717448d6SSheetal Tigadoli 					 (0x1 << SCR_ARCACHE_OFFSET))
98717448d6SSheetal Tigadoli 
99717448d6SSheetal Tigadoli #define SCR_REGS_SCR_SOFT_RESET		(SCR_BASE + 0x1c)
100717448d6SSheetal Tigadoli #define SCR_REGS_GIC_SOFT_RESET		BIT(0)
101717448d6SSheetal Tigadoli 
102717448d6SSheetal Tigadoli #define SCR_GPV_BASE			0x66100000
103717448d6SSheetal Tigadoli #define SCR_NOC_SECURITY0		(SCR_GPV_BASE + 0x08)
104717448d6SSheetal Tigadoli #define SCR_NOC_DDR_REGISTER_ACCESS	(SCR_GPV_BASE + 0x30)
105717448d6SSheetal Tigadoli 
106717448d6SSheetal Tigadoli /*******************************************************************************
107717448d6SSheetal Tigadoli  * MEMC and DDR related constants
108717448d6SSheetal Tigadoli  ******************************************************************************/
109717448d6SSheetal Tigadoli #define DDR0_CONTROL_ROOT	0x66200000
110717448d6SSheetal Tigadoli #define EMEM_SS_CFG_0_ROOT	0x66202000
111717448d6SSheetal Tigadoli #define EMEM_SYS_IF_0_ROOT	0x66204000
112717448d6SSheetal Tigadoli #define DDR_PHY0_ROOT		0x66240000
113717448d6SSheetal Tigadoli 
114717448d6SSheetal Tigadoli #define DDR1_CONTROL_ROOT	0x66280000
115717448d6SSheetal Tigadoli #define EMEM_SS_CFG_1_ROOT	0x66282000
116717448d6SSheetal Tigadoli #define EMEM_SYS_IF_1_ROOT	0x66284000
117717448d6SSheetal Tigadoli #define DDR_PHY1_ROOT		0x662c0000
118717448d6SSheetal Tigadoli 
119717448d6SSheetal Tigadoli #define DDR2_CONTROL_ROOT	0x66300000
120717448d6SSheetal Tigadoli #define EMEM_SS_CFG_2_ROOT	0x66302000
121717448d6SSheetal Tigadoli #define EMEM_SYS_IF_2_ROOT	0x66304000
122717448d6SSheetal Tigadoli #define DDR_PHY2_ROOT		0x66340000
123717448d6SSheetal Tigadoli 
124717448d6SSheetal Tigadoli /*******************************************************************************
125717448d6SSheetal Tigadoli  * TZC400 related constants
126717448d6SSheetal Tigadoli  ******************************************************************************/
127717448d6SSheetal Tigadoli #define TZC_400_BASE		0x66d84000
128717448d6SSheetal Tigadoli 
129717448d6SSheetal Tigadoli /*******************************************************************************
130717448d6SSheetal Tigadoli  * FS4 related constants
131717448d6SSheetal Tigadoli  ******************************************************************************/
132717448d6SSheetal Tigadoli #define FS4_SRAM_IDM_IO_CONTROL_DIRECT	 0x66d8a408
133717448d6SSheetal Tigadoli 
134717448d6SSheetal Tigadoli #define FS4_CRYPTO_IDM_IO_CONTROL_DIRECT 0x66d8e408
135717448d6SSheetal Tigadoli #define FS4_CRYPTO_IDM_RESET_CONTROL	 0x66d8e800
136717448d6SSheetal Tigadoli #define FS4_CRYPTO_BASE			 0x67000000
137717448d6SSheetal Tigadoli #define FS4_CRYPTO_DME_BASE		 (FS4_CRYPTO_BASE + 0x280000)
138717448d6SSheetal Tigadoli 
139717448d6SSheetal Tigadoli #define FS4_RAID_IDM_IO_CONTROL_DIRECT	 0x66d8f408
140717448d6SSheetal Tigadoli #define FS4_RAID_IDM_IO_STATUS		 0x66d8f500
141717448d6SSheetal Tigadoli #define FS4_RAID_IDM_RESET_CONTROL	 0x66d8f800
142717448d6SSheetal Tigadoli #define FS4_RAID_BASE			 0x67400000
143717448d6SSheetal Tigadoli #define FS4_RAID_DME_BASE		 (FS4_RAID_BASE + 0x280000)
144717448d6SSheetal Tigadoli 
145717448d6SSheetal Tigadoli #define FS4_CRYPTO_GPV_BASE		 0x67300000
146717448d6SSheetal Tigadoli #define FS4_RAID_GPV_BASE		 0x67700000
147717448d6SSheetal Tigadoli 
148717448d6SSheetal Tigadoli #define FS6_PKI_BASE			0x67400000
149717448d6SSheetal Tigadoli #define FS6_PKI_DME_BASE		0x66D90000
150717448d6SSheetal Tigadoli 
151717448d6SSheetal Tigadoli #define TZC400_FS_SRAM_ROOT		 0x66d84000
152717448d6SSheetal Tigadoli #define GATE_KEEPER_OFFSET		 0x8
153717448d6SSheetal Tigadoli #define REGION_ATTRIBUTES_0_OFFSET	 0x110
154717448d6SSheetal Tigadoli #define REGION_ID_ACCESS_0_OFFSET	 0x114
155717448d6SSheetal Tigadoli 
156717448d6SSheetal Tigadoli #define NIC400_FS_NOC_ROOT		 0x66e00000
157717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY2_OFFSET	 0x10
158717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY4_OFFSET	 0x18
159717448d6SSheetal Tigadoli #define NIC400_FS_NOC_SECURITY7_OFFSET	 0x24
160717448d6SSheetal Tigadoli 
161717448d6SSheetal Tigadoli /*******************************************************************************
162717448d6SSheetal Tigadoli  * SATA PHY related constants
163717448d6SSheetal Tigadoli  ******************************************************************************/
164717448d6SSheetal Tigadoli #define SATA_BASE	0x67d00000
165717448d6SSheetal Tigadoli 
166717448d6SSheetal Tigadoli /*******************************************************************************
167717448d6SSheetal Tigadoli  * USB related constants
168717448d6SSheetal Tigadoli  ******************************************************************************/
169717448d6SSheetal Tigadoli #define USB_BASE	0x68500000
170717448d6SSheetal Tigadoli #define USB_SIZE	0x00400000
171717448d6SSheetal Tigadoli #define XHC_BASE	(USB_BASE + 0x11000)
172717448d6SSheetal Tigadoli #define MAX_USB_PORTS	3
173717448d6SSheetal Tigadoli 
174717448d6SSheetal Tigadoli /*******************************************************************************
175717448d6SSheetal Tigadoli  * HSLS related constants
176717448d6SSheetal Tigadoli  ******************************************************************************/
177717448d6SSheetal Tigadoli #define IPROC_ROOT		0x68900000
178717448d6SSheetal Tigadoli #define HSLS_ICFG_REGS_BASE	IPROC_ROOT
179717448d6SSheetal Tigadoli #define HSLS_IDM_REGS_BASE	0x68e00000
180717448d6SSheetal Tigadoli #define HSLS_MODE_SEL_CONTROL	0x68a40000
181717448d6SSheetal Tigadoli #define HSLS_TZPC_BASE		0x68b40000
182717448d6SSheetal Tigadoli #define HSLS_GPV_BASE		0x6cd00000
183717448d6SSheetal Tigadoli 
184717448d6SSheetal Tigadoli /*******************************************************************************
185717448d6SSheetal Tigadoli  * Chip ID related constants
186717448d6SSheetal Tigadoli  ******************************************************************************/
187717448d6SSheetal Tigadoli #define ICFG_CHIP_ID		HSLS_ICFG_REGS_BASE
188717448d6SSheetal Tigadoli #define CHIP_ID_SR		0xd730
189717448d6SSheetal Tigadoli #define CHIP_ID_NS3Z		0xe56d
190717448d6SSheetal Tigadoli #define CHIP_ID_MASK		0xf000
191717448d6SSheetal Tigadoli #define ICFG_CHIP_REVISION_ID	(HSLS_ICFG_REGS_BASE + 0x4)
192717448d6SSheetal Tigadoli #define PLAT_CHIP_ID_GET	(mmio_read_32(ICFG_CHIP_ID))
193717448d6SSheetal Tigadoli #define PLAT_CHIP_REV_GET	(mmio_read_32(ICFG_CHIP_REVISION_ID))
194717448d6SSheetal Tigadoli 
195717448d6SSheetal Tigadoli /*******************************************************************************
196*441a065aSBharat Gooty  * CMIC MII (MDIO) related constant
197*441a065aSBharat Gooty  ******************************************************************************/
198*441a065aSBharat Gooty #define PLAT_CMIC_MIIM_BASE	0x68920000U
199*441a065aSBharat Gooty 
200*441a065aSBharat Gooty /*******************************************************************************
201717448d6SSheetal Tigadoli  * Timers related constants
202717448d6SSheetal Tigadoli  ******************************************************************************/
203717448d6SSheetal Tigadoli /* ChipcommonG_tim0_TIM_TIMER1Load 0x68930000 */
204717448d6SSheetal Tigadoli #define SP804_TIMER0_BASE	0x68930000
205717448d6SSheetal Tigadoli #define SP804_TIMER1_BASE	0x68940000
206717448d6SSheetal Tigadoli #define SP804_TIMER0_TIMER_VAL_REG_OFFSET 0x4
207717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKMULT	2
208717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKDIV	25
209717448d6SSheetal Tigadoli 
210717448d6SSheetal Tigadoli /*******************************************************************************
211717448d6SSheetal Tigadoli  * GPIO related constants
212717448d6SSheetal Tigadoli  ******************************************************************************/
213717448d6SSheetal Tigadoli #define IPROC_GPIO_NS_BASE	0x689d0000
214717448d6SSheetal Tigadoli #define IPROC_GPIO_S_BASE	0x68b00000
215717448d6SSheetal Tigadoli #define IPROC_GPIO_NR		151
216717448d6SSheetal Tigadoli #define GPIO_S_CNTRL_REG	0x68b60000
217717448d6SSheetal Tigadoli 
218717448d6SSheetal Tigadoli /*******************************************************************************
219717448d6SSheetal Tigadoli  * I2C SMBUS related constants
220717448d6SSheetal Tigadoli  ******************************************************************************/
221717448d6SSheetal Tigadoli #define SMBUS0_REGS_BASE	0x689b0000
222717448d6SSheetal Tigadoli #define SMBUS1_REGS_BASE	0x689e0000
223717448d6SSheetal Tigadoli 
224717448d6SSheetal Tigadoli /*******************************************************************************
225717448d6SSheetal Tigadoli  * UART related constants
226717448d6SSheetal Tigadoli  ******************************************************************************/
227717448d6SSheetal Tigadoli #define ChipcommonG_UART0_UART_RBR_THR_DLL	0x68a00000
228717448d6SSheetal Tigadoli #define ChipcommonG_UART1_UART_RBR_THR_DLL	0x68a10000
229717448d6SSheetal Tigadoli #define ChipcommonG_UART2_UART_RBR_THR_DLL	0x68a20000
230717448d6SSheetal Tigadoli #define ChipcommonG_UART3_UART_RBR_THR_DLL	0x68a30000
231717448d6SSheetal Tigadoli 
232717448d6SSheetal Tigadoli #define UART0_BASE_ADDR		ChipcommonG_UART0_UART_RBR_THR_DLL
233717448d6SSheetal Tigadoli #define UART1_BASE_ADDR		ChipcommonG_UART1_UART_RBR_THR_DLL
234717448d6SSheetal Tigadoli #define UART2_BASE_ADDR		ChipcommonG_UART2_UART_RBR_THR_DLL
235717448d6SSheetal Tigadoli #define UART3_BASE_ADDR		ChipcommonG_UART3_UART_RBR_THR_DLL
236717448d6SSheetal Tigadoli 
237717448d6SSheetal Tigadoli #define UART_SPR_OFFSET		0x1c    /* Scratch Pad Register */
238717448d6SSheetal Tigadoli 
239717448d6SSheetal Tigadoli #define LOG_LEVEL_REGISTER	CRMU_SPARE_REG_3
240717448d6SSheetal Tigadoli #define GET_LOG_LEVEL()		(mmio_read_32(LOG_LEVEL_REGISTER))
241717448d6SSheetal Tigadoli #define SET_LOG_LEVEL(x)	(mmio_write_32(LOG_LEVEL_REGISTER, x))
242717448d6SSheetal Tigadoli 
243717448d6SSheetal Tigadoli #define IO_RETRY_REGISTER	CRMU_SPARE_REG_4
244717448d6SSheetal Tigadoli 
245717448d6SSheetal Tigadoli #define DWC_UART_REFCLK		(25 * 1000 * 1000)
246717448d6SSheetal Tigadoli #define DWC_UART_REFCLK_DIV	16
247717448d6SSheetal Tigadoli /* Baud rate in emulation will vary based on setting of 25MHz SCLK */
248717448d6SSheetal Tigadoli #define DWC_UART_BAUDRATE	115200
249717448d6SSheetal Tigadoli 
250717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BASE		UART1_BASE_ADDR
251717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_REFCLK	DWC_UART_REFCLK
252717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BAUDRATE	DWC_UART_BAUDRATE
253717448d6SSheetal Tigadoli 
254717448d6SSheetal Tigadoli #ifdef BOARD_CONSOLE_UART
255717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE	BOARD_CONSOLE_UART
256717448d6SSheetal Tigadoli #else
257717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE	UART1_BASE_ADDR
258717448d6SSheetal Tigadoli #endif
259717448d6SSheetal Tigadoli #define CONSOLE_UART_ID	((PLAT_BRCM_BOOT_UART_BASE >> 16) & 0x3)
260717448d6SSheetal Tigadoli 
261717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_CLK_IN_HZ	DWC_UART_REFCLK
262717448d6SSheetal Tigadoli #define BRCM_CONSOLE_BAUDRATE		DWC_UART_BAUDRATE
263717448d6SSheetal Tigadoli 
264717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_BASE	 PLAT_BRCM_BOOT_UART_BASE
265717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_CLK_IN_HZ PLAT_BRCM_BOOT_UART_CLK_IN_HZ
266717448d6SSheetal Tigadoli 
267717448d6SSheetal Tigadoli /*******************************************************************************
268717448d6SSheetal Tigadoli  * IOMUX related constants
269717448d6SSheetal Tigadoli  ******************************************************************************/
270717448d6SSheetal Tigadoli #define HSLS_IOPAD_BASE			HSLS_MODE_SEL_CONTROL
271717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MASK	0x7
272717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE0	0x0
273717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE1	0x1
274717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE2	0x2
275717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE3	0x3
276717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_DEBUG	0x4
277717448d6SSheetal Tigadoli #define IPROC_IOPAD_MODE_BASE		(HSLS_MODE_SEL_CONTROL + 0x29c)
278717448d6SSheetal Tigadoli #define UART0_SIN_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x4a8)
279717448d6SSheetal Tigadoli #define UART0_SOUT_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x4ac)
280717448d6SSheetal Tigadoli #define UART1_SIN_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x3b8)
281717448d6SSheetal Tigadoli #define UART1_SOUT_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x3bc)
282717448d6SSheetal Tigadoli #define UARTx_SIN_MODE_SEL_CONTROL_FSEL		0
283717448d6SSheetal Tigadoli #define UARTx_SOUT_MODE_SEL_CONTROL_FSEL	0
284717448d6SSheetal Tigadoli 
285717448d6SSheetal Tigadoli /*******************************************************************************
286717448d6SSheetal Tigadoli  * PKA constants
287717448d6SSheetal Tigadoli  ******************************************************************************/
288717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL			(HSLS_ICFG_REGS_BASE + 0xac0)
289717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONIN	BIT(0)
290717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKIN	BIT(1)
291717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONIN	BIT(2)
292717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKIN	BIT(3)
293717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONOUT	BIT(4)
294717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKOUT	BIT(5)
295717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONOUT	BIT(6)
296717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKOUT	BIT(7)
297717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ISO		BIT(8)
298717448d6SSheetal Tigadoli 
299717448d6SSheetal Tigadoli /*******************************************************************************
300cefde213SRoman Bacik  * RNG constants
301cefde213SRoman Bacik  ******************************************************************************/
302cefde213SRoman Bacik #define RNG_BASE_ADDR			0x68b20000
303cefde213SRoman Bacik 
304cefde213SRoman Bacik /*******************************************************************************
305717448d6SSheetal Tigadoli  * Trusted Watchdog constants
306717448d6SSheetal Tigadoli  ******************************************************************************/
307717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_BASE		0x68b30000
308717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_CLK_HZ		((25 * 1000 * 1000) / 2)
309717448d6SSheetal Tigadoli /*
310717448d6SSheetal Tigadoli  * The TBBR document specifies a watchdog timeout of 256 seconds. SP805
311717448d6SSheetal Tigadoli  * asserts reset after two consecutive countdowns (2 x 128 = 256 sec)
312717448d6SSheetal Tigadoli  */
313717448d6SSheetal Tigadoli #define ARM_TWDG_TIMEOUT_SEC		128
314717448d6SSheetal Tigadoli #define ARM_TWDG_LOAD_VAL		(ARM_SP805_TWDG_CLK_HZ * \
315717448d6SSheetal Tigadoli 					 ARM_TWDG_TIMEOUT_SEC)
316717448d6SSheetal Tigadoli 
317717448d6SSheetal Tigadoli /*******************************************************************************
318717448d6SSheetal Tigadoli  * SOTP related constants
319717448d6SSheetal Tigadoli  ******************************************************************************/
320717448d6SSheetal Tigadoli #define SOTP_REGS_OTP_BASE		0x68b50000
321717448d6SSheetal Tigadoli #define SOTP_CHIP_CTRL			(SOTP_REGS_OTP_BASE + 0x4c)
322717448d6SSheetal Tigadoli #define SOTP_CLEAR_SYSCTRL_ALL_MASTER_NS  0
323717448d6SSheetal Tigadoli 
324717448d6SSheetal Tigadoli /*******************************************************************************
325717448d6SSheetal Tigadoli  * DMAC/PL330 related constants
326717448d6SSheetal Tigadoli  ******************************************************************************/
327717448d6SSheetal Tigadoli #define DMAC_M0_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x408)
328717448d6SSheetal Tigadoli #define BOOT_MANAGER_NS			BIT(25)
329717448d6SSheetal Tigadoli #define DMAC_M0_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0x800)
330717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_0		(HSLS_ICFG_REGS_BASE + 0x190)
331717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_1		(HSLS_ICFG_REGS_BASE + 0x194)
332717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_2		(HSLS_ICFG_REGS_BASE + 0x198)
333717448d6SSheetal Tigadoli #define BOOT_PERIPHERAL_NS		0xffffffff
334717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_3		(HSLS_ICFG_REGS_BASE + 0x19c)
335717448d6SSheetal Tigadoli #define BOOT_IRQ_NS			0x0000ffff
336717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_ARADDR_CONTROL	(HSLS_ICFG_REGS_BASE + 0xaf0)
337717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_AWADDR_CONTROL	(HSLS_ICFG_REGS_BASE + 0xaf4)
338717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONIN	BIT(0)
339717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKIN	BIT(1)
340717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONIN	BIT(2)
341717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKIN	BIT(3)
342717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONOUT	BIT(4)
343717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKOUT	BIT(5)
344717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONOUT	BIT(6)
345717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKOUT	BIT(7)
346717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ISO		BIT(8)
347717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL		(HSLS_ICFG_REGS_BASE + 0xadc)
348717448d6SSheetal Tigadoli 
349717448d6SSheetal Tigadoli /*******************************************************************************
350717448d6SSheetal Tigadoli  * PNOR related constants
351717448d6SSheetal Tigadoli  ******************************************************************************/
352717448d6SSheetal Tigadoli #define PNOR_ICFG_BASE			(HSLS_ICFG_REGS_BASE + 0x780)
353717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_0			PNOR_ICFG_BASE
354717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_1			(PNOR_ICFG_BASE + 0x4)
355717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_2			(PNOR_ICFG_BASE + 0x8)
356717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_MASK	0xff
357717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_SHIFT	8
358717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_MASK	0xff
359717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_SHIFT	0
360717448d6SSheetal Tigadoli 
361717448d6SSheetal Tigadoli #define PNOR_IDM_BASE			(HSLS_IDM_REGS_BASE + 0xb000)
362717448d6SSheetal Tigadoli #define PNOR_IDM_IO_CONTROL_DIRECT	(PNOR_IDM_BASE + 0x408)
363717448d6SSheetal Tigadoli #define PNOR_IDM_IO_RESET_CONTROL	(PNOR_IDM_BASE + 0x800)
364717448d6SSheetal Tigadoli 
365717448d6SSheetal Tigadoli #define PNOR_REG_BASE			0x68c50000
366717448d6SSheetal Tigadoli #define PNOR_REG_DIRECT_CMD		(PNOR_REG_BASE + 0x010)
367717448d6SSheetal Tigadoli #define PNOR_REG_SET_CYCLES		(PNOR_REG_BASE + 0x014)
368717448d6SSheetal Tigadoli #define PNOR_REG_SET_OPMODE		(PNOR_REG_BASE + 0x018)
369717448d6SSheetal Tigadoli #define PNOR_REG_REFRESH_0		(PNOR_REG_BASE + 0x020)
370717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID0		(PNOR_REG_BASE + 0xfe0)
371717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID1		(PNOR_REG_BASE + 0xfe4)
372717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID2		(PNOR_REG_BASE + 0xfe8)
373717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID3		(PNOR_REG_BASE + 0xfec)
374717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_IDx_MASK	0xff
375717448d6SSheetal Tigadoli 
376717448d6SSheetal Tigadoli /*******************************************************************************
377717448d6SSheetal Tigadoli  * NAND related constants
378717448d6SSheetal Tigadoli  ******************************************************************************/
379717448d6SSheetal Tigadoli #define NAND_FLASH_REVISION		0x68c60000
380717448d6SSheetal Tigadoli #define NAND_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0xa408)
381717448d6SSheetal Tigadoli #define NAND_IDM_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0xa800)
382717448d6SSheetal Tigadoli 
383717448d6SSheetal Tigadoli /*******************************************************************************
384717448d6SSheetal Tigadoli  * eMMC related constants
385717448d6SSheetal Tigadoli  ******************************************************************************/
386717448d6SSheetal Tigadoli #define PLAT_SD_MAX_READ_LENGTH		0x400
387717448d6SSheetal Tigadoli 
388717448d6SSheetal Tigadoli #define SDIO0_EMMCSDXC_SYSADDR		0x68cf1000
389717448d6SSheetal Tigadoli #define SDIO_IDM0_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x2408)
390717448d6SSheetal Tigadoli #define SDIO_IDM1_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x3408)
391717448d6SSheetal Tigadoli #define SDIO_IDM0_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0x2800)
392717448d6SSheetal Tigadoli #define ICFG_SDIO0_BASE			(HSLS_ICFG_REGS_BASE + 0x6e4)
393717448d6SSheetal Tigadoli #define ICFG_SDIO1_BASE			(HSLS_ICFG_REGS_BASE + 0x734)
394717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP0			(ICFG_SDIO0_BASE + 0x10)
395717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP1			(ICFG_SDIO0_BASE + 0x14)
396717448d6SSheetal Tigadoli #define ICFG_SDIO0_SID			(HSLS_ICFG_REGS_BASE + 0xb00)
397717448d6SSheetal Tigadoli #define ICFG_SDIO1_SID			(HSLS_ICFG_REGS_BASE + 0xb08)
398717448d6SSheetal Tigadoli 
399717448d6SSheetal Tigadoli /*******************************************************************************
400717448d6SSheetal Tigadoli  * Bootstrap related constants
401717448d6SSheetal Tigadoli  ******************************************************************************/
402717448d6SSheetal Tigadoli #define ROM_S0_IDM_IO_STATUS		(HSLS_IDM_REGS_BASE + 0x9500)
403717448d6SSheetal Tigadoli 
404717448d6SSheetal Tigadoli /*******************************************************************************
405717448d6SSheetal Tigadoli  * ROM related constants
406717448d6SSheetal Tigadoli  ******************************************************************************/
407717448d6SSheetal Tigadoli #define ROM_BASE_ADDR		0x6ce00000
408717448d6SSheetal Tigadoli #define ROM_VERSION_STRING_ADDR	(ROM_BASE_ADDR + 0x28000)
409717448d6SSheetal Tigadoli #define ROM_BUILD_MESSAGE_ADDR	(ROM_BASE_ADDR + 0x28018)
410717448d6SSheetal Tigadoli 
411717448d6SSheetal Tigadoli /*******************************************************************************
412717448d6SSheetal Tigadoli  * Boot source peripheral related constants
413717448d6SSheetal Tigadoli  ******************************************************************************/
414717448d6SSheetal Tigadoli #define QSPI_CTRL_BASE_ADDR	0x68c70000
415717448d6SSheetal Tigadoli #define QSPI_BASE_ADDR		0x70000000
416717448d6SSheetal Tigadoli #define QSPI_SIZE		0x08000000
417717448d6SSheetal Tigadoli #define NOR_BASE_ADDR		0x74000000
418717448d6SSheetal Tigadoli #define NOR_SIZE		0x04000000
419717448d6SSheetal Tigadoli #define NAND_BASE_ADDR		0x78000000
420717448d6SSheetal Tigadoli #define NAND_SIZE		0x08000000
421717448d6SSheetal Tigadoli 
422717448d6SSheetal Tigadoli #define QSPI_IDM_RESET_CONTROL		(HSLS_IDM_REGS_BASE + 0xc800)
423717448d6SSheetal Tigadoli 
424717448d6SSheetal Tigadoli #define APBR_IDM_RESET_CONTROL		(HSLS_IDM_REGS_BASE + 0xe800)
425717448d6SSheetal Tigadoli #define APBS_IDM_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0xf800)
426717448d6SSheetal Tigadoli 
427717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x10408)
428717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
429717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL	2
430717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM0_SCLK_SEL	4
431717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM1_SCLK_SEL	6
432717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM2_SCLK_SEL	8
433717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM3_SCLK_SEL	10
434717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM4_SCLK_SEL	12
435717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM5_SCLK_SEL	13
436717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM6_SCLK_SEL	14
437717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM7_SCLK_SEL	15
438717448d6SSheetal Tigadoli 
439717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x11408)
440717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
441717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART0_SCLK_SEL	2
442717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART1_SCLK_SEL	4
443717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART2_SCLK_SEL	6
444717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART3_SCLK_SEL	8
445717448d6SSheetal Tigadoli 
446717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x12408)
447717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
448717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL	2
449717448d6SSheetal Tigadoli 
450717448d6SSheetal Tigadoli /*******************************************************************************
451717448d6SSheetal Tigadoli  * Stingray memory map related constants
452717448d6SSheetal Tigadoli  ******************************************************************************/
453717448d6SSheetal Tigadoli 
454717448d6SSheetal Tigadoli /* The last 4KB of Trusted SRAM are used as shared memory */
455717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_SIZE		0x0
456717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_BASE		(PLAT_BRCM_TRUSTED_SRAM_BASE + \
457717448d6SSheetal Tigadoli 					 PLAT_BRCM_TRUSTED_SRAM_SIZE - \
458717448d6SSheetal Tigadoli 					 BRCM_SHARED_RAM_SIZE)
459717448d6SSheetal Tigadoli 
460717448d6SSheetal Tigadoli /* Reserve 4 KB to store error logs in BL2 */
461717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_SIZE		0x00001000
462717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_BASE		BL1_RW_LIMIT
463717448d6SSheetal Tigadoli 
464717448d6SSheetal Tigadoli /* The remaining Trusted SRAM is used to load the BL images */
465717448d6SSheetal Tigadoli #define BRCM_BL_RAM_BASE		(PLAT_BRCM_TRUSTED_SRAM_BASE)
466717448d6SSheetal Tigadoli #define BRCM_BL_RAM_SIZE		(PLAT_BRCM_TRUSTED_SRAM_SIZE - \
467717448d6SSheetal Tigadoli 					 BRCM_SHARED_RAM_SIZE)
468717448d6SSheetal Tigadoli 
469717448d6SSheetal Tigadoli /* DDR Address where TMON temperature values are written */
470717448d6SSheetal Tigadoli #define TMON_SHARED_DDR_ADDRESS		0x8f100000
471717448d6SSheetal Tigadoli 
472717448d6SSheetal Tigadoli /* Reserve 4 kB to pass data to BL33 */
473717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_BASE		0x8f102000
474717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_SIZE		0x1000
475717448d6SSheetal Tigadoli 
476717448d6SSheetal Tigadoli /* Default AP error logging base addr */
477717448d6SSheetal Tigadoli #ifndef ELOG_AP_UART_LOG_BASE
478717448d6SSheetal Tigadoli #define ELOG_AP_UART_LOG_BASE		0x8f110000
479717448d6SSheetal Tigadoli #endif
480717448d6SSheetal Tigadoli 
481717448d6SSheetal Tigadoli /* Reserve 16 to store error logs in BL31 */
482717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_BASE		ELOG_AP_UART_LOG_BASE
483717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_SIZE		0x4000
484717448d6SSheetal Tigadoli 
485717448d6SSheetal Tigadoli /*******************************************************************************
486717448d6SSheetal Tigadoli  * Non-secure DDR Map
487717448d6SSheetal Tigadoli  ******************************************************************************/
488717448d6SSheetal Tigadoli #define BRCM_DRAM1_BASE		ULL(0x80000000)
489717448d6SSheetal Tigadoli #define BRCM_DRAM1_SIZE		ULL(0x10000000)
490717448d6SSheetal Tigadoli #define BRCM_DRAM2_BASE		ULL(0x880000000)
491717448d6SSheetal Tigadoli #define BRCM_DRAM2_SIZE		ULL(0x780000000)
492717448d6SSheetal Tigadoli #define BRCM_DRAM3_BASE		ULL(0x8800000000)
493717448d6SSheetal Tigadoli #define BRCM_DRAM3_SIZE		ULL(0x7800000000)
494717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_BASE	BL33_SHARED_DDR_BASE
495717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_SIZE	BL33_SHARED_DDR_SIZE
496717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_BASE	ULL(0x74000000)
497717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_SIZE	ULL(0x4000000)
498717448d6SSheetal Tigadoli 
499717448d6SSheetal Tigadoli /* Priority levels for platforms */
500717448d6SSheetal Tigadoli #define PLAT_RAS_PRI			0x10
501717448d6SSheetal Tigadoli #define PLAT_SDEI_CRITICAL_PRI		0x60
502717448d6SSheetal Tigadoli #define PLAT_SDEI_NORMAL_PRI		0x70
503717448d6SSheetal Tigadoli 
504717448d6SSheetal Tigadoli /* Define a list of Group 1 Secure and Group 0 interrupts as per GICv3 */
505717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_0	14
506717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_1	15
507717448d6SSheetal Tigadoli 
508717448d6SSheetal Tigadoli /* RTC periodic interrupt */
509717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SPI_0	49
510717448d6SSheetal Tigadoli 
511717448d6SSheetal Tigadoli /*
512717448d6SSheetal Tigadoli  *  Macros for local power states in SR platforms encoded by State-ID field
513717448d6SSheetal Tigadoli  *  within the power-state parameter.
514717448d6SSheetal Tigadoli  */
515717448d6SSheetal Tigadoli 
516717448d6SSheetal Tigadoli /* Local power state for power domains in Run state. */
517717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RUN	0
518717448d6SSheetal Tigadoli 
519717448d6SSheetal Tigadoli /* Local power state for retention. Valid only for CPU power domains */
520717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RET	1
521717448d6SSheetal Tigadoli 
522717448d6SSheetal Tigadoli /*
523717448d6SSheetal Tigadoli  * Local power state for OFF/power-down. Valid for CPU and cluster power
524717448d6SSheetal Tigadoli  * domains.
525717448d6SSheetal Tigadoli  */
526717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_OFF	2
527717448d6SSheetal Tigadoli 
528717448d6SSheetal Tigadoli /*
529717448d6SSheetal Tigadoli  * This macro defines the deepest retention state possible. A higher state
530717448d6SSheetal Tigadoli  * id will represent an invalid or a power down state.
531717448d6SSheetal Tigadoli  */
532717448d6SSheetal Tigadoli #define PLAT_MAX_RET_STATE	PLAT_LOCAL_STATE_RET
533717448d6SSheetal Tigadoli 
534717448d6SSheetal Tigadoli /*
535717448d6SSheetal Tigadoli  * This macro defines the deepest power down states possible. Any state ID
536717448d6SSheetal Tigadoli  * higher than this is invalid.
537717448d6SSheetal Tigadoli  */
538717448d6SSheetal Tigadoli #define PLAT_MAX_OFF_STATE	PLAT_LOCAL_STATE_OFF
539717448d6SSheetal Tigadoli 
540717448d6SSheetal Tigadoli /* ChiMP-related constants */
541717448d6SSheetal Tigadoli 
542717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr		0x60c01808
543717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr__DECPROT0_chimp_m_clr_R		1
544717448d6SSheetal Tigadoli 
545717448d6SSheetal Tigadoli #define NIC400_NITRO_CHIMP_S_IDM_IO_CONTROL_DIRECT		0x60e00408
546717448d6SSheetal Tigadoli 
547717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_ADDR_MASK		0x3fffff
548717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_BASE		0x60800000
549717448d6SSheetal Tigadoli 
550717448d6SSheetal Tigadoli #define CHIMP_REG_ECO_RESERVED		0x3042400
551717448d6SSheetal Tigadoli 
552717448d6SSheetal Tigadoli #define CHIMP_FLASH_ACCESS_DONE_BIT		2
553717448d6SSheetal Tigadoli 
554717448d6SSheetal Tigadoli /* indicate FRU table programming is done successfully */
555717448d6SSheetal Tigadoli #define CHIMP_FRU_PROG_DONE_BIT			9
556717448d6SSheetal Tigadoli 
557717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_MODE_REG		0x0
558717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_STAT_REG		0x4
559717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_FSTBOOT_PTR_REG		0x8
560717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_L		1
561717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_R		1
562717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BASE		0x3040000
563717448d6SSheetal Tigadoli #define CHIMP_FAST_BOOT_MODE_BIT		2
564717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_APE_SCPAD		0x3300000
565717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_SCPAD		0x3100000
566717448d6SSheetal Tigadoli 
567717448d6SSheetal Tigadoli /* Chimp health status offset in scratch pad ram */
568717448d6SSheetal Tigadoli #define CHIMP_HEALTH_STATUS_OFFSET	0x8
569717448d6SSheetal Tigadoli /*
570717448d6SSheetal Tigadoli  * If not in NIC mode then FASTBOOT can be enabled.
571717448d6SSheetal Tigadoli  *  "Not in NIC mode" means that FORCE_FASTBOOT is set
572717448d6SSheetal Tigadoli  *  and a valid (1 or 2) fastboot type is specified.
573717448d6SSheetal Tigadoli  *
574717448d6SSheetal Tigadoli  *  Three types of fastboot are supported:
575717448d6SSheetal Tigadoli  *  0 = No fastboot. Boots Nitro/ChiMP and lets ROM loader
576717448d6SSheetal Tigadoli  *		initialize ChiMP from NVRAM (QSPI).
577717448d6SSheetal Tigadoli  *
578717448d6SSheetal Tigadoli  *  1 = Jump in place (need a flat image)
579717448d6SSheetal Tigadoli  *		This is intended to speedup Nitro FW boot on Palladium,
580717448d6SSheetal Tigadoli  *		can be used with a real chip as well.
581717448d6SSheetal Tigadoli  *  2 = Jump normally with decompression
582717448d6SSheetal Tigadoli  *		Modus operandi for a real chip. Works also on Palladium
583717448d6SSheetal Tigadoli  *		Note: image decompressing takes time on Palladium.
584717448d6SSheetal Tigadoli  *  3 = No fastboot support. No ChiMP bringup
585717448d6SSheetal Tigadoli  *		(use only for AP debug or for ChiMP's deferred setup).
586717448d6SSheetal Tigadoli  */
587717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_DECOMPRESS		2
588717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_IN_PLACE		1
589717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_NITRO_RESET		0
590717448d6SSheetal Tigadoli /*
591717448d6SSheetal Tigadoli  * Definitions for a non-Nitro access
592717448d6SSheetal Tigadoli  * to QSPI PAD after the handshake
593717448d6SSheetal Tigadoli  */
594717448d6SSheetal Tigadoli #define	QSPI_HOLD_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3e8)
595717448d6SSheetal Tigadoli #define QSPI_WP_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3ec)
596717448d6SSheetal Tigadoli #define QSPI_SCK_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f0)
597717448d6SSheetal Tigadoli #define QSPI_CS_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f4)
598717448d6SSheetal Tigadoli #define QSPI_MOSI_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f8)
599717448d6SSheetal Tigadoli #define QSPI_MISO_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3fc)
600717448d6SSheetal Tigadoli 
601717448d6SSheetal Tigadoli /*******************************************************************************
602717448d6SSheetal Tigadoli  * Stream IDs for different blocks of SR
603717448d6SSheetal Tigadoli  * block_id for different blocks is as follows:
604717448d6SSheetal Tigadoli  * PCIE		: 0x0
605717448d6SSheetal Tigadoli  * PAXC		: 0x1
606717448d6SSheetal Tigadoli  * FS4		: 0x2
607717448d6SSheetal Tigadoli  * Rest of the masters(includes MHB via RNI): 0x3
608717448d6SSheetal Tigadoli  ******************************************************************************/
609717448d6SSheetal Tigadoli #define SR_SID_VAL(block_id, subblock_id, device_num)	((block_id << 13) | \
610717448d6SSheetal Tigadoli 							(subblock_id << 11) | \
611717448d6SSheetal Tigadoli 							(device_num))
612717448d6SSheetal Tigadoli 
613717448d6SSheetal Tigadoli #define CRMU_STREAM_ID		SR_SID_VAL(0x3, 0x0, 0x7)
614717448d6SSheetal Tigadoli #define CRMU_SID_SHIFT		5
615717448d6SSheetal Tigadoli 
616717448d6SSheetal Tigadoli #define DMAC_STREAM_ID		SR_SID_VAL(0x3, 0x0, 0x0)
617717448d6SSheetal Tigadoli #define DMAC_SID_SHIFT		5
618717448d6SSheetal Tigadoli 
619717448d6SSheetal Tigadoli /* DDR SHMOO Values defines */
620717448d6SSheetal Tigadoli #define IDRAM_SHMOO_VALUES_ADDR CRMU_IDRAM_BASE_ADDR
621717448d6SSheetal Tigadoli #define DDR_SHMOO_VALUES_ADDR 0x8f103000
622717448d6SSheetal Tigadoli #define SHMOO_SIZE_PER_CHANNEL 0x1000
623717448d6SSheetal Tigadoli 
624717448d6SSheetal Tigadoli #endif /* SR_DEF_H */
625