tc_spmc_manifest.dtsi 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /*
  2. * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #include <platform_def.h>
  7. / {
  8. compatible = "arm,ffa-core-manifest-1.0";
  9. #address-cells = <2>;
  10. #size-cells = <2>;
  11. attribute {
  12. spmc_id = <0x8000>;
  13. maj_ver = <0x1>;
  14. min_ver = <0x2>;
  15. exec_state = <0x0>;
  16. load_address = <0x0 0xfd000000>;
  17. entrypoint = <0x0 0xfd000000>;
  18. binary_size = <0x80000>;
  19. };
  20. hafnium:hypervisor {
  21. compatible = "hafnium,hafnium";
  22. /* filled in in top level .dts */
  23. };
  24. cpus {
  25. #address-cells = <0x2>;
  26. #size-cells = <0x0>;
  27. CPU0:cpu@0 {
  28. device_type = "cpu";
  29. compatible = "arm,armv8";
  30. reg = <0x0 0x0>;
  31. enable-method = "psci";
  32. };
  33. /*
  34. * SPMC (Hafnium) requires secondary cpu nodes are declared in
  35. * descending order
  36. */
  37. CPU7:cpu@700 {
  38. device_type = "cpu";
  39. compatible = "arm,armv8";
  40. reg = <0x0 0x700>;
  41. enable-method = "psci";
  42. };
  43. CPU6:cpu@600 {
  44. device_type = "cpu";
  45. compatible = "arm,armv8";
  46. reg = <0x0 0x600>;
  47. enable-method = "psci";
  48. };
  49. CPU5:cpu@500 {
  50. device_type = "cpu";
  51. compatible = "arm,armv8";
  52. reg = <0x0 0x500>;
  53. enable-method = "psci";
  54. };
  55. CPU4:cpu@400 {
  56. device_type = "cpu";
  57. compatible = "arm,armv8";
  58. reg = <0x0 0x400>;
  59. enable-method = "psci";
  60. };
  61. CPU3:cpu@300 {
  62. device_type = "cpu";
  63. compatible = "arm,armv8";
  64. reg = <0x0 0x300>;
  65. enable-method = "psci";
  66. };
  67. CPU2:cpu@200 {
  68. device_type = "cpu";
  69. compatible = "arm,armv8";
  70. reg = <0x0 0x200>;
  71. enable-method = "psci";
  72. };
  73. CPU1:cpu@100 {
  74. device_type = "cpu";
  75. compatible = "arm,armv8";
  76. reg = <0x0 0x100>;
  77. enable-method = "psci";
  78. };
  79. };
  80. /* the full secure world range */
  81. memory@0 {
  82. device_type = "memory";
  83. reg = <0x0 TC_TZC_DRAM1_BASE 0x0 TC_TZC_DRAM1_SIZE>,
  84. <0x0 0xff000000 0x0 0x1000000>;
  85. };
  86. memory@1 {
  87. device_type = "ns-memory";
  88. reg = <0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>,
  89. <HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE)
  90. HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>;
  91. };
  92. memory@2 {
  93. device_type = "device-memory";
  94. reg = <0x0 0x25000000 0x0 0x10000>; /* For cactus tertiary dummy device. */
  95. };
  96. s_uart {
  97. device_type = "device-memory";
  98. reg = <0x0 PLAT_ARM_BOOT_UART_BASE 0x0 0x01000>;
  99. };
  100. #ifdef TS_SP_FW_CONFIG
  101. ns_flash {
  102. device_type = "ns-device-memory";
  103. reg = <0x0 V2M_FLASH0_BASE 0x0 V2M_FLASH0_SIZE>;
  104. };
  105. #endif
  106. };