N1SDP: Initialise CNTFRQ in Non Secure CNTBaseN
authorSami Mujawar <sami.mujawar@arm.com>
Fri, 10 May 2019 07:52:07 +0000 (08:52 +0100)
committerSami Mujawar <sami.mujawar@arm.com>
Wed, 15 May 2019 10:43:20 +0000 (11:43 +0100)
N1SDP exhibits the behavior similar to Juno wherein CNTBaseN.CNTFRQ
can be written but does not reflect the value of the CNTFRQ register
in CNTCTLBase frame. This doesn't follow ARM ARM in that the value
updated in CNTCTLBase.CNTFRQ is not reflected in CNTBaseN.CNTFRQ.

Hence enable the workaround (applied to Juno) for N1SDP that updates
the CNTFRQ register in the Non Secure CNTBaseN frame.

Change-Id: Id89ee1bca0f25c9d62f8f794f2c4f4e618cdf092
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
plat/arm/common/arm_common.c

index 0442945b8a1e191383eb25217f698cdb98ea5494..f5ce4d2417657e5521d9f6e409a775054bf0f048 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -127,12 +127,12 @@ void arm_configure_sys_timer(void)
         */
        mmio_write_32(ARM_SYS_TIMCTL_BASE + CNTCTLBASE_CNTFRQ, freq_val);
 
-#ifdef PLAT_juno
+#if defined(PLAT_juno) || defined(PLAT_n1sdp)
        /*
         * Initialize CNTFRQ register in Non-secure CNTBase frame.
-        * This is only required for Juno, because it doesn't follow ARM ARM
-        * in that the value updated in CNTFRQ is not reflected in
-        * CNTBASEN_CNTFRQ. Hence update the value manually.
+        * This is only required for Juno and N1SDP, because they do not
+        * follow ARM ARM in that the value updated in CNTFRQ is not
+        * reflected in CNTBASEN_CNTFRQ. Hence update the value manually.
         */
        mmio_write_32(ARM_SYS_CNT_BASE_NS + CNTBASEN_CNTFRQ, freq_val);
 #endif