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