xref: /rk3399_ARM-atf/plat/brcm/board/stingray/include/sr_def.h (revision cefde213f2568c906c217375934518c6903fdba4)
1717448d6SSheetal Tigadoli /*
2717448d6SSheetal Tigadoli  * Copyright (c) 2016-2020, 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 /*******************************************************************************
196717448d6SSheetal Tigadoli  * Timers related constants
197717448d6SSheetal Tigadoli  ******************************************************************************/
198717448d6SSheetal Tigadoli /* ChipcommonG_tim0_TIM_TIMER1Load 0x68930000 */
199717448d6SSheetal Tigadoli #define SP804_TIMER0_BASE	0x68930000
200717448d6SSheetal Tigadoli #define SP804_TIMER1_BASE	0x68940000
201717448d6SSheetal Tigadoli #define SP804_TIMER0_TIMER_VAL_REG_OFFSET 0x4
202717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKMULT	2
203717448d6SSheetal Tigadoli #define SP804_TIMER0_CLKDIV	25
204717448d6SSheetal Tigadoli 
205717448d6SSheetal Tigadoli /*******************************************************************************
206717448d6SSheetal Tigadoli  * GPIO related constants
207717448d6SSheetal Tigadoli  ******************************************************************************/
208717448d6SSheetal Tigadoli #define IPROC_GPIO_NS_BASE	0x689d0000
209717448d6SSheetal Tigadoli #define IPROC_GPIO_S_BASE	0x68b00000
210717448d6SSheetal Tigadoli #define IPROC_GPIO_NR		151
211717448d6SSheetal Tigadoli #define GPIO_S_CNTRL_REG	0x68b60000
212717448d6SSheetal Tigadoli 
213717448d6SSheetal Tigadoli /*******************************************************************************
214717448d6SSheetal Tigadoli  * I2C SMBUS related constants
215717448d6SSheetal Tigadoli  ******************************************************************************/
216717448d6SSheetal Tigadoli #define SMBUS0_REGS_BASE	0x689b0000
217717448d6SSheetal Tigadoli #define SMBUS1_REGS_BASE	0x689e0000
218717448d6SSheetal Tigadoli 
219717448d6SSheetal Tigadoli /*******************************************************************************
220717448d6SSheetal Tigadoli  * UART related constants
221717448d6SSheetal Tigadoli  ******************************************************************************/
222717448d6SSheetal Tigadoli #define ChipcommonG_UART0_UART_RBR_THR_DLL	0x68a00000
223717448d6SSheetal Tigadoli #define ChipcommonG_UART1_UART_RBR_THR_DLL	0x68a10000
224717448d6SSheetal Tigadoli #define ChipcommonG_UART2_UART_RBR_THR_DLL	0x68a20000
225717448d6SSheetal Tigadoli #define ChipcommonG_UART3_UART_RBR_THR_DLL	0x68a30000
226717448d6SSheetal Tigadoli 
227717448d6SSheetal Tigadoli #define UART0_BASE_ADDR		ChipcommonG_UART0_UART_RBR_THR_DLL
228717448d6SSheetal Tigadoli #define UART1_BASE_ADDR		ChipcommonG_UART1_UART_RBR_THR_DLL
229717448d6SSheetal Tigadoli #define UART2_BASE_ADDR		ChipcommonG_UART2_UART_RBR_THR_DLL
230717448d6SSheetal Tigadoli #define UART3_BASE_ADDR		ChipcommonG_UART3_UART_RBR_THR_DLL
231717448d6SSheetal Tigadoli 
232717448d6SSheetal Tigadoli #define UART_SPR_OFFSET		0x1c    /* Scratch Pad Register */
233717448d6SSheetal Tigadoli 
234717448d6SSheetal Tigadoli #define LOG_LEVEL_REGISTER	CRMU_SPARE_REG_3
235717448d6SSheetal Tigadoli #define GET_LOG_LEVEL()		(mmio_read_32(LOG_LEVEL_REGISTER))
236717448d6SSheetal Tigadoli #define SET_LOG_LEVEL(x)	(mmio_write_32(LOG_LEVEL_REGISTER, x))
237717448d6SSheetal Tigadoli 
238717448d6SSheetal Tigadoli #define IO_RETRY_REGISTER	CRMU_SPARE_REG_4
239717448d6SSheetal Tigadoli 
240717448d6SSheetal Tigadoli #define DWC_UART_REFCLK		(25 * 1000 * 1000)
241717448d6SSheetal Tigadoli #define DWC_UART_REFCLK_DIV	16
242717448d6SSheetal Tigadoli /* Baud rate in emulation will vary based on setting of 25MHz SCLK */
243717448d6SSheetal Tigadoli #define DWC_UART_BAUDRATE	115200
244717448d6SSheetal Tigadoli 
245717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BASE		UART1_BASE_ADDR
246717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_REFCLK	DWC_UART_REFCLK
247717448d6SSheetal Tigadoli #define BRCM_CRASH_CONSOLE_BAUDRATE	DWC_UART_BAUDRATE
248717448d6SSheetal Tigadoli 
249717448d6SSheetal Tigadoli #ifdef BOARD_CONSOLE_UART
250717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE	BOARD_CONSOLE_UART
251717448d6SSheetal Tigadoli #else
252717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_BASE	UART1_BASE_ADDR
253717448d6SSheetal Tigadoli #endif
254717448d6SSheetal Tigadoli #define CONSOLE_UART_ID	((PLAT_BRCM_BOOT_UART_BASE >> 16) & 0x3)
255717448d6SSheetal Tigadoli 
256717448d6SSheetal Tigadoli #define PLAT_BRCM_BOOT_UART_CLK_IN_HZ	DWC_UART_REFCLK
257717448d6SSheetal Tigadoli #define BRCM_CONSOLE_BAUDRATE		DWC_UART_BAUDRATE
258717448d6SSheetal Tigadoli 
259717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_BASE	 PLAT_BRCM_BOOT_UART_BASE
260717448d6SSheetal Tigadoli #define PLAT_BRCM_BL31_RUN_UART_CLK_IN_HZ PLAT_BRCM_BOOT_UART_CLK_IN_HZ
261717448d6SSheetal Tigadoli 
262717448d6SSheetal Tigadoli /*******************************************************************************
263717448d6SSheetal Tigadoli  * IOMUX related constants
264717448d6SSheetal Tigadoli  ******************************************************************************/
265717448d6SSheetal Tigadoli #define HSLS_IOPAD_BASE			HSLS_MODE_SEL_CONTROL
266717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MASK	0x7
267717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE0	0x0
268717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE1	0x1
269717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE2	0x2
270717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_MODE3	0x3
271717448d6SSheetal Tigadoli #define MODE_SEL_CONTROL_FSEL_DEBUG	0x4
272717448d6SSheetal Tigadoli #define IPROC_IOPAD_MODE_BASE		(HSLS_MODE_SEL_CONTROL + 0x29c)
273717448d6SSheetal Tigadoli #define UART0_SIN_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x4a8)
274717448d6SSheetal Tigadoli #define UART0_SOUT_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x4ac)
275717448d6SSheetal Tigadoli #define UART1_SIN_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x3b8)
276717448d6SSheetal Tigadoli #define UART1_SOUT_MODE_SEL_CONTROL	(HSLS_MODE_SEL_CONTROL + 0x3bc)
277717448d6SSheetal Tigadoli #define UARTx_SIN_MODE_SEL_CONTROL_FSEL		0
278717448d6SSheetal Tigadoli #define UARTx_SOUT_MODE_SEL_CONTROL_FSEL	0
279717448d6SSheetal Tigadoli 
280717448d6SSheetal Tigadoli /*******************************************************************************
281717448d6SSheetal Tigadoli  * PKA constants
282717448d6SSheetal Tigadoli  ******************************************************************************/
283717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL			(HSLS_ICFG_REGS_BASE + 0xac0)
284717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONIN	BIT(0)
285717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKIN	BIT(1)
286717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONIN	BIT(2)
287717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKIN	BIT(3)
288717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWERONOUT	BIT(4)
289717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__POWEROKOUT	BIT(5)
290717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWERONOUT	BIT(6)
291717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ARRPOWEROKOUT	BIT(7)
292717448d6SSheetal Tigadoli #define ICFG_PKA_MEM_PWR_CTRL__ISO		BIT(8)
293717448d6SSheetal Tigadoli 
294717448d6SSheetal Tigadoli /*******************************************************************************
295*cefde213SRoman Bacik  * RNG constants
296*cefde213SRoman Bacik  ******************************************************************************/
297*cefde213SRoman Bacik #define RNG_BASE_ADDR			0x68b20000
298*cefde213SRoman Bacik 
299*cefde213SRoman Bacik /*******************************************************************************
300717448d6SSheetal Tigadoli  * Trusted Watchdog constants
301717448d6SSheetal Tigadoli  ******************************************************************************/
302717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_BASE		0x68b30000
303717448d6SSheetal Tigadoli #define ARM_SP805_TWDG_CLK_HZ		((25 * 1000 * 1000) / 2)
304717448d6SSheetal Tigadoli /*
305717448d6SSheetal Tigadoli  * The TBBR document specifies a watchdog timeout of 256 seconds. SP805
306717448d6SSheetal Tigadoli  * asserts reset after two consecutive countdowns (2 x 128 = 256 sec)
307717448d6SSheetal Tigadoli  */
308717448d6SSheetal Tigadoli #define ARM_TWDG_TIMEOUT_SEC		128
309717448d6SSheetal Tigadoli #define ARM_TWDG_LOAD_VAL		(ARM_SP805_TWDG_CLK_HZ * \
310717448d6SSheetal Tigadoli 					 ARM_TWDG_TIMEOUT_SEC)
311717448d6SSheetal Tigadoli 
312717448d6SSheetal Tigadoli /*******************************************************************************
313717448d6SSheetal Tigadoli  * SOTP related constants
314717448d6SSheetal Tigadoli  ******************************************************************************/
315717448d6SSheetal Tigadoli #define SOTP_REGS_OTP_BASE		0x68b50000
316717448d6SSheetal Tigadoli #define SOTP_CHIP_CTRL			(SOTP_REGS_OTP_BASE + 0x4c)
317717448d6SSheetal Tigadoli #define SOTP_CLEAR_SYSCTRL_ALL_MASTER_NS  0
318717448d6SSheetal Tigadoli 
319717448d6SSheetal Tigadoli /*******************************************************************************
320717448d6SSheetal Tigadoli  * DMAC/PL330 related constants
321717448d6SSheetal Tigadoli  ******************************************************************************/
322717448d6SSheetal Tigadoli #define DMAC_M0_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x408)
323717448d6SSheetal Tigadoli #define BOOT_MANAGER_NS			BIT(25)
324717448d6SSheetal Tigadoli #define DMAC_M0_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0x800)
325717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_0		(HSLS_ICFG_REGS_BASE + 0x190)
326717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_1		(HSLS_ICFG_REGS_BASE + 0x194)
327717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_2		(HSLS_ICFG_REGS_BASE + 0x198)
328717448d6SSheetal Tigadoli #define BOOT_PERIPHERAL_NS		0xffffffff
329717448d6SSheetal Tigadoli #define ICFG_DMAC_CONFIG_3		(HSLS_ICFG_REGS_BASE + 0x19c)
330717448d6SSheetal Tigadoli #define BOOT_IRQ_NS			0x0000ffff
331717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_ARADDR_CONTROL	(HSLS_ICFG_REGS_BASE + 0xaf0)
332717448d6SSheetal Tigadoli #define ICFG_DMAC_SID_AWADDR_CONTROL	(HSLS_ICFG_REGS_BASE + 0xaf4)
333717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONIN	BIT(0)
334717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKIN	BIT(1)
335717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONIN	BIT(2)
336717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKIN	BIT(3)
337717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWERONOUT	BIT(4)
338717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__POWEROKOUT	BIT(5)
339717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWERONOUT	BIT(6)
340717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ARRPOWEROKOUT	BIT(7)
341717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL__ISO		BIT(8)
342717448d6SSheetal Tigadoli #define ICFG_DMAC_MEM_PWR_CTRL		(HSLS_ICFG_REGS_BASE + 0xadc)
343717448d6SSheetal Tigadoli 
344717448d6SSheetal Tigadoli /*******************************************************************************
345717448d6SSheetal Tigadoli  * PNOR related constants
346717448d6SSheetal Tigadoli  ******************************************************************************/
347717448d6SSheetal Tigadoli #define PNOR_ICFG_BASE			(HSLS_ICFG_REGS_BASE + 0x780)
348717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_0			PNOR_ICFG_BASE
349717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_1			(PNOR_ICFG_BASE + 0x4)
350717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_2			(PNOR_ICFG_BASE + 0x8)
351717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_MASK	0xff
352717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MASK0_SHIFT	8
353717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_MASK	0xff
354717448d6SSheetal Tigadoli #define PNOR_ICFG_CS_x_MATCH0_SHIFT	0
355717448d6SSheetal Tigadoli 
356717448d6SSheetal Tigadoli #define PNOR_IDM_BASE			(HSLS_IDM_REGS_BASE + 0xb000)
357717448d6SSheetal Tigadoli #define PNOR_IDM_IO_CONTROL_DIRECT	(PNOR_IDM_BASE + 0x408)
358717448d6SSheetal Tigadoli #define PNOR_IDM_IO_RESET_CONTROL	(PNOR_IDM_BASE + 0x800)
359717448d6SSheetal Tigadoli 
360717448d6SSheetal Tigadoli #define PNOR_REG_BASE			0x68c50000
361717448d6SSheetal Tigadoli #define PNOR_REG_DIRECT_CMD		(PNOR_REG_BASE + 0x010)
362717448d6SSheetal Tigadoli #define PNOR_REG_SET_CYCLES		(PNOR_REG_BASE + 0x014)
363717448d6SSheetal Tigadoli #define PNOR_REG_SET_OPMODE		(PNOR_REG_BASE + 0x018)
364717448d6SSheetal Tigadoli #define PNOR_REG_REFRESH_0		(PNOR_REG_BASE + 0x020)
365717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID0		(PNOR_REG_BASE + 0xfe0)
366717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID1		(PNOR_REG_BASE + 0xfe4)
367717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID2		(PNOR_REG_BASE + 0xfe8)
368717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_ID3		(PNOR_REG_BASE + 0xfec)
369717448d6SSheetal Tigadoli #define PNOR_REG_PERIPH_IDx_MASK	0xff
370717448d6SSheetal Tigadoli 
371717448d6SSheetal Tigadoli /*******************************************************************************
372717448d6SSheetal Tigadoli  * NAND related constants
373717448d6SSheetal Tigadoli  ******************************************************************************/
374717448d6SSheetal Tigadoli #define NAND_FLASH_REVISION		0x68c60000
375717448d6SSheetal Tigadoli #define NAND_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0xa408)
376717448d6SSheetal Tigadoli #define NAND_IDM_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0xa800)
377717448d6SSheetal Tigadoli 
378717448d6SSheetal Tigadoli /*******************************************************************************
379717448d6SSheetal Tigadoli  * eMMC related constants
380717448d6SSheetal Tigadoli  ******************************************************************************/
381717448d6SSheetal Tigadoli #define PLAT_SD_MAX_READ_LENGTH		0x400
382717448d6SSheetal Tigadoli 
383717448d6SSheetal Tigadoli #define SDIO0_EMMCSDXC_SYSADDR		0x68cf1000
384717448d6SSheetal Tigadoli #define SDIO_IDM0_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x2408)
385717448d6SSheetal Tigadoli #define SDIO_IDM1_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x3408)
386717448d6SSheetal Tigadoli #define SDIO_IDM0_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0x2800)
387717448d6SSheetal Tigadoli #define ICFG_SDIO0_BASE			(HSLS_ICFG_REGS_BASE + 0x6e4)
388717448d6SSheetal Tigadoli #define ICFG_SDIO1_BASE			(HSLS_ICFG_REGS_BASE + 0x734)
389717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP0			(ICFG_SDIO0_BASE + 0x10)
390717448d6SSheetal Tigadoli #define ICFG_SDIO0_CAP1			(ICFG_SDIO0_BASE + 0x14)
391717448d6SSheetal Tigadoli #define ICFG_SDIO0_SID			(HSLS_ICFG_REGS_BASE + 0xb00)
392717448d6SSheetal Tigadoli #define ICFG_SDIO1_SID			(HSLS_ICFG_REGS_BASE + 0xb08)
393717448d6SSheetal Tigadoli 
394717448d6SSheetal Tigadoli /*******************************************************************************
395717448d6SSheetal Tigadoli  * Bootstrap related constants
396717448d6SSheetal Tigadoli  ******************************************************************************/
397717448d6SSheetal Tigadoli #define ROM_S0_IDM_IO_STATUS		(HSLS_IDM_REGS_BASE + 0x9500)
398717448d6SSheetal Tigadoli 
399717448d6SSheetal Tigadoli /*******************************************************************************
400717448d6SSheetal Tigadoli  * ROM related constants
401717448d6SSheetal Tigadoli  ******************************************************************************/
402717448d6SSheetal Tigadoli #define ROM_BASE_ADDR		0x6ce00000
403717448d6SSheetal Tigadoli #define ROM_VERSION_STRING_ADDR	(ROM_BASE_ADDR + 0x28000)
404717448d6SSheetal Tigadoli #define ROM_BUILD_MESSAGE_ADDR	(ROM_BASE_ADDR + 0x28018)
405717448d6SSheetal Tigadoli 
406717448d6SSheetal Tigadoli /*******************************************************************************
407717448d6SSheetal Tigadoli  * Boot source peripheral related constants
408717448d6SSheetal Tigadoli  ******************************************************************************/
409717448d6SSheetal Tigadoli #define QSPI_CTRL_BASE_ADDR	0x68c70000
410717448d6SSheetal Tigadoli #define QSPI_BASE_ADDR		0x70000000
411717448d6SSheetal Tigadoli #define QSPI_SIZE		0x08000000
412717448d6SSheetal Tigadoli #define NOR_BASE_ADDR		0x74000000
413717448d6SSheetal Tigadoli #define NOR_SIZE		0x04000000
414717448d6SSheetal Tigadoli #define NAND_BASE_ADDR		0x78000000
415717448d6SSheetal Tigadoli #define NAND_SIZE		0x08000000
416717448d6SSheetal Tigadoli 
417717448d6SSheetal Tigadoli #define QSPI_IDM_RESET_CONTROL		(HSLS_IDM_REGS_BASE + 0xc800)
418717448d6SSheetal Tigadoli 
419717448d6SSheetal Tigadoli #define APBR_IDM_RESET_CONTROL		(HSLS_IDM_REGS_BASE + 0xe800)
420717448d6SSheetal Tigadoli #define APBS_IDM_IDM_RESET_CONTROL	(HSLS_IDM_REGS_BASE + 0xf800)
421717448d6SSheetal Tigadoli 
422717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x10408)
423717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
424717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL	2
425717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM0_SCLK_SEL	4
426717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM1_SCLK_SEL	6
427717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM2_SCLK_SEL	8
428717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM3_SCLK_SEL	10
429717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM4_SCLK_SEL	12
430717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM5_SCLK_SEL	13
431717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM6_SCLK_SEL	14
432717448d6SSheetal Tigadoli #define APBX_IDM_IDM_IO_CONTROL_DIRECT_TIM7_SCLK_SEL	15
433717448d6SSheetal Tigadoli 
434717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x11408)
435717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
436717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART0_SCLK_SEL	2
437717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART1_SCLK_SEL	4
438717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART2_SCLK_SEL	6
439717448d6SSheetal Tigadoli #define APBY_IDM_IDM_IO_CONTROL_DIRECT_UART3_SCLK_SEL	8
440717448d6SSheetal Tigadoli 
441717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT	(HSLS_IDM_REGS_BASE + 0x12408)
442717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_CLK_ENABLE	0
443717448d6SSheetal Tigadoli #define APBZ_IDM_IDM_IO_CONTROL_DIRECT_WDOG_SCLK_SEL	2
444717448d6SSheetal Tigadoli 
445717448d6SSheetal Tigadoli /*******************************************************************************
446717448d6SSheetal Tigadoli  * Stingray memory map related constants
447717448d6SSheetal Tigadoli  ******************************************************************************/
448717448d6SSheetal Tigadoli 
449717448d6SSheetal Tigadoli /* The last 4KB of Trusted SRAM are used as shared memory */
450717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_SIZE		0x0
451717448d6SSheetal Tigadoli #define BRCM_SHARED_RAM_BASE		(PLAT_BRCM_TRUSTED_SRAM_BASE + \
452717448d6SSheetal Tigadoli 					 PLAT_BRCM_TRUSTED_SRAM_SIZE - \
453717448d6SSheetal Tigadoli 					 BRCM_SHARED_RAM_SIZE)
454717448d6SSheetal Tigadoli 
455717448d6SSheetal Tigadoli /* Reserve 4 KB to store error logs in BL2 */
456717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_SIZE		0x00001000
457717448d6SSheetal Tigadoli #define BCM_ELOG_BL2_BASE		BL1_RW_LIMIT
458717448d6SSheetal Tigadoli 
459717448d6SSheetal Tigadoli /* The remaining Trusted SRAM is used to load the BL images */
460717448d6SSheetal Tigadoli #define BRCM_BL_RAM_BASE		(PLAT_BRCM_TRUSTED_SRAM_BASE)
461717448d6SSheetal Tigadoli #define BRCM_BL_RAM_SIZE		(PLAT_BRCM_TRUSTED_SRAM_SIZE - \
462717448d6SSheetal Tigadoli 					 BRCM_SHARED_RAM_SIZE)
463717448d6SSheetal Tigadoli 
464717448d6SSheetal Tigadoli /* DDR Address where TMON temperature values are written */
465717448d6SSheetal Tigadoli #define TMON_SHARED_DDR_ADDRESS		0x8f100000
466717448d6SSheetal Tigadoli 
467717448d6SSheetal Tigadoli /* Reserve 4 kB to pass data to BL33 */
468717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_BASE		0x8f102000
469717448d6SSheetal Tigadoli #define BL33_SHARED_DDR_SIZE		0x1000
470717448d6SSheetal Tigadoli 
471717448d6SSheetal Tigadoli /* Default AP error logging base addr */
472717448d6SSheetal Tigadoli #ifndef ELOG_AP_UART_LOG_BASE
473717448d6SSheetal Tigadoli #define ELOG_AP_UART_LOG_BASE		0x8f110000
474717448d6SSheetal Tigadoli #endif
475717448d6SSheetal Tigadoli 
476717448d6SSheetal Tigadoli /* Reserve 16 to store error logs in BL31 */
477717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_BASE		ELOG_AP_UART_LOG_BASE
478717448d6SSheetal Tigadoli #define BCM_ELOG_BL31_SIZE		0x4000
479717448d6SSheetal Tigadoli 
480717448d6SSheetal Tigadoli /*******************************************************************************
481717448d6SSheetal Tigadoli  * Non-secure DDR Map
482717448d6SSheetal Tigadoli  ******************************************************************************/
483717448d6SSheetal Tigadoli #define BRCM_DRAM1_BASE		ULL(0x80000000)
484717448d6SSheetal Tigadoli #define BRCM_DRAM1_SIZE		ULL(0x10000000)
485717448d6SSheetal Tigadoli #define BRCM_DRAM2_BASE		ULL(0x880000000)
486717448d6SSheetal Tigadoli #define BRCM_DRAM2_SIZE		ULL(0x780000000)
487717448d6SSheetal Tigadoli #define BRCM_DRAM3_BASE		ULL(0x8800000000)
488717448d6SSheetal Tigadoli #define BRCM_DRAM3_SIZE		ULL(0x7800000000)
489717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_BASE	BL33_SHARED_DDR_BASE
490717448d6SSheetal Tigadoli #define BRCM_SHARED_DRAM_SIZE	BL33_SHARED_DDR_SIZE
491717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_BASE	ULL(0x74000000)
492717448d6SSheetal Tigadoli #define BRCM_EXT_SRAM_SIZE	ULL(0x4000000)
493717448d6SSheetal Tigadoli 
494717448d6SSheetal Tigadoli /* Priority levels for platforms */
495717448d6SSheetal Tigadoli #define PLAT_RAS_PRI			0x10
496717448d6SSheetal Tigadoli #define PLAT_SDEI_CRITICAL_PRI		0x60
497717448d6SSheetal Tigadoli #define PLAT_SDEI_NORMAL_PRI		0x70
498717448d6SSheetal Tigadoli 
499717448d6SSheetal Tigadoli /* Define a list of Group 1 Secure and Group 0 interrupts as per GICv3 */
500717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_0	14
501717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SGI_1	15
502717448d6SSheetal Tigadoli 
503717448d6SSheetal Tigadoli /* RTC periodic interrupt */
504717448d6SSheetal Tigadoli #define BRCM_IRQ_SEC_SPI_0	49
505717448d6SSheetal Tigadoli 
506717448d6SSheetal Tigadoli /*
507717448d6SSheetal Tigadoli  *  Macros for local power states in SR platforms encoded by State-ID field
508717448d6SSheetal Tigadoli  *  within the power-state parameter.
509717448d6SSheetal Tigadoli  */
510717448d6SSheetal Tigadoli 
511717448d6SSheetal Tigadoli /* Local power state for power domains in Run state. */
512717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RUN	0
513717448d6SSheetal Tigadoli 
514717448d6SSheetal Tigadoli /* Local power state for retention. Valid only for CPU power domains */
515717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_RET	1
516717448d6SSheetal Tigadoli 
517717448d6SSheetal Tigadoli /*
518717448d6SSheetal Tigadoli  * Local power state for OFF/power-down. Valid for CPU and cluster power
519717448d6SSheetal Tigadoli  * domains.
520717448d6SSheetal Tigadoli  */
521717448d6SSheetal Tigadoli #define PLAT_LOCAL_STATE_OFF	2
522717448d6SSheetal Tigadoli 
523717448d6SSheetal Tigadoli /*
524717448d6SSheetal Tigadoli  * This macro defines the deepest retention state possible. A higher state
525717448d6SSheetal Tigadoli  * id will represent an invalid or a power down state.
526717448d6SSheetal Tigadoli  */
527717448d6SSheetal Tigadoli #define PLAT_MAX_RET_STATE	PLAT_LOCAL_STATE_RET
528717448d6SSheetal Tigadoli 
529717448d6SSheetal Tigadoli /*
530717448d6SSheetal Tigadoli  * This macro defines the deepest power down states possible. Any state ID
531717448d6SSheetal Tigadoli  * higher than this is invalid.
532717448d6SSheetal Tigadoli  */
533717448d6SSheetal Tigadoli #define PLAT_MAX_OFF_STATE	PLAT_LOCAL_STATE_OFF
534717448d6SSheetal Tigadoli 
535717448d6SSheetal Tigadoli /* ChiMP-related constants */
536717448d6SSheetal Tigadoli 
537717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr		0x60c01808
538717448d6SSheetal Tigadoli #define NITRO_TZPC_TZPCDECPROT0clr__DECPROT0_chimp_m_clr_R		1
539717448d6SSheetal Tigadoli 
540717448d6SSheetal Tigadoli #define NIC400_NITRO_CHIMP_S_IDM_IO_CONTROL_DIRECT		0x60e00408
541717448d6SSheetal Tigadoli 
542717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_ADDR_MASK		0x3fffff
543717448d6SSheetal Tigadoli #define CHIMP_INDIRECT_BASE		0x60800000
544717448d6SSheetal Tigadoli 
545717448d6SSheetal Tigadoli #define CHIMP_REG_ECO_RESERVED		0x3042400
546717448d6SSheetal Tigadoli 
547717448d6SSheetal Tigadoli #define CHIMP_FLASH_ACCESS_DONE_BIT		2
548717448d6SSheetal Tigadoli 
549717448d6SSheetal Tigadoli /* indicate FRU table programming is done successfully */
550717448d6SSheetal Tigadoli #define CHIMP_FRU_PROG_DONE_BIT			9
551717448d6SSheetal Tigadoli 
552717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_MODE_REG		0x0
553717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BPE_STAT_REG		0x4
554717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_FSTBOOT_PTR_REG		0x8
555717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_L		1
556717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_REG_CTRL_BPE_MODE_REG__cm3_rst_R		1
557717448d6SSheetal Tigadoli #define CHIMP_REG_CTRL_BASE		0x3040000
558717448d6SSheetal Tigadoli #define CHIMP_FAST_BOOT_MODE_BIT		2
559717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_APE_SCPAD		0x3300000
560717448d6SSheetal Tigadoli #define CHIMP_REG_CHIMP_SCPAD		0x3100000
561717448d6SSheetal Tigadoli 
562717448d6SSheetal Tigadoli /* Chimp health status offset in scratch pad ram */
563717448d6SSheetal Tigadoli #define CHIMP_HEALTH_STATUS_OFFSET	0x8
564717448d6SSheetal Tigadoli /*
565717448d6SSheetal Tigadoli  * If not in NIC mode then FASTBOOT can be enabled.
566717448d6SSheetal Tigadoli  *  "Not in NIC mode" means that FORCE_FASTBOOT is set
567717448d6SSheetal Tigadoli  *  and a valid (1 or 2) fastboot type is specified.
568717448d6SSheetal Tigadoli  *
569717448d6SSheetal Tigadoli  *  Three types of fastboot are supported:
570717448d6SSheetal Tigadoli  *  0 = No fastboot. Boots Nitro/ChiMP and lets ROM loader
571717448d6SSheetal Tigadoli  *		initialize ChiMP from NVRAM (QSPI).
572717448d6SSheetal Tigadoli  *
573717448d6SSheetal Tigadoli  *  1 = Jump in place (need a flat image)
574717448d6SSheetal Tigadoli  *		This is intended to speedup Nitro FW boot on Palladium,
575717448d6SSheetal Tigadoli  *		can be used with a real chip as well.
576717448d6SSheetal Tigadoli  *  2 = Jump normally with decompression
577717448d6SSheetal Tigadoli  *		Modus operandi for a real chip. Works also on Palladium
578717448d6SSheetal Tigadoli  *		Note: image decompressing takes time on Palladium.
579717448d6SSheetal Tigadoli  *  3 = No fastboot support. No ChiMP bringup
580717448d6SSheetal Tigadoli  *		(use only for AP debug or for ChiMP's deferred setup).
581717448d6SSheetal Tigadoli  */
582717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_DECOMPRESS		2
583717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_JUMP_IN_PLACE		1
584717448d6SSheetal Tigadoli #define CHIMP_FASTBOOT_NITRO_RESET		0
585717448d6SSheetal Tigadoli /*
586717448d6SSheetal Tigadoli  * Definitions for a non-Nitro access
587717448d6SSheetal Tigadoli  * to QSPI PAD after the handshake
588717448d6SSheetal Tigadoli  */
589717448d6SSheetal Tigadoli #define	QSPI_HOLD_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3e8)
590717448d6SSheetal Tigadoli #define QSPI_WP_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3ec)
591717448d6SSheetal Tigadoli #define QSPI_SCK_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f0)
592717448d6SSheetal Tigadoli #define QSPI_CS_N_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f4)
593717448d6SSheetal Tigadoli #define QSPI_MOSI_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3f8)
594717448d6SSheetal Tigadoli #define QSPI_MISO_MODE_SEL_CONTROL		(HSLS_MODE_SEL_CONTROL + 0x3fc)
595717448d6SSheetal Tigadoli 
596717448d6SSheetal Tigadoli /*******************************************************************************
597717448d6SSheetal Tigadoli  * Stream IDs for different blocks of SR
598717448d6SSheetal Tigadoli  * block_id for different blocks is as follows:
599717448d6SSheetal Tigadoli  * PCIE		: 0x0
600717448d6SSheetal Tigadoli  * PAXC		: 0x1
601717448d6SSheetal Tigadoli  * FS4		: 0x2
602717448d6SSheetal Tigadoli  * Rest of the masters(includes MHB via RNI): 0x3
603717448d6SSheetal Tigadoli  ******************************************************************************/
604717448d6SSheetal Tigadoli #define SR_SID_VAL(block_id, subblock_id, device_num)	((block_id << 13) | \
605717448d6SSheetal Tigadoli 							(subblock_id << 11) | \
606717448d6SSheetal Tigadoli 							(device_num))
607717448d6SSheetal Tigadoli 
608717448d6SSheetal Tigadoli #define CRMU_STREAM_ID		SR_SID_VAL(0x3, 0x0, 0x7)
609717448d6SSheetal Tigadoli #define CRMU_SID_SHIFT		5
610717448d6SSheetal Tigadoli 
611717448d6SSheetal Tigadoli #define DMAC_STREAM_ID		SR_SID_VAL(0x3, 0x0, 0x0)
612717448d6SSheetal Tigadoli #define DMAC_SID_SHIFT		5
613717448d6SSheetal Tigadoli 
614717448d6SSheetal Tigadoli /* DDR SHMOO Values defines */
615717448d6SSheetal Tigadoli #define IDRAM_SHMOO_VALUES_ADDR CRMU_IDRAM_BASE_ADDR
616717448d6SSheetal Tigadoli #define DDR_SHMOO_VALUES_ADDR 0x8f103000
617717448d6SSheetal Tigadoli #define SHMOO_SIZE_PER_CHANNEL 0x1000
618717448d6SSheetal Tigadoli 
619717448d6SSheetal Tigadoli #endif /* SR_DEF_H */
620