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