mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-20 19:44:23 +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 <platform_def.h>
|
||||||
#include <cortex_a75.h>
|
#include <cortex_a75.h>
|
||||||
#include <neoverse_n1.h>
|
#include <neoverse_n1.h>
|
||||||
|
#include <neoverse_v1.h>
|
||||||
#include <cpu_macros.S>
|
#include <cpu_macros.S>
|
||||||
|
|
||||||
.globl plat_arm_calc_core_pos
|
.globl plat_arm_calc_core_pos
|
||||||
|
@ -66,6 +67,7 @@ endfunc plat_arm_calc_core_pos
|
||||||
func plat_reset_handler
|
func plat_reset_handler
|
||||||
jump_if_cpu_midr CORTEX_A75_MIDR, A75
|
jump_if_cpu_midr CORTEX_A75_MIDR, A75
|
||||||
jump_if_cpu_midr NEOVERSE_N1_MIDR, N1
|
jump_if_cpu_midr NEOVERSE_N1_MIDR, N1
|
||||||
|
jump_if_cpu_midr NEOVERSE_V1_MIDR, V1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
/* -----------------------------------------------------
|
/* -----------------------------------------------------
|
||||||
|
@ -85,4 +87,11 @@ N1:
|
||||||
msr NEOVERSE_N1_CPUPWRCTLR_EL1, x0
|
msr NEOVERSE_N1_CPUPWRCTLR_EL1, x0
|
||||||
isb
|
isb
|
||||||
ret
|
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
|
endfunc plat_reset_handler
|
||||||
|
|
Loading…
Add table
Reference in a new issue