[PATCH v2 0/6] MSM8916: Bring secondary cores online with spin-table
Sam Day via B4 Relay
devnull+me.samcday.com at kernel.org
Tue Jun 2 09:18:56 CEST 2026
This patch series depends on the "mach-snapdragon: handle platforms
without PSCI support" patch that was submitted earlier today. That first
patch lays some groundwork to handle detecting when a device is booting
without PSCI and deletes the /psci node in that case.
This series builds on top of that detection by rewriting all CPUs with
enable-method="psci" to "spin-table".
Once this is done, the existing spin-table support in U-Boot handles
further patching the nodes with the appropriate cpu-release-addr and
reserving the memory with the spin-table instructions.
Interestingly, this spin-table code doesn't seem to be in active use
anywhere, and it had bitrotted a little. But after blowing the dust off
it and fixing a couple of missing #includes, it works great.
I extended the spin-table support a little to make it easier for
consumers to plug in a method that is called for each CPU that needs to
be brought online. This saves the qcom board code from needing to hook
into ft_board_setup or something that runs before booting the OS.
Signed-off-by: Sam Day <me at samcday.com>
---
Changes in v2:
- Reworked the SCM impl to be a proper firmware driver, and streamlined
the API so callers aren't forced to deal with calling conventions
(thanks Casey).
- Link to v1: https://lore.kernel.org/r/20250128-msm8916-smp-support-v1-0-39587f18cf0c@samcday.com
---
Sam Day (6):
armv8: spin_table: Fix missing includes
armv8: spin_table: add hook for booting cores
firmware: Add qcom SCM driver
mach-snapdragon: fixup CPUs with PSCI enable-method
mach-snapdragon: MSM8916 spin-table CPU boot support
qcom_defconfig: enable spin-table support
MAINTAINERS | 2 +
arch/arm/cpu/armv8/spin_table.c | 20 +++
arch/arm/include/asm/spin_table.h | 3 +
arch/arm/mach-snapdragon/Makefile | 1 +
arch/arm/mach-snapdragon/board.c | 41 +++++
arch/arm/mach-snapdragon/msm8916-smp.c | 138 +++++++++++++++++
configs/qcom_defconfig | 3 +
drivers/firmware/Kconfig | 9 ++
drivers/firmware/Makefile | 1 +
drivers/firmware/qcom-scm.c | 274 +++++++++++++++++++++++++++++++++
include/firmware/qcom/scm.h | 71 +++++++++
11 files changed, 563 insertions(+)
---
base-commit: 30b77f6aa146c96b831cb4ece038130b655b6a41
change-id: 20250127-msm8916-smp-support-5f5e7b49d07e
Best regards,
--
Sam Day <me at samcday.com>
More information about the U-Boot
mailing list