13374752fSBo-Chen Chen /* 23374752fSBo-Chen Chen * Copyright (c) 2020-2022, MediaTek Inc. All rights reserved. 33374752fSBo-Chen Chen * 43374752fSBo-Chen Chen * SPDX-License-Identifier: BSD-3-Clause 53374752fSBo-Chen Chen */ 63374752fSBo-Chen Chen 73374752fSBo-Chen Chen #include <arch_helpers.h> 8*215869c6SRex-BC Chen #include <common/debug.h> 93374752fSBo-Chen Chen #include <lib/mmio.h> 10*215869c6SRex-BC Chen #include <lib/mtk_init/mtk_init.h> 113374752fSBo-Chen Chen #include <mt_timer.h> 123374752fSBo-Chen Chen #include <platform_def.h> 133374752fSBo-Chen Chen 143374752fSBo-Chen Chen uint64_t normal_time_base; 153374752fSBo-Chen Chen uint64_t atf_time_base; 163374752fSBo-Chen Chen sched_clock_init(uint64_t normal_base,uint64_t atf_base)173374752fSBo-Chen Chenvoid sched_clock_init(uint64_t normal_base, uint64_t atf_base) 183374752fSBo-Chen Chen { 193374752fSBo-Chen Chen normal_time_base += normal_base; 203374752fSBo-Chen Chen atf_time_base = atf_base; 213374752fSBo-Chen Chen } 223374752fSBo-Chen Chen sched_clock(void)233374752fSBo-Chen Chenuint64_t sched_clock(void) 243374752fSBo-Chen Chen { 253374752fSBo-Chen Chen uint64_t cval; 263374752fSBo-Chen Chen uint64_t rel_base; 273374752fSBo-Chen Chen 283374752fSBo-Chen Chen rel_base = read_cntpct_el0() - atf_time_base; 293374752fSBo-Chen Chen cval = ((rel_base * 1000U) / SYS_COUNTER_FREQ_IN_MHZ) 303374752fSBo-Chen Chen - normal_time_base; 313374752fSBo-Chen Chen return cval; 323374752fSBo-Chen Chen } 333374752fSBo-Chen Chen mt_systimer_init(void)34*215869c6SRex-BC Chenint mt_systimer_init(void) 353374752fSBo-Chen Chen { 36*215869c6SRex-BC Chen INFO("[%s] systimer initialization\n", __func__); 37*215869c6SRex-BC Chen 383374752fSBo-Chen Chen /* Enable access in NS mode */ 393374752fSBo-Chen Chen mmio_write_32(CNTWACR_REG, CNT_WRITE_ACCESS_CTL_MASK); 403374752fSBo-Chen Chen mmio_write_32(CNTRACR_REG, CNT_READ_ACCESS_CTL_MASK); 41*215869c6SRex-BC Chen 42*215869c6SRex-BC Chen return 0; 433374752fSBo-Chen Chen } 44*215869c6SRex-BC Chen MTK_PLAT_SETUP_0_INIT(mt_systimer_init); 45