Support for Broadcom Vulcan ARM64 processor
Subsystems (2)
v2 cover Support for Broadcom Vulcan ARM64 processor
This patchset adds support for Broadcom's Vulcan ARM64 processor. The changes are to add the device tree files, documentation for the device tree, cpu ID and the maintainers entry.
This is v2 of the patchset, changelog below:
v1->v2 :
- dts: remove memreserve, use brcm,vulcan-soc for board (to address comments from Mark Rutland)
- Fixup copyright (Broadcomp corp -> Broadcom) (suggested by Florian Fainelli)
- Rename dts from brcm-vulcan* to vulcan* (suggested by Ray Jui)
- Add maintainers entry
(suggested by Florian Fainelli)
- Updated the device tree doc and fixed a couple of commit comments
Jayachandran C (4):
dt-bindings: Add documentation for Broadcom Vulcan
arm64: defconfig: Add Broadcom Vulcan to defconfig
arm64: cputype info for Broadcom Vulcan
MAINTAINERS: Add entry for Broadcom Vulcan SoC
Zi Shen Lim (1):
arm64: Broadcom Vulcan support
.../bindings/arm/bcm/brcm,vulcan-soc.txt | 10 ++ Documentation/devicetree/bindings/arm/cpus.txt | 1 + MAINTAINERS | 7 + arch/arm64/Kconfig.platforms | 5 + arch/arm64/boot/dts/broadcom/Makefile | 1 + arch/arm64/boot/dts/broadcom/vulcan-eval.dts | 33 +++++ arch/arm64/boot/dts/broadcom/vulcan.dtsi | 144 +++++++++++++++++++++ arch/arm64/configs/defconfig | 1 + arch/arm64/include/asm/cputype.h | 3 + 9 files changed, 205 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan-soc.txt create mode 100644 arch/arm64/boot/dts/broadcom/vulcan-eval.dts create mode 100644 arch/arm64/boot/dts/broadcom/vulcan.dtsi
Signature · 1 line
1.9.1
PATCH v2 1/5 arm64: Broadcom Vulcan support
From: Zi Shen Lim <[email protected]>
Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor. vulcan.dtsi has the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and the pl011 UART. vulcan-eval.dts has definitions for a basic evaluation board.
Vulcan's processor cores support the ARMv8.1 instruction set and will use "brcm,vulcan" as the compatible property. The firmware has PSCI 0.2 support for cpu wakeup.
--- arch/arm64/Kconfig.platforms | 5 + arch/arm64/boot/dts/broadcom/Makefile | 1 + arch/arm64/boot/dts/broadcom/vulcan-eval.dts | 33 ++++++ arch/arm64/boot/dts/broadcom/vulcan.dtsi | 144 +++++++++++++++++++++++++++ 4 files changed, 183 insertions(+) create mode 100644 arch/arm64/boot/dts/broadcom/vulcan-eval.dts create mode 100644 arch/arm64/boot/dts/broadcom/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) += vulcan-eval.dtb always := $(dtb-y) subdir-y := $(dts-dirs)
arch/arm64/boot/dts/broadcom/vulcan-eval.dts new file +33 -0
@@ -0,0 +1,33 @@ +/* + * dts file for Broadcom (BRCM) Vulcan Evaluation Platform + * + * Copyright (c) 2013-2016 Broadcom + * + * 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 "vulcan.dtsi" + +/ { + model = "Broadcom Vulcan Eval Platform"; + compatible = "brcm,vulcan-eval", "brcm,vulcan-soc"; + + 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/vulcan.dtsi new file +144 -0
144 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v2 2/5 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-soc.txt
--- Documentation/devicetree/bindings/arm/bcm/brcm,vulcan-soc.txt | 10 ++++++++++ Documentation/devicetree/bindings/arm/cpus.txt | 1 + 2 files changed, 11 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,vulcan-soc.txt
Documentation/devicetree/bindings/arm/bcm/brcm,vulcan-soc.txt new file +10 -0
@@ -0,0 +1,10 @@ +Broadcom Vulcan device tree bindings +------------------------------------ + +Boards with Broadcom Vulcan shall have the following root property: + +Broadcom Vulcan Evaluation Board: + compatible = "brcm,vulcan-eval", "brcm,vulcan-soc"; + +Generic Vulcan board: + compatible = "brcm,vulcan-soc";
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
PATCH v2 3/5 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 v2 4/5 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 | 3 +++ 1 file changed, 3 insertions(+)
arch/arm64/include/asm/cputype.h +3 -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
@@ -75,6 +76,8 @@#define CAVIUM_CPU_PART_THUNDERX 0x0A1 +#define BRCM_CPU_PART_VULCAN 0x516 +#ifndef __ASSEMBLY__/*
Signature · 1 line
1.9.1
PATCH v2 5/5 MAINTAINERS: Add entry for Broadcom Vulcan SoC
In reply to Jayachandran CAdd maintainer information for Broadcom's Vulcan arm64 SoC.
--- MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+)
MAINTAINERS +7 -0
@@ -2512,6 +2512,13 @@ L: netdev at vger.kernel.org S: Supported F: drivers/net/ethernet/broadcom/bcmsysport.* +BROADCOM VULCAN ARM64 SOC +M: Jayachandran C. <[email protected]> +L: linux-arm-kernel at lists.infradead.org (moderated for non-subscribers) +L: bcm-kernel-feedback-list at broadcom.com +S: Maintained +F: arch/arm64/boot/dts/broadcom/vulcan* + BROCADE BFA FC SCSI DRIVER M: Anil Gurumurthy <[email protected]> M: Sudarsana Kalluru <[email protected]>
Signature · 1 line
1.9.1
v2 cover Support for Broadcom Vulcan ARM64 processor
In reply to Jayachandran CLe 20/02/2016 06:19, Jayachandran C a ?crit :
Quoted 18 lines
This patchset adds support for Broadcom's Vulcan ARM64 processor. The changes are to add the device tree files, documentation for the device tree, cpu ID and the maintainers entry.
This is v2 of the patchset, changelog below:
v1->v2:
- dts: remove memreserve, use brcm,vulcan-soc for board (to address comments from Mark Rutland)
- Fixup copyright (Broadcomp corp -> Broadcom) (suggested by Florian Fainelli)
- Rename dts from brcm-vulcan* to vulcan* (suggested by Ray Jui)
- Add maintainers entry
(suggested by Florian Fainelli)
- Updated the device tree doc and fixed a couple of commit comments
Quoted 8 lines
Jayachandran C (4):
dt-bindings: Add documentation for Broadcom Vulcan
arm64: defconfig: Add Broadcom Vulcan to defconfig
arm64: cputype info for Broadcom Vulcan
MAINTAINERS: Add entry for Broadcom Vulcan SoCZi Shen Lim (1):
arm64: Broadcom Vulcan support
All applied and submitted for 4.6 thanks!
Signature · 1 line
Florian
PATCH v3 1/5 arm64: Broadcom Vulcan support
From: Zi Shen Lim <[email protected]>
Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor. vulcan.dtsi has the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and the pl011 UART. vulcan-eval.dts has definitions for a basic evaluation board.
Vulcan's processor cores support the ARMv8.1 instruction set and will use "brcm,vulcan" as the compatible property. The firmware has PSCI 0.2 support for cpu wakeup.
---
There is a minor update to this patch.
After some discussions here, it looks like it is necessary to increase the PCI mem and mem64 ranges to support all the use cases. We are updating the firmware to use these ranges as well.
Hope it is not too late to fix this, sorry for the late churn.
Thanks,
JC.
v2->v3:
update ranges in the pci entry in vulcan.dtsi, changes are:
IO: removed, since it is not supported
MEM: 0x4800_0000-0x5000_0000 to 0x4000_0000-0x6000_0000
MEM 64: 0x6_0000_0000-0x7_0000_0000 to 0x40_0000_0000-0x60_0000_0000
arch/arm64/Kconfig.platforms | 5 + arch/arm64/boot/dts/broadcom/Makefile | 1 + arch/arm64/boot/dts/broadcom/vulcan-eval.dts | 33 ++++++ arch/arm64/boot/dts/broadcom/vulcan.dtsi | 147 +++++++++++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 arch/arm64/boot/dts/broadcom/vulcan-eval.dts create mode 100644 arch/arm64/boot/dts/broadcom/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) += vulcan-eval.dtb always := $(dtb-y) subdir-y := $(dts-dirs)
arch/arm64/boot/dts/broadcom/vulcan-eval.dts new file +33 -0
@@ -0,0 +1,33 @@ +/* + * dts file for Broadcom (BRCM) Vulcan Evaluation Platform + * + * Copyright (c) 2013-2016 Broadcom + * + * 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 "vulcan.dtsi" + +/ { + model = "Broadcom Vulcan Eval Platform"; + compatible = "brcm,vulcan-eval", "brcm,vulcan-soc"; + + 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/vulcan.dtsi new file +147 -0
147 lines not on this page · raw message
Signature · 1 line
1.9.1
PATCH v3 1/5 arm64: Broadcom Vulcan support
Quoted 16 lines · Jayachandran C
From: Zi Shen Lim <[email protected]>
Add a configuration option and a device tree for Broadcom's Vulcan ARM64 processor.
vulcan.dtsihas the on-chip blocks like the PCIe controller, GICv3 with ITS, PMU, system timer and the pl011 UART.vulcan-eval.dtshas definitions for a basic evaluation board.Vulcan's processor cores support the ARMv8.1 instruction set and will use "brcm,vulcan" as the compatible property. The firmware has PSCI 0.2 support 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 7 lines
There is a minor update to this patch.
After some discussions here, it looks like it is necessary to increase the PCI mem and mem64 ranges to support all the use cases. We are updating the firmware to use these ranges as well.
Hope it is not too late to fix this, sorry for the late churn.
V2 got merged already into next/dt64 by the arm-soc maintainers, could you provide an incremental patch to your v2? Thanks!
--
Florian
PATCH 1/1 arm64: dts: vulcan: Update PCI ranges
The PCI memory windows available in vulcan.dtsi are limited to 128MB for 32-bit BARs, and 4GB for 64-bit BARs. Given the memory mapped IO space available in arm64, these windows can be increased substantially to support more use cases.
The change increases the 32-bit window to 256MB and the 64-bit window to 128 GB. The firmware on vulcan boards will use these ranges as well.
PCI IO windows are not supported on Vulcan, so remove them instead of keeping an unused value.
---
This is an update to the patch with subject
"arm64: Broadcom Vulcan support"
I had sent earlier, please fold it into that patch if possible
Thanks,
JC.
arch/arm64/boot/dts/broadcom/vulcan.dtsi | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)
arch/arm64/boot/dts/broadcom/vulcan.dtsi +9 -6
@@ -108,12 +108,15 @@ reg = <0x0 0x30000000 0x0 0x10000000>; reg-names = "PCI ECAM"; - /* IO 0x4000_0000 - 0x4001_0000 */ - ranges = <0x01000000 0 0x40000000 0 0x40000000 0 0x00010000 - /* MEM 0x4800_0000 - 0x5000_0000 */ - 0x02000000 0 0x48000000 0 0x48000000 0 0x08000000 - /* MEM64 pref 0x6_0000_0000 - 0x7_0000_0000 */ - 0x43000000 6 0x00000000 6 0x00000000 1 0x00000000>; + /* + * PCI ranges: + * IO no supported + * MEM 0x4000_0000 - 0x6000_0000 + * MEM64 pref 0x40_0000_0000 - 0x60_0000_0000 + */ + ranges = + <0x02000000 0 0x40000000 0 0x40000000 0 0x20000000 + 0x43000000 0x40 0x00000000 0x40 0x00000000 0x20 0x00000000>; interrupt-map-mask = <0 0 0 7>; interrupt-map = /* addr pin ic icaddr icintr */
Signature · 1 line
1.9.1
PATCH 1/1 arm64: dts: vulcan: Update PCI ranges
Quoted 11 lines · Jayachandran C
The PCI memory windows available in
vulcan.dtsiare limited to 128MB for 32-bit BARs, and 4GB for 64-bit BARs. Given the memory mapped IO space available in arm64, these windows can be increased substantially to support more use cases.The change increases the 32-bit window to 256MB and the 64-bit window to 128 GB. The firmware on vulcan boards will use these ranges as well.
PCI IO windows are not supported on Vulcan, so remove them instead of keeping an unused value.
Quoted 6 lines
Signed-off-by Jayachandran C <[email protected]>---
This is an update to the patch with subject
"arm64: Broadcom Vulcan support"
I had sent earlier, please fold it into that patch if possible
Arnd, I do not have any other Broadcom ARM64 DT changes for 4.6 to be sent at the moment, do you mind taking this patch directly?
Feel free to add my:
Thanks!
Quoted 35 lines
Thanks,
JC.arch/arm64/boot/dts/broadcom/vulcan.dtsi | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)arch/arm64/boot/dts/broadcom/vulcan.dtsi +9
-6@@ -108,12 +108,15 @@ reg = <0x0 0x30000000 0x0 0x10000000>; reg-names = "PCI ECAM"; - /* IO 0x4000_0000 - 0x4001_0000 */ - ranges = <0x01000000 0 0x40000000 0 0x40000000 0 0x00010000 - /* MEM 0x4800_0000 - 0x5000_0000 */ - 0x02000000 0 0x48000000 0 0x48000000 0 0x08000000 - /* MEM64 pref 0x6_0000_0000 - 0x7_0000_0000 */ - 0x43000000 6 0x00000000 6 0x00000000 1 0x00000000>; + /* + * PCI ranges: + * IO no supported + * MEM 0x4000_0000 - 0x6000_0000 + * MEM64 pref 0x40_0000_0000 - 0x60_0000_0000 + */ + ranges = + <0x02000000 0 0x40000000 0 0x40000000 0 0x20000000 + 0x43000000 0x40 0x00000000 0x40 0x00000000 0x20 0x00000000>; interrupt-map-mask = <0 0 0 7>; interrupt-map = /* addr pin ic icaddr icintr */
Signature · 1 line
Florian
Arnd Bergmann
AppliedPATCH 1/1 arm64: dts: vulcan: Update PCI ranges
Quoted 19 lines · On Friday 11 March 2016 12:16:15 Florian Fainelli wrote:
Quoted 11 lines · Jayachandran C
The PCI memory windows available in
vulcan.dtsiare limited to 128MB for 32-bit BARs, and 4GB for 64-bit BARs. Given the memory mapped IO space available in arm64, these windows can be increased substantially to support more use cases.The change increases the 32-bit window to 256MB and the 64-bit window to 128 GB. The firmware on vulcan boards will use these ranges as well.
PCI IO windows are not supported on Vulcan, so remove them instead of keeping an unused value.
Quoted 6 lines
Signed-off-by Jayachandran C <[email protected]>---
This is an update to the patch with subject
"arm64: Broadcom Vulcan support"
I had sent earlier, please fold it into that patch if possible
Quoted 8 lines
Arnd, I do not have any other Broadcom ARM64 DT changes for 4.6 to be sent at the moment, do you mind taking this patch directly?
Feel free to add my:
Signed-off-by Florian Fainelli <[email protected]>
Applied to the 4.6 fixes branch now, thanks!
Arnd