fvp-base-gicv3-psci-common.dtsi 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. /*
  2. * Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #include <services/sdei_flags.h>
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. #define LEVEL 0
  9. #define EDGE 2
  10. #define SDEI_NORMAL 0x70
  11. #define HIGHEST_SEC 0
  12. /memreserve/ 0x80000000 0x00010000;
  13. / {
  14. };
  15. / {
  16. model = "FVP Base";
  17. compatible = "arm,vfp-base", "arm,vexpress";
  18. interrupt-parent = <&gic>;
  19. #address-cells = <2>;
  20. #size-cells = <2>;
  21. chosen { };
  22. aliases {
  23. serial0 = &v2m_serial0;
  24. serial1 = &v2m_serial1;
  25. serial2 = &v2m_serial2;
  26. serial3 = &v2m_serial3;
  27. };
  28. psci {
  29. compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
  30. method = "smc";
  31. cpu_suspend = <0xc4000001>;
  32. cpu_off = <0x84000002>;
  33. cpu_on = <0xc4000003>;
  34. sys_poweroff = <0x84000008>;
  35. sys_reset = <0x84000009>;
  36. max-pwr-lvl = <2>;
  37. };
  38. #if SDEI_IN_FCONF || SEC_INT_DESC_IN_FCONF
  39. firmware {
  40. #if SDEI_IN_FCONF
  41. sdei {
  42. compatible = "arm,sdei-1.0";
  43. method = "smc";
  44. private_event_count = <3>;
  45. shared_event_count = <3>;
  46. /*
  47. * Each event descriptor has typically 3 fields:
  48. * 1. Event number
  49. * 2. Interrupt number the event is bound to or
  50. * if event is dynamic, specified as SDEI_DYN_IRQ
  51. * 3. Bit map of event flags
  52. */
  53. private_events = <1000 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
  54. <1001 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
  55. <1002 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>;
  56. shared_events = <2000 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
  57. <2001 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>,
  58. <2002 SDEI_DYN_IRQ SDEI_MAPF_DYNAMIC>;
  59. };
  60. #endif /* SDEI_IN_FCONF */
  61. #if SEC_INT_DESC_IN_FCONF
  62. sec_interrupts {
  63. compatible = "arm,secure_interrupt_desc";
  64. /* Number of G0 and G1 secure interrupts defined by the platform */
  65. g0_intr_cnt = <2>;
  66. g1s_intr_cnt = <9>;
  67. /*
  68. * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
  69. * terminology. Each interrupt property descriptor has 3 fields:
  70. * 1. Interrupt number
  71. * 2. Interrupt priority
  72. * 3. Type of interrupt (Edge or Level configured)
  73. */
  74. g0_intr_desc = < 8 SDEI_NORMAL EDGE>,
  75. <14 HIGHEST_SEC EDGE>;
  76. g1s_intr_desc = < 9 HIGHEST_SEC EDGE>,
  77. <10 HIGHEST_SEC EDGE>,
  78. <11 HIGHEST_SEC EDGE>,
  79. <12 HIGHEST_SEC EDGE>,
  80. <13 HIGHEST_SEC EDGE>,
  81. <15 HIGHEST_SEC EDGE>,
  82. <29 HIGHEST_SEC LEVEL>,
  83. <56 HIGHEST_SEC LEVEL>,
  84. <57 HIGHEST_SEC LEVEL>;
  85. };
  86. #endif /* SEC_INT_DESC_IN_FCONF */
  87. };
  88. #endif /* SDEI_IN_FCONF || SEC_INT_DESC_IN_FCONF */
  89. cpus {
  90. #address-cells = <2>;
  91. #size-cells = <0>;
  92. CPU_MAP
  93. idle-states {
  94. entry-method = "arm,psci";
  95. CPU_SLEEP_0: cpu-sleep-0 {
  96. compatible = "arm,idle-state";
  97. local-timer-stop;
  98. arm,psci-suspend-param = <0x0010000>;
  99. entry-latency-us = <40>;
  100. exit-latency-us = <100>;
  101. min-residency-us = <150>;
  102. };
  103. CLUSTER_SLEEP_0: cluster-sleep-0 {
  104. compatible = "arm,idle-state";
  105. local-timer-stop;
  106. arm,psci-suspend-param = <0x1010000>;
  107. entry-latency-us = <500>;
  108. exit-latency-us = <1000>;
  109. min-residency-us = <2500>;
  110. };
  111. };
  112. CPUS
  113. L2_0: l2-cache0 {
  114. compatible = "cache";
  115. };
  116. };
  117. memory@80000000 {
  118. device_type = "memory";
  119. reg = <0x00000000 0x80000000 0 0x7F000000>,
  120. <0x00000008 0x80000000 0 0x80000000>;
  121. };
  122. gic: interrupt-controller@2f000000 {
  123. compatible = "arm,gic-v3";
  124. #interrupt-cells = <3>;
  125. #address-cells = <2>;
  126. #size-cells = <2>;
  127. ranges;
  128. interrupt-controller;
  129. reg = <0x0 0x2f000000 0 0x10000>, // GICD
  130. <0x0 0x2f100000 0 0x200000>, // GICR
  131. <0x0 0x2c000000 0 0x2000>, // GICC
  132. <0x0 0x2c010000 0 0x2000>, // GICH
  133. <0x0 0x2c02f000 0 0x2000>; // GICV
  134. interrupts = <1 9 4>;
  135. its: its@2f020000 {
  136. compatible = "arm,gic-v3-its";
  137. msi-controller;
  138. reg = <0x0 0x2f020000 0x0 0x20000>; // GITS
  139. };
  140. };
  141. timer {
  142. compatible = "arm,armv8-timer";
  143. interrupts = <GIC_PPI 13
  144. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  145. <GIC_PPI 14
  146. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  147. <GIC_PPI 11
  148. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  149. <GIC_PPI 10
  150. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
  151. clock-frequency = <100000000>;
  152. };
  153. timer@2a810000 {
  154. compatible = "arm,armv7-timer-mem";
  155. reg = <0x0 0x2a810000 0x0 0x10000>;
  156. clock-frequency = <100000000>;
  157. #address-cells = <2>;
  158. #size-cells = <2>;
  159. ranges;
  160. frame@2a830000 {
  161. frame-number = <1>;
  162. interrupts = <0 26 4>;
  163. reg = <0x0 0x2a830000 0x0 0x10000>;
  164. };
  165. };
  166. pmu {
  167. compatible = "arm,armv8-pmuv3";
  168. interrupts = <0 60 4>,
  169. <0 61 4>,
  170. <0 62 4>,
  171. <0 63 4>;
  172. };
  173. smb@0,0 {
  174. compatible = "simple-bus";
  175. #address-cells = <2>;
  176. #size-cells = <1>;
  177. ranges = <0 0 0 0x08000000 0x04000000>,
  178. <1 0 0 0x14000000 0x04000000>,
  179. <2 0 0 0x18000000 0x04000000>,
  180. <3 0 0 0x1c000000 0x04000000>,
  181. <4 0 0 0x0c000000 0x04000000>,
  182. <5 0 0 0x10000000 0x04000000>;
  183. #include "rtsm_ve-motherboard.dtsi"
  184. };
  185. panels {
  186. panel {
  187. compatible = "panel";
  188. mode = "XVGA";
  189. refresh = <60>;
  190. xres = <1024>;
  191. yres = <768>;
  192. pixclock = <15748>;
  193. left_margin = <152>;
  194. right_margin = <48>;
  195. upper_margin = <23>;
  196. lower_margin = <3>;
  197. hsync_len = <104>;
  198. vsync_len = <4>;
  199. sync = <0>;
  200. vmode = "FB_VMODE_NONINTERLACED";
  201. tim2 = "TIM2_BCD", "TIM2_IPC";
  202. cntl = "CNTL_LCDTFT", "CNTL_BGR", "CNTL_LCDVCOMP(1)";
  203. caps = "CLCD_CAP_5551", "CLCD_CAP_565", "CLCD_CAP_888";
  204. bpp = <16>;
  205. };
  206. };
  207. };