
On Mon, Jul 12, 2021 at 03:04:21PM +0100, Peter Hoyes wrote:
From: Peter Hoyes Peter.Hoyes@arm.com
CNTFRQ_EL0 is only writable from the highest supported exception level on the platform. For Armv8-A, this is typically EL3, but technically EL2 and EL3 are optional so it may need to be initialized at EL2 or EL1. For Armv8-R, the highest exception level is always EL2.
This patch moves the initialization outside of the switch_el block and uses a new macro branch_if_not_highest_el which dynamically detects whether it is at the highest supported exception level.
Linux's docs state that CNTFRQ_EL0 should be initialized by the bootloader. If not set, the the U-Boot prompt countdown hangs.
Signed-off-by: Peter Hoyes Peter.Hoyes@arm.com
Applied to u-boot/master, thanks!