123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- /*
- * Copyright (c) 2024, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- /dts-v1/;
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- / {
- model = "RD-1 AE";
- compatible = "arm,rd1ae", "arm,neoverse";
- interrupt-parent = <&gic>;
- #address-cells = <2>;
- #size-cells = <2>;
- chosen {
- stdout-path = &soc_serial0;
- };
- cpus {
- #address-cells = <2>;
- #size-cells = <0>;
- cpu0: cpu@0 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x0>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu1: cpu@10000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x10000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu2: cpu@20000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x20000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu3: cpu@30000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x30000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu4: cpu@40000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x40000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu5: cpu@50000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x50000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu6: cpu@60000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x60000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu7: cpu@70000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x70000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu8: cpu@80000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x80000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu9: cpu@90000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0x90000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu10: cpu@a0000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0xa0000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu11: cpu@b0000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0xb0000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu12: cpu@c0000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0xc0000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu13: cpu@d0000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0xd0000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu14: cpu@e0000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0xe0000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- cpu15: cpu@f0000 {
- device_type = "cpu";
- compatible = "arm,neoverse-v3";
- reg = <0x0 0xf0000>;
- enable-method = "psci";
- i-cache-size = <0x10000>;
- i-cache-line-size = <0x40>;
- i-cache-sets = <0x100>;
- d-cache-size = <0x10000>;
- d-cache-line-size = <0x40>;
- d-cache-sets = <0x100>;
- };
- };
- memory@80000000 {
- device_type = "memory";
- /*
- * 0x7fc0 0000 - 0x7fff ffff : BL32
- * 0x7fbf 0000 - 0x7fbf ffff : FFA_SHARED_MM_BUF
- */
- reg = <0x00000000 0x80000000 0 0x7fbf0000>,
- <0x00000080 0x80000000 0 0x80000000>;
- };
- timer {
- compatible = "arm,armv8-timer";
- interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
- <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
- <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
- <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
- };
- soc_clk24mhz: clk24mhz {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <24000000>;
- clock-output-names = "refclk24mhz";
- };
- soc_refclk1mhz: refclk1mhz {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <1000000>;
- clock-output-names = "refclk1mhz";
- };
- soc {
- compatible = "simple-bus";
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
- timer@2a810000 {
- compatible = "arm,armv7-timer-mem";
- reg = <0x0 0x2a810000 0 0x10000>;
- #address-cells = <2>;
- #size-cells = <2>;
- clock-frequency = <250000000>;
- ranges;
- frame@2a830000 {
- frame-number = <0>;
- interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
- reg = <0x0 0x2a830000 0x0 0x10000>;
- };
- };
- gic: interrupt-controller@30000000 {
- compatible = "arm,gic-v3";
- reg = <0x0 0x30000000 0 0x10000>, // GICD
- <0x0 0x301c0000 0 0x400000>; // GICR
- #interrupt-cells = <3>;
- #address-cells = <2>;
- #size-cells = <2>;
- ranges;
- interrupt-controller;
- interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
- its1: msi-controller@30040000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x30040000 0x0 0x40000>;
- msi-controller;
- #msi-cells = <1>;
- };
- its2: msi-controller@30080000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x30080000 0x0 0x40000>;
- msi-controller;
- #msi-cells = <1>;
- };
- its3: msi-controller@300c0000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x300c0000 0x0 0x40000>;
- msi-controller;
- #msi-cells = <1>;
- };
- its4: msi-controller@30100000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x30100000 0x0 0x40000>;
- msi-controller;
- #msi-cells = <1>;
- };
- its5: msi-controller@30140000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x30140000 0x0 0x40000>;
- msi-controller;
- #msi-cells = <1>;
- };
- its6: msi-controller@30180000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x30180000 0x0 0x40000>;
- msi-controller;
- #msi-cells = <1>;
- };
- };
- soc_serial0: serial@2a400000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0x2a400000 0x0 0x10000>;
- interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&soc_clk24mhz>, <&soc_clk24mhz>;
- clock-names = "uartclk", "apb_pclk";
- };
- watchdog@2a440000 {
- compatible = "arm,sbsa-gwdt";
- reg = <0x0 0x2a440000 0 0x1000>,
- <0x0 0x2a450000 0 0x1000>;
- interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
- };
- rtc@c170000 {
- compatible = "arm,pl031", "arm,primecell";
- reg = <0x0 0x0c170000 0x0 0x10000>;
- interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&soc_clk24mhz>;
- clock-names = "apb_pclk";
- };
- virtio-net@c150000 {
- compatible = "virtio,mmio";
- reg = <0x0 0xc150000 0x0 0x200>;
- interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
- };
- virtio-block@c130000 {
- compatible = "virtio,mmio";
- reg = <0x0 0xc130000 0x0 0x200>;
- interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
- };
- virtio-rng@c140000 {
- compatible = "virtio,mmio";
- reg = <0x0 0xc140000 0x0 0x200>;
- interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
- };
- pci@4000000000 {
- #address-cells = <0x03>;
- #size-cells = <0x02>;
- compatible = "pci-host-ecam-generic";
- device_type = "pci";
- bus-range = <0x00 0x11>;
- reg = <0x40 0x00 0x00 0x04000000>;
- ranges = <0x43000000 0x40 0x40000000 0x40 0x40000000 0x10 0x00000000
- 0x02000000 0x00 0x60000000 0x00 0x60000000 0x00 0x08000000
- 0x01000000 0x00 0x00 0x00 0x77800000 0x00 0x800000>;
- msi-map = <0x00 &its1 0x40000 0x10000>;
- iommu-map = <0x00 &smmu 0x40000 0x10000>;
- dma-coherent;
- };
- smmu: iommu@280000000 {
- compatible = "arm,smmu-v3";
- reg = <0x2 0x80000000 0x0 0x100000>;
- dma-coherent;
- #iommu-cells = <1>;
- interrupts = <1 210 1>,
- <1 211 1>,
- <1 212 1>,
- <1 213 1>;
- interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
- msi-parent = <&its1 0x10000>;
- };
- sysreg: sysreg@c010000 {
- compatible = "arm,vexpress-sysreg";
- reg = <0x0 0xc010000 0x0 0x1000>;
- gpio-controller;
- #gpio-cells = <2>;
- };
- fixed_3v3: v2m-3v3@c011000 {
- compatible = "regulator-fixed";
- reg = <0x0 0xc011000 0x0 0x1000>;
- regulator-name = "3V3";
- regulator-min-microvolt = <3300000>;
- regulator-max-microvolt = <3300000>;
- regulator-always-on;
- };
- mmci@c050000 {
- compatible = "arm,pl180", "arm,primecell";
- reg = <0x0 0xc050000 0x0 0x1000>;
- interrupts = <0 0x8B 0x4>,
- <0 0x8C 0x4>;
- cd-gpios = <&sysreg 0 0>;
- wp-gpios = <&sysreg 1 0>;
- bus-width = <8>;
- max-frequency = <12000000>;
- vmmc-supply = <&fixed_3v3>;
- clocks = <&soc_clk24mhz>, <&soc_clk24mhz>;
- clock-names = "mclk", "apb_pclk";
- };
- };
- psci {
- compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
- method = "smc";
- cpu_suspend = <0xc4000001>;
- cpu_off = <0x84000002>;
- cpu_on = <0xc4000003>;
- };
- };
|