fvp-foundation-gicv2-psci.dts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /*
  2. * Copyright (c) 2013-2021, ARM Limited and Contributors. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. /* Configuration: 1 cluster with up to 4 CPUs */
  7. /dts-v1/;
  8. #define AFF
  9. #define CLUSTER_COUNT 1
  10. #include <dt-bindings/interrupt-controller/arm-gic.h>
  11. #include "fvp-defs.dtsi"
  12. /memreserve/ 0x80000000 0x00010000;
  13. / {
  14. };
  15. / {
  16. model = "FVP Foundation";
  17. compatible = "arm,fvp-base", "arm,vexpress";
  18. interrupt-parent = <&gic>;
  19. #address-cells = <2>;
  20. #size-cells = <2>;
  21. chosen {
  22. stdout-path = "serial0:115200n8";
  23. };
  24. aliases {
  25. serial0 = &v2m_serial0;
  26. serial1 = &v2m_serial1;
  27. serial2 = &v2m_serial2;
  28. serial3 = &v2m_serial3;
  29. };
  30. psci {
  31. compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
  32. method = "smc";
  33. cpu_suspend = <0xc4000001>;
  34. cpu_off = <0x84000002>;
  35. cpu_on = <0xc4000003>;
  36. sys_poweroff = <0x84000008>;
  37. sys_reset = <0x84000009>;
  38. max-pwr-lvl = <2>;
  39. };
  40. cpus {
  41. #address-cells = <2>;
  42. #size-cells = <0>;
  43. CPU_MAP
  44. idle-states {
  45. entry-method = "arm,psci";
  46. CPU_SLEEP_0: cpu-sleep-0 {
  47. compatible = "arm,idle-state";
  48. local-timer-stop;
  49. arm,psci-suspend-param = <0x0010000>;
  50. entry-latency-us = <40>;
  51. exit-latency-us = <100>;
  52. min-residency-us = <150>;
  53. };
  54. CLUSTER_SLEEP_0: cluster-sleep-0 {
  55. compatible = "arm,idle-state";
  56. local-timer-stop;
  57. arm,psci-suspend-param = <0x1010000>;
  58. entry-latency-us = <500>;
  59. exit-latency-us = <1000>;
  60. min-residency-us = <2500>;
  61. };
  62. };
  63. CPUS
  64. L2_0: l2-cache0 {
  65. compatible = "cache";
  66. };
  67. };
  68. memory@80000000 {
  69. device_type = "memory";
  70. reg = <0x00000000 0x80000000 0 0x7F000000>,
  71. <0x00000008 0x80000000 0 0x80000000>;
  72. };
  73. gic: interrupt-controller@2f000000 {
  74. compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
  75. #interrupt-cells = <3>;
  76. #address-cells = <0>;
  77. interrupt-controller;
  78. reg = <0x0 0x2f000000 0 0x10000>,
  79. <0x0 0x2c000000 0 0x2000>,
  80. <0x0 0x2c010000 0 0x2000>,
  81. <0x0 0x2c02F000 0 0x2000>;
  82. interrupts = <1 9 0xf04>;
  83. };
  84. timer {
  85. compatible = "arm,armv8-timer";
  86. interrupts = <GIC_PPI 13
  87. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  88. <GIC_PPI 14
  89. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  90. <GIC_PPI 11
  91. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  92. <GIC_PPI 10
  93. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
  94. clock-frequency = <100000000>;
  95. };
  96. timer@2a810000 {
  97. compatible = "arm,armv7-timer-mem";
  98. reg = <0x0 0x2a810000 0x0 0x10000>;
  99. clock-frequency = <100000000>;
  100. #address-cells = <2>;
  101. #size-cells = <2>;
  102. ranges;
  103. frame@2a830000 {
  104. frame-number = <1>;
  105. interrupts = <0 26 4>;
  106. reg = <0x0 0x2a830000 0x0 0x10000>;
  107. };
  108. };
  109. pmu {
  110. compatible = "arm,armv8-pmuv3";
  111. interrupts = <0 60 4>,
  112. <0 61 4>,
  113. <0 62 4>,
  114. <0 63 4>;
  115. };
  116. smb {
  117. compatible = "simple-bus";
  118. #address-cells = <2>;
  119. #size-cells = <1>;
  120. ranges = <0 0 0 0x08000000 0x04000000>,
  121. <1 0 0 0x14000000 0x04000000>,
  122. <2 0 0 0x18000000 0x04000000>,
  123. <3 0 0 0x1c000000 0x04000000>,
  124. <4 0 0 0x0c000000 0x04000000>,
  125. <5 0 0 0x10000000 0x04000000>;
  126. #include "fvp-foundation-motherboard.dtsi"
  127. };
  128. };