sifive.dts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /dts-v1/;
  2. / {
  3. #address-cells = <0x02>;
  4. #size-cells = <0x02>;
  5. compatible = "sifive,hifive-unleashed-a00";
  6. model = "SiFive HiFive Unleashed A00";
  7. chosen {
  8. bootargs = [00];
  9. stdout-path = "/soc/serial@10010000";
  10. };
  11. aliases {
  12. serial0 = "/soc/serial@10010000";
  13. ethernet0 = "/soc/ethernet@10090000";
  14. };
  15. gpio-restart {
  16. compatible = "gpio-restart";
  17. gpios = <0x0a 0x0a 0x01>;
  18. };
  19. cpus {
  20. #address-cells = <0x01>;
  21. #size-cells = <0x00>;
  22. timebase-frequency = <0x989680>;
  23. cpu@0 {
  24. device_type = "cpu";
  25. reg = <0x00>;
  26. status = "okay";
  27. compatible = "riscv";
  28. riscv,isa = "rv64imacu";
  29. interrupt-controller {
  30. #interrupt-cells = <0x01>;
  31. interrupt-controller;
  32. compatible = "riscv,cpu-intc";
  33. phandle = <0x07>;
  34. };
  35. };
  36. cpu@1 {
  37. device_type = "cpu";
  38. reg = <0x01>;
  39. status = "okay";
  40. compatible = "riscv";
  41. riscv,isa = "rv64imafdcsu";
  42. mmu-type = "riscv,sv48";
  43. interrupt-controller {
  44. #interrupt-cells = <0x01>;
  45. interrupt-controller;
  46. compatible = "riscv,cpu-intc";
  47. phandle = <0x06>;
  48. };
  49. };
  50. cpu@2 {
  51. device_type = "cpu";
  52. reg = <0x02>;
  53. status = "okay";
  54. compatible = "riscv";
  55. riscv,isa = "rv64imafdcsu";
  56. mmu-type = "riscv,sv48";
  57. interrupt-controller {
  58. #interrupt-cells = <0x01>;
  59. interrupt-controller;
  60. compatible = "riscv,cpu-intc";
  61. phandle = <0x05>;
  62. };
  63. };
  64. cpu@3 {
  65. device_type = "cpu";
  66. reg = <0x03>;
  67. status = "okay";
  68. compatible = "riscv";
  69. riscv,isa = "rv64imafdcsu";
  70. mmu-type = "riscv,sv48";
  71. interrupt-controller {
  72. #interrupt-cells = <0x01>;
  73. interrupt-controller;
  74. compatible = "riscv,cpu-intc";
  75. phandle = <0x04>;
  76. };
  77. };
  78. cpu@4 {
  79. device_type = "cpu";
  80. reg = <0x04>;
  81. status = "okay";
  82. compatible = "riscv";
  83. riscv,isa = "rv64imafdcsu";
  84. mmu-type = "riscv,sv48";
  85. interrupt-controller {
  86. #interrupt-cells = <0x01>;
  87. interrupt-controller;
  88. compatible = "riscv,cpu-intc";
  89. phandle = <0x03>;
  90. };
  91. };
  92. };
  93. memory@80000000 {
  94. device_type = "memory";
  95. reg = <0x00 0x80000000 0x00 0x20000000>;
  96. };
  97. rtcclk {
  98. #clock-cells = <0x00>;
  99. compatible = "fixed-clock";
  100. clock-frequency = <0xf4240>;
  101. clock-output-names = "rtcclk";
  102. phandle = <0x02>;
  103. };
  104. hfclk {
  105. #clock-cells = <0x00>;
  106. compatible = "fixed-clock";
  107. clock-frequency = <0x1fca055>;
  108. clock-output-names = "hfclk";
  109. phandle = <0x01>;
  110. };
  111. soc {
  112. #address-cells = <0x02>;
  113. #size-cells = <0x02>;
  114. compatible = "simple-bus";
  115. ranges;
  116. serial@10010000 {
  117. interrupts = <0x04>;
  118. interrupt-parent = <0x09>;
  119. clocks = <0x08 0x03>;
  120. reg = <0x00 0x10010000 0x00 0x1000>;
  121. compatible = "sifive,uart0";
  122. };
  123. ethernet@10090000 {
  124. #size-cells = <0x00>;
  125. #address-cells = <0x01>;
  126. local-mac-address = [52 54 00 12 34 56];
  127. clock-names = "pclk\0hclk";
  128. clocks = <0x08 0x02 0x08 0x02>;
  129. interrupts = <0x35>;
  130. interrupt-parent = <0x09>;
  131. phy-handle = <0x0b>;
  132. phy-mode = "gmii";
  133. reg-names = "control";
  134. reg = <0x00 0x10090000 0x00 0x2000 0x00 0x100a0000 0x00 0x1000>;
  135. compatible = "sifive,fu540-c000-gem";
  136. ethernet-phy@0 {
  137. reg = <0x00>;
  138. phandle = <0x0b>;
  139. };
  140. };
  141. gpio@10060000 {
  142. compatible = "sifive,gpio0";
  143. interrupt-parent = <0x09>;
  144. interrupts = <0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 0x11 0x12 0x13 0x14 0x15 0x16>;
  145. reg = <0x00 0x10060000 0x00 0x1000>;
  146. gpio-controller;
  147. #gpio-cells = <0x02>;
  148. interrupt-controller;
  149. #interrupt-cells = <0x02>;
  150. clocks = <0x08 0x03>;
  151. phandle = <0x0a>;
  152. };
  153. interrupt-controller@c000000 {
  154. phandle = <0x09>;
  155. riscv,ndev = <0x35>;
  156. reg = <0x00 0xc000000 0x00 0x4000000>;
  157. interrupts-extended = <0x07 0x0b 0x06 0x0b 0x06 0x09 0x05 0x0b 0x05 0x09 0x04 0x0b 0x04 0x09 0x03 0x0b 0x03 0x09>;
  158. interrupt-controller;
  159. compatible = "riscv,plic0";
  160. #interrupt-cells = <0x01>;
  161. };
  162. clock-controller@10000000 {
  163. compatible = "sifive,fu540-c000-prci";
  164. reg = <0x00 0x10000000 0x00 0x1000>;
  165. clocks = <0x01 0x02>;
  166. #clock-cells = <0x01>;
  167. phandle = <0x08>;
  168. };
  169. otp@10070000 {
  170. compatible = "sifive,fu540-c000-otp";
  171. reg = <0x00 0x10070000 0x00 0x1000>;
  172. fuse-count = <0x1000>;
  173. };
  174. clint@2000000 {
  175. interrupts-extended = <0x07 0x03 0x07 0x07 0x06 0x03 0x06 0x07 0x05 0x03 0x05 0x07 0x04 0x03 0x04 0x07 0x03 0x03 0x03 0x07>;
  176. reg = <0x00 0x2000000 0x00 0x10000>;
  177. compatible = "riscv,clint0";
  178. };
  179. };
  180. };