You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.6 KiB
108 lines
2.6 KiB
// 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;
|
|
};
|
|
};
|
|
};
|
|
|