mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
soc: new SoC support for 6.14
Two new SoC families are added here, with devicetree files and a little bit of infrastructure to allow booting: - Blaize BLZP1600 is an AI chip using custom GSP (Graph Streaming Processor) cores for computation, and two small Cortex-A53 cores that run the operating system. - SpacemiT K1 is a 64-bit RISC-V chip, using eight custom RVA22 compatible CPU cores with vector support. Also marketed at AI applications, it has a much slower NPU compared to BLZP1600, but in turn focuses on the CPU performance -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmeSd7cACgkQYKtH/8kJ UienxxAAoUMAWex/k5gWfg3DdvDrleXydjYzIm6DBIad1kxHYy/gvEuQAgV9vxqb tQ763NKRLekmwv+CX+S47PjrMHgqqwtch5If8ixd50gYSZPukJmuCTkthMu1qBb9 /zi0LXg3cViPQBAY0MwCQMzukRHsqmBzaUSle6bM1yDHhHAmcz88Iqs/LttJOnYk M/+ybxYoUdVmPI+Nt3e8hxlecfU2oM0S1hoStvdsA0fpuLfEBF8WpF7DnkSphT10 JqVysB3FTF0PYXyBodcuh37iCCObAFVAUT/ZvKO3+Qo/rI2IseP8lSeAV84JP/5S w4MqpGhFecICBEWJ9h0FnbSI2NyON8uz23R+va6YAtTxuPL2Loq4HwvxXh5H5imC sxZ0SEnkwFQ7DJ10nV00FXlmKZ7+Ax0WLoboNHWYxdAfqhgcZ8q8gi/+WTETTBog jnTnWjscuEA5QTNfOP0AqUtVbWQOj09wLsiceJc8G5jpbe9WaZJy1yzXaCNu2hZV 2x+2UT31Y6G2Poxee8Ti4u1ljieJh5BmD1Ts81P8EpAC0JsVyJ3HtouYeBHcBPoj HXmdGDPN8bS0Ugu7iFu3GO+TPcBzUw1ZND8L3QbBesb/oFK0455ARkVXO2nazP4p 4s/iGWbGAKIyKPOdYGaiSXmbXurx99pOVY6G8ccqkNf+17MfTgE= =clzA -----END PGP SIGNATURE----- Merge tag 'soc-new-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull new SoC support from Arnd Bergmann: "Two new SoC families are added here, with devicetree files and a little bit of infrastructure to allow booting: - Blaize BLZP1600 is an AI chip using custom GSP (Graph Streaming Processor) cores for computation, and two small Cortex-A53 cores that run the operating system. - SpacemiT K1 is a 64-bit RISC-V chip, using eight custom RVA22 compatible CPU cores with vector support. Also marketed at AI applications, it has a much slower NPU compared to BLZP1600, but in turn focuses on the CPU performance" * tag 'soc-new-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: riscv: dts: spacemit: move aliases to board dts riscv: dts: spacemit: add pinctrl property to uart0 in BPI-F3 riscv: defconfig: enable SpacemiT SoC riscv: dts: spacemit: add Banana Pi BPI-F3 board device tree riscv: dts: add initial SpacemiT K1 SoC device tree riscv: add SpacemiT SoC family Kconfig support dt-bindings: serial: 8250: Add SpacemiT K1 uart compatible dt-bindings: interrupt-controller: Add SpacemiT K1 PLIC dt-bindings: timer: Add SpacemiT K1 CLINT dt-bindings: riscv: add SpacemiT K1 bindings dt-bindings: riscv: Add SpacemiT X60 compatibles MAINTAINERS: setup support for SpacemiT SoC tree MAINTAINER: Add entry for Blaize SoC arm64: defconfig: Enable Blaize BLZP1600 platform arm64: dts: Add initial support for Blaize BLZP1600 CB2 arm64: Add Blaize BLZP1600 SoC family dt-bindings: arm: blaize: Add Blaize BLZP1600 SoC dt-bindings: Add Blaize vendor prefix
This commit is contained in:
commit
4e517a6acd
40
Documentation/devicetree/bindings/arm/blaize.yaml
Normal file
40
Documentation/devicetree/bindings/arm/blaize.yaml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/arm/blaize.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Blaize Platforms
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- James Cowgill <james.cowgill@blaize.com>
|
||||||
|
- Matt Redfearn <matt.redfearn@blaize.com>
|
||||||
|
- Neil Jones <neil.jones@blaize.com>
|
||||||
|
- Nikolaos Pasaloukos <nikolaos.pasaloukos@blaize.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
Blaize Platforms using SoCs designed by Blaize Inc.
|
||||||
|
|
||||||
|
The products based on the BLZP1600 SoC:
|
||||||
|
|
||||||
|
- BLZP1600-SoM: SoM (System on Module)
|
||||||
|
- BLZP1600-CB2: Development board CB2 based on BLZP1600-SoM
|
||||||
|
|
||||||
|
BLZP1600 SoC integrates a dual core ARM Cortex A53 cluster
|
||||||
|
and a Blaize Graph Streaming Processor for AI and ML workloads,
|
||||||
|
plus a suite of connectivity and other peripherals.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
const: '/'
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- description: Blaize BLZP1600 based boards
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- blaize,blzp1600-cb2
|
||||||
|
- const: blaize,blzp1600
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
...
|
|
@ -59,6 +59,7 @@ properties:
|
||||||
- enum:
|
- enum:
|
||||||
- canaan,k210-plic
|
- canaan,k210-plic
|
||||||
- sifive,fu540-c000-plic
|
- sifive,fu540-c000-plic
|
||||||
|
- spacemit,k1-plic
|
||||||
- starfive,jh7100-plic
|
- starfive,jh7100-plic
|
||||||
- starfive,jh7110-plic
|
- starfive,jh7110-plic
|
||||||
- const: sifive,plic-1.0.0
|
- const: sifive,plic-1.0.0
|
||||||
|
|
|
@ -46,6 +46,7 @@ properties:
|
||||||
- sifive,u7
|
- sifive,u7
|
||||||
- sifive,u74
|
- sifive,u74
|
||||||
- sifive,u74-mc
|
- sifive,u74-mc
|
||||||
|
- spacemit,x60
|
||||||
- thead,c906
|
- thead,c906
|
||||||
- thead,c908
|
- thead,c908
|
||||||
- thead,c910
|
- thead,c910
|
||||||
|
|
28
Documentation/devicetree/bindings/riscv/spacemit.yaml
Normal file
28
Documentation/devicetree/bindings/riscv/spacemit.yaml
Normal 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/spacemit.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: SpacemiT SoC-based boards
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Yangyu Chen <cyy@cyyself.name>
|
||||||
|
- Yixun Lan <dlan@gentoo.org>
|
||||||
|
|
||||||
|
description:
|
||||||
|
SpacemiT SoC-based boards
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
const: '/'
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- items:
|
||||||
|
- enum:
|
||||||
|
- bananapi,bpi-f3
|
||||||
|
- const: spacemit,k1
|
||||||
|
|
||||||
|
additionalProperties: true
|
||||||
|
|
||||||
|
...
|
|
@ -111,7 +111,9 @@ properties:
|
||||||
- mediatek,mt7623-btif
|
- mediatek,mt7623-btif
|
||||||
- const: mediatek,mtk-btif
|
- const: mediatek,mtk-btif
|
||||||
- items:
|
- items:
|
||||||
- const: mrvl,mmp-uart
|
- enum:
|
||||||
|
- mrvl,mmp-uart
|
||||||
|
- spacemit,k1-uart
|
||||||
- const: intel,xscale-uart
|
- const: intel,xscale-uart
|
||||||
- items:
|
- items:
|
||||||
- enum:
|
- enum:
|
||||||
|
|
|
@ -31,6 +31,7 @@ properties:
|
||||||
- enum:
|
- enum:
|
||||||
- canaan,k210-clint # Canaan Kendryte K210
|
- canaan,k210-clint # Canaan Kendryte K210
|
||||||
- sifive,fu540-c000-clint # SiFive FU540
|
- sifive,fu540-c000-clint # SiFive FU540
|
||||||
|
- spacemit,k1-clint # SpacemiT K1
|
||||||
- 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
|
||||||
|
|
|
@ -218,6 +218,8 @@ patternProperties:
|
||||||
description: Shenzhen BigTree Tech Co., LTD
|
description: Shenzhen BigTree Tech Co., LTD
|
||||||
"^bitmain,.*":
|
"^bitmain,.*":
|
||||||
description: Bitmain Technologies
|
description: Bitmain Technologies
|
||||||
|
"^blaize,.*":
|
||||||
|
description: Blaize, Inc.
|
||||||
"^blutek,.*":
|
"^blutek,.*":
|
||||||
description: BluTek Power
|
description: BluTek Power
|
||||||
"^boe,.*":
|
"^boe,.*":
|
||||||
|
|
18
MAINTAINERS
18
MAINTAINERS
|
@ -2309,6 +2309,15 @@ F: arch/arm64/boot/dts/bitmain/
|
||||||
F: drivers/clk/clk-bm1880.c
|
F: drivers/clk/clk-bm1880.c
|
||||||
F: drivers/pinctrl/pinctrl-bm1880.c
|
F: drivers/pinctrl/pinctrl-bm1880.c
|
||||||
|
|
||||||
|
ARM/BLAIZE ARCHITECTURE
|
||||||
|
M: James Cowgill <james.cowgill@blaize.com>
|
||||||
|
M: Matt Redfearn <matt.redfearn@blaize.com>
|
||||||
|
M: Neil Jones <neil.jones@blaize.com>
|
||||||
|
M: Nikolaos Pasaloukos <nikolaos.pasaloukos@blaize.com>
|
||||||
|
S: Maintained
|
||||||
|
F: Documentation/devicetree/bindings/arm/blaize.yaml
|
||||||
|
F: arch/arm64/boot/dts/blaize/
|
||||||
|
|
||||||
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)
|
||||||
|
@ -20274,6 +20283,15 @@ F: drivers/perf/riscv_pmu.c
|
||||||
F: drivers/perf/riscv_pmu_legacy.c
|
F: drivers/perf/riscv_pmu_legacy.c
|
||||||
F: drivers/perf/riscv_pmu_sbi.c
|
F: drivers/perf/riscv_pmu_sbi.c
|
||||||
|
|
||||||
|
RISC-V SPACEMIT SoC Support
|
||||||
|
M: Yixun Lan <dlan@gentoo.org>
|
||||||
|
L: linux-riscv@lists.infradead.org
|
||||||
|
S: Maintained
|
||||||
|
T: git https://github.com/spacemit-com/linux
|
||||||
|
F: arch/riscv/boot/dts/spacemit/
|
||||||
|
N: spacemit
|
||||||
|
K: spacemit
|
||||||
|
|
||||||
RISC-V THEAD SoC SUPPORT
|
RISC-V THEAD SoC SUPPORT
|
||||||
M: Drew Fustini <drew@pdp7.com>
|
M: Drew Fustini <drew@pdp7.com>
|
||||||
M: Guo Ren <guoren@kernel.org>
|
M: Guo Ren <guoren@kernel.org>
|
||||||
|
|
|
@ -101,6 +101,11 @@ config ARCH_BITMAIN
|
||||||
help
|
help
|
||||||
This enables support for the Bitmain SoC Family.
|
This enables support for the Bitmain SoC Family.
|
||||||
|
|
||||||
|
config ARCH_BLAIZE
|
||||||
|
bool "Blaize SoC Platforms"
|
||||||
|
help
|
||||||
|
This enables support for the Blaize SoC family
|
||||||
|
|
||||||
config ARCH_EXYNOS
|
config ARCH_EXYNOS
|
||||||
bool "Samsung Exynos SoC family"
|
bool "Samsung Exynos SoC family"
|
||||||
select COMMON_CLK_SAMSUNG
|
select COMMON_CLK_SAMSUNG
|
||||||
|
|
|
@ -10,6 +10,7 @@ subdir-y += apm
|
||||||
subdir-y += apple
|
subdir-y += apple
|
||||||
subdir-y += arm
|
subdir-y += arm
|
||||||
subdir-y += bitmain
|
subdir-y += bitmain
|
||||||
|
subdir-y += blaize
|
||||||
subdir-y += broadcom
|
subdir-y += broadcom
|
||||||
subdir-y += cavium
|
subdir-y += cavium
|
||||||
subdir-y += exynos
|
subdir-y += exynos
|
||||||
|
|
2
arch/arm64/boot/dts/blaize/Makefile
Normal file
2
arch/arm64/boot/dts/blaize/Makefile
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
dtb-$(CONFIG_ARCH_BLAIZE) += blaize-blzp1600-cb2.dtb
|
83
arch/arm64/boot/dts/blaize/blaize-blzp1600-cb2.dts
Normal file
83
arch/arm64/boot/dts/blaize/blaize-blzp1600-cb2.dts
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2024 Blaize, Inc. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "blaize-blzp1600-som.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Blaize BLZP1600 SoM1600P CB2 Development Board";
|
||||||
|
|
||||||
|
compatible = "blaize,blzp1600-cb2", "blaize,blzp1600";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c3 {
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
gpio_expander: gpio@74 {
|
||||||
|
compatible = "ti,tca9539";
|
||||||
|
reg = <0x74>;
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-line-names = "RSP_PIN_7", /* GPIO_0 */
|
||||||
|
"RSP_PIN_11", /* GPIO_1 */
|
||||||
|
"RSP_PIN_13", /* GPIO_2 */
|
||||||
|
"RSP_PIN_15", /* GPIO_3 */
|
||||||
|
"RSP_PIN_27", /* GPIO_4 */
|
||||||
|
"RSP_PIN_29", /* GPIO_5 */
|
||||||
|
"RSP_PIN_31", /* GPIO_6 */
|
||||||
|
"RSP_PIN_33", /* GPIO_7 */
|
||||||
|
"RSP_PIN_37", /* GPIO_8 */
|
||||||
|
"RSP_PIN_16", /* GPIO_9 */
|
||||||
|
"RSP_PIN_18", /* GPIO_10 */
|
||||||
|
"RSP_PIN_22", /* GPIO_11 */
|
||||||
|
"RSP_PIN_28", /* GPIO_12 */
|
||||||
|
"RSP_PIN_32", /* GPIO_13 */
|
||||||
|
"RSP_PIN_36", /* GPIO_14 */
|
||||||
|
"TP31"; /* GPIO_15 */
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_expander_m2: gpio@75 {
|
||||||
|
compatible = "ti,tca9539";
|
||||||
|
reg = <0x75>;
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-line-names = "M2_W_DIS1_N", /* GPIO_0 */
|
||||||
|
"M2_W_DIS2_N", /* GPIO_1 */
|
||||||
|
"M2_UART_WAKE_N", /* GPIO_2 */
|
||||||
|
"M2_COEX3", /* GPIO_3 */
|
||||||
|
"M2_COEX_RXD", /* GPIO_4 */
|
||||||
|
"M2_COEX_TXD", /* GPIO_5 */
|
||||||
|
"M2_VENDOR_PIN40", /* GPIO_6 */
|
||||||
|
"M2_VENDOR_PIN42", /* GPIO_7 */
|
||||||
|
"M2_VENDOR_PIN38", /* GPIO_8 */
|
||||||
|
"M2_SDIO_RST_N", /* GPIO_9 */
|
||||||
|
"M2_SDIO_WAKE_N", /* GPIO_10 */
|
||||||
|
"M2_PETN1", /* GPIO_11 */
|
||||||
|
"M2_PERP1", /* GPIO_12 */
|
||||||
|
"M2_PERN1", /* GPIO_13 */
|
||||||
|
"UIM_SWP", /* GPIO_14 */
|
||||||
|
"UART1_TO_RSP"; /* GPIO_15 */
|
||||||
|
};
|
||||||
|
};
|
23
arch/arm64/boot/dts/blaize/blaize-blzp1600-som.dtsi
Normal file
23
arch/arm64/boot/dts/blaize/blaize-blzp1600-som.dtsi
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2024 Blaize, Inc. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "blaize-blzp1600.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x0 0x1 0x0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* i2c4 bus is available only on the SoM, not on the board */
|
||||||
|
&i2c4 {
|
||||||
|
clock-frequency = <100000>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
205
arch/arm64/boot/dts/blaize/blaize-blzp1600.dtsi
Normal file
205
arch/arm64/boot/dts/blaize/blaize-blzp1600.dtsi
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2024 Blaize, Inc. All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
interrupt-parent = <&gic>;
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
|
||||||
|
cpus {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
cpu0: cpu@0 {
|
||||||
|
compatible = "arm,cortex-a53";
|
||||||
|
reg = <0x0 0x0>;
|
||||||
|
device_type = "cpu";
|
||||||
|
enable-method = "psci";
|
||||||
|
next-level-cache = <&l2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu1: cpu@1 {
|
||||||
|
compatible = "arm,cortex-a53";
|
||||||
|
reg = <0x0 0x1>;
|
||||||
|
device_type = "cpu";
|
||||||
|
enable-method = "psci";
|
||||||
|
next-level-cache = <&l2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
l2: l2-cache0 {
|
||||||
|
compatible = "cache";
|
||||||
|
cache-level = <2>;
|
||||||
|
cache-unified;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
firmware {
|
||||||
|
scmi {
|
||||||
|
compatible = "arm,scmi-smc";
|
||||||
|
arm,smc-id = <0x82002000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
shmem = <&scmi0_shm>;
|
||||||
|
|
||||||
|
scmi_clk: protocol@14 {
|
||||||
|
reg = <0x14>;
|
||||||
|
#clock-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
scmi_rst: protocol@16 {
|
||||||
|
reg = <0x16>;
|
||||||
|
#reset-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pmu {
|
||||||
|
compatible = "arm,cortex-a53-pmu";
|
||||||
|
interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
interrupt-affinity = <&cpu0>, <&cpu1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
psci {
|
||||||
|
compatible = "arm,psci-1.0", "arm,psci-0.2";
|
||||||
|
method = "smc";
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* SCMI reserved buffer space on DDR space */
|
||||||
|
scmi0_shm: scmi-shmem@800 {
|
||||||
|
compatible = "arm,scmi-shmem";
|
||||||
|
reg = <0x0 0x800 0x0 0x80>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
timer {
|
||||||
|
compatible = "arm,armv8-timer";
|
||||||
|
interrupts = /* Physical Secure PPI */
|
||||||
|
<GIC_PPI 13 (GIC_CPU_MASK_RAW(0x3) |
|
||||||
|
IRQ_TYPE_LEVEL_LOW)>,
|
||||||
|
/* Physical Non-Secure PPI */
|
||||||
|
<GIC_PPI 14 (GIC_CPU_MASK_RAW(0x3) |
|
||||||
|
IRQ_TYPE_LEVEL_LOW)>,
|
||||||
|
/* Hypervisor PPI */
|
||||||
|
<GIC_PPI 10 (GIC_CPU_MASK_RAW(0x3) |
|
||||||
|
IRQ_TYPE_LEVEL_LOW)>,
|
||||||
|
/* Virtual PPI */
|
||||||
|
<GIC_PPI 11 (GIC_CPU_MASK_RAW(0x3) |
|
||||||
|
IRQ_TYPE_LEVEL_LOW)>;
|
||||||
|
};
|
||||||
|
|
||||||
|
soc@200000000 {
|
||||||
|
compatible = "simple-bus";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0x0 0x2 0x0 0x850000>;
|
||||||
|
|
||||||
|
gic: interrupt-controller@410000 {
|
||||||
|
compatible = "arm,gic-400";
|
||||||
|
reg = <0x410000 0x20000>,
|
||||||
|
<0x420000 0x20000>,
|
||||||
|
<0x440000 0x20000>,
|
||||||
|
<0x460000 0x20000>;
|
||||||
|
#interrupt-cells = <3>;
|
||||||
|
#address-cells = <0>;
|
||||||
|
interrupt-controller;
|
||||||
|
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0x3) |
|
||||||
|
IRQ_TYPE_LEVEL_LOW)>;
|
||||||
|
};
|
||||||
|
|
||||||
|
uart0: serial@4d0000 {
|
||||||
|
compatible = "ns16550a";
|
||||||
|
reg = <0x4d0000 0x1000>;
|
||||||
|
clocks = <&scmi_clk 59>;
|
||||||
|
resets = <&scmi_rst 59>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart1: serial@4e0000 {
|
||||||
|
compatible = "ns16550a";
|
||||||
|
reg = <0x4e0000 0x1000>;
|
||||||
|
clocks = <&scmi_clk 60>;
|
||||||
|
resets = <&scmi_rst 60>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c0: i2c@4f0000 {
|
||||||
|
compatible = "snps,designware-i2c";
|
||||||
|
reg = <0x4f0000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&scmi_clk 54>;
|
||||||
|
resets = <&scmi_rst 54>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c1: i2c@500000 {
|
||||||
|
compatible = "snps,designware-i2c";
|
||||||
|
reg = <0x500000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&scmi_clk 55>;
|
||||||
|
resets = <&scmi_rst 55>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c2: i2c@510000 {
|
||||||
|
compatible = "snps,designware-i2c";
|
||||||
|
reg = <0x510000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&scmi_clk 56>;
|
||||||
|
resets = <&scmi_rst 56>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c3: i2c@520000 {
|
||||||
|
compatible = "snps,designware-i2c";
|
||||||
|
reg = <0x520000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&scmi_clk 57>;
|
||||||
|
resets = <&scmi_rst 57>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
i2c4: i2c@530000 {
|
||||||
|
compatible = "snps,designware-i2c";
|
||||||
|
reg = <0x530000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&scmi_clk 58>;
|
||||||
|
resets = <&scmi_rst 58>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
arm_cc712: crypto@550000 {
|
||||||
|
compatible = "arm,cryptocell-712-ree";
|
||||||
|
reg = <0x550000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&scmi_clk 7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -44,6 +44,7 @@ CONFIG_ARCH_BCM_IPROC=y
|
||||||
CONFIG_ARCH_BCMBCA=y
|
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_EXYNOS=y
|
CONFIG_ARCH_EXYNOS=y
|
||||||
CONFIG_ARCH_SPARX5=y
|
CONFIG_ARCH_SPARX5=y
|
||||||
CONFIG_ARCH_K3=y
|
CONFIG_ARCH_K3=y
|
||||||
|
|
|
@ -24,6 +24,11 @@ config ARCH_SOPHGO
|
||||||
help
|
help
|
||||||
This enables support for Sophgo SoC platform hardware.
|
This enables support for Sophgo SoC platform hardware.
|
||||||
|
|
||||||
|
config ARCH_SPACEMIT
|
||||||
|
bool "SpacemiT SoCs"
|
||||||
|
help
|
||||||
|
This enables support for SpacemiT SoC platform hardware.
|
||||||
|
|
||||||
config ARCH_STARFIVE
|
config ARCH_STARFIVE
|
||||||
def_bool SOC_STARFIVE
|
def_bool SOC_STARFIVE
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ subdir-y += microchip
|
||||||
subdir-y += renesas
|
subdir-y += renesas
|
||||||
subdir-y += sifive
|
subdir-y += sifive
|
||||||
subdir-y += sophgo
|
subdir-y += sophgo
|
||||||
|
subdir-y += spacemit
|
||||||
subdir-y += starfive
|
subdir-y += starfive
|
||||||
subdir-y += thead
|
subdir-y += thead
|
||||||
|
|
||||||
|
|
2
arch/riscv/boot/dts/spacemit/Makefile
Normal file
2
arch/riscv/boot/dts/spacemit/Makefile
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
dtb-$(CONFIG_ARCH_SPACEMIT) += k1-bananapi-f3.dtb
|
26
arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
Normal file
26
arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "k1.dtsi"
|
||||||
|
#include "k1-pinctrl.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Banana Pi BPI-F3";
|
||||||
|
compatible = "bananapi,bpi-f3", "spacemit,k1";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart0_2_cfg>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
20
arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
Normal file
20
arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2024 Yixun Lan <dlan@gentoo.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
#define K1_PADCONF(pin, func) (((pin) << 16) | (func))
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
uart0_2_cfg: uart0-2-cfg {
|
||||||
|
uart0-2-pins {
|
||||||
|
pinmux = <K1_PADCONF(68, 2)>,
|
||||||
|
<K1_PADCONF(69, 2)>;
|
||||||
|
|
||||||
|
bias-pull-up = <0>;
|
||||||
|
drive-strength = <32>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
452
arch/riscv/boot/dts/spacemit/k1.dtsi
Normal file
452
arch/riscv/boot/dts/spacemit/k1.dtsi
Normal file
|
@ -0,0 +1,452 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2024 Yangyu Chen <cyy@cyyself.name>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
/ {
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
model = "SpacemiT K1";
|
||||||
|
compatible = "spacemit,k1";
|
||||||
|
|
||||||
|
cpus {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
timebase-frequency = <24000000>;
|
||||||
|
|
||||||
|
cpu-map {
|
||||||
|
cluster0 {
|
||||||
|
core0 {
|
||||||
|
cpu = <&cpu_0>;
|
||||||
|
};
|
||||||
|
core1 {
|
||||||
|
cpu = <&cpu_1>;
|
||||||
|
};
|
||||||
|
core2 {
|
||||||
|
cpu = <&cpu_2>;
|
||||||
|
};
|
||||||
|
core3 {
|
||||||
|
cpu = <&cpu_3>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cluster1 {
|
||||||
|
core0 {
|
||||||
|
cpu = <&cpu_4>;
|
||||||
|
};
|
||||||
|
core1 {
|
||||||
|
cpu = <&cpu_5>;
|
||||||
|
};
|
||||||
|
core2 {
|
||||||
|
cpu = <&cpu_6>;
|
||||||
|
};
|
||||||
|
core3 {
|
||||||
|
cpu = <&cpu_7>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_0: cpu@0 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <0>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster0_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu0_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_1: cpu@1 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <1>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster0_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu1_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_2: cpu@2 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <2>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster0_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu2_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_3: cpu@3 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <3>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster0_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu3_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_4: cpu@4 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <4>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster1_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu4_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_5: cpu@5 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <5>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster1_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu5_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_6: cpu@6 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <6>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster1_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu6_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cpu_7: cpu@7 {
|
||||||
|
compatible = "spacemit,x60", "riscv";
|
||||||
|
device_type = "cpu";
|
||||||
|
reg = <7>;
|
||||||
|
riscv,isa = "rv64imafdcv_zicbom_zicbop_zicboz_zicntr_zicond_zicsr_zifencei_zihintpause_zihpm_zfh_zba_zbb_zbc_zbs_zkt_zvfh_zvkt_sscofpmf_sstc_svinval_svnapot_svpbmt";
|
||||||
|
riscv,isa-base = "rv64i";
|
||||||
|
riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "v", "zicbom",
|
||||||
|
"zicbop", "zicboz", "zicntr", "zicond", "zicsr",
|
||||||
|
"zifencei", "zihintpause", "zihpm", "zfh", "zba",
|
||||||
|
"zbb", "zbc", "zbs", "zkt", "zvfh", "zvkt",
|
||||||
|
"sscofpmf", "sstc", "svinval", "svnapot", "svpbmt";
|
||||||
|
riscv,cbom-block-size = <64>;
|
||||||
|
riscv,cbop-block-size = <64>;
|
||||||
|
riscv,cboz-block-size = <64>;
|
||||||
|
i-cache-block-size = <64>;
|
||||||
|
i-cache-size = <32768>;
|
||||||
|
i-cache-sets = <128>;
|
||||||
|
d-cache-block-size = <64>;
|
||||||
|
d-cache-size = <32768>;
|
||||||
|
d-cache-sets = <128>;
|
||||||
|
next-level-cache = <&cluster1_l2_cache>;
|
||||||
|
mmu-type = "riscv,sv39";
|
||||||
|
|
||||||
|
cpu7_intc: interrupt-controller {
|
||||||
|
compatible = "riscv,cpu-intc";
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cluster0_l2_cache: l2-cache0 {
|
||||||
|
compatible = "cache";
|
||||||
|
cache-block-size = <64>;
|
||||||
|
cache-level = <2>;
|
||||||
|
cache-size = <524288>;
|
||||||
|
cache-sets = <512>;
|
||||||
|
cache-unified;
|
||||||
|
};
|
||||||
|
|
||||||
|
cluster1_l2_cache: l2-cache1 {
|
||||||
|
compatible = "cache";
|
||||||
|
cache-block-size = <64>;
|
||||||
|
cache-level = <2>;
|
||||||
|
cache-size = <524288>;
|
||||||
|
cache-sets = <512>;
|
||||||
|
cache-unified;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
soc {
|
||||||
|
compatible = "simple-bus";
|
||||||
|
interrupt-parent = <&plic>;
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <2>;
|
||||||
|
dma-noncoherent;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
uart0: serial@d4017000 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017000 0x0 0x100>;
|
||||||
|
interrupts = <42>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart2: serial@d4017100 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017100 0x0 0x100>;
|
||||||
|
interrupts = <44>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart3: serial@d4017200 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017200 0x0 0x100>;
|
||||||
|
interrupts = <45>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart4: serial@d4017300 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017300 0x0 0x100>;
|
||||||
|
interrupts = <46>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart5: serial@d4017400 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017400 0x0 0x100>;
|
||||||
|
interrupts = <47>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart6: serial@d4017500 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017500 0x0 0x100>;
|
||||||
|
interrupts = <48>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart7: serial@d4017600 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017600 0x0 0x100>;
|
||||||
|
interrupts = <49>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart8: serial@d4017700 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017700 0x0 0x100>;
|
||||||
|
interrupts = <50>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
uart9: serial@d4017800 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xd4017800 0x0 0x100>;
|
||||||
|
interrupts = <51>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
pinctrl: pinctrl@d401e000 {
|
||||||
|
compatible = "spacemit,k1-pinctrl";
|
||||||
|
reg = <0x0 0xd401e000 0x0 0x400>;
|
||||||
|
};
|
||||||
|
|
||||||
|
plic: interrupt-controller@e0000000 {
|
||||||
|
compatible = "spacemit,k1-plic", "sifive,plic-1.0.0";
|
||||||
|
reg = <0x0 0xe0000000 0x0 0x4000000>;
|
||||||
|
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>,
|
||||||
|
<&cpu4_intc 11>, <&cpu4_intc 9>,
|
||||||
|
<&cpu5_intc 11>, <&cpu5_intc 9>,
|
||||||
|
<&cpu6_intc 11>, <&cpu6_intc 9>,
|
||||||
|
<&cpu7_intc 11>, <&cpu7_intc 9>;
|
||||||
|
interrupt-controller;
|
||||||
|
#address-cells = <0>;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
riscv,ndev = <159>;
|
||||||
|
};
|
||||||
|
|
||||||
|
clint: timer@e4000000 {
|
||||||
|
compatible = "spacemit,k1-clint", "sifive,clint0";
|
||||||
|
reg = <0x0 0xe4000000 0x0 0x10000>;
|
||||||
|
interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
|
||||||
|
<&cpu1_intc 3>, <&cpu1_intc 7>,
|
||||||
|
<&cpu2_intc 3>, <&cpu2_intc 7>,
|
||||||
|
<&cpu3_intc 3>, <&cpu3_intc 7>,
|
||||||
|
<&cpu4_intc 3>, <&cpu4_intc 7>,
|
||||||
|
<&cpu5_intc 3>, <&cpu5_intc 7>,
|
||||||
|
<&cpu6_intc 3>, <&cpu6_intc 7>,
|
||||||
|
<&cpu7_intc 3>, <&cpu7_intc 7>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sec_uart1: serial@f0612000 {
|
||||||
|
compatible = "spacemit,k1-uart", "intel,xscale-uart";
|
||||||
|
reg = <0x0 0xf0612000 0x0 0x100>;
|
||||||
|
interrupts = <43>;
|
||||||
|
clock-frequency = <14857000>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
reg-io-width = <4>;
|
||||||
|
status = "reserved"; /* for TEE usage */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -30,6 +30,7 @@ CONFIG_ARCH_MICROCHIP=y
|
||||||
CONFIG_ARCH_RENESAS=y
|
CONFIG_ARCH_RENESAS=y
|
||||||
CONFIG_ARCH_SIFIVE=y
|
CONFIG_ARCH_SIFIVE=y
|
||||||
CONFIG_ARCH_SOPHGO=y
|
CONFIG_ARCH_SOPHGO=y
|
||||||
|
CONFIG_ARCH_SPACEMIT=y
|
||||||
CONFIG_SOC_STARFIVE=y
|
CONFIG_SOC_STARFIVE=y
|
||||||
CONFIG_ARCH_SUNXI=y
|
CONFIG_ARCH_SUNXI=y
|
||||||
CONFIG_ARCH_THEAD=y
|
CONFIG_ARCH_THEAD=y
|
||||||
|
|
Loading…
Reference in New Issue
Block a user