mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-03-05 00:47:08 +00:00
FVP: Do not power off secondary CPUs when booting an EL3 payload
Normally, in the FVP port, secondary CPUs are immediately powered down if they are powered on at reset. However, when booting an EL3 payload, we need to keep them powered on as the requirement is for all CPUs to enter the EL3 payload image. This patch puts them in a holding pen instead of powering them off. Change-Id: I6526a88b907a0ddb820bead72f1d350a99b1692c
This commit is contained in:
parent
2bc420676c
commit
cdf1408856
@ -468,9 +468,11 @@ for placing the executing secondary CPU in a platform-specific state until the
|
||||
primary CPU performs the necessary actions to bring it out of that state and
|
||||
allow entry into the OS. This function must not return.
|
||||
|
||||
In the ARM FVP port, each secondary CPU powers itself off. The primary CPU is
|
||||
responsible for powering up the secondary CPU when normal world software
|
||||
requires them.
|
||||
In the ARM FVP port, when using the normal boot flow, each secondary CPU powers
|
||||
itself off. The primary CPU is responsible for powering up the secondary CPUs
|
||||
when normal world software requires them. When booting an EL3 payload instead,
|
||||
they stay powered on and are put in a holding pen until their mailbox gets
|
||||
populated.
|
||||
|
||||
This function fulfills requirement 2 above.
|
||||
|
||||
|
@ -60,6 +60,7 @@
|
||||
* -----------------------------------------------------
|
||||
*/
|
||||
func plat_secondary_cold_boot_setup
|
||||
#ifndef EL3_PAYLOAD_BASE
|
||||
/* ---------------------------------------------
|
||||
* Power down this cpu.
|
||||
* TODO: Do we need to worry about powering the
|
||||
@ -93,6 +94,18 @@ func plat_secondary_cold_boot_setup
|
||||
wfi
|
||||
cb_panic:
|
||||
b cb_panic
|
||||
#else
|
||||
mov_imm x0, PLAT_ARM_TRUSTED_MAILBOX_BASE
|
||||
|
||||
/* Wait until the entrypoint gets populated */
|
||||
poll_mailbox:
|
||||
ldr x1, [x0]
|
||||
cbz x1, 1f
|
||||
br x1
|
||||
1:
|
||||
wfe
|
||||
b poll_mailbox
|
||||
#endif /* EL3_PAYLOAD_BASE */
|
||||
endfunc plat_secondary_cold_boot_setup
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user