cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

time.c (941B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * Copyright (C) 2012 Regents of the University of California
      4 * Copyright (C) 2017 SiFive
      5 */
      6
      7#include <linux/of_clk.h>
      8#include <linux/clocksource.h>
      9#include <linux/delay.h>
     10#include <asm/sbi.h>
     11#include <asm/processor.h>
     12#include <asm/timex.h>
     13
     14unsigned long riscv_timebase __ro_after_init;
     15EXPORT_SYMBOL_GPL(riscv_timebase);
     16
     17void __init time_init(void)
     18{
     19	struct device_node *cpu;
     20	u32 prop;
     21
     22	cpu = of_find_node_by_path("/cpus");
     23	if (!cpu || of_property_read_u32(cpu, "timebase-frequency", &prop))
     24		panic(KERN_WARNING "RISC-V system with no 'timebase-frequency' in DTS\n");
     25	of_node_put(cpu);
     26	riscv_timebase = prop;
     27
     28	lpj_fine = riscv_timebase / HZ;
     29
     30	of_clk_init(NULL);
     31	timer_probe();
     32}
     33
     34void clocksource_arch_init(struct clocksource *cs)
     35{
     36#ifdef CONFIG_GENERIC_GETTIMEOFDAY
     37	cs->vdso_clock_mode = VDSO_CLOCKMODE_ARCHTIMER;
     38#else
     39	cs->vdso_clock_mode = VDSO_CLOCKMODE_NONE;
     40#endif
     41}