mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-23 13:36:05 +00:00
feat(plat/arm/sgi): add CPU specific handler for Neoverse V1
The 'CORE_PWRDN_EN' bit of 'CPUPWRCTLR_EL1' register requires an explicit write to clear it for hotplug and idle to function correctly. So add Neoverse V1 CPU specific handler in platform reset handler to clear the CORE_PWRDN_EN bit. Signed-off-by: shriram.k <shriram.k@arm.com> Change-Id: I56084c42a56c401503a751cb518238c83cfca8ac
This commit is contained in:
parent
5447302fee
commit
cbee43ebd6
1 changed files with 9 additions and 0 deletions
|
@ -9,6 +9,7 @@
|
|||
#include <platform_def.h>
|
||||
#include <cortex_a75.h>
|
||||
#include <neoverse_n1.h>
|
||||
#include <neoverse_v1.h>
|
||||
#include <cpu_macros.S>
|
||||
|
||||
.globl plat_arm_calc_core_pos
|
||||
|
@ -66,6 +67,7 @@ endfunc plat_arm_calc_core_pos
|
|||
func plat_reset_handler
|
||||
jump_if_cpu_midr CORTEX_A75_MIDR, A75
|
||||
jump_if_cpu_midr NEOVERSE_N1_MIDR, N1
|
||||
jump_if_cpu_midr NEOVERSE_V1_MIDR, V1
|
||||
ret
|
||||
|
||||
/* -----------------------------------------------------
|
||||
|
@ -85,4 +87,11 @@ N1:
|
|||
msr NEOVERSE_N1_CPUPWRCTLR_EL1, x0
|
||||
isb
|
||||
ret
|
||||
|
||||
V1:
|
||||
mrs x0, NEOVERSE_V1_CPUPWRCTLR_EL1
|
||||
bic x0, x0, #NEOVERSE_V1_CPUPWRCTLR_EL1_CORE_PWRDN_BIT
|
||||
msr NEOVERSE_V1_CPUPWRCTLR_EL1, x0
|
||||
isb
|
||||
ret
|
||||
endfunc plat_reset_handler
|
||||
|
|
Loading…
Add table
Reference in a new issue