Support for Broadcom Vulcan ARM64 processor
Subsystems (2)
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
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.
--- 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
@@ -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
@@ -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
@@ -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
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.dtsihas the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART.brcm-vulcan-eval.dtshas definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.Signed-off-by Zi Shen Lim <[email protected]>[ updated and split dts - jchandra at broadcom.com ]Signed-off-by Jayachandran C <[email protected]>
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.dtsarch/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
Mark Rutland
reviewerPATCH 1/4 arm64: Broadcom Vulcan support
In reply to Jayachandran CHi,
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.
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/
0x800000000x00010000;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.
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.dtsihas the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART.brcm-vulcan-eval.dtshas definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.Signed-off-by Zi Shen Lim <[email protected]>[ updated and split dts - jchandra at broadcom.com ]Signed-off-by Jayachandran C <[email protected]>
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
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.dtsihas the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and pl011 UART.brcm-vulcan-eval.dtshas definitions for a basic evaluation board. The firmware supports PSCI 0.2 for cpu wakeup.Signed-off-by Zi Shen Lim <[email protected]>[ updated and split dts - jchandra at broadcom.com ]Signed-off-by Jayachandran C <[email protected]>---
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
PATCH 2/4 dt-bindings: Add documentation for Broadcom Vulcan
In reply to Jayachandran CUpdate 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
@@ -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
@@ -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
Mark Rutland
reviewerPATCH 2/4 dt-bindings: Add documentation for Broadcom Vulcan
Quoted 16 lines · Jayachandran C
Update
arm/cpus.txtto add brcm,vulcan CPU. Add documentation for Broadcom vulcan boards inarm/bcm/brcm,vulcan.txtSigned-off-by Jayachandran C <[email protected]>--- 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.txtDocumentation/devicetree/bindings/arm/bcm/brcm,vulcan.txt new file +0
-0
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@@ -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
PATCH 3/4 arm64: defconfig: Add Broadcom Vulcan to defconfig
In reply to Jayachandran CEnable 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
@@ -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
PATCH 4/4 arm64: cputype info for Broadcom Vulcan
In reply to Jayachandran CAdd 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
@@ -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
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.Signed-off-by Jayachandran C <[email protected]>--- arch/arm64/include/asm/cputype.h | 2 ++ 1 file changed, 2 insertions(+)
Quoted 23 lines
arch/arm64/include/asm/cputype.h +2
-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#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
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.Signed-off-by Jayachandran C <[email protected]>--- arch/arm64/include/asm/cputype.h | 2 ++ 1 file changed, 2 insertions(+)Acked-by Will Deacon <[email protected]>
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
Catalin Marinas
maintainerPATCH 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.Signed-off-by Jayachandran C <[email protected]>--- arch/arm64/include/asm/cputype.h | 2 ++ 1 file changed, 2 insertions(+)
Quoted 4 lines
Quoted 1 line
Acked-by Will Deacon <[email protected]>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:
PATCH 4/4 arm64: cputype info for Broadcom Vulcan
In reply to Jayachandran CQuoted 14 lines · Jayachandran C
Add Broadcom Vulcan implementor ID and part ID in
cputype.h. This is to document the values.Signed-off-by Jayachandran C <[email protected]>--- arch/arm64/include/asm/cputype.h | 2 ++ 1 file changed, 2 insertions(+)arch/arm64/include/asm/cputype.h +0
-0
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