arm64: Remove set_cntfrq() function
CNTFRQ_EL0 is a normal AArch64 architectural register like hundreds of others that are all accessed through the raw_(read|write)_${register}() family of functions. There's no reason why this register in particular should have an inconsistent accessor, so replace all instances of set_cntfrq() with raw_write_cntfrq_el0() and get rid of it. Change-Id: I599519ba71c287d4085f9ad28d7349ef0b1eea9b Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/27947 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
af7f9eeddf
commit
73be9dd82c
|
@ -15,7 +15,7 @@
|
|||
##
|
||||
################################################################################
|
||||
|
||||
lib_access = pstate.c sysctrl.c cache.c tlb.c clock.c
|
||||
lib_access = pstate.c sysctrl.c cache.c tlb.c
|
||||
|
||||
ifeq ($(CONFIG_ARCH_BOOTBLOCK_ARMV8_64),y)
|
||||
decompressor-y += $(lib_access)
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright (C) 2014 Google Inc
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; version 2 of
|
||||
* the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* clock.c: Functions for accessing clock and timer related registers
|
||||
* Reference: ARM Architecture Reference Manual, ARMv8-A edition
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <arch/clock.h>
|
||||
|
||||
void set_cntfrq(uint32_t freq)
|
||||
{
|
||||
__asm__ __volatile__("msr cntfrq_el0, %0" :: "r"((uint64_t)freq));
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* Copyright 2014 Google Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef __ARM_CLOCK_H_
|
||||
#define __ARM_CLOCK_H_
|
||||
|
||||
#include <types.h>
|
||||
|
||||
void set_cntfrq(uint32_t);
|
||||
|
||||
#endif /* __ARM_CLOCK_H_ */
|
|
@ -17,6 +17,7 @@
|
|||
*/
|
||||
|
||||
#include <arch/io.h>
|
||||
#include <arch/lib_helpers.h>
|
||||
#include <console/console.h>
|
||||
#include <inttypes.h>
|
||||
#include <soc/clock.h>
|
||||
|
@ -25,7 +26,6 @@
|
|||
#include <timer.h>
|
||||
#include <soc/addressmap.h>
|
||||
#include <assert.h>
|
||||
#include <arch/clock.h>
|
||||
|
||||
/* Global System Timers Unit (GTI) registers */
|
||||
struct cn81xx_timer {
|
||||
|
@ -131,7 +131,7 @@ void init_timer(void)
|
|||
|
||||
void soc_timer_init(void)
|
||||
{
|
||||
set_cntfrq(tickrate);
|
||||
raw_write_cntfrq_el0(tickrate);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <arch/clock.h>
|
||||
#include <arch/cpu.h>
|
||||
#include <arch/lib_helpers.h>
|
||||
#include <arch/stages.h>
|
||||
#include <gic.h>
|
||||
#include <soc/addressmap.h>
|
||||
|
@ -26,7 +26,7 @@ static void arm64_arch_timer_init(void)
|
|||
{
|
||||
uint32_t freq = clock_get_osc_khz() * 1000;
|
||||
// Set the cntfrq register.
|
||||
set_cntfrq(freq);
|
||||
raw_write_cntfrq_el0(freq);
|
||||
}
|
||||
|
||||
static void mselect_enable_wrap(void)
|
||||
|
|
Loading…
Reference in New Issue