Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
109 lines
2.8 KiB
Devicetree
109 lines
2.8 KiB
Devicetree
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
// Copyright 2025 Tenstorrent AI ULC
|
|
/dts-v1/;
|
|
|
|
/ {
|
|
compatible = "tenstorrent,blackhole";
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
timebase-frequency = <50000000>;
|
|
|
|
cpu@0 {
|
|
compatible = "sifive,x280", "sifive,rocket0", "riscv";
|
|
device_type = "cpu";
|
|
reg = <0>;
|
|
mmu-type = "riscv,sv57";
|
|
riscv,isa-base = "rv64i";
|
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicsr",
|
|
"zifencei", "zfh", "zba", "zbb", "sscofpmf";
|
|
|
|
cpu0_intc: interrupt-controller {
|
|
compatible = "riscv,cpu-intc";
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
};
|
|
};
|
|
|
|
cpu@1 {
|
|
compatible = "sifive,x280", "sifive,rocket0", "riscv";
|
|
device_type = "cpu";
|
|
reg = <1>;
|
|
mmu-type = "riscv,sv57";
|
|
riscv,isa-base = "rv64i";
|
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicsr",
|
|
"zifencei", "zfh", "zba", "zbb", "sscofpmf";
|
|
|
|
cpu1_intc: interrupt-controller {
|
|
compatible = "riscv,cpu-intc";
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
};
|
|
};
|
|
|
|
cpu@2 {
|
|
compatible = "sifive,x280", "sifive,rocket0", "riscv";
|
|
device_type = "cpu";
|
|
reg = <2>;
|
|
mmu-type = "riscv,sv57";
|
|
riscv,isa-base = "rv64i";
|
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicsr",
|
|
"zifencei", "zfh", "zba", "zbb", "sscofpmf";
|
|
|
|
cpu2_intc: interrupt-controller {
|
|
compatible = "riscv,cpu-intc";
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
};
|
|
};
|
|
|
|
cpu@3 {
|
|
compatible = "sifive,x280", "sifive,rocket0", "riscv";
|
|
device_type = "cpu";
|
|
reg = <3>;
|
|
mmu-type = "riscv,sv57";
|
|
riscv,isa-base = "rv64i";
|
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicsr",
|
|
"zifencei", "zfh", "zba", "zbb", "sscofpmf";
|
|
|
|
cpu3_intc: interrupt-controller {
|
|
compatible = "riscv,cpu-intc";
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
};
|
|
};
|
|
};
|
|
|
|
soc {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
compatible = "simple-bus";
|
|
ranges;
|
|
|
|
clint0: timer@2000000 {
|
|
compatible = "tenstorrent,blackhole-clint", "sifive,clint0";
|
|
reg = <0x0 0x2000000 0x0 0x10000>;
|
|
interrupts-extended = <&cpu0_intc 0x3>, <&cpu0_intc 0x7>,
|
|
<&cpu1_intc 0x3>, <&cpu1_intc 0x7>,
|
|
<&cpu2_intc 0x3>, <&cpu2_intc 0x7>,
|
|
<&cpu3_intc 0x3>, <&cpu3_intc 0x7>;
|
|
};
|
|
|
|
plic0: interrupt-controller@c000000 {
|
|
compatible = "tenstorrent,blackhole-plic", "sifive,plic-1.0.0";
|
|
reg = <0x0 0x0c000000 0x0 0x04000000>;
|
|
interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>,
|
|
<&cpu1_intc 11>, <&cpu1_intc 9>,
|
|
<&cpu2_intc 11>, <&cpu2_intc 9>,
|
|
<&cpu3_intc 11>, <&cpu3_intc 9>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
#address-cells = <0>;
|
|
riscv,ndev = <128>;
|
|
};
|
|
};
|
|
};
|