Skip to content

Commit 64b1b21

Browse files
committed
Merge tag 'armsoc-newsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM new SoC family support from Arnd Bergmann: "Two new SoC families are added this time. Sugaya Taichi submitted support for the Milbeaut SoC family from Socionext and explains: "SC2000 is a SoC of the Milbeaut series. equipped with a DSP optimized for computer vision. It also features advanced functionalities such as 360-degree, real-time spherical stitching with multi cameras, image stabilization for without mechanical gimbals, and rolling shutter correction. More detail is below: https://www.socionext.com/en/products/assp/milbeaut/SC2000.html" Interestingly, this one has a history dating back to older chips made by Socionext and previously Matsushita/Panasonic based on their own mn10300 CPU architecture that was removed from the kernel last year. Manivannan Sadhasivam adds support for another SoC family, this is the Bitmain BM1880 chip used in the Sophon Edge TPU developer board. The chip is intended for Deep Learning applications, and comes with dual-core Arm Cortex-A53 to run Linux as well as a RISC-V microcontroller core to control the tensor unit. For the moment, the TPU is not accessible in mainline Linux, so we treat it as a generic Arm SoC. More information is available at https://www.sophon.ai/" * tag 'armsoc-newsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: ARM: multi_v7_defconfig: add ARCH_MILBEAUT and ARCH_MILBEAUT_M10V ARM: configs: Add Milbeaut M10V defconfig ARM: dts: milbeaut: Add device tree set for the Milbeaut M10V board clocksource/drivers/timer-milbeaut: Introduce timer for Milbeaut SoCs dt-bindings: timer: Add Milbeaut M10V timer description ARM: milbeaut: Add basic support for Milbeaut m10v SoC dt-bindings: Add documentation for Milbeaut SoCs dt-bindings: arm: Add SMP enable-method for Milbeaut dt-bindings: sram: milbeaut: Add binding for Milbeaut smp-sram MAINTAINERS: Add entry for Bitmain SoC platform arm64: dts: bitmain: Add Sophon Egde board support arm64: dts: bitmain: Add BM1880 SoC support arm64: Add ARCH_BITMAIN platform dt-bindings: arm: Document Bitmain BM1880 SoC
2 parents fb686ad + c889e2a commit 64b1b21

File tree

24 files changed

+854
-0
lines changed

24 files changed

+854
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/arm/bitmain.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Bitmain platform device tree bindings
8+
9+
maintainers:
10+
- Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11+
12+
properties:
13+
compatible:
14+
items:
15+
- enum:
16+
- bitmain,sophon-edge
17+
- const: bitmain,bm1880
18+
...

Documentation/devicetree/bindings/arm/cpus.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ patternProperties:
228228
- renesas,r9a06g032-smp
229229
- rockchip,rk3036-smp
230230
- rockchip,rk3066-smp
231+
- socionext,milbeaut-m10v-smp
231232
- ste,dbx500-smp
232233

233234
cpu-release-addr:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/arm/milbeaut.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Milbeaut platforms device tree bindings
8+
9+
maintainers:
10+
- Taichi Sugaya <sugaya.taichi@socionext.com>
11+
- Takao Orito <orito.takao@socionext.com>
12+
13+
properties:
14+
$nodename:
15+
const: '/'
16+
compatible:
17+
oneOf:
18+
- items:
19+
- enum:
20+
- socionext,milbeaut-m10v-evb
21+
- const: socionext,sc2000a
22+
...
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Milbeaut SRAM for smp bringup
2+
3+
Milbeaut SoCs use a part of the sram for the bringup of the secondary cores.
4+
Once they get powered up in the bootloader, they stay at the specific part
5+
of the sram.
6+
Therefore the part needs to be added as the sub-node of mmio-sram.
7+
8+
Required sub-node properties:
9+
- compatible : should be "socionext,milbeaut-smp-sram"
10+
11+
Example:
12+
13+
sram: sram@0 {
14+
compatible = "mmio-sram";
15+
reg = <0x0 0x10000>;
16+
#address-cells = <1>;
17+
#size-cells = <1>;
18+
ranges = <0 0x0 0x10000>;
19+
20+
smp-sram@f100 {
21+
compatible = "socionext,milbeaut-smp-sram";
22+
reg = <0xf100 0x20>;
23+
};
24+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Milbeaut SoCs Timer Controller
2+
3+
Required properties:
4+
5+
- compatible : should be "socionext,milbeaut-timer".
6+
- reg : Specifies base physical address and size of the registers.
7+
- interrupts : The interrupt of the first timer.
8+
- clocks: phandle to the input clk.
9+
10+
Example:
11+
12+
timer {
13+
compatible = "socionext,milbeaut-timer";
14+
reg = <0x1e000050 0x20>
15+
interrupts = <0 91 4>;
16+
clocks = <&clk 4>;
17+
};

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,6 +1371,13 @@ F: arch/arm/mach-aspeed/
13711371
F: arch/arm/boot/dts/aspeed-*
13721372
N: aspeed
13731373

1374+
ARM/BITMAIN ARCHITECTURE
1375+
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
1376+
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1377+
S: Maintained
1378+
F: arch/arm64/boot/dts/bitmain/
1379+
F: Documentation/devicetree/bindings/arm/bitmain.yaml
1380+
13741381
ARM/CALXEDA HIGHBANK ARCHITECTURE
13751382
M: Rob Herring <robh@kernel.org>
13761383
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)

arch/arm/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,8 @@ source "arch/arm/mach-mediatek/Kconfig"
751751

752752
source "arch/arm/mach-meson/Kconfig"
753753

754+
source "arch/arm/mach-milbeaut/Kconfig"
755+
754756
source "arch/arm/mach-mmp/Kconfig"
755757

756758
source "arch/arm/mach-moxart/Kconfig"

arch/arm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
190190
machine-$(CONFIG_ARCH_MVEBU) += mvebu
191191
machine-$(CONFIG_ARCH_MXC) += imx
192192
machine-$(CONFIG_ARCH_MEDIATEK) += mediatek
193+
machine-$(CONFIG_ARCH_MILBEAUT) += milbeaut
193194
machine-$(CONFIG_ARCH_MXS) += mxs
194195
machine-$(CONFIG_ARCH_NETX) += netx
195196
machine-$(CONFIG_ARCH_NOMADIK) += nomadik

arch/arm/boot/dts/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1246,6 +1246,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
12461246
mt7623n-bananapi-bpi-r2.dtb \
12471247
mt8127-moose.dtb \
12481248
mt8135-evbp1.dtb
1249+
dtb-$(CONFIG_ARCH_MILBEAUT) += milbeaut-m10v-evb.dtb
12491250
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
12501251
dtb-$(CONFIG_ARCH_ASPEED) += \
12511252
aspeed-ast2500-evb.dtb \
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/* Socionext Milbeaut M10V Evaluation Board */
3+
/dts-v1/;
4+
#include "milbeaut-m10v.dtsi"
5+
6+
/ {
7+
model = "Socionext M10V EVB";
8+
compatible = "socionext,milbeaut-m10v-evb", "socionext,sc2000a";
9+
10+
aliases {
11+
serial0 = &uart1;
12+
};
13+
14+
chosen {
15+
bootargs = "rootwait earlycon";
16+
stdout-path = "serial0:115200n8";
17+
};
18+
19+
clocks {
20+
uclk40xi: uclk40xi {
21+
compatible = "fixed-clock";
22+
#clock-cells = <0>;
23+
clock-frequency = <40000000>;
24+
};
25+
};
26+
27+
memory@40000000 {
28+
device_type = "memory";
29+
reg = <0x40000000 0x80000000>;
30+
};
31+
32+
};

arch/arm/boot/dts/milbeaut-m10v.dtsi

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
#include <dt-bindings/interrupt-controller/irq.h>
3+
#include <dt-bindings/input/input.h>
4+
#include <dt-bindings/gpio/gpio.h>
5+
#include <dt-bindings/interrupt-controller/arm-gic.h>
6+
7+
/ {
8+
compatible = "socionext,sc2000a";
9+
interrupt-parent = <&gic>;
10+
#address-cells = <1>;
11+
#size-cells = <1>;
12+
13+
cpus {
14+
#address-cells = <1>;
15+
#size-cells = <0>;
16+
enable-method = "socionext,milbeaut-m10v-smp";
17+
cpu@f00 {
18+
device_type = "cpu";
19+
compatible = "arm,cortex-a7";
20+
reg = <0xf00>;
21+
};
22+
cpu@f01 {
23+
device_type = "cpu";
24+
compatible = "arm,cortex-a7";
25+
reg = <0xf01>;
26+
};
27+
cpu@f02 {
28+
device_type = "cpu";
29+
compatible = "arm,cortex-a7";
30+
reg = <0xf02>;
31+
};
32+
cpu@f03 {
33+
device_type = "cpu";
34+
compatible = "arm,cortex-a7";
35+
reg = <0xf03>;
36+
};
37+
};
38+
39+
timer { /* The Generic Timer */
40+
compatible = "arm,armv7-timer";
41+
interrupts = <GIC_PPI 13
42+
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
43+
<GIC_PPI 14
44+
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
45+
<GIC_PPI 11
46+
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
47+
<GIC_PPI 10
48+
(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
49+
clock-frequency = <40000000>;
50+
always-on;
51+
};
52+
53+
soc {
54+
compatible = "simple-bus";
55+
#address-cells = <1>;
56+
#size-cells = <1>;
57+
ranges;
58+
interrupt-parent = <&gic>;
59+
60+
gic: interrupt-controller@1d000000 {
61+
compatible = "arm,cortex-a7-gic";
62+
interrupt-controller;
63+
#interrupt-cells = <3>;
64+
reg = <0x1d001000 0x1000>,
65+
<0x1d002000 0x1000>; /* CPU I/f base and size */
66+
};
67+
68+
timer@1e000050 { /* 32-bit Reload Timers */
69+
compatible = "socionext,milbeaut-timer";
70+
reg = <0x1e000050 0x20>;
71+
interrupts = <0 91 4>;
72+
};
73+
74+
uart1: serial@1e700010 { /* PE4, PE5 */
75+
/* Enable this as ttyUSI0 */
76+
compatible = "socionext,milbeaut-usio-uart";
77+
reg = <0x1e700010 0x10>;
78+
interrupts = <0 141 0x4>, <0 149 0x4>;
79+
interrupt-names = "rx", "tx";
80+
};
81+
82+
};
83+
84+
sram@0 {
85+
compatible = "mmio-sram";
86+
reg = <0x0 0x10000>;
87+
#address-cells = <1>;
88+
#size-cells = <1>;
89+
ranges = <0 0x0 0x10000>;
90+
smp-sram@f100 {
91+
compatible = "socionext,milbeaut-smp-sram";
92+
reg = <0xf100 0x20>;
93+
};
94+
};
95+
};
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
CONFIG_SYSVIPC=y
2+
CONFIG_NO_HZ=y
3+
CONFIG_HIGH_RES_TIMERS=y
4+
CONFIG_CGROUPS=y
5+
CONFIG_BLK_DEV_INITRD=y
6+
CONFIG_EMBEDDED=y
7+
CONFIG_PERF_EVENTS=y
8+
CONFIG_ARCH_MILBEAUT=y
9+
CONFIG_ARCH_MILBEAUT_M10V=y
10+
CONFIG_ARM_THUMBEE=y
11+
# CONFIG_VDSO is not set
12+
# CONFIG_CACHE_L2X0 is not set
13+
CONFIG_ARM_ERRATA_430973=y
14+
CONFIG_ARM_ERRATA_720789=y
15+
CONFIG_ARM_ERRATA_754322=y
16+
CONFIG_ARM_ERRATA_754327=y
17+
CONFIG_ARM_ERRATA_764369=y
18+
CONFIG_ARM_ERRATA_775420=y
19+
CONFIG_ARM_ERRATA_798181=y
20+
CONFIG_SMP=y
21+
# CONFIG_SMP_ON_UP is not set
22+
# CONFIG_ARM_CPU_TOPOLOGY is not set
23+
CONFIG_HAVE_ARM_ARCH_TIMER=y
24+
CONFIG_NR_CPUS=16
25+
CONFIG_THUMB2_KERNEL=y
26+
# CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 is not set
27+
# CONFIG_ARM_PATCH_IDIV is not set
28+
CONFIG_HIGHMEM=y
29+
CONFIG_FORCE_MAX_ZONEORDER=12
30+
CONFIG_SECCOMP=y
31+
CONFIG_KEXEC=y
32+
CONFIG_EFI=y
33+
CONFIG_CPU_FREQ=y
34+
CONFIG_CPU_FREQ_STAT=y
35+
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
36+
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
37+
CONFIG_CPU_FREQ_GOV_USERSPACE=m
38+
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
39+
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
40+
CONFIG_CPUFREQ_DT=y
41+
CONFIG_QORIQ_CPUFREQ=y
42+
CONFIG_CPU_IDLE=y
43+
CONFIG_ARM_CPUIDLE=y
44+
CONFIG_VFP=y
45+
CONFIG_NEON=y
46+
CONFIG_KERNEL_MODE_NEON=y
47+
CONFIG_EFI_VARS=m
48+
CONFIG_EFI_CAPSULE_LOADER=m
49+
CONFIG_ARM_CRYPTO=y
50+
CONFIG_CRYPTO_SHA1_ARM_NEON=m
51+
CONFIG_CRYPTO_SHA1_ARM_CE=m
52+
CONFIG_CRYPTO_SHA2_ARM_CE=m
53+
CONFIG_CRYPTO_SHA512_ARM=m
54+
CONFIG_CRYPTO_AES_ARM=m
55+
CONFIG_CRYPTO_AES_ARM_BS=m
56+
CONFIG_CRYPTO_AES_ARM_CE=m
57+
CONFIG_CRYPTO_GHASH_ARM_CE=m
58+
CONFIG_CRYPTO_CRC32_ARM_CE=m
59+
CONFIG_CRYPTO_CHACHA20_NEON=m
60+
CONFIG_MODULES=y
61+
CONFIG_MODULE_UNLOAD=y
62+
CONFIG_PARTITION_ADVANCED=y
63+
CONFIG_CMDLINE_PARTITION=y
64+
CONFIG_CMA=y
65+
CONFIG_DEVTMPFS=y
66+
CONFIG_DEVTMPFS_MOUNT=y
67+
CONFIG_DMA_CMA=y
68+
CONFIG_CMA_SIZE_MBYTES=64
69+
CONFIG_OF_OVERLAY=y
70+
CONFIG_BLK_DEV_LOOP=y
71+
CONFIG_BLK_DEV_RAM=y
72+
CONFIG_BLK_DEV_RAM_SIZE=65536
73+
CONFIG_SRAM=y
74+
CONFIG_INPUT_FF_MEMLESS=m
75+
CONFIG_INPUT_MATRIXKMAP=y
76+
# CONFIG_INPUT_KEYBOARD is not set
77+
# CONFIG_INPUT_MOUSE is not set
78+
CONFIG_SERIO_LIBPS2=y
79+
CONFIG_VT_HW_CONSOLE_BINDING=y
80+
CONFIG_SERIAL_DEV_BUS=y
81+
# CONFIG_HW_RANDOM is not set
82+
CONFIG_GPIOLIB=y
83+
CONFIG_GPIO_GENERIC_PLATFORM=y
84+
# CONFIG_HWMON is not set
85+
CONFIG_MEDIA_SUPPORT=m
86+
CONFIG_MEDIA_CAMERA_SUPPORT=y
87+
CONFIG_MEDIA_CONTROLLER=y
88+
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
89+
# CONFIG_HID is not set
90+
# CONFIG_USB_SUPPORT is not set
91+
CONFIG_SYNC_FILE=y
92+
# CONFIG_VIRTIO_MENU is not set
93+
# CONFIG_IOMMU_SUPPORT is not set
94+
CONFIG_SOC_BRCMSTB=y
95+
CONFIG_MEMORY=y
96+
# CONFIG_ARM_PMU is not set
97+
CONFIG_EXT4_FS=y
98+
CONFIG_AUTOFS4_FS=y
99+
CONFIG_MSDOS_FS=y
100+
CONFIG_VFAT_FS=y
101+
CONFIG_NTFS_FS=y
102+
CONFIG_TMPFS=y
103+
CONFIG_TMPFS_POSIX_ACL=y
104+
CONFIG_CONFIGFS_FS=y
105+
# CONFIG_MISC_FILESYSTEMS is not set
106+
CONFIG_NLS_CODEPAGE_437=y
107+
CONFIG_NLS_ISO8859_1=y
108+
CONFIG_NLS_UTF8=y
109+
CONFIG_KEYS=y
110+
CONFIG_CRYPTO_MANAGER=y
111+
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
112+
CONFIG_CRYPTO_SEQIV=m
113+
# CONFIG_CRYPTO_ECHAINIV is not set
114+
CONFIG_CRYPTO_AES=y
115+
# CONFIG_CRYPTO_HW is not set
116+
CONFIG_CRC_CCITT=m
117+
CONFIG_CRC_ITU_T=m
118+
CONFIG_PRINTK_TIME=y
119+
CONFIG_MAGIC_SYSRQ=y

arch/arm/configs/multi_v7_defconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ CONFIG_SOC_VF610=y
5454
CONFIG_ARCH_KEYSTONE=y
5555
CONFIG_ARCH_MEDIATEK=y
5656
CONFIG_ARCH_MESON=y
57+
CONFIG_ARCH_MILBEAUT=y
58+
CONFIG_ARCH_MILBEAUT_M10V=y
5759
CONFIG_ARCH_MVEBU=y
5860
CONFIG_MACH_ARMADA_370=y
5961
CONFIG_MACH_ARMADA_375=y

0 commit comments

Comments
 (0)