Merge tag 'soc-newsoc-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull new SoC families update from Arnd Bergmann:
 "These three new families of SoC are split out into a separate branch
  because they touch multiple parts of the source tree and are better
  left separate for the initial merge.

   - Black Sesame Technologies C1200 is an automotive SoC using
     Cortex-A78 CPU cores

   - Anlogic dr1v90 (not to be confused with Amlogic) is an FPGA
     platform using a single nuclei ux900 RISC-V core

   - Tenstorrent Blackhole is a Neural Processing Unit using custom
     "Tensix" cores for computation offload managed by Linux running on
     SiFive X280 RISC-V cores.

  Support for all three is rather rudimentary at the moment and will get
  improved as device drivers are merged through other tree"

* tag 'soc-newsoc-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (24 commits)
  MAINTAINERS: add Black Sesame Technologies (BST) ARM SoC support
  arm64: defconfig: enable BST platform support
  arm64: dts: bst: add support for Black Sesame Technologies C1200 CDCU1.0 board
  arm64: Kconfig: add ARCH_BST for Black Sesame Technologies SoCs
  dt-bindings: arm: add Black Sesame Technologies (bst) SoC
  dt-bindings: vendor-prefixes: Add Black Sesame Technologies Co., Ltd.
  MAINTAINERS: Setup support for Anlogic tree
  riscv: defconfig: Enable Anlogic SoC
  riscv: dts: anlogic: Add Milianke MLKPAI FS01 board
  riscv: dts: Add initial Anlogic DR1V90 SoC device tree
  riscv: Add Anlogic SoC famly Kconfig support
  dt-bindings: serial: snps-dw-apb-uart: Add Anlogic DR1V90 uart
  dt-bindings: timer: Add Anlogic DR1V90 ACLINT MTIMER
  dt-bindings: riscv: Add Anlogic DR1V90
  dt-bindings: riscv: Add Nuclei UX900 compatibles
  dt-bindings: vendor-prefixes: Add Anlogic, Milianke and Nuclei
  riscv: defconfig: Enable Tenstorrent SoCs
  riscv: Kconfig.socs: Add ARCH_TENSTORRENT for Tenstorrent SoCs
  riscv: dts: Add Tenstorrent Blackhole SoC PCIe cards
  dt-bindings: interrupt-controller: Add Tenstorrent Blackhole compatible
  ...
This commit is contained in:
Linus Torvalds
2025-12-05 17:27:12 -08:00
25 changed files with 541 additions and 6 deletions

View File

@@ -0,0 +1,31 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/bst.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: BST platforms
description:
Black Sesame Technologies (BST) is a semiconductor company that produces
automotive-grade system-on-chips (SoCs) for intelligent driving, focusing
on computer vision and AI capabilities. The BST C1200 family includes SoCs
for ADAS (Advanced Driver Assistance Systems) and autonomous driving
applications.
maintainers:
- Ge Gordon <gordon.ge@bst.ai>
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: BST C1200 CDCU1.0 ADAS 4C2G board
items:
- const: bst,c1200-cdcu1.0-adas-4c2g
- const: bst,c1200
additionalProperties: true
...

View File

@@ -66,6 +66,7 @@ properties:
- spacemit,k1-plic - spacemit,k1-plic
- starfive,jh7100-plic - starfive,jh7100-plic
- starfive,jh7110-plic - starfive,jh7110-plic
- tenstorrent,blackhole-plic
- const: sifive,plic-1.0.0 - const: sifive,plic-1.0.0
- items: - items:
- enum: - enum:

View File

@@ -0,0 +1,27 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/riscv/anlogic.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Anlogic SoC-based boards
maintainers:
- Junhui Liu <junhui.liu@pigmoral.tech>
description:
Anlogic SoC-based boards
properties:
$nodename:
const: '/'
compatible:
oneOf:
- items:
- enum:
- milianke,mlkpai-fs01
- const: anlogic,dr1v90
additionalProperties: true
...

View File

@@ -48,6 +48,7 @@ properties:
- amd,mbv64 - amd,mbv64
- andestech,ax45mp - andestech,ax45mp
- canaan,k210 - canaan,k210
- nuclei,ux900
- sifive,bullet0 - sifive,bullet0
- sifive,e5 - sifive,e5
- sifive,e7 - sifive,e7
@@ -70,6 +71,7 @@ properties:
- enum: - enum:
- sifive,e51 - sifive,e51
- sifive,u54-mc - sifive,u54-mc
- sifive,x280
- const: sifive,rocket0 - const: sifive,rocket0
- const: riscv - const: riscv
- const: riscv # Simulator only - const: riscv # Simulator only

View File

@@ -0,0 +1,28 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/riscv/tenstorrent.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Tenstorrent SoC-based boards
maintainers:
- Drew Fustini <dfustini@oss.tenstorrent.com>
- Joel Stanley <jms@oss.tenstorrent.com>
description:
Tenstorrent SoC-based boards
properties:
$nodename:
const: '/'
compatible:
oneOf:
- description: Tenstorrent Blackhole PCIe card
items:
- const: tenstorrent,blackhole-card
- const: tenstorrent,blackhole
additionalProperties: true
...

View File

@@ -51,6 +51,7 @@ properties:
- const: renesas,rzn1-uart - const: renesas,rzn1-uart
- items: - items:
- enum: - enum:
- anlogic,dr1v90-uart
- brcm,bcm11351-dw-apb-uart - brcm,bcm11351-dw-apb-uart
- brcm,bcm21664-dw-apb-uart - brcm,bcm21664-dw-apb-uart
- rockchip,px30-uart - rockchip,px30-uart

View File

@@ -36,6 +36,7 @@ properties:
- starfive,jh7100-clint # StarFive JH7100 - starfive,jh7100-clint # StarFive JH7100
- starfive,jh7110-clint # StarFive JH7110 - starfive,jh7110-clint # StarFive JH7110
- starfive,jh8100-clint # StarFive JH8100 - starfive,jh8100-clint # StarFive JH8100
- tenstorrent,blackhole-clint # Tenstorrent Blackhole
- const: sifive,clint0 # SiFive CLINT v0 IP block - const: sifive,clint0 # SiFive CLINT v0 IP block
- items: - items:
- {} - {}

View File

@@ -4,18 +4,23 @@
$id: http://devicetree.org/schemas/timer/thead,c900-aclint-mtimer.yaml# $id: http://devicetree.org/schemas/timer/thead,c900-aclint-mtimer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Sophgo CLINT Timer title: ACLINT Machine-level Timer Device
maintainers: maintainers:
- Inochi Amaoto <inochiama@outlook.com> - Inochi Amaoto <inochiama@outlook.com>
properties: properties:
compatible: compatible:
items: oneOf:
- enum: - items:
- sophgo,sg2042-aclint-mtimer - enum:
- sophgo,sg2044-aclint-mtimer - sophgo,sg2042-aclint-mtimer
- const: thead,c900-aclint-mtimer - sophgo,sg2044-aclint-mtimer
- const: thead,c900-aclint-mtimer
- items:
- enum:
- anlogic,dr1v90-aclint-mtimer
- const: nuclei,ux900-aclint-mtimer
reg: reg:
items: items:

View File

@@ -134,6 +134,8 @@ patternProperties:
description: Anbernic description: Anbernic
"^andestech,.*": "^andestech,.*":
description: Andes Technology Corporation description: Andes Technology Corporation
"^anlogic,.*":
description: Shanghai Anlogic Infotech Co., Ltd.
"^anvo,.*": "^anvo,.*":
description: Anvo-Systems Dresden GmbH description: Anvo-Systems Dresden GmbH
"^aoly,.*": "^aoly,.*":
@@ -255,6 +257,8 @@ patternProperties:
description: Shanghai Broadmobi Communication Technology Co.,Ltd. description: Shanghai Broadmobi Communication Technology Co.,Ltd.
"^bsh,.*": "^bsh,.*":
description: BSH Hausgeraete GmbH description: BSH Hausgeraete GmbH
"^bst,.*":
description: Black Sesame Technologies Co., Ltd.
"^bticino,.*": "^bticino,.*":
description: Bticino International description: Bticino International
"^buffalo,.*": "^buffalo,.*":
@@ -1033,6 +1037,8 @@ patternProperties:
description: MikroElektronika d.o.o. description: MikroElektronika d.o.o.
"^mikrotik,.*": "^mikrotik,.*":
description: MikroTik description: MikroTik
"^milianke,.*":
description: Changzhou Milianke Electronic Technology Co., Ltd
"^milkv,.*": "^milkv,.*":
description: MilkV Technology Co., Ltd description: MilkV Technology Co., Ltd
"^miniand,.*": "^miniand,.*":
@@ -1150,6 +1156,8 @@ patternProperties:
description: Novatek description: Novatek
"^novtech,.*": "^novtech,.*":
description: NovTech, Inc. description: NovTech, Inc.
"^nuclei,.*":
description: Nuclei System Technology
"^numonyx,.*": "^numonyx,.*":
description: Numonyx (deprecated, use micron) description: Numonyx (deprecated, use micron)
deprecated: true deprecated: true
@@ -1622,6 +1630,8 @@ patternProperties:
description: Tempo Semiconductor description: Tempo Semiconductor
"^tenda,.*": "^tenda,.*":
description: Shenzhen Tenda Technology Co., Ltd. description: Shenzhen Tenda Technology Co., Ltd.
"^tenstorrent,.*":
description: Tenstorrent AI ULC
"^terasic,.*": "^terasic,.*":
description: Terasic Inc. description: Terasic Inc.
"^tesla,.*": "^tesla,.*":

View File

@@ -2575,6 +2575,14 @@ S: Maintained
F: Documentation/devicetree/bindings/arm/blaize.yaml F: Documentation/devicetree/bindings/arm/blaize.yaml
F: arch/arm64/boot/dts/blaize/ F: arch/arm64/boot/dts/blaize/
ARM/BST SOC SUPPORT
M: Ge Gordon <gordon.ge@bst.ai>
R: BST Linux Kernel Upstream Group <bst-upstream@bstai.top>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Supported
F: Documentation/devicetree/bindings/arm/bst.yaml
F: arch/arm64/boot/dts/bst/
ARM/CALXEDA HIGHBANK ARCHITECTURE ARM/CALXEDA HIGHBANK ARCHITECTURE
M: Andre Przywara <andre.przywara@arm.com> M: Andre Przywara <andre.przywara@arm.com>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@ -22275,6 +22283,14 @@ F: Documentation/devicetree/bindings/riscv/andes.yaml
F: Documentation/devicetree/bindings/timer/andestech,plmt0.yaml F: Documentation/devicetree/bindings/timer/andestech,plmt0.yaml
F: arch/riscv/boot/dts/andes/ F: arch/riscv/boot/dts/andes/
RISC-V ANLOGIC SoC SUPPORT
M: Conor Dooley <conor@kernel.org>
T: git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
L: linux-riscv@lists.infradead.org
S: Odd Fixes
F: Documentation/devicetree/bindings/riscv/anlogic.yaml
F: arch/riscv/boot/dts/anlogic/
RISC-V ARCHITECTURE RISC-V ARCHITECTURE
M: Paul Walmsley <pjw@kernel.org> M: Paul Walmsley <pjw@kernel.org>
M: Palmer Dabbelt <palmer@dabbelt.com> M: Palmer Dabbelt <palmer@dabbelt.com>
@@ -22376,6 +22392,15 @@ F: arch/riscv/boot/dts/spacemit/
N: spacemit N: spacemit
K: spacemit K: spacemit
RISC-V TENSTORRENT SoC SUPPORT
M: Drew Fustini <dfustini@oss.tenstorrent.com>
M: Joel Stanley <jms@oss.tenstorrent.com>
L: linux-riscv@lists.infradead.org
S: Maintained
T: git https://github.com/tenstorrent/linux.git
F: Documentation/devicetree/bindings/riscv/tenstorrent.yaml
F: arch/riscv/boot/dts/tenstorrent/
RISC-V THEAD SoC SUPPORT RISC-V THEAD SoC SUPPORT
M: Drew Fustini <fustini@kernel.org> M: Drew Fustini <fustini@kernel.org>
M: Guo Ren <guoren@kernel.org> M: Guo Ren <guoren@kernel.org>

View File

@@ -119,6 +119,14 @@ config ARCH_BLAIZE
help help
This enables support for the Blaize SoC family This enables support for the Blaize SoC family
config ARCH_BST
bool "Black Sesame Technologies SoC Family"
help
This enables support for Black Sesame Technologies (BST) SoC family.
BST produces automotive-grade system-on-chips for intelligent driving,
focusing on computer vision and AI capabilities. The BST C1200 family
includes SoCs for ADAS and autonomous driving applications.
config ARCH_CIX config ARCH_CIX
bool "Cixtech SoC family" bool "Cixtech SoC family"
help help

View File

@@ -13,6 +13,7 @@ subdir-y += axiado
subdir-y += bitmain subdir-y += bitmain
subdir-y += blaize subdir-y += blaize
subdir-y += broadcom subdir-y += broadcom
subdir-y += bst
subdir-y += cavium subdir-y += cavium
subdir-y += cix subdir-y += cix
subdir-y += exynos subdir-y += exynos

View File

@@ -0,0 +1,2 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_BST) += bstc1200-cdcu1.0-adas_4c2g.dtb

View File

@@ -0,0 +1,24 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bstc1200.dtsi"
/ {
model = "BST C1200-96 CDCU1.0 4C2G";
compatible = "bst,c1200-cdcu1.0-adas-4c2g", "bst,c1200";
chosen {
stdout-path = "serial0:115200n8";
};
memory@810000000 {
device_type = "memory";
reg = <0x8 0x10000000 0x0 0x30000000>,
<0x8 0xc0000000 0x1 0x0>,
<0xc 0x00000000 0x0 0x40000000>;
};
};
&uart0 {
status = "okay";
};

View File

@@ -0,0 +1,97 @@
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
compatible = "bst,c1200";
#address-cells = <2>;
#size-cells = <2>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a78";
reg = <0x0>;
enable-method = "psci";
next-level-cache = <&l2_cache>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a78";
reg = <0x100>;
enable-method = "psci";
next-level-cache = <&l2_cache>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a78";
reg = <0x200>;
enable-method = "psci";
next-level-cache = <&l2_cache>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a78";
reg = <0x300>;
enable-method = "psci";
next-level-cache = <&l2_cache>;
};
l2_cache: l2-cache {
compatible = "cache";
cache-level = <2>;
cache-unified;
};
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
soc {
compatible = "simple-bus";
ranges;
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
uart0: serial@20008000 {
compatible = "snps,dw-apb-uart";
reg = <0x0 0x20008000 0x0 0x1000>;
clock-frequency = <25000000>;
interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
status = "disabled";
};
gic: interrupt-controller@32800000 {
compatible = "arm,gic-v3";
reg = <0x0 0x32800000 0x0 0x10000>,
<0x0 0x32880000 0x0 0x100000>;
ranges;
#address-cells = <2>;
#size-cells = <2>;
#interrupt-cells = <3>;
interrupt-controller;
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
};
};
timer {
compatible = "arm,armv8-timer";
always-on;
interrupt-parent = <&gic>;
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>;
};
};

View File

@@ -47,6 +47,7 @@ CONFIG_ARCH_BCMBCA=y
CONFIG_ARCH_BRCMSTB=y CONFIG_ARCH_BRCMSTB=y
CONFIG_ARCH_BERLIN=y CONFIG_ARCH_BERLIN=y
CONFIG_ARCH_BLAIZE=y CONFIG_ARCH_BLAIZE=y
CONFIG_ARCH_BST=y
CONFIG_ARCH_CIX=y CONFIG_ARCH_CIX=y
CONFIG_ARCH_EXYNOS=y CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_SPARX5=y CONFIG_ARCH_SPARX5=y

View File

@@ -7,6 +7,11 @@ config ARCH_ANDES
help help
This enables support for Andes SoC platform hardware. This enables support for Andes SoC platform hardware.
config ARCH_ANLOGIC
bool "Anlogic SoCs"
help
This enables support for Anlogic SoC platform hardware.
config ARCH_ESWIN config ARCH_ESWIN
bool "ESWIN SoCs" bool "ESWIN SoCs"
help help
@@ -63,6 +68,14 @@ config ARCH_SUNXI
This enables support for Allwinner sun20i platform hardware, This enables support for Allwinner sun20i platform hardware,
including boards based on the D1 and D1s SoCs. including boards based on the D1 and D1s SoCs.
config ARCH_TENSTORRENT
bool "Tenstorrent SoCs"
help
This enables support for Tenstorrent SoC platforms.
Current support is for Blackhole P100 and P150 PCIe cards.
The Blackhole SoC contains four RISC-V CPU tiles each
consisting of 4x SiFive X280 cores.
config ARCH_THEAD config ARCH_THEAD
bool "T-HEAD RISC-V SoCs" bool "T-HEAD RISC-V SoCs"
depends on MMU && !XIP_KERNEL depends on MMU && !XIP_KERNEL

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
subdir-y += allwinner subdir-y += allwinner
subdir-y += andes subdir-y += andes
subdir-y += anlogic
subdir-y += canaan subdir-y += canaan
subdir-y += eswin subdir-y += eswin
subdir-y += microchip subdir-y += microchip
@@ -9,4 +10,5 @@ subdir-y += sifive
subdir-y += sophgo subdir-y += sophgo
subdir-y += spacemit subdir-y += spacemit
subdir-y += starfive subdir-y += starfive
subdir-y += tenstorrent
subdir-y += thead subdir-y += thead

View File

@@ -0,0 +1,2 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_ANLOGIC) += dr1v90-mlkpai-fs01.dtb

View File

@@ -0,0 +1,28 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2025 Junhui Liu <junhui.liu@pigmoral.tech>
*/
#include "dr1v90.dtsi"
/ {
model = "Milianke MLKPAI-FS01";
compatible = "milianke,mlkpai-fs01", "anlogic,dr1v90";
aliases {
serial0 = &uart1;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x20000000>;
};
};
&uart1 {
status = "okay";
};

View File

@@ -0,0 +1,100 @@
// SPDX-License-Identifier: GPL-2.0 OR MIT
/*
* Copyright (C) 2025 Junhui Liu <junhui.liu@pigmoral.tech>
*/
/dts-v1/;
/ {
#address-cells = <2>;
#size-cells = <2>;
model = "Anlogic DR1V90";
compatible = "anlogic,dr1v90";
cpus {
#address-cells = <1>;
#size-cells = <0>;
timebase-frequency = <800000000>;
cpu@0 {
compatible = "nuclei,ux900", "riscv";
d-cache-block-size = <64>;
d-cache-sets = <256>;
d-cache-size = <32768>;
device_type = "cpu";
i-cache-block-size = <64>;
i-cache-sets = <256>;
i-cache-size = <32768>;
mmu-type = "riscv,sv39";
reg = <0>;
riscv,isa-base = "rv64i";
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zba", "zbb", "zbc",
"zbkc", "zbs", "zicntr", "zicsr", "zifencei",
"zihintpause", "zihpm";
cpu0_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
#interrupt-cells = <1>;
interrupt-controller;
};
};
};
soc {
compatible = "simple-bus";
interrupt-parent = <&plic>;
#address-cells = <2>;
#size-cells = <2>;
ranges;
aclint_mswi: interrupt-controller@68031000 {
compatible = "anlogic,dr1v90-aclint-mswi", "nuclei,ux900-aclint-mswi";
reg = <0x0 0x68031000 0x0 0x4000>;
interrupts-extended = <&cpu0_intc 3>;
};
aclint_mtimer: timer@68035000 {
compatible = "anlogic,dr1v90-aclint-mtimer", "nuclei,ux900-aclint-mtimer";
reg = <0x0 0x68035000 0x0 0x8000>;
reg-names = "mtimecmp";
interrupts-extended = <&cpu0_intc 7>;
};
aclint_sswi: interrupt-controller@6803d000 {
compatible = "anlogic,dr1v90-aclint-sswi", "nuclei,ux900-aclint-sswi";
reg = <0x0 0x6803d000 0x0 0x3000>;
#interrupt-cells = <0>;
interrupt-controller;
interrupts-extended = <&cpu0_intc 1>;
};
plic: interrupt-controller@6c000000 {
compatible = "anlogic,dr1v90-plic", "sifive,plic-1.0.0";
reg = <0x0 0x6c000000 0x0 0x4000000>;
#address-cells = <0>;
#interrupt-cells = <1>;
interrupt-controller;
interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
riscv,ndev = <150>;
};
uart0: serial@f8400000 {
compatible = "anlogic,dr1v90-uart", "snps,dw-apb-uart";
reg = <0x0 0xf8400000 0x0 0x1000>;
clock-frequency = <50000000>;
interrupts = <71>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
};
uart1: serial@f8401000 {
compatible = "anlogic,dr1v90-uart", "snps,dw-apb-uart";
reg = <0x0 0xf8401000 0x0 0x1000>;
clock-frequency = <50000000>;
interrupts = <72>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
};
};
};

View File

@@ -0,0 +1,2 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_TENSTORRENT) += blackhole-card.dtb

View File

@@ -0,0 +1,14 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/dts-v1/;
#include "blackhole.dtsi"
/ {
model = "Tenstorrent Blackhole";
compatible = "tenstorrent,blackhole-card", "tenstorrent,blackhole";
memory@400030000000 {
device_type = "memory";
reg = <0x4000 0x30000000 0x1 0x00000000>;
};
};

View File

@@ -0,0 +1,108 @@
// 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>;
};
};
};

View File

@@ -23,12 +23,14 @@ CONFIG_CHECKPOINT_RESTORE=y
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_PROFILING=y CONFIG_PROFILING=y
CONFIG_ARCH_ANDES=y CONFIG_ARCH_ANDES=y
CONFIG_ARCH_ANLOGIC=y
CONFIG_ARCH_MICROCHIP=y CONFIG_ARCH_MICROCHIP=y
CONFIG_ARCH_SIFIVE=y CONFIG_ARCH_SIFIVE=y
CONFIG_ARCH_SOPHGO=y CONFIG_ARCH_SOPHGO=y
CONFIG_ARCH_SPACEMIT=y CONFIG_ARCH_SPACEMIT=y
CONFIG_SOC_STARFIVE=y CONFIG_SOC_STARFIVE=y
CONFIG_ARCH_SUNXI=y CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_TENSTORRENT=y
CONFIG_ARCH_THEAD=y CONFIG_ARCH_THEAD=y
CONFIG_ARCH_VIRT=y CONFIG_ARCH_VIRT=y
CONFIG_ARCH_CANAAN=y CONFIG_ARCH_CANAAN=y