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:
Julius Werner
2018-08-07 14:02:55 -07:00
parent af7f9eeddf
commit 73be9dd82c
5 changed files with 5 additions and 55 deletions

View File

@@ -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)

View File

@@ -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));
}

View File

@@ -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_ */