freebsd-dev/sys/boot/fdt/dts/arm/zedboard.dts
Warner Losh eeb913c99f Integrate device-tree upstream files into the build process:
(1) Invoke cpp to bring in files via #include (although the old
    /include/ stuff is supported still).
(2) bring in files from either vendor tree or freebsd-custom files
    when building.
(3) move all dts* files from sys/boot/fdt/dts to
    sys/boot/fdt/dts/${MACHINE} as appropriate.
(4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh
    so that the different places in the tree use the exact same logic.
(5) switch back to gpl dtc by default. the bsdl one in the tree has
    significant issues not easily addressed by those unfamiliar with
    the code.
2014-02-28 18:29:09 +00:00

216 lines
5.1 KiB
Plaintext

/*-
* Copyright (c) 2012 The FreeBSD Foundation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
/dts-v1/;
/ {
model = "zedboard";
compatible = "digilent,zedboard";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&GIC>;
// cpus {
// #address-cells = <1>;
// #size-cells = <0>;
// cpu@0 {
// device-type = "cpu";
// model = "ARM Cortex-A9";
// };
// };
memory {
// First megabyte isn't accessible by all interconnect masters.
device_type = "memory";
reg = <0x100000 0x1ff00000>; /* 511MB RAM at 0x100000 */
};
// Zynq PS System registers.
//
ps7sys@f8000000 {
device_type = "soc";
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0xf8000000 0xf10000>;
// SLCR block
slcr: slcr@7000 {
compatible = "xlnx,zy7_slcr";
reg = <0x0 0x1000>;
};
// Interrupt controller
GIC: gic {
compatible = "arm,gic";
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <1>;
reg = <0xf01000 0x1000>, // distributer registers
<0xf00100 0x0100>; // CPU if registers
};
// L2 cache controller
pl310@f02000 {
compatible = "arm,pl310";
reg = <0xf02000 0x1000>;
interrupts = <34>;
interrupt-parent = <&GIC>;
};
// Device Config
devcfg: devcfg@7000 {
compatible = "xlnx,zy7_devcfg";
reg = <0x7000 0x1000>;
interrupts = <40>;
interrupt-parent = <&GIC>;
};
// triple timer counters0,1
ttc0: ttc@1000 {
compatible = "xlnx,ttc";
reg = <0x1000 0x1000>;
};
ttc1: ttc@2000 {
compatible = "xlnx,ttc";
reg = <0x2000 0x1000>;
};
// ARM Cortex A9 TWD Timer
timer@f00600 {
compatible = "arm,mpcore-timers";
clock-frequency = <333333333>; // 333Mhz
#address-cells = <1>;
#size-cells = <0>;
reg = <0xf00200 0x100>, // Global Timer Regs
<0xf00600 0x20>; // Private Timer Regs
interrupts = < 27 29 >;
interrupt-parent = <&GIC>;
};
// system watch-dog timer
swdt@5000 {
device_type = "watchdog";
compatible = "xlnx,zy7_wdt";
reg = <0x5000 0x1000>;
interrupts = <41>;
interrupt-parent = <&GIC>;
};
scuwdt@f00620 {
device_type = "watchdog";
compatible = "arm,mpcore_wdt";
reg = <0xf00620 0x20>;
interrupts = <30>;
interrupt-parent = <&GIC>;
reset = <1>;
};
}; // pssys@f8000000
// Zynq PS I/O Peripheral registers.
//
ps7io@e0000000 {
device_type = "soc";
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0xe0000000 0x300000>;
// uart0: uart@0000 {
// device_type = "serial";
// compatible = "cadence,uart";
// reg = <0x0000 0x1000>;
// interrupts = <59>;
// interrupt-parent = <&GIC>;
// clock-frequency = <50000000>;
// };
uart1: uart@1000 {
device_type = "serial";
compatible = "cadence,uart";
reg = <0x1000 0x1000>;
interrupts = <82>;
interrupt-parent = <&GIC>;
clock-frequency = <50000000>;
current-speed = <115200>;
};
gpio: gpio@a000 {
compatible = "xlnx,zy7_gpio";
reg = <0xa000 0x1000>;
interrupts = <52>;
interrupt-parent = <&GIC>;
};
// GigE
eth0: eth@b000 {
// device_type = "network";
compatible = "cadence,gem";
reg = <0xb000 0x1000>;
interrupts = <54 55>;
interrupt-parent = <&GIC>;
};
// SDIO
sdhci0: sdhci@100000 {
compatible = "xlnx,zy7_sdhci";
reg = <0x100000 0x1000>;
interrupts = <56>;
interrupt-parent = <&GIC>;
clock-frequency = <50000000>;
};
// QSPI
qspi0: qspi@d000 {
compatible = "xlnx,zy7_qspi";
reg = <0xd000 0x1000>;
interrupts = <51>;
interrupt-parent = <&GIC>;
spi-clock = <50000000>;
ref-clock = <190476000>;
};
// USB
ehci0: ehci@2000 {
compatible = "xlnx,zy7_ehci";
reg = <0x2000 0x1000>;
interrupts = <53>;
interrupt-parent = <&GIC>;
phy_vbus_ext;
};
}; // ps7io@e0000000
chosen {
stdin = &uart1;
stdout = &uart1;
};
};