123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // SPDX-License-Identifier: (GPL-2.0 or BSD-3-Clause)
- /*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
- *
- * Devicetree for the Arm Ltd. FPGA platform
- * Number and kind of CPU cores differs from image to image, so the
- * topology is auto-detected by BL31, and the /cpus node is created and
- * populated accordingly at runtime.
- */
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- /dts-v1/;
- / {
- model = "ARM FPGA";
- compatible = "arm,fpga", "arm,vexpress";
- interrupt-parent = <&gic>;
- #address-cells = <2>;
- #size-cells = <2>;
- aliases {
- serial0 = &dbg_uart;
- };
- chosen {
- stdout-path = "serial0:38400n8";
- bootargs = "console=ttyAMA0,38400n8 earlycon";
- /* Allow to upload a generous 100MB initrd payload. */
- linux,initrd-start = <0x0 0x84000000>;
- linux,initrd-end = <0x0 0x8a400000>;
- };
- /* /cpus node will be added by BL31 at runtime. */
- psci {
- compatible = "arm,psci-0.2";
- method = "smc";
- };
- 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>;
- };
- pmu {
- compatible = "arm,armv8-pmuv3";
- interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
- };
- /* This node will be removed at runtime on cores without SPE. */
- spe-pmu {
- compatible = "arm,statistical-profiling-extension-v1";
- interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
- };
- memory@80000000 {
- device_type = "memory";
- reg = <0x0 0x80000000 0x0 0x80000000>,
- <0x8 0x80000000 0x1 0x80000000>;
- };
- bus_refclk: refclk {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <100000000>;
- clock-output-names = "apb_pclk";
- };
- uartclk: baudclock {
- compatible = "fixed-clock";
- #clock-cells = <0>;
- clock-frequency = <10000000>;
- clock-output-names = "uartclk";
- };
- dbg_uart: serial@7ff80000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0x7ff80000 0x0 0x00001000>;
- interrupts = <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&uartclk>, <&bus_refclk>;
- clock-names = "uartclk", "apb_pclk";
- };
- gic: interrupt-controller@30000000 {
- compatible = "arm,gic-v3";
- #address-cells = <2>;
- #interrupt-cells = <3>;
- #size-cells = <2>;
- ranges;
- interrupt-controller;
- reg = <0x0 0x30000000 0x0 0x00010000>, /* GICD */
- /* The GICR size will be adjusted at runtime to match the cores. */
- <0x0 0x30040000 0x0 0x00020000>; /* GICR for one core */
- interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
- its: msi-controller@30040000 {
- compatible = "arm,gic-v3-its";
- reg = <0x0 0x30040000 0x0 0x40000>;
- #msi-cells = <1>;
- msi-controller;
- };
- };
- };
|