Skip to contentSkip to conversation

Support for Broadcom Vulcan ARM64 processor

PATCH Superseded Jayachandran C 8 participants 15 messages Feb 13, 2016 – Feb 19, 2016

Subsystems (2)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Support for Broadcom Vulcan ARM64 processor

This patchset adds support for Broadcom's Vulcan CPU.

The changes are to add the a device tree (dtsi) for the Vulcan SoC, a device tree(dts) for developer platform and related documentation.

Review comments and suggestions are very welcome.

Thanks,
JC.

Jayachandran C (3):
dt-bindings: Add documentation for Broadcom Vulcan
arm64: defconfig: Add Broadcom Vulcan to defconfig
arm64: cputype info for Broadcom Vulcan

Zi Shen Lim (1):
arm64: Broadcom Vulcan support

 .../devicetree/bindings/arm/bcm/brcm,vulcan.txt    |   9 ++
 Documentation/devicetree/bindings/arm/cpus.txt     |   1 +
 arch/arm64/Kconfig.platforms                       |   5 +
 arch/arm64/boot/dts/broadcom/Makefile              |   1 +
 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts  |  33 +++++
 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi      | 146 +++++++++++++++++++++
 arch/arm64/configs/defconfig                       |   1 +
 arch/arm64/include/asm/cputype.h                   |   2 +
 8 files changed, 198 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/4 arm64: Broadcom Vulcan support

From: Zi Shen Lim <[email protected]>

Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor. brcm-vulcan.dtsi has the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART. brcm-vulcan-eval.dts has definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.

[ updated and split dts - jchandra at broadcom.com ]
---
 arch/arm64/Kconfig.platforms                      |   5 +
 arch/arm64/boot/dts/broadcom/Makefile             |   1 +
 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts |  33 +++++
 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi     | 146 ++++++++++++++++++++++
 4 files changed, 185 insertions(+)
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi
arch/arm64/Kconfig.platforms +5 -0
index 21074f6..8718f18 100644
@@ -131,6 +131,11 @@ config ARCH_VEXPRESS
 	  This enables support for the ARMv8 software model (Versatile
 	  Express).
 
+config ARCH_VULCAN
+	bool "Broadcom Vulcan SOC Family"
+	help
+	  This enables support for Broadcom Vulcan SoC Family
+
 config ARCH_XGENE
 	bool "AppliedMicro X-Gene SOC Family"
 	help
arch/arm64/boot/dts/broadcom/Makefile +1 -0
index e21fe66..31219e5 100644
@@ -1,4 +1,5 @@
 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
+dtb-$(CONFIG_ARCH_VULCAN) += brcm-vulcan-eval.dtb
 
 always		:= $(dtb-y)
 subdir-y	:= $(dts-dirs)
arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts new file +33 -0
new file mode 100644
index 0000000..2ca5562
@@ -0,0 +1,33 @@
+/*
+ * dts file for Broadcom (BRCM) Vulcan Eval Platform
+ *
+ * Copyright (C) 2013-2016, Broadcom Corporation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+#include "brcm-vulcan.dtsi"
+
+/ {
+	model = "Broadcom Vulcan Eval Platform";
+	compatible = "brcm,vulcan-eval", "brcm,vulcan";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
+		      <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
+	};
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+};
arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi new file +146 -0

146 lines not on this page · raw message

Signature · 1 line
1.9.1
#2 lore raw

PATCH 1/4 arm64: Broadcom Vulcan support

Quoted 11 lines · Jayachandran C

From: Zi Shen Lim <[email protected]>

Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor. brcm-vulcan.dtsi has the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART. brcm-vulcan-eval.dts has definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.

[ updated and split dts - jchandra at broadcom.com ]
Quoted 8 lines
---
 arch/arm64/Kconfig.platforms                      |   5 +
 arch/arm64/boot/dts/broadcom/Makefile             |   1 +
 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts |  33 +++++
 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi     | 146 ++++++++++++++++++++++
 4 files changed, 185 insertions(+)
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi

You might want a MAINTAINERS entry too for these new files?

[snip]

arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts line 4

Quoted 6 lines

+++ b/arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts

arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts new file +4 -0
@@ -0,0 +1,33 @@
+/*
+ * dts file for Broadcom (BRCM) Vulcan Eval Platform
+ *
+ * Copyright (C) 2013-2016, Broadcom Corporation.

My little finger tells me we should be using a plain Broadcom now and drop the Corporation in the license header.

Signature · 1 line
Florian
reviewer
#3 lore raw

PATCH 1/4 arm64: Broadcom Vulcan support

In reply to Jayachandran C

Hi,

arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts line 18

Quoted 3 lines · Jayachandran C

From: Zi Shen Lim <[email protected]>

arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts new file +1 -0
+	compatible = "brcm,vulcan-eval", "brcm,vulcan";

You use "brcm,vulcan" as the compatible string for both the platform and the CPU nodes. You need different strings.

arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts

Quoted 8 lines
arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts new file +7 -0
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
+		      <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
+	};
 
+/memreserve/ 0x80000000 0x00010000;

What is this for?

arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi line 19

Quoted 4 lines
arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi new file +4 -0
+
+/ {
+	model = "Broadcom Vulcan";
+	compatible = "brcm,vulcan";

As above, it doesn't make sense to have the same compatible string for both the platform as a whole and the CPU.

arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi line 34

Quoted 5 lines
arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi new file +5 -0
+			device_type = "cpu";
+			compatible = "brcm,vulcan", "arm,armv8";
+			reg = <0x0 0x0>;
+			enable-method = "psci";
+		};

Thanks,
Mark.

#4 lore raw

PATCH 1/4 arm64: Broadcom Vulcan support

Quoted 17 lines · Mark Rutland

Hi,

Quoted 3 lines · Jayachandran C

From: Zi Shen Lim <[email protected]>

+ compatible = "brcm,vulcan-eval", "brcm,vulcan";

You use "brcm,vulcan" as the compatible string for both the platform and the CPU nodes. You need different strings.

Quoted 6 lines
arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts new file +6 -0
+
+     memory {
+             device_type = "memory";
+             reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
+                   <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
+     };
Quoted 3 lines
Quoted 1 line

+/memreserve/ 0x80000000 0x00010000;

What is this for?

This seems to left over from the time we were using spin. Will take it out. Thanks.

Quoted 7 lines

arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi line 19

Quoted 4 lines
arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi new file +4 -0
+
+/ {
+     model = "Broadcom Vulcan";
+     compatible = "brcm,vulcan";

As above, it doesn't make sense to have the same compatible string for both the platform as a whole and the CPU.

Will fix this in v2.

Quoted 5 lines

arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi line 34

Quoted 5 lines
arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi new file +5 -0
+                     device_type = "cpu";
+                     compatible = "brcm,vulcan", "arm,armv8";
+                     reg = <0x0 0x0>;
+                     enable-method = "psci";
+             };

Thanks for the review.

JC.

#5 lore raw

PATCH 1/4 arm64: Broadcom Vulcan support

In reply to Jayachandran C

+ bcm-kernel-feedback-list mailing list

Quoted 12 lines · Jayachandran C.

From: Zi Shen Lim <[email protected]>

Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor. brcm-vulcan.dtsi has the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART. brcm-vulcan-eval.dts has definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.

[ updated and split dts - jchandra at broadcom.com ]
Quoted 8 lines

---
arch/arm64/Kconfig.platforms | 5 +

 arch/arm64/boot/dts/broadcom/Makefile             |   1 +
 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts |  33 +++++
 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi     | 146 ++++++++++++++++++++++
 4 files changed, 185 insertions(+)
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi

Could you please name the files "vulcan.dtsi" and "vulcan-eval.dts" so it's consistent with the rest of files in the same directory?

Thanks,

Ray

#6 lore raw

PATCH 1/4 arm64: Broadcom Vulcan support

Quoted 25 lines · Ray Jui

+ bcm-kernel-feedback-list mailing list

Quoted 14 lines · Jayachandran C.

From: Zi Shen Lim <[email protected]>

Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor. brcm-vulcan.dtsi has the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART. brcm-vulcan-eval.dts has definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.

[ updated and split dts - jchandra at broadcom.com ]

---
arch/arm64/Kconfig.platforms | 5 +

Quoted 7 lines
 arch/arm64/boot/dts/broadcom/Makefile             |   1 +
 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts |  33 +++++
 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi     | 146
++++++++++++++++++++++
 4 files changed, 185 insertions(+)
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan-eval.dts
 create mode 100644 arch/arm64/boot/dts/broadcom/brcm-vulcan.dtsi
Quoted 2 lines

Could you please name the files "vulcan.dtsi" and "vulcan-eval.dts" so it's consistent with the rest of files in the same directory?

I would like to take these patches ASAP so I can include them in our upcoming 4.6 pull requests, can you do a quick respin adressing Ray's feedback and adding a MAINTAINERS file?

Thanks!

Signature · 1 line
Florian
#7 lore raw

PATCH 2/4 dt-bindings: Add documentation for Broadcom Vulcan

In reply to Jayachandran C

Update arm/cpus.txt to add brcm,vulcan CPU. Add documentation for Broadcom vulcan boards in arm/bcm/brcm,vulcan.txt

---
 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt | 9 +++++++++
 Documentation/devicetree/bindings/arm/cpus.txt            | 1 +
 2 files changed, 10 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt
Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt new file +9 -0
new file mode 100644
index 0000000..dac9eb5
@@ -0,0 +1,9 @@
+Broadcom Vulcan device tree bindings
+------------------------------------
+
+Boards with Broadcom Vulcan shall have the following properties:
+
+Required root node property:
+
+Vulcan Evaluation Board
+compatible = "brcm,vulcan-eval", "brcm,vulcan";
Documentation/devicetree/bindings/arm/cpus.txt +1 -0
index ae9be07..bc43ad7 100644
@@ -167,6 +167,7 @@ nodes to be present and contain the properties described below.
 			    "arm,cortex-r5"
 			    "arm,cortex-r7"
 			    "brcm,brahma-b15"
+			    "brcm,vulcan"
 			    "cavium,thunder"
 			    "faraday,fa526"
 			    "intel,sa110"
Signature · 1 line
1.9.1
reviewer
#8 lore raw

PATCH 2/4 dt-bindings: Add documentation for Broadcom Vulcan

Quoted 16 lines · Jayachandran C

Update arm/cpus.txt to add brcm,vulcan CPU. Add documentation for Broadcom vulcan boards in arm/bcm/brcm,vulcan.txt

---
 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt | 9 +++++++++
 Documentation/devicetree/bindings/arm/cpus.txt            | 1 +
 2 files changed, 10 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt
Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt new file +0 -0
new file mode 100644
index 0000000..dac9eb5

Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt line 9

Quoted 9 lines
Documentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt new file +9 -0
@@ -0,0 +1,9 @@
+Broadcom Vulcan device tree bindings
+------------------------------------
+
+Boards with Broadcom Vulcan shall have the following properties:
+
+Required root node property:
+
+Vulcan Evaluation Board
+compatible = "brcm,vulcan-eval", "brcm,vulcan";

You can't use "brcm,vulcan" as both a board and CPU string.

Please come up with different strings.

Mark.

Quoted 20 lines
Documentation/devicetree/bindings/arm/cpus.txt +1 -0
index ae9be07..bc43ad7 100644
@@ -167,6 +167,7 @@ nodes to be present and contain the properties described below.
 			    "arm,cortex-r5"
 			    "arm,cortex-r7"
 			    "brcm,brahma-b15"
+			    "brcm,vulcan"
 			    "cavium,thunder"
 			    "faraday,fa526"
 			    "intel,sa110"
Signature · 6 lines
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#9 lore raw

PATCH 3/4 arm64: defconfig: Add Broadcom Vulcan to defconfig

In reply to Jayachandran C

Enable Broadcom Vulcan support in arm64 default configuration. This will build the device tree needed to boot on a Broadcom Vulcan board.

---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm64/configs/defconfig +1 -0
index 86581f7..6c1b3a6 100644
@@ -47,6 +47,7 @@ CONFIG_ARCH_SPRD=y
 CONFIG_ARCH_THUNDER=y
 CONFIG_ARCH_UNIPHIER=y
 CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VULCAN=y
 CONFIG_ARCH_XGENE=y
 CONFIG_ARCH_ZYNQMP=y
 CONFIG_PCI=y
Signature · 1 line
1.9.1
#10 lore raw

PATCH 4/4 arm64: cputype info for Broadcom Vulcan

In reply to Jayachandran C

Add Broadcom Vulcan implementor ID and part ID in cputype.h. This is to document the values.

---
 arch/arm64/include/asm/cputype.h | 2 ++
 1 file changed, 2 insertions(+)
arch/arm64/include/asm/cputype.h +2 -0
index 1a59493..3725d59 100644
@@ -65,6 +65,7 @@
 #define ARM_CPU_IMP_ARM			0x41
 #define ARM_CPU_IMP_APM			0x50
 #define ARM_CPU_IMP_CAVIUM		0x43
+#define ARM_CPU_IMP_BRCM		0x42
 
 #define ARM_CPU_PART_AEM_V8		0xD0F
 #define ARM_CPU_PART_FOUNDATION		0xD00
@@ -74,6 +75,7 @@
 #define APM_CPU_PART_POTENZA		0x000
 
 #define CAVIUM_CPU_PART_THUNDERX	0x0A1
+#define BRCM_CPU_PART_VULCAN		0x516
 
 #ifndef __ASSEMBLY__
 
Signature · 1 line
1.9.1
#11 lore raw

PATCH 4/4 arm64: cputype info for Broadcom Vulcan

Quoted 7 lines · Jayachandran C

Add Broadcom Vulcan implementor ID and part ID in cputype.h. This is to document the values.

---
 arch/arm64/include/asm/cputype.h | 2 ++
 1 file changed, 2 insertions(+)
Quoted 23 lines
arch/arm64/include/asm/cputype.h +2 -0
index 1a59493..3725d59 100644
@@ -65,6 +65,7 @@
 #define ARM_CPU_IMP_ARM			0x41
 #define ARM_CPU_IMP_APM			0x50
 #define ARM_CPU_IMP_CAVIUM		0x43
+#define ARM_CPU_IMP_BRCM		0x42
 
 #define ARM_CPU_PART_AEM_V8		0xD0F
 #define ARM_CPU_PART_FOUNDATION		0xD00
@@ -74,6 +75,7 @@
 #define APM_CPU_PART_POTENZA		0x000
 
 #define CAVIUM_CPU_PART_THUNDERX	0x0A1
+#define BRCM_CPU_PART_VULCAN		0x516
 
 #ifndef __ASSEMBLY__
 
Signature · 1 line
1.9.1
#12 lore raw

PATCH 4/4 arm64: cputype info for Broadcom Vulcan

Quoted 10 lines · Will Deacon
Quoted 7 lines · Jayachandran C

Add Broadcom Vulcan implementor ID and part ID in cputype.h. This is to document the values.

---
 arch/arm64/include/asm/cputype.h | 2 ++
 1 file changed, 2 insertions(+)

Would this be picked by Calatin, or should this be sent along with the ARM/ARM64 SoC changes pull requests (just wondering?), thanks!

Signature · 1 line
Florian
maintainer
#13 lore raw

PATCH 4/4 arm64: cputype info for Broadcom Vulcan

Quoted 10 lines · Florian Fainelli
Quoted 9 lines · Will Deacon
Quoted 7 lines · Jayachandran C

Add Broadcom Vulcan implementor ID and part ID in cputype.h. This is to document the values.

---
 arch/arm64/include/asm/cputype.h | 2 ++
 1 file changed, 2 insertions(+)
Quoted 4 lines
Quoted 1 line

Would this be picked by Calatin, or should this be sent along with the ARM/ARM64 SoC changes pull requests (just wondering?), thanks!

It can go via the arm-soc tree together with the other patches. If you need another ack:

#14 lore raw

PATCH 4/4 arm64: cputype info for Broadcom Vulcan

In reply to Jayachandran C
Quoted 14 lines · Jayachandran C

Add Broadcom Vulcan implementor ID and part ID in cputype.h. This is to document the values.

---
 arch/arm64/include/asm/cputype.h | 2 ++
 1 file changed, 2 insertions(+)
arch/arm64/include/asm/cputype.h +0 -0
index 1a59493..3725d59 100644

arch/arm64/include/asm/cputype.h line 68

Quoted 4 lines
arch/arm64/include/asm/cputype.h +1 -0
@@ -65,6 +65,7 @@
 #define ARM_CPU_IMP_ARM                        0x41
 #define ARM_CPU_IMP_APM                        0x50
 #define ARM_CPU_IMP_CAVIUM             0x43
+#define ARM_CPU_IMP_BRCM               0x42

It's probably not a big deal... guessing this list is chronologically ordered and should remain so?

Quoted 19 lines
arch/arm64/include/asm/cputype.h +1 -1
 #define ARM_CPU_PART_AEM_V8            0xD0F
 #define ARM_CPU_PART_FOUNDATION                0xD00
@@ -74,6 +75,7 @@
 #define APM_CPU_PART_POTENZA           0x000
 
 #define CAVIUM_CPU_PART_THUNDERX       0x0A1
+#define BRCM_CPU_PART_VULCAN           0x516
 
 #ifndef __ASSEMBLY__
 
--

1.9.1

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel