xref: /rk3399_ARM-atf/plat/imx/imx7/include/imx_regs.h (revision 7d46459221d8b32a2e772b1c2df88e73dd0ff80c)
1*7d464592SBryan O'Donoghue /*
2*7d464592SBryan O'Donoghue  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*7d464592SBryan O'Donoghue  *
4*7d464592SBryan O'Donoghue  * SPDX-License-Identifier: BSD-3-Clause
5*7d464592SBryan O'Donoghue  */
6*7d464592SBryan O'Donoghue 
7*7d464592SBryan O'Donoghue #ifndef __IMX_REGS_H__
8*7d464592SBryan O'Donoghue #define __IMX_REGS_H__
9*7d464592SBryan O'Donoghue 
10*7d464592SBryan O'Donoghue /* Define the processor memory map */
11*7d464592SBryan O'Donoghue 
12*7d464592SBryan O'Donoghue #define OCRAM_S_ALIAS_BASE		0x00000000	/* CM4 Alias Code */
13*7d464592SBryan O'Donoghue #define ROM_HIGH_BASE			0x00008000	/* ROM high 64k */
14*7d464592SBryan O'Donoghue #define ROM_HIGH_PROT_BASE		0x00017000	/* ROM high 64k protected */
15*7d464592SBryan O'Donoghue #define CAAM_BASE			0x00020000	/* CAAM block base address */
16*7d464592SBryan O'Donoghue #define OCRAM_S_BASE			0x00180000	/* OCRAM_S  */
17*7d464592SBryan O'Donoghue #define ROM_LOW_BASE			0x007f8000	/* ROM low 64k */
18*7d464592SBryan O'Donoghue #define OCRAM_BASE			0x00900000	/* OCRAM base */
19*7d464592SBryan O'Donoghue #define CM4_ALIAS_CODE_BASE		0x04000000	/* CM4 alias code */
20*7d464592SBryan O'Donoghue #define TCM_BASE			0x1fff0000	/* TCM */
21*7d464592SBryan O'Donoghue #define BOOTROM_CP_BASE			0x20020000	/* Boot ROM (all 96KB) */
22*7d464592SBryan O'Donoghue #define CM4_ALIAS_SYSTEM_BASE		0x20100000	/* CM4 Alias system */
23*7d464592SBryan O'Donoghue #define EIM_BASE			0x28000000	/* EIM */
24*7d464592SBryan O'Donoghue 
25*7d464592SBryan O'Donoghue /* BootROM absolute base address */
26*7d464592SBryan O'Donoghue #define BOOTROM_BASE			0x00000000	/* BootROM */
27*7d464592SBryan O'Donoghue 
28*7d464592SBryan O'Donoghue /* Peripherals like GPIO live in the AIPS range */
29*7d464592SBryan O'Donoghue #define AIPS1_BASE			0x30000000	/* AIPS1 */
30*7d464592SBryan O'Donoghue #define AIPS2_BASE			0x30400000	/* AIPS2 */
31*7d464592SBryan O'Donoghue #define AIPS3_BASE			0x30800000	/* AIPS3 */
32*7d464592SBryan O'Donoghue #define AIPS4_BASE			0x30c00000	/* AIPS4 */
33*7d464592SBryan O'Donoghue 
34*7d464592SBryan O'Donoghue /* ARM peripherals like GIC */
35*7d464592SBryan O'Donoghue #define ARM_PERIPHERAL_GIC_BASE		0x31000000	/* GIC */
36*7d464592SBryan O'Donoghue 
37*7d464592SBryan O'Donoghue /* Configuration ports */
38*7d464592SBryan O'Donoghue #define GPV0_BASE			0x32000000	/* Main config port */
39*7d464592SBryan O'Donoghue #define GPV1_BASE			0x32100000	/* Wakeup config port */
40*7d464592SBryan O'Donoghue #define GPV2_BASE			0x32200000	/* Per_s config port */
41*7d464592SBryan O'Donoghue #define GPV3_BASE			0x32300000	/* Per_m config port */
42*7d464592SBryan O'Donoghue #define GPV4_BASE			0x32400000	/* Enet config port */
43*7d464592SBryan O'Donoghue #define GPV5_BASE			0x32500000	/* Display config port */
44*7d464592SBryan O'Donoghue #define GPV6_BASE			0x32600000	/* M4 conig port */
45*7d464592SBryan O'Donoghue 
46*7d464592SBryan O'Donoghue /* MMAP peripherals - like APBH DMA */
47*7d464592SBryan O'Donoghue #define APBH_DMA_BASE			0x33000000	/* APBH DMA block */
48*7d464592SBryan O'Donoghue 
49*7d464592SBryan O'Donoghue /* QSPI RX BUFFERS */
50*7d464592SBryan O'Donoghue #define QSPI_RX_BUFFER_BASE		0x34000000	/* QSPI RX buffers */
51*7d464592SBryan O'Donoghue 
52*7d464592SBryan O'Donoghue /* QSPI1 FLASH */
53*7d464592SBryan O'Donoghue #define QSPI_FLASH_BASE			0x60000000	/* QSPI1 flash */
54*7d464592SBryan O'Donoghue 
55*7d464592SBryan O'Donoghue /* AIPS1 block addresses */
56*7d464592SBryan O'Donoghue #define AIPSTZ_CONFIG_OFFSET		0x001f0000
57*7d464592SBryan O'Donoghue #define CCM_BASE			(AIPS1_BASE + 0x380000)
58*7d464592SBryan O'Donoghue 
59*7d464592SBryan O'Donoghue /* Define the maximum number of UART blocks on this SoC */
60*7d464592SBryan O'Donoghue #define MXC_UART1_BASE			(AIPS3_BASE + 0x060000)
61*7d464592SBryan O'Donoghue #define MXC_UART2_BASE			(AIPS3_BASE + 0x070000)
62*7d464592SBryan O'Donoghue #define MXC_UART3_BASE			(AIPS3_BASE + 0x080000)
63*7d464592SBryan O'Donoghue #define MXC_UART4_BASE			(AIPS3_BASE + 0x260000)
64*7d464592SBryan O'Donoghue #define MXC_UART5_BASE			(AIPS3_BASE + 0x270000)
65*7d464592SBryan O'Donoghue #define MXC_UART6_BASE			(AIPS3_BASE + 0x280000)
66*7d464592SBryan O'Donoghue #define MXC_UART7_BASE			(AIPS3_BASE + 0x290000)
67*7d464592SBryan O'Donoghue #define MXC_MAX_UART_NUM		0x07
68*7d464592SBryan O'Donoghue 
69*7d464592SBryan O'Donoghue /* Define the maximum number of USDHCI blocks on this SoC */
70*7d464592SBryan O'Donoghue #define MXC_MAX_USDHC_NUM		3
71*7d464592SBryan O'Donoghue 
72*7d464592SBryan O'Donoghue /* Define the number of CSU registers for this SoC */
73*7d464592SBryan O'Donoghue #define MXC_MAX_CSU_REGS		0x40
74*7d464592SBryan O'Donoghue #define CSU_BASE			(AIPS1_BASE + 0x3E0000)
75*7d464592SBryan O'Donoghue 
76*7d464592SBryan O'Donoghue /* IO Mux block base */
77*7d464592SBryan O'Donoghue #define MXC_IO_MUXC_BASE		(AIPS1_BASE + 0x330000)
78*7d464592SBryan O'Donoghue 
79*7d464592SBryan O'Donoghue /* SNVS base */
80*7d464592SBryan O'Donoghue #define SNVS_BASE			(AIPS1_BASE + 0x370000)
81*7d464592SBryan O'Donoghue 
82*7d464592SBryan O'Donoghue /* GP Timer base */
83*7d464592SBryan O'Donoghue #define GPT1_BASE_ADDR			(AIPS1_BASE + 0x2d0000)
84*7d464592SBryan O'Donoghue 
85*7d464592SBryan O'Donoghue /* MMC base */
86*7d464592SBryan O'Donoghue #define USDHC1_BASE			(AIPS1_BASE + 0xb40000)
87*7d464592SBryan O'Donoghue #define USDHC2_BASE			(AIPS1_BASE + 0xb50000)
88*7d464592SBryan O'Donoghue #define USDHC3_BASE			(AIPS1_BASE + 0xb60000)
89*7d464592SBryan O'Donoghue 
90*7d464592SBryan O'Donoghue /* Arm optional memory mapped counter module base address */
91*7d464592SBryan O'Donoghue #define SYS_CNTCTL_BASE			(AIPS2_BASE + 0x2c0000)
92*7d464592SBryan O'Donoghue 
93*7d464592SBryan O'Donoghue /* Define CAAM AIPS offset */
94*7d464592SBryan O'Donoghue #define CAAM_AIPS_BASE			(AIPS3_BASE + 0x100000)
95*7d464592SBryan O'Donoghue #define CAAM_NUM_JOB_RINGS		0x03
96*7d464592SBryan O'Donoghue #define CAAM_NUM_RTIC			0x04
97*7d464592SBryan O'Donoghue #define CAAM_NUM_DECO			0x01
98*7d464592SBryan O'Donoghue 
99*7d464592SBryan O'Donoghue /* Define watchdog base addresses */
100*7d464592SBryan O'Donoghue #define WDOG1_BASE			(AIPS1_BASE + 0x280000)
101*7d464592SBryan O'Donoghue #define WDOG2_BASE			(AIPS1_BASE + 0x290000)
102*7d464592SBryan O'Donoghue #define WDOG3_BASE			(AIPS1_BASE + 0x2A0000)
103*7d464592SBryan O'Donoghue #define WDOG4_BASE			(AIPS1_BASE + 0x280000)
104*7d464592SBryan O'Donoghue 
105*7d464592SBryan O'Donoghue /* Define the maximum number of WDOG blocks on this SoC */
106*7d464592SBryan O'Donoghue #define MXC_MAX_WDOG_NUM		0x04
107*7d464592SBryan O'Donoghue 
108*7d464592SBryan O'Donoghue #endif /* __IMX_REGS_H__ */
109