freescale: ls1043aqds: enable secure system counter
authorBiwen Li <biwen.li@nxp.com>
Thu, 2 Jul 2020 03:13:03 +0000 (11:13 +0800)
committerPriyanka Jain <priyanka.jain@nxp.com>
Mon, 27 Jul 2020 08:46:29 +0000 (14:16 +0530)
Enable secure system counter in board_early_init_f for udelay()
to fix a bug that always return 0 by timer_read_counter()
when boot from qspi(No TFA)

Signed-off-by: Biwen Li <biwen.li@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
board/freescale/ls1043aqds/ls1043aqds.c

index 613686e..8c0d0db 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2015 Freescale Semiconductor, Inc.
- * Copyright 2019 NXP
+ * Copyright 2019-2020 NXP
  */
 
 #include <common.h>
@@ -453,6 +453,7 @@ void board_retimer_init(void)
 
 int board_early_init_f(void)
 {
+       u32 __iomem *cntcr = (u32 *)CONFIG_SYS_FSL_TIMER_ADDR;
 #ifdef CONFIG_HAS_FSL_XHCI_USB
        struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR;
        u32 usb_pwrfault;
@@ -461,6 +462,11 @@ int board_early_init_f(void)
        u8 uart;
 #endif
 
+       /*
+        * Enable secure system counter for timer
+        */
+       out_le32(cntcr, 0x1);
+
 #ifdef CONFIG_SYS_I2C
 #ifdef CONFIG_SYS_I2C_EARLY_INIT
        i2c_early_init_f();