soc_memory_map.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. /*
  2. * Copyright (c) 2011-2012, Freescale Semiconductor, Inc.
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without modification,
  6. * are permitted provided that the following conditions are met:
  7. *
  8. * o Redistributions of source code must retain the above copyright notice, this list
  9. * of conditions and the following disclaimer.
  10. *
  11. * o Redistributions in binary form must reproduce the above copyright notice, this
  12. * list of conditions and the following disclaimer in the documentation and/or
  13. * other materials provided with the distribution.
  14. *
  15. * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
  16. * contributors may be used to endorse or promote products derived from this
  17. * software without specific prior written permission.
  18. *
  19. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  20. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  21. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  22. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  23. * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  24. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  25. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  26. * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  27. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  28. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  29. */
  30. #ifndef _SOC_MEMORY_MAP_H
  31. #define _SOC_MEMORY_MAP_H
  32. // NOTE: THIS FILE IS GOING AWAY.
  33. //
  34. // DEVELOPERS - PLEASE USE register/*.h MACROS TO ACCESS REGSITERS.
  35. //
  36. #define BAAD_STATUS 0xbaadbaad
  37. #define GOOD_STATUS 0x900d900d
  38. // CPU Memory Map
  39. #define MMDC0_ARB_BASE_ADDR 0x80000000
  40. #define MMDC0_ARB_END_ADDR 0xFFFFFFFF
  41. #define MMDC1_ARB_BASE_ADDR 0xC0000000
  42. #define MMDC1_ARB_END_ADDR 0xFFFFFFFF
  43. #define OCRAM_ARB_BASE_ADDR 0x00900000
  44. #define OCRAM_ARB_END_ADDR 0x0091FFFF
  45. #define IRAM_BASE_ADDR OCRAM_ARB_BASE_ADDR
  46. // Blocks connected via pl301periph
  47. // s_e_N ports
  48. #define ROMCP_ARB_BASE_ADDR 0x00000000
  49. #define ROMCP_ARB_END_ADDR 0x00017FFF
  50. #define BOOT_ROM_BASE_ADDR ROMCP_ARB_BASE_ADDR
  51. #define GPU_2D_ARB_BASE_ADDR 0x02200000
  52. #define GPU_2D_ARB_END_ADDR 0x02203FFF
  53. #define OPENVG_ARB_BASE_ADDR 0x02204000
  54. #define OPENVG_ARB_END_ADDR 0x02207FFF
  55. // GPV - PL301 configuration ports
  56. #define GPV0_BASE_ADDR 0x00B00000
  57. #define GPV1_BASE_ADDR 0x00C00000
  58. #define GPV2_BASE_ADDR 0x00D00000
  59. // s_g_N ports
  60. #define AIPS1_ARB_BASE_ADDR 0x02000000
  61. #define AIPS1_ARB_END_ADDR 0x020FFFFF
  62. #define AIPS2_ARB_BASE_ADDR 0x02100000
  63. #define AIPS2_ARB_END_ADDR 0x021FFFFF
  64. // #define SATA_ARB_BASE_ADDR 0x02200000
  65. // #define SATA_ARB_END_ADDR 0x02203FFF
  66. // #define OPENVG_ARB_BASE_ADDR 0x02204000
  67. // #define OPENVG_ARB_END_ADDR 0x02207FFF
  68. #define WEIM_ARB_BASE_ADDR 0x08000000
  69. #define WEIM_ARB_END_ADDR 0x0FFFFFFF
  70. // CoreSight (ARM Debug)
  71. // ***** TO UPDATE *****
  72. #define DEBUG_ROM_BASE_ADDR 0x02140000
  73. #define ETB_BASE_ADDR 0x02141000
  74. #define EXT_CTI_BASE_ADDR 0x02142000
  75. #define TPIU_BASE_ADDR 0x02143000
  76. #define FUNNEL_BASE_ADDR 0x02144000
  77. #define CORTEX_ROM_TABLE 0x0214F000
  78. #define CORTEX_DEBUG_UNIT 0x02150000
  79. #define CORE0_DEBUG_UNIT 0x02150000
  80. #define PMU0_BASE_ADDR 0x02151000
  81. #define CORE1_DEBUG_UNIT 0x02152000
  82. #define PMU1_BASE_ADDR 0x02153000
  83. #define CORE2_DEBUG_UNIT 0x02154000
  84. #define PMU2_BASE_ADDR 0x02155000
  85. #define CORE3_DEBUG_UNIT 0x02156000
  86. #define PMU3_BASE_ADDR 0x02157000
  87. #define CTI0_BASE_ADDR 0x02158000
  88. #define CTI1_BASE_ADDR 0x02159000
  89. #define CTI2_BASE_ADDR 0x0215A000
  90. #define CTI3_BASE_ADDR 0x0215B000
  91. #define PTM0_BASE_ADDR 0x0215C000
  92. #define PTM_BASE_ADDR 0x0215C000
  93. #define PTM1_BASE_ADDR 0x0215D000
  94. #define PTM2_BASE_ADDR 0x0215E000
  95. #define PTM3_BASE_ADDR 0x0215F000
  96. // *********************
  97. // Legacy Defines
  98. #define CSD0_DDR_BASE_ADDR MMDC0_ARB_BASE_ADDR
  99. #define CSD1_DDR_BASE_ADDR 0xC0000000
  100. #define CS0_BASE_ADDR WEIM_ARB_BASE_ADDR
  101. // Defines for Blocks connected via AIPS (SkyBlue)
  102. #define AIPS_TZ1_BASE_ADDR AIPS1_ARB_BASE_ADDR
  103. #define AIPS_TZ2_BASE_ADDR AIPS2_ARB_BASE_ADDR
  104. //slots 0,7 of SDMA reserved, therefore left unused in IPMUX3
  105. #define SPDIF_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00004000) // 0x02004000
  106. #define ECSPI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00008000) // 0x02008000
  107. #define ECSPI2_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0000C000) // 0x0200C000
  108. #define ECSPI3_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00010000) // 0x02010000
  109. #define ECSPI4_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00014000) // 0x02014000
  110. #define UART5_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00018000) //slot 6
  111. #define UART1_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00020000) // 0x02020000
  112. #define UART2_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00024000) //slot 9
  113. #define SSI1_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00028000) // 0x02028000
  114. #define SSI2_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0002C000) // 0x0202C000
  115. #define SSI3_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00030000) // 0x02030000
  116. #define UART3_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00034000) //slot 13
  117. #define UART4_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00038000) //slot 14
  118. #define SPBA_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0003C000) // 0x0203C000 haku
  119. #define VPU_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00040000) //slot 33, global en[1], til 0x7BFFF
  120. // AIPS_TZ#1- On Platform
  121. #define AIPS1_ON_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x0007C000) // 0x0207C000
  122. // AIPS_TZ#1- Off Platform
  123. #define AIPS1_OFF_BASE_ADDR (AIPS_TZ1_BASE_ADDR + 0x00080000) // 0x02080000
  124. //#define USBOH3_BASE_ADDR AIPS1_BASE_ADDR
  125. #define PWM1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00000000) // 0x02080000
  126. #define PWM2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00004000) // 0x02084000
  127. #define PWM3_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00008000) // 0x02088000
  128. #define PWM4_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0000C000) // 0x0208C000
  129. #define DBGMON_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00010000) // 0x02090000
  130. #define QOSC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00014000) // 0x02094000
  131. #define GPT_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00018000) // 0x02098000
  132. #define GPIO1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0001C000) // 0x0209C000
  133. #define GPIO2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00020000) // 0x020A0000
  134. #define GPIO3_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00024000) // 0x020A4000
  135. #define GPIO4_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00028000) // 0x020A8000
  136. #define GPIO5_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0002C000) // 0x020AC000
  137. #define GPIO6_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00030000)
  138. #define GPIO7_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00034000)
  139. #define KPP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00038000) // 0x020B8000
  140. #define WDOG1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0003C000) // 0x020BC000
  141. #define WDOG2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00040000) // 0x020C0000
  142. #define CCM_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00044000) // 0x020C4000
  143. #define ANATOP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00048000) // 0x020C8000 same as CCM_ANALOG above
  144. #define SNVS_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0004C000) // 0x020CC000
  145. #define EPIT1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00050000) // 0x020D0000
  146. #define EPIT2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00054000) // 0x020D4000
  147. #define SRC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00058000) // 0x020D8000
  148. #define GPC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0005C000) // 0x020DC000 same as DVFS below
  149. #define IOMUXC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00060000) // 0x020E0000
  150. #define CSI_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00064000) // 0x020E4000 (was DCIC1)
  151. #define SPDC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00068000) // 0x020E8000 (was DCIC2)
  152. #define SDMA_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x0006C000) // 0x020EC000
  153. #define EPXP_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00070000) // 0x020F0000
  154. #define SDMA_IPS_HOST_BASE_ADDR SDMA_BASE_ADDR
  155. #define EPDC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00074000) // 0x020F4000
  156. #define ELCDIF_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x00078000) // 0x020F8000
  157. #define DCP_BASE_ADDRESS (AIPS1_OFF_BASE_ADDR + 0x0007C000) // 0x020FC000
  158. // AIPS_TZ#2- On Platform
  159. #define AIPS2_ON_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x0007C000) // 0x0217C000
  160. // AIPS_TZ#2- Off Platform
  161. #define AIPS2_OFF_BASE_ADDR (AIPS_TZ2_BASE_ADDR+0x00080000) // 0x02180000
  162. #define AIPS1_BASE_ADDR AIPS1_ON_BASE_ADDR
  163. #define AIPS2_BASE_ADDR AIPS2_ON_BASE_ADDR
  164. #define USBO2H_PL301_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00000000)
  165. #define USBO2H_USB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00004000)
  166. #define ENET_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00008000) // 0x02188000
  167. #define MSHC_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0000C000)
  168. //For ESDHC became Usdhc, temporarily allowing both new and old names
  169. #define USDHC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00010000) // 0x02190000
  170. #define USDHC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00014000) // 0x02194000
  171. #define USDHC3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00018000) // 0x02198000
  172. #define USDHC4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0001C000) // 0x0219C000
  173. #define I2C1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00020000) // 0x021A0000
  174. #define I2C2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00024000) // 0x021A4000
  175. #define I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00028000) // 0x021A8000
  176. #define I2C4_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00078000)
  177. //AIPS2_OFF_BASE_ADDR
  178. #define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0002C000) // 0x021AC000
  179. #define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00030000) // 0x021B0000
  180. #define RNGB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00034000) // 0x021B4000
  181. #define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00038000) // 0x021B8000
  182. #define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0003C000) // 0x021BC000
  183. #define CSU_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00040000) // 0x021C0000
  184. #define IP2APB_PERFMON1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00044000) // 0x021C4000
  185. #define IP2APB_PERFMON2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00048000) // 0x021C8000
  186. #define IP2APB_TZASC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00050000) // 0x021D0000
  187. #define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00058000) // 0x021D8000
  188. #define IP2APB_USBPHY1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x00078000)
  189. #define IP2APB_USBPHY2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0007C000)
  190. #endif //_SOC_MEMORY_MAP_H