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