[PATCH 0/4] Add HiSilicon Hi3670 SoC and HiKey970 board

STALE2920d

9 messages, 3 authors, 2018-09-19 · open the first message on its own page

[PATCH 0/4] Add HiSilicon Hi3670 SoC and HiKey970 board

From: Manivannan Sadhasivam <hidden>
Date: 2018-08-10 17:54:01

This patchset adds support for Hi3670 SoC and HiKey970 board. Hi3670 SoC
is very similar to the Hi3660 SoC with additional NPU support. For now,
only UART6 has been enabled which is configured by the bootloader for
console support.

HiKey970 board is one of the 96Boards Consumer Edition and AI platform
based on the Hi3670 SoC.

With this patchset, the Hikey970 board is able to boot into ramdisk with
8 cores.

Thanks,
Mani

Manivannan Sadhasivam (4):
  dt-bindings: arm: hisilicon: Add binding for Hi3670 SoC
  arm64: dts: Add devicetree for Hisilicon Hi3670 SoC
  dt-bindings: arm: hisilicon: Add binding for HiKey970 board
  arm64: dts: Add devicetree support for HiKey970 board

 .../bindings/arm/hisilicon/hisilicon.txt      |   8 +
 arch/arm64/boot/dts/hisilicon/Makefile        |   1 +
 .../boot/dts/hisilicon/hi3670-hikey970.dts    |  35 ++++
 arch/arm64/boot/dts/hisilicon/hi3670.dtsi     | 162 ++++++++++++++++++
 4 files changed, 206 insertions(+)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670.dtsi

-- 
2.17.1

[PATCH 1/4] dt-bindings: arm: hisilicon: Add binding for Hi3670 SoC

From: Manivannan Sadhasivam <hidden>
Date: 2018-08-10 17:54:06

Add devicetree binding for Hi3670 SoC.

Signed-off-by: Manivannan Sadhasivam <redacted>
---
 Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
index 199cd36fe1ba..14f54f569c63 100644
--- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
+++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
@@ -8,6 +8,10 @@ HiKey960 Board
 Required root node properties:
 	- compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
 
+Hi3670 SoC
+Required root node properties:
+	- compatible = "hisilicon,hi3670";
+
 Hi3798cv200 SoC
 Required root node properties:
 	- compatible = "hisilicon,hi3798cv200";
-- 
2.17.1

[PATCH 2/4] arm64: dts: Add devicetree for Hisilicon Hi3670 SoC

From: Manivannan Sadhasivam <hidden>
Date: 2018-08-10 17:54:10

Add initial devicetree support for Hisilicon Hi3670 SoC which
is similar to Hi3660 SoC with NPU support.

This SoC has Octal core BigLittle CPUs in two clusters(4 * A53 & 4 * A73).

Only UART6 has been added for console support which is
pre configured by the bootloader. A fixed clock is sourcing
the UART6 which will get replaced by the clock driver when available.

Signed-off-by: Manivannan Sadhasivam <redacted>
---
 arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 162 ++++++++++++++++++++++
 1 file changed, 162 insertions(+)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670.dtsi
diff --git a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
new file mode 100644
index 000000000000..c90e6f6a34ec
--- /dev/null
+++ b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
@@ -0,0 +1,162 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * dts file for Hisilicon Hi3670 SoC
+ *
+ * Copyright (C) 2016, Hisilicon Ltd.
+ * Copyright (C) 2018, Linaro Ltd.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+	compatible = "hisilicon,hi3670";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	psci {
+		compatible = "arm,psci-0.2";
+		method = "smc";
+	};
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu-map {
+			cluster0 {
+				core0 {
+					cpu = <&cpu0>;
+				};
+				core1 {
+					cpu = <&cpu1>;
+				};
+				core2 {
+					cpu = <&cpu2>;
+				};
+				core3 {
+					cpu = <&cpu3>;
+				};
+			};
+			cluster1 {
+				core0 {
+					cpu = <&cpu4>;
+				};
+				core1 {
+					cpu = <&cpu5>;
+				};
+				core2 {
+					cpu = <&cpu6>;
+				};
+				core3 {
+					cpu = <&cpu7>;
+				};
+			};
+		};
+
+		cpu0: cpu at 0 {
+			compatible = "arm,cortex-a53", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x0>;
+			enable-method = "psci";
+		};
+
+		cpu1: cpu at 1 {
+			compatible = "arm,cortex-a53", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x1>;
+			enable-method = "psci";
+		};
+
+		cpu2: cpu at 2 {
+			compatible = "arm,cortex-a53", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x2>;
+			enable-method = "psci";
+		};
+
+		cpu3: cpu at 3 {
+			compatible = "arm,cortex-a53", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x3>;
+			enable-method = "psci";
+		};
+
+		cpu4: cpu at 100 {
+			compatible = "arm,cortex-a73", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x100>;
+			enable-method = "psci";
+		};
+
+		cpu5: cpu at 101 {
+			compatible = "arm,cortex-a73", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x101>;
+			enable-method = "psci";
+		};
+
+		cpu6: cpu at 102 {
+			compatible = "arm,cortex-a73", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x102>;
+			enable-method = "psci";
+		};
+
+		cpu7: cpu at 103 {
+			compatible = "arm,cortex-a73", "arm,armv8";
+			device_type = "cpu";
+			reg = <0x0 0x103>;
+			enable-method = "psci";
+		};
+	};
+
+	gic: interrupt-controller at e82b0000 {
+		compatible = "arm,gic-400";
+		reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
+		      <0x0 0xe82b2000 0 0x2000>, /* GICC */
+		      <0x0 0xe82b4000 0 0x2000>, /* GICH */
+		      <0x0 0xe82b6000 0 0x2000>; /* GICV */
+		#interrupt-cells = <3>;
+		#address-cells = <0>;
+		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
+					 IRQ_TYPE_LEVEL_HIGH)>;
+		interrupt-controller;
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupt-parent = <&gic>;
+		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
+					  IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
+					  IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
+					  IRQ_TYPE_LEVEL_LOW)>,
+			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
+					  IRQ_TYPE_LEVEL_LOW)>;
+		clock-frequency = <1920000>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		uart6_clk: clk_19_2M {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <19200000>;
+		};
+
+		uart6: serial at fff32000 {
+			compatible = "arm,pl011", "arm,primecell";
+			reg = <0x0 0xfff32000 0x0 0x1000>;
+			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&uart6_clk &uart6_clk>;
+			clock-names = "uartclk", "apb_pclk";
+			status = "disabled";
+		};
+	};
+};
-- 
2.17.1

[PATCH 3/4] dt-bindings: arm: hisilicon: Add binding for HiKey970 board

From: Manivannan Sadhasivam <hidden>
Date: 2018-08-10 17:54:14

Add devicetree binding for HiKey970 board.

Signed-off-by: Manivannan Sadhasivam <redacted>
---
 Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
index 14f54f569c63..a97f643e7d1c 100644
--- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
+++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
@@ -12,6 +12,10 @@ Hi3670 SoC
 Required root node properties:
 	- compatible = "hisilicon,hi3670";
 
+HiKey970 Board
+Required root node properties:
+	- compatible = "hisilicon,hi3670-hikey970", "hisilicon,hi3670";
+
 Hi3798cv200 SoC
 Required root node properties:
 	- compatible = "hisilicon,hi3798cv200";
-- 
2.17.1

[PATCH 4/4] arm64: dts: Add devicetree support for HiKey970 board

From: Manivannan Sadhasivam <hidden>
Date: 2018-08-10 17:54:20

Add devicetree support for HiKey970 development board which
based on Hi3670 SoC and is also one of the 96Boards Consumer
Edition and AI platform.

Only UART6 is enabled which is the default console required
by the 96Boards Consumer Edition Specification.

This patch has been tested on HiKey970 Board.

Signed-off-by: Manivannan Sadhasivam <redacted>
---
 arch/arm64/boot/dts/hisilicon/Makefile        |  1 +
 .../boot/dts/hisilicon/hi3670-hikey970.dts    | 35 +++++++++++++++++++
 2 files changed, 36 insertions(+)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
diff --git a/arch/arm64/boot/dts/hisilicon/Makefile b/arch/arm64/boot/dts/hisilicon/Makefile
index 03d93f8ef8a9..f4d68caeba83 100644
--- a/arch/arm64/boot/dts/hisilicon/Makefile
+++ b/arch/arm64/boot/dts/hisilicon/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_HISI) += hi3660-hikey960.dtb
+dtb-$(CONFIG_ARCH_HISI) += hi3670-hikey970.dtb
 dtb-$(CONFIG_ARCH_HISI) += hi3798cv200-poplar.dtb
 dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb
 dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb
diff --git a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
new file mode 100644
index 000000000000..4f5118642024
--- /dev/null
+++ b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * dts file for Hisilicon HiKey970 Development Board
+ *
+ * Copyright (C) 2016, Hisilicon Ltd.
+ * Copyright (C) 2018, Linaro Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include "hi3670.dtsi"
+
+/ {
+	model = "HiKey970";
+	compatible = "hisilicon,hi3670-hikey970", "hisilicon,hi3670";
+
+	aliases {
+		serial6 = &uart6;       /* console UART */
+	};
+
+	chosen {
+		stdout-path = "serial6:115200n8";
+	};
+
+	memory at 0 {
+		device_type = "memory";
+		/* expect bootloader to fill in this region */
+		reg = <0x0 0x0 0x0 0x0>;
+	};
+};
+
+&uart6 {
+	status = "okay";
+};
-- 
2.17.1

Re: [PATCH 1/4] dt-bindings: arm: hisilicon: Add binding for Hi3670 SoC

From: Rob Herring <robh@kernel.org>
Date: 2018-08-14 20:53:25

On Fri, 10 Aug 2018 23:23:36 +0530, Manivannan Sadhasivam wrote:
Add devicetree binding for Hi3670 SoC.

Signed-off-by: Manivannan Sadhasivam <redacted>
---
 Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | 4 ++++
 1 file changed, 4 insertions(+)
Reviewed-by: Rob Herring <robh@kernel.org>

Re: [PATCH 3/4] dt-bindings: arm: hisilicon: Add binding for HiKey970 board

From: Rob Herring <robh@kernel.org>
Date: 2018-08-14 20:54:11

On Fri, 10 Aug 2018 23:23:38 +0530, Manivannan Sadhasivam wrote:
Add devicetree binding for HiKey970 board.

Signed-off-by: Manivannan Sadhasivam <redacted>
---
 Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | 4 ++++
 1 file changed, 4 insertions(+)
Reviewed-by: Rob Herring <robh@kernel.org>

Re: [PATCH 0/4] Add HiSilicon Hi3670 SoC and HiKey970 board

From: Manivannan Sadhasivam <hidden>
Date: 2018-08-30 03:15:00

On Fri, Aug 10, 2018 at 11:23:35PM +0530, Manivannan Sadhasivam wrote:
This patchset adds support for Hi3670 SoC and HiKey970 board. Hi3670 SoC
is very similar to the Hi3660 SoC with additional NPU support. For now,
only UART6 has been enabled which is configured by the bootloader for
console support.

HiKey970 board is one of the 96Boards Consumer Edition and AI platform
based on the Hi3670 SoC.

With this patchset, the Hikey970 board is able to boot into ramdisk with
8 cores.
Hi Wei,

Any update on this patchset?

Thanks,
Mani
Thanks,
Mani

Manivannan Sadhasivam (4):
  dt-bindings: arm: hisilicon: Add binding for Hi3670 SoC
  arm64: dts: Add devicetree for Hisilicon Hi3670 SoC
  dt-bindings: arm: hisilicon: Add binding for HiKey970 board
  arm64: dts: Add devicetree support for HiKey970 board

 .../bindings/arm/hisilicon/hisilicon.txt      |   8 +
 arch/arm64/boot/dts/hisilicon/Makefile        |   1 +
 .../boot/dts/hisilicon/hi3670-hikey970.dts    |  35 ++++
 arch/arm64/boot/dts/hisilicon/hi3670.dtsi     | 162 ++++++++++++++++++
 4 files changed, 206 insertions(+)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670.dtsi

-- 
2.17.1

Re: [PATCH 0/4] Add HiSilicon Hi3670 SoC and HiKey970 board

From: Wei Xu <xuwei5@hisilicon.com>
Date: 2018-09-19 15:32:29

Hi Manivannan,

On 2018/8/10 18:53, Manivannan Sadhasivam wrote:
This patchset adds support for Hi3670 SoC and HiKey970 board. Hi3670 SoC
is very similar to the Hi3660 SoC with additional NPU support. For now,
only UART6 has been enabled which is configured by the bootloader for
console support.

HiKey970 board is one of the 96Boards Consumer Edition and AI platform
based on the Hi3670 SoC.

With this patchset, the Hikey970 board is able to boot into ramdisk with
8 cores.

Thanks,
Mani

Manivannan Sadhasivam (4):
  dt-bindings: arm: hisilicon: Add binding for Hi3670 SoC
  arm64: dts: Add devicetree for Hisilicon Hi3670 SoC
  dt-bindings: arm: hisilicon: Add binding for HiKey970 board
  arm64: dts: Add devicetree support for HiKey970 board

 .../bindings/arm/hisilicon/hisilicon.txt      |   8 +
 arch/arm64/boot/dts/hisilicon/Makefile        |   1 +
 .../boot/dts/hisilicon/hi3670-hikey970.dts    |  35 ++++
 arch/arm64/boot/dts/hisilicon/hi3670.dtsi     | 162 ++++++++++++++++++
 4 files changed, 206 insertions(+)
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
 create mode 100644 arch/arm64/boot/dts/hisilicon/hi3670.dtsi
Thanks!
Fine to me and applied the series to the hisilicon dts tree.

Best Regards,
Wei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help