
On 14.05.20 20:46, Heinrich Schuchardt wrote:
On 5/14/20 2:38 PM, Michael Walle wrote:
On some architectures, specifically the layerscape, the secondary cores wait for an interrupt before entering the spin-tables. This applies only to boards which doesn't have PSCI provided by TF-a and u-boot does the
%s/TF-a/TF-A/, %s/u-boot/U-Boot/
secondary cores handling. bootm/booti already call that function for ARM architecture; also add it to bootelf before switching to EL2. Additionally, provide a weak noop function so we don't have to have "#ifdef CONFIG_ARM64" guards.
Signed-off-by: Michael Walle michael@walle.cc
common/bootm.c | 9 +++++++++ lib/efi_loader/efi_setup.c | 6 ++++++ 2 files changed, 15 insertions(+)
diff --git a/common/bootm.c b/common/bootm.c index db4362a643..65adf29329 100644 --- a/common/bootm.c +++ b/common/bootm.c @@ -816,6 +816,15 @@ void __weak switch_to_non_secure_mode(void) { }
+/**
- smp_kick_all_cpus() - kick all CPUs
- This routine is overridden by architectures requiring this feature.
- */
+void __weak smp_kick_all_cpus(void) +{ +}
#else /* USE_HOSTCC */
#if defined(CONFIG_FIT_SIGNATURE)
diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c index 26a7423203..7e5364adc5 100644 --- a/lib/efi_loader/efi_setup.c +++ b/lib/efi_loader/efi_setup.c @@ -132,6 +132,12 @@ efi_status_t efi_init_obj_list(void) /* Allow unaligned memory access */ allow_unaligned();
- /*
* Some architectures need to kick secondary cores to enter their
* spin table.
*/
- smp_kick_all_cpus();
This will not compile with
CONFIG_CMD_BOOTI=n CONFIG_CMD_BOOTM=n CONFIG_CMD_BOOTZ=n
Much worse is that in incurs needless overhead on PSCI capable platforms. Can we move the smp_kick_all_cpus() to the board or soc level of the few systems that use spin tables please? :)
Alex