Skip to content

ARM: BCM63xx: SMP support (v2)

Florian Fainelli linux-arm-kernel 3 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest posting 2/29 patches 0 repliesNew
  2. v2 posting 1/22 patches 0 repliesSuperseded
  3. v17 patches 0 repliesSuperseded

Changes in v2 from the cover letter

- introduced a helper function: vfp_disable() as recommended by Russell
- fixed the DT binding for the PMB controllers to account for the number of zones as a second cell, and drop the bus identifier since it is implicit with the phandle already

Patches in v2 posting 2/2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9Documentation: DT: Add Broadcom BCM63138 PMB bindingDocumentation/devicetree/bindings/reset/brcm,bcm63138-pmb.txt+19 -00 replies
2/9ARM: dts: BCM63xx: Add PMB busses nodesarch/arm/boot/dts/bcm63138.dtsi+12 -00 replies
3/9Documentation: DT: Document SMP DT nodes and properties for BCM63138Documentation/devicetree/bindings/arm/bcm/brcm,bcm63138.txt+42 -00 replies
4/9ARM: dts: BCM63xx: Add SMP nodes and required propertiesarch/arm/boot/dts/bcm63138.dtsi+8 -00 replies
5/9ARM: BCM63xx: Add Broadcom BCM63xx PMB controller helpersinclude/linux/bcm63xx_pmb.h+76 -00 replies
6/9ARM: BCM63xx: Add secondary CPU PMB initialization sequencearch/arm/mach-bcm/bcm63xx_pmb.c+221 -00 replies
7/9ARM: vfp: Add include guardsarch/arm/include/asm/vfp.h+5 -00 replies
8/9ARM: vfp: Add vfp_disable for problematic platformsarch/arm/include/asm/vfp.h arch/arm/vfp/vfpmodule.c+17 -00 replies
9/9ARM: BCM63xx: Add SMP support for BCM63138arch/arm/mach-bcm/Makefile arch/arm/mach-bcm/bcm63xx_headsmp.S arch/arm/mach-bcm/bcm63xx_smp.c +1 more+208 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/9] ARM: BCM63xx: SMP support (v2)

Hi all,

This patch series implements SMP support on the Broadcom BCM63138 DSL platform.

There is a number of decisions being made here to simplify things:

- the power on sequence for the secondary CPU is a bit of low-level code that uses the on-chip PMB bus, which will later be supported as a proper reset controller driver, it was considered first to use a reset controller for that, but this was later dropped because:
- reset controllers cannot be utilized at SMP init time (too early)
- moving reset controllers init earlier has been rejected
- the second CPU power on sequence is fairly specific, even within the context of the BCM63138 SoC, no other peripheral has that level of detail

- VFP needs to be disabled when SMP is used because the second CPU does not have any VFP unit and will just hang doing a VFP/NEON operation

Changes in v2:

- introduced a helper function: vfp_disable() as recommended by Russell
- fixed the DT binding for the PMB controllers to account for the number of zones as a second cell, and drop the bus identifier since it is implicit with the phandle already

Let me know how you would want to approach the merge of the ARM VFP parts if that is okay to get them merged via my tree and submitted as a Broadcom pull request later on.

Florian Fainelli (9):
Documentation: DT: Add Broadcom BCM63138 PMB binding
ARM: dts: BCM63xx: Add PMB busses nodes
Documentation: DT: Document SMP DT nodes and properties for BCM63138
ARM: dts: BCM63xx: Add SMP nodes and required properties
ARM: BCM63xx: Add Broadcom BCM63xx PMB controller helpers
ARM: BCM63xx: Add secondary CPU PMB initialization sequence
ARM: vfp: Add include guards
ARM: vfp: Add vfp_disable for problematic platforms
ARM: BCM63xx: Add SMP support for BCM63138

 .../devicetree/bindings/arm/bcm/brcm,bcm63138.txt  |  42 ++++
 .../bindings/reset/brcm,bcm63138-pmb.txt           |  19 ++
 arch/arm/boot/dts/bcm63138.dtsi                    |  20 ++
 arch/arm/include/asm/vfp.h                         |   9 +
 arch/arm/mach-bcm/Makefile                         |   7 +-
 arch/arm/mach-bcm/bcm63xx_headsmp.S                |  23 +++
 arch/arm/mach-bcm/bcm63xx_pmb.c                    | 221 +++++++++++++++++++++
 arch/arm/mach-bcm/bcm63xx_smp.c                    | 170 ++++++++++++++++
 arch/arm/mach-bcm/bcm63xx_smp.h                    |   9 +
 arch/arm/vfp/vfpmodule.c                           |  13 ++
 include/linux/bcm63xx_pmb.h                        |  76 +++++++
 11 files changed, 608 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/reset/brcm,bcm63138-pmb.txt
 create mode 100644 arch/arm/mach-bcm/bcm63xx_headsmp.S
 create mode 100644 arch/arm/mach-bcm/bcm63xx_pmb.c
 create mode 100644 arch/arm/mach-bcm/bcm63xx_smp.c
 create mode 100644 arch/arm/mach-bcm/bcm63xx_smp.h
 create mode 100644 include/linux/bcm63xx_pmb.h
Signature · 1 line
2.1.0