xref: /rk3399_ARM-atf/plat/imx/imx7/include/imx_regs.h (revision 9d068f66b15e644df4961b74b965323c20f21f14)
17d464592SBryan O'Donoghue /*
27d464592SBryan O'Donoghue  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
37d464592SBryan O'Donoghue  *
47d464592SBryan O'Donoghue  * SPDX-License-Identifier: BSD-3-Clause
57d464592SBryan O'Donoghue  */
67d464592SBryan O'Donoghue 
7*c3cf06f1SAntonio Nino Diaz #ifndef IMX_REGS_H
8*c3cf06f1SAntonio Nino Diaz #define IMX_REGS_H
97d464592SBryan O'Donoghue 
107d464592SBryan O'Donoghue /* Define the processor memory map */
117d464592SBryan O'Donoghue 
127d464592SBryan O'Donoghue #define OCRAM_S_ALIAS_BASE		0x00000000	/* CM4 Alias Code */
137d464592SBryan O'Donoghue #define ROM_HIGH_BASE			0x00008000	/* ROM high 64k */
147d464592SBryan O'Donoghue #define ROM_HIGH_PROT_BASE		0x00017000	/* ROM high 64k protected */
157d464592SBryan O'Donoghue #define CAAM_BASE			0x00020000	/* CAAM block base address */
167d464592SBryan O'Donoghue #define OCRAM_S_BASE			0x00180000	/* OCRAM_S  */
177d464592SBryan O'Donoghue #define ROM_LOW_BASE			0x007f8000	/* ROM low 64k */
187d464592SBryan O'Donoghue #define OCRAM_BASE			0x00900000	/* OCRAM base */
197d464592SBryan O'Donoghue #define CM4_ALIAS_CODE_BASE		0x04000000	/* CM4 alias code */
207d464592SBryan O'Donoghue #define TCM_BASE			0x1fff0000	/* TCM */
217d464592SBryan O'Donoghue #define BOOTROM_CP_BASE			0x20020000	/* Boot ROM (all 96KB) */
227d464592SBryan O'Donoghue #define CM4_ALIAS_SYSTEM_BASE		0x20100000	/* CM4 Alias system */
237d464592SBryan O'Donoghue #define EIM_BASE			0x28000000	/* EIM */
247d464592SBryan O'Donoghue 
257d464592SBryan O'Donoghue /* BootROM absolute base address */
267d464592SBryan O'Donoghue #define BOOTROM_BASE			0x00000000	/* BootROM */
277d464592SBryan O'Donoghue 
287d464592SBryan O'Donoghue /* Peripherals like GPIO live in the AIPS range */
297d464592SBryan O'Donoghue #define AIPS1_BASE			0x30000000	/* AIPS1 */
307d464592SBryan O'Donoghue #define AIPS2_BASE			0x30400000	/* AIPS2 */
317d464592SBryan O'Donoghue #define AIPS3_BASE			0x30800000	/* AIPS3 */
327d464592SBryan O'Donoghue #define AIPS4_BASE			0x30c00000	/* AIPS4 */
337d464592SBryan O'Donoghue 
347d464592SBryan O'Donoghue /* ARM peripherals like GIC */
357d464592SBryan O'Donoghue #define ARM_PERIPHERAL_GIC_BASE		0x31000000	/* GIC */
367d464592SBryan O'Donoghue 
377d464592SBryan O'Donoghue /* Configuration ports */
387d464592SBryan O'Donoghue #define GPV0_BASE			0x32000000	/* Main config port */
397d464592SBryan O'Donoghue #define GPV1_BASE			0x32100000	/* Wakeup config port */
407d464592SBryan O'Donoghue #define GPV2_BASE			0x32200000	/* Per_s config port */
417d464592SBryan O'Donoghue #define GPV3_BASE			0x32300000	/* Per_m config port */
427d464592SBryan O'Donoghue #define GPV4_BASE			0x32400000	/* Enet config port */
437d464592SBryan O'Donoghue #define GPV5_BASE			0x32500000	/* Display config port */
447d464592SBryan O'Donoghue #define GPV6_BASE			0x32600000	/* M4 conig port */
457d464592SBryan O'Donoghue 
467d464592SBryan O'Donoghue /* MMAP peripherals - like APBH DMA */
477d464592SBryan O'Donoghue #define APBH_DMA_BASE			0x33000000	/* APBH DMA block */
487d464592SBryan O'Donoghue 
497d464592SBryan O'Donoghue /* QSPI RX BUFFERS */
507d464592SBryan O'Donoghue #define QSPI_RX_BUFFER_BASE		0x34000000	/* QSPI RX buffers */
517d464592SBryan O'Donoghue 
527d464592SBryan O'Donoghue /* QSPI1 FLASH */
537d464592SBryan O'Donoghue #define QSPI_FLASH_BASE			0x60000000	/* QSPI1 flash */
547d464592SBryan O'Donoghue 
557d464592SBryan O'Donoghue /* AIPS1 block addresses */
567d464592SBryan O'Donoghue #define AIPSTZ_CONFIG_OFFSET		0x001f0000
577d464592SBryan O'Donoghue #define CCM_BASE			(AIPS1_BASE + 0x380000)
587d464592SBryan O'Donoghue 
597d464592SBryan O'Donoghue /* Define the maximum number of UART blocks on this SoC */
607d464592SBryan O'Donoghue #define MXC_UART1_BASE			(AIPS3_BASE + 0x060000)
617d464592SBryan O'Donoghue #define MXC_UART2_BASE			(AIPS3_BASE + 0x070000)
627d464592SBryan O'Donoghue #define MXC_UART3_BASE			(AIPS3_BASE + 0x080000)
637d464592SBryan O'Donoghue #define MXC_UART4_BASE			(AIPS3_BASE + 0x260000)
647d464592SBryan O'Donoghue #define MXC_UART5_BASE			(AIPS3_BASE + 0x270000)
657d464592SBryan O'Donoghue #define MXC_UART6_BASE			(AIPS3_BASE + 0x280000)
667d464592SBryan O'Donoghue #define MXC_UART7_BASE			(AIPS3_BASE + 0x290000)
677d464592SBryan O'Donoghue #define MXC_MAX_UART_NUM		0x07
687d464592SBryan O'Donoghue 
697d464592SBryan O'Donoghue /* Define the maximum number of USDHCI blocks on this SoC */
707d464592SBryan O'Donoghue #define MXC_MAX_USDHC_NUM		3
717d464592SBryan O'Donoghue 
727d464592SBryan O'Donoghue /* Define the number of CSU registers for this SoC */
737d464592SBryan O'Donoghue #define MXC_MAX_CSU_REGS		0x40
747d464592SBryan O'Donoghue #define CSU_BASE			(AIPS1_BASE + 0x3E0000)
757d464592SBryan O'Donoghue 
767d464592SBryan O'Donoghue /* IO Mux block base */
777d464592SBryan O'Donoghue #define MXC_IO_MUXC_BASE		(AIPS1_BASE + 0x330000)
787d464592SBryan O'Donoghue 
797d464592SBryan O'Donoghue /* SNVS base */
807d464592SBryan O'Donoghue #define SNVS_BASE			(AIPS1_BASE + 0x370000)
817d464592SBryan O'Donoghue 
827d464592SBryan O'Donoghue /* GP Timer base */
837d464592SBryan O'Donoghue #define GPT1_BASE_ADDR			(AIPS1_BASE + 0x2d0000)
847d464592SBryan O'Donoghue 
857d464592SBryan O'Donoghue /* MMC base */
867d464592SBryan O'Donoghue #define USDHC1_BASE			(AIPS1_BASE + 0xb40000)
877d464592SBryan O'Donoghue #define USDHC2_BASE			(AIPS1_BASE + 0xb50000)
887d464592SBryan O'Donoghue #define USDHC3_BASE			(AIPS1_BASE + 0xb60000)
897d464592SBryan O'Donoghue 
907d464592SBryan O'Donoghue /* Arm optional memory mapped counter module base address */
917d464592SBryan O'Donoghue #define SYS_CNTCTL_BASE			(AIPS2_BASE + 0x2c0000)
927d464592SBryan O'Donoghue 
937d464592SBryan O'Donoghue /* Define CAAM AIPS offset */
947d464592SBryan O'Donoghue #define CAAM_AIPS_BASE			(AIPS3_BASE + 0x100000)
957d464592SBryan O'Donoghue #define CAAM_NUM_JOB_RINGS		0x03
967d464592SBryan O'Donoghue #define CAAM_NUM_RTIC			0x04
977d464592SBryan O'Donoghue #define CAAM_NUM_DECO			0x01
987d464592SBryan O'Donoghue 
997d464592SBryan O'Donoghue /* Define watchdog base addresses */
1007d464592SBryan O'Donoghue #define WDOG1_BASE			(AIPS1_BASE + 0x280000)
1017d464592SBryan O'Donoghue #define WDOG2_BASE			(AIPS1_BASE + 0x290000)
1027d464592SBryan O'Donoghue #define WDOG3_BASE			(AIPS1_BASE + 0x2A0000)
1037d464592SBryan O'Donoghue #define WDOG4_BASE			(AIPS1_BASE + 0x280000)
1047d464592SBryan O'Donoghue 
1057d464592SBryan O'Donoghue /* Define the maximum number of WDOG blocks on this SoC */
1067d464592SBryan O'Donoghue #define MXC_MAX_WDOG_NUM		0x04
1077d464592SBryan O'Donoghue 
108*c3cf06f1SAntonio Nino Diaz #endif /* IMX_REGS_H */
109