diff --git a/arch/arm64/src/imx8/imx8_boot.c b/arch/arm64/src/imx8/imx8_boot.c index 7272b58f07..13bdbdb31d 100644 --- a/arch/arm64/src/imx8/imx8_boot.c +++ b/arch/arm64/src/imx8/imx8_boot.c @@ -80,9 +80,15 @@ const struct arm_mmu_config g_mmu_config = void arm64_el_init(void) { - write_sysreg(CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, cntfrq_el0); + uint64_t el = arm64_current_el(); - ARM64_ISB(); + /* Only in EL3 we can write to cntfrq_el0. */ + + if (el == 3) + { + write_sysreg(CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC, cntfrq_el0); + ARM64_ISB(); + } } /****************************************************************************