Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'bst/newsoc' into soc/newsoc

This patch series introduces platform support for Black Sesame Technologies
(BST) C1200 SoC and CDCU1.0 ADAS 4C2G board. BST is a leading automotive-grade
computing SoC provider focusing on intelligent driving, computer vision, and AI
capabilities for ADAS and autonomous driving applications. You can find more
information about the SoC and related boards at: https://bst.ai

This series provides the foundational platform enablement including device tree
bindings, SoC and board device trees, platform configuration, and maintainer
information. MMC/SDHCI driver support will be submitted in a separate patch series.

* bst/newsoc:
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.

Link: https://lore.kernel.org/all/20251016120558.2390960-1-yangzh0906@thundersoft.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+174
+31
Documentation/devicetree/bindings/arm/bst.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/bst.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: BST platforms 8 + 9 + description: 10 + Black Sesame Technologies (BST) is a semiconductor company that produces 11 + automotive-grade system-on-chips (SoCs) for intelligent driving, focusing 12 + on computer vision and AI capabilities. The BST C1200 family includes SoCs 13 + for ADAS (Advanced Driver Assistance Systems) and autonomous driving 14 + applications. 15 + 16 + maintainers: 17 + - Ge Gordon <gordon.ge@bst.ai> 18 + 19 + properties: 20 + $nodename: 21 + const: '/' 22 + compatible: 23 + oneOf: 24 + - description: BST C1200 CDCU1.0 ADAS 4C2G board 25 + items: 26 + - const: bst,c1200-cdcu1.0-adas-4c2g 27 + - const: bst,c1200 28 + 29 + additionalProperties: true 30 + 31 + ...
+2
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 251 251 description: Shanghai Broadmobi Communication Technology Co.,Ltd. 252 252 "^bsh,.*": 253 253 description: BSH Hausgeraete GmbH 254 + "^bst,.*": 255 + description: Black Sesame Technologies Co., Ltd. 254 256 "^bticino,.*": 255 257 description: Bticino International 256 258 "^buffalo,.*":
+8
MAINTAINERS
··· 2547 2547 F: Documentation/devicetree/bindings/arm/blaize.yaml 2548 2548 F: arch/arm64/boot/dts/blaize/ 2549 2549 2550 + ARM/BST SOC SUPPORT 2551 + M: Ge Gordon <gordon.ge@bst.ai> 2552 + R: BST Linux Kernel Upstream Group <bst-upstream@bstai.top> 2553 + L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 2554 + S: Supported 2555 + F: Documentation/devicetree/bindings/arm/bst.yaml 2556 + F: arch/arm64/boot/dts/bst/ 2557 + 2550 2558 ARM/CALXEDA HIGHBANK ARCHITECTURE 2551 2559 M: Andre Przywara <andre.przywara@arm.com> 2552 2560 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
+8
arch/arm64/Kconfig.platforms
··· 119 119 help 120 120 This enables support for the Blaize SoC family 121 121 122 + config ARCH_BST 123 + bool "Black Sesame Technologies SoC Family" 124 + help 125 + This enables support for Black Sesame Technologies (BST) SoC family. 126 + BST produces automotive-grade system-on-chips for intelligent driving, 127 + focusing on computer vision and AI capabilities. The BST C1200 family 128 + includes SoCs for ADAS and autonomous driving applications. 129 + 122 130 config ARCH_CIX 123 131 bool "Cixtech SoC family" 124 132 help
+1
arch/arm64/boot/dts/Makefile
··· 13 13 subdir-y += bitmain 14 14 subdir-y += blaize 15 15 subdir-y += broadcom 16 + subdir-y += bst 16 17 subdir-y += cavium 17 18 subdir-y += cix 18 19 subdir-y += exynos
+2
arch/arm64/boot/dts/bst/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + dtb-$(CONFIG_ARCH_BST) += bstc1200-cdcu1.0-adas_4c2g.dtb
+24
arch/arm64/boot/dts/bst/bstc1200-cdcu1.0-adas_4c2g.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + /dts-v1/; 3 + 4 + #include "bstc1200.dtsi" 5 + 6 + / { 7 + model = "BST C1200-96 CDCU1.0 4C2G"; 8 + compatible = "bst,c1200-cdcu1.0-adas-4c2g", "bst,c1200"; 9 + 10 + chosen { 11 + stdout-path = "serial0:115200n8"; 12 + }; 13 + 14 + memory@810000000 { 15 + device_type = "memory"; 16 + reg = <0x8 0x10000000 0x0 0x30000000>, 17 + <0x8 0xc0000000 0x1 0x0>, 18 + <0xc 0x00000000 0x0 0x40000000>; 19 + }; 20 + }; 21 + 22 + &uart0 { 23 + status = "okay"; 24 + };
+97
arch/arm64/boot/dts/bst/bstc1200.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + #include <dt-bindings/interrupt-controller/arm-gic.h> 3 + #include <dt-bindings/interrupt-controller/irq.h> 4 + 5 + / { 6 + compatible = "bst,c1200"; 7 + #address-cells = <2>; 8 + #size-cells = <2>; 9 + 10 + cpus { 11 + #address-cells = <1>; 12 + #size-cells = <0>; 13 + 14 + cpu@0 { 15 + device_type = "cpu"; 16 + compatible = "arm,cortex-a78"; 17 + reg = <0x0>; 18 + enable-method = "psci"; 19 + next-level-cache = <&l2_cache>; 20 + }; 21 + 22 + cpu@1 { 23 + device_type = "cpu"; 24 + compatible = "arm,cortex-a78"; 25 + reg = <0x100>; 26 + enable-method = "psci"; 27 + next-level-cache = <&l2_cache>; 28 + }; 29 + 30 + cpu@2 { 31 + device_type = "cpu"; 32 + compatible = "arm,cortex-a78"; 33 + reg = <0x200>; 34 + enable-method = "psci"; 35 + next-level-cache = <&l2_cache>; 36 + }; 37 + 38 + cpu@3 { 39 + device_type = "cpu"; 40 + compatible = "arm,cortex-a78"; 41 + reg = <0x300>; 42 + enable-method = "psci"; 43 + next-level-cache = <&l2_cache>; 44 + }; 45 + 46 + l2_cache: l2-cache { 47 + compatible = "cache"; 48 + cache-level = <2>; 49 + cache-unified; 50 + }; 51 + }; 52 + 53 + psci { 54 + compatible = "arm,psci-1.0"; 55 + method = "smc"; 56 + }; 57 + 58 + soc { 59 + compatible = "simple-bus"; 60 + ranges; 61 + #address-cells = <2>; 62 + #size-cells = <2>; 63 + interrupt-parent = <&gic>; 64 + 65 + uart0: serial@20008000 { 66 + compatible = "snps,dw-apb-uart"; 67 + reg = <0x0 0x20008000 0x0 0x1000>; 68 + clock-frequency = <25000000>; 69 + interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>; 70 + reg-shift = <2>; 71 + reg-io-width = <4>; 72 + status = "disabled"; 73 + }; 74 + 75 + gic: interrupt-controller@32800000 { 76 + compatible = "arm,gic-v3"; 77 + reg = <0x0 0x32800000 0x0 0x10000>, 78 + <0x0 0x32880000 0x0 0x100000>; 79 + ranges; 80 + #address-cells = <2>; 81 + #size-cells = <2>; 82 + #interrupt-cells = <3>; 83 + interrupt-controller; 84 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>; 85 + }; 86 + }; 87 + 88 + timer { 89 + compatible = "arm,armv8-timer"; 90 + always-on; 91 + interrupt-parent = <&gic>; 92 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 93 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 94 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 95 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 96 + }; 97 + };
+1
arch/arm64/configs/defconfig
··· 47 47 CONFIG_ARCH_BRCMSTB=y 48 48 CONFIG_ARCH_BERLIN=y 49 49 CONFIG_ARCH_BLAIZE=y 50 + CONFIG_ARCH_BST=y 50 51 CONFIG_ARCH_CIX=y 51 52 CONFIG_ARCH_EXYNOS=y 52 53 CONFIG_ARCH_SPARX5=y