ARMCA7.h 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. /******************************************************************************
  2. * @file ARMCA7.h
  3. * @brief CMSIS Cortex-A7 Core Peripheral Access Layer Header File
  4. * @version V1.00
  5. * @date 10. January 2018
  6. *
  7. * @note
  8. *
  9. ******************************************************************************/
  10. /*
  11. * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
  12. *
  13. * SPDX-License-Identifier: Apache-2.0
  14. *
  15. * Licensed under the Apache License, Version 2.0 (the License); you may
  16. * not use this file except in compliance with the License.
  17. * You may obtain a copy of the License at
  18. *
  19. * www.apache.org/licenses/LICENSE-2.0
  20. *
  21. * Unless required by applicable law or agreed to in writing, software
  22. * distributed under the License is distributed on an AS IS BASIS, WITHOUT
  23. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  24. * See the License for the specific language governing permissions and
  25. * limitations under the License.
  26. */
  27. #ifndef __ARMCA7_H__
  28. #define __ARMCA7_H__
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32. /* ------------------------- Interrupt Number Definition ------------------------ */
  33. typedef enum IRQn
  34. {
  35. /****** SGI Interrupts Numbers ****************************************/
  36. SGI0_IRQn = 0,
  37. SGI1_IRQn = 1,
  38. SGI2_IRQn = 2,
  39. SGI3_IRQn = 3,
  40. SGI4_IRQn = 4,
  41. SGI5_IRQn = 5,
  42. SGI6_IRQn = 6,
  43. SGI7_IRQn = 7,
  44. SGI8_IRQn = 8,
  45. SGI9_IRQn = 9,
  46. SGI10_IRQn = 10,
  47. SGI11_IRQn = 11,
  48. SGI12_IRQn = 12,
  49. SGI13_IRQn = 13,
  50. SGI14_IRQn = 14,
  51. SGI15_IRQn = 15,
  52. /****** Cortex-A7 Processor Exceptions Numbers ****************************************/
  53. SecurePhyTimer_IRQn = 29, /*!< Physical Timer Interrupt */
  54. /****** Platform Exceptions Numbers ***************************************************/
  55. Watchdog_IRQn = 32, /*!< SP805 Interrupt */
  56. Timer0_IRQn = 34, /*!< SP804 Interrupt */
  57. Timer1_IRQn = 35, /*!< SP804 Interrupt */
  58. RTClock_IRQn = 36, /*!< PL031 Interrupt */
  59. UART0_IRQn = 37, /*!< PL011 Interrupt */
  60. UART1_IRQn = 38, /*!< PL011 Interrupt */
  61. UART2_IRQn = 39, /*!< PL011 Interrupt */
  62. UART3_IRQn = 40, /*!< PL011 Interrupt */
  63. MCI0_IRQn = 41, /*!< PL180 Interrupt (1st) */
  64. MCI1_IRQn = 42, /*!< PL180 Interrupt (2nd) */
  65. AACI_IRQn = 43, /*!< PL041 Interrupt */
  66. Keyboard_IRQn = 44, /*!< PL050 Interrupt */
  67. Mouse_IRQn = 45, /*!< PL050 Interrupt */
  68. CLCD_IRQn = 46, /*!< PL111 Interrupt */
  69. Ethernet_IRQn = 47, /*!< SMSC_91C111 Interrupt */
  70. VFS2_IRQn = 73, /*!< VFS2 Interrupt */
  71. } IRQn_Type;
  72. /******************************************************************************/
  73. /* Peripheral memory map */
  74. /******************************************************************************/
  75. /* Peripheral and RAM base address */
  76. #define VE_A7_MP_FLASH_BASE0 (0x00000000UL) /*!< (FLASH0 ) Base Address */
  77. #define VE_A7_MP_FLASH_BASE1 (0x08000000UL) /*!< (FLASH1 ) Base Address */
  78. #define VE_A7_MP_PERIPH_BASE (0x18000000UL) /*!< (Peripheral) Base Address */
  79. #define VE_A7_MP_SRAM_BASE (0x2E000000UL) /*!< (SRAM ) Base Address */
  80. #define VE_A7_MP_DRAM_BASE (0x80000000UL) /*!< (DRAM ) Base Address */
  81. #define VE_A7_MP_VRAM_BASE (0x18000000UL) /*!< (VRAM ) Base Address */
  82. #define VE_A7_MP_ETHERNET_BASE (0x02000000UL + VE_A7_MP_PERIPH_BASE) /*!< (ETHERNET ) Base Address */
  83. #define VE_A7_MP_USB_BASE (0x03000000UL + VE_A7_MP_PERIPH_BASE) /*!< (USB ) Base Address */
  84. #define VE_A7_MP_DAP_BASE (0x1C000000UL) /*!< (DAP ) Base Address */
  85. #define VE_A7_MP_SYSTEM_REG_BASE (0x00010000UL + 0x1C000000UL) /*!< (SYSTEM REG) Base Address */
  86. #define VE_A7_MP_SERIAL_BASE (0x00030000UL + 0x1C000000UL) /*!< (SERIAL ) Base Address */
  87. #define VE_A7_MP_AACI_BASE (0x00040000UL + 0x1C000000UL) /*!< (AACI ) Base Address */
  88. #define VE_A7_MP_MMCI_BASE (0x00050000UL + 0x1C000000UL) /*!< (MMCI ) Base Address */
  89. #define VE_A7_MP_KMI0_BASE (0x00060000UL + 0x1C000000UL) /*!< (KMI0 ) Base Address */
  90. #define VE_A7_MP_UART_BASE (0x00090000UL + 0x1C000000UL) /*!< (UART ) Base Address */
  91. #define VE_A7_MP_WDT_BASE (0x000F0000UL + 0x1C000000UL) /*!< (WDT ) Base Address */
  92. #define VE_A7_MP_TIMER_BASE (0x00110000UL + 0x1C000000UL) /*!< (TIMER ) Base Address */
  93. #define VE_A7_MP_DVI_BASE (0x00160000UL + 0x1C000000UL) /*!< (DVI ) Base Address */
  94. #define VE_A7_MP_RTC_BASE (0x00170000UL + 0x1C000000UL) /*!< (RTC ) Base Address */
  95. #define VE_A7_MP_UART4_BASE (0x001B0000UL + 0x1C000000UL) /*!< (UART4 ) Base Address */
  96. #define VE_A7_MP_CLCD_BASE (0x001F0000UL + 0x1C000000UL) /*!< (CLCD ) Base Address */
  97. #define VE_A7_MP_GIC_DISTRIBUTOR_BASE (0x00001000UL + 0x2C000000UL) /*!< (GIC DIST ) Base Address */
  98. #define VE_A7_MP_GIC_INTERFACE_BASE (0x00002000UL + 0x2C000000UL) /*!< (GIC CPU IF) Base Address */
  99. #define GIC_DISTRIBUTOR_BASE VE_A7_MP_GIC_DISTRIBUTOR_BASE
  100. #define GIC_INTERFACE_BASE VE_A7_MP_GIC_INTERFACE_BASE
  101. //The VE-A7 model implements L1 cache as architecturally defined, but does not implement L2 cache.
  102. //Do not enable the L2 cache if you are running RTX on a VE-A7 model as it may cause a data abort.
  103. #define VE_A7_MP_PL310_BASE (0x2C0F0000UL) /*!< (L2C-310 ) Base Address */
  104. #define L2C_310_BASE VE_A7_MP_PL310_BASE
  105. /* -------- Configuration of the Cortex-A7 Processor and Core Peripherals ------- */
  106. #define __CA_REV 0x0000U /* Core revision r0p0 */
  107. #define __CORTEX_A 7U /* Cortex-A7 Core */
  108. #define __FPU_PRESENT 1U /* FPU present */
  109. #define __GIC_PRESENT 1U /* GIC present */
  110. #define __TIM_PRESENT 1U /* TIM present */
  111. #define __L2C_PRESENT 0U /* L2C present */
  112. #include "core_ca.h"
  113. #include <system_ARMCA7.h>
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117. #endif // __ARMCA7_H__