aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2021-07-28 12:00:22 +0800
committerBin Meng <bmeng.cn@gmail.com>2021-08-02 15:11:40 +0800
commit5824bc6d6fe5f63aa1fb9acbe5ad5aa28d77380f (patch)
tree6487147d95901121d9caa2391759fc654cf0061a
parentffaa7abfc5e930448a3aadb17e5eb00cabb37b9d (diff)
downloadu-boot-5824bc6d6fe5f63aa1fb9acbe5ad5aa28d77380f.zip
u-boot-5824bc6d6fe5f63aa1fb9acbe5ad5aa28d77380f.tar.gz
u-boot-5824bc6d6fe5f63aa1fb9acbe5ad5aa28d77380f.tar.bz2
x86: tsc: Rename X86_TSC_TIMER_EARLY_FREQ to X86_TSC_TIMER_FREQ
Currently there are two places to specify the x86 TSC timer frequency with one in Kconfig used for early timer and the other one in device tree used when the frequency cannot be determined from hardware. This may potentially create an inconsistent config where the 2 values do not match. Let's use the one specified in Kconfig in the device tree as well. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--arch/x86/cpu/quark/Kconfig4
-rw-r--r--arch/x86/dts/galileo.dts2
-rw-r--r--drivers/timer/Kconfig8
-rw-r--r--drivers/timer/tsc_timer.c5
4 files changed, 10 insertions, 9 deletions
diff --git a/arch/x86/cpu/quark/Kconfig b/arch/x86/cpu/quark/Kconfig
index 430cce1..61bb579 100644
--- a/arch/x86/cpu/quark/Kconfig
+++ b/arch/x86/cpu/quark/Kconfig
@@ -130,8 +130,8 @@ config SYS_CAR_SIZE
Space in bytes in eSRAM used as Cache-As-ARM (CAR).
Note this size must not exceed eSRAM's total size.
-config X86_TSC_TIMER_EARLY_FREQ
+config X86_TSC_TIMER_FREQ
int
- default 400
+ default 400000000
endif
diff --git a/arch/x86/dts/galileo.dts b/arch/x86/dts/galileo.dts
index 5010471..b5ba118 100644
--- a/arch/x86/dts/galileo.dts
+++ b/arch/x86/dts/galileo.dts
@@ -42,7 +42,7 @@
};
tsc-timer {
- clock-frequency = <400000000>;
+ clock-frequency = <CONFIG_X86_TSC_TIMER_FREQ>;
};
mrc {
diff --git a/drivers/timer/Kconfig b/drivers/timer/Kconfig
index ee81dfa..8913142 100644
--- a/drivers/timer/Kconfig
+++ b/drivers/timer/Kconfig
@@ -124,12 +124,12 @@ config RENESAS_OSTM_TIMER
Enables support for the Renesas OSTM Timer driver.
This timer is present on Renesas RZ/A1 R7S72100 SoCs.
-config X86_TSC_TIMER_EARLY_FREQ
- int "x86 TSC timer frequency in MHz when used as the early timer"
+config X86_TSC_TIMER_FREQ
+ int "x86 TSC timer frequency in Hz"
depends on X86_TSC_TIMER
- default 1000
+ default 1000000000
help
- Sets the estimated CPU frequency in MHz when TSC is used as the
+ Sets the estimated CPU frequency in Hz when TSC is used as the
early timer and the frequency can neither be calibrated via some
hardware ways, nor got from device tree at the time when device
tree is not available yet.
diff --git a/drivers/timer/tsc_timer.c b/drivers/timer/tsc_timer.c
index 7d19a99..adef50c 100644
--- a/drivers/timer/tsc_timer.c
+++ b/drivers/timer/tsc_timer.c
@@ -425,12 +425,13 @@ static void tsc_timer_ensure_setup(bool early)
goto done;
if (early)
- fast_calibrate = CONFIG_X86_TSC_TIMER_EARLY_FREQ;
+ gd->arch.clock_rate = CONFIG_X86_TSC_TIMER_FREQ;
else
return;
done:
- gd->arch.clock_rate = fast_calibrate * 1000000;
+ if (!gd->arch.clock_rate)
+ gd->arch.clock_rate = fast_calibrate * 1000000;
}
gd->arch.tsc_inited = true;
}