| /* |
| * 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 0x8000000>; // 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 = <0x84000003>; |
| }; |
| |
| }; |