diff mbox series

[1/2] x86: tsc: Rename X86_TSC_TIMER_EARLY_FREQ to X86_TSC_TIMER_FREQ

Message ID 20210728040023.338991-1-bmeng.cn@gmail.com
State Accepted
Commit 5824bc6d6fe5f63aa1fb9acbe5ad5aa28d77380f
Delegated to: Bin Meng
Headers show
Series [1/2] x86: tsc: Rename X86_TSC_TIMER_EARLY_FREQ to X86_TSC_TIMER_FREQ | expand

Commit Message

Bin Meng July 28, 2021, 4 a.m. UTC
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>
---

 arch/x86/cpu/quark/Kconfig | 4 ++--
 arch/x86/dts/galileo.dts   | 2 +-
 drivers/timer/Kconfig      | 8 ++++----
 drivers/timer/tsc_timer.c  | 5 +++--
 4 files changed, 10 insertions(+), 9 deletions(-)

Comments

Bin Meng July 31, 2021, 1:08 a.m. UTC | #1
Hi Simon,

On Wed, Jul 28, 2021 at 12:00 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> 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>
> ---
>
>  arch/x86/cpu/quark/Kconfig | 4 ++--
>  arch/x86/dts/galileo.dts   | 2 +-
>  drivers/timer/Kconfig      | 8 ++++----
>  drivers/timer/tsc_timer.c  | 5 +++--
>  4 files changed, 10 insertions(+), 9 deletions(-)
>

Looks you reviewed the 2nd patch but not this one.

And there are other 2 patches related to x86 rom build. Could you
please take a look?

Regards,
Bin
Simon Glass July 31, 2021, 1:35 a.m. UTC | #2
On Tue, 27 Jul 2021 at 22:00, Bin Meng <bmeng.cn@gmail.com> wrote:
>
> 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>
> ---
>
>  arch/x86/cpu/quark/Kconfig | 4 ++--
>  arch/x86/dts/galileo.dts   | 2 +-
>  drivers/timer/Kconfig      | 8 ++++----
>  drivers/timer/tsc_timer.c  | 5 +++--
>  4 files changed, 10 insertions(+), 9 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
Bin Meng July 31, 2021, 1:59 a.m. UTC | #3
On Sat, Jul 31, 2021 at 9:35 AM Simon Glass <sjg@chromium.org> wrote:
>
> On Tue, 27 Jul 2021 at 22:00, Bin Meng <bmeng.cn@gmail.com> wrote:
> >
> > 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>
> > ---
> >
> >  arch/x86/cpu/quark/Kconfig | 4 ++--
> >  arch/x86/dts/galileo.dts   | 2 +-
> >  drivers/timer/Kconfig      | 8 ++++----
> >  drivers/timer/tsc_timer.c  | 5 +++--
> >  4 files changed, 10 insertions(+), 9 deletions(-)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>

applied to u-boot-x86, thanks!
diff mbox series

Patch

diff --git a/arch/x86/cpu/quark/Kconfig b/arch/x86/cpu/quark/Kconfig
index 430cce184d..61bb5792c8 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 501047124e..b5ba1181dd 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 ee81dfa776..8913142654 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 7d19a99622..adef50c374 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;
 }