diff mbox

[U-Boot,5/6] x86: tsc: Correct Silvermont reference clock values

Message ID 1501038725-20850-5-git-send-email-bmeng.cn@gmail.com
State Accepted
Commit f5757154bb2a00d529fa999da44dd18965b70738
Delegated to: Bin Meng
Headers show

Commit Message

Bin Meng July 26, 2017, 3:12 a.m. UTC
Atom processors use a 19.2 MHz crystal oscillator.

Early processors generate 100 MHz via 19.2 MHz * 26 / 5 = 99.84 MHz.

Later processors generate 100 MHz via 19.2 MHz * 125 / 24 = 100 MHz.

Update the Silvermont-based tables accordingly, matching the Software
Developers Manual.

Also, correct a 166 MHz entry that should have been 116 MHz, and add
a missing 80 MHz entry for VLV2.

This keeps in sync with Linux kernel commit:
  05680e7: x86/tsc_msr: Correct Silvermont reference clock values

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 drivers/timer/tsc_timer.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Simon Glass Aug. 1, 2017, 9:11 a.m. UTC | #1
On 25 July 2017 at 21:12, Bin Meng <bmeng.cn@gmail.com> wrote:
> Atom processors use a 19.2 MHz crystal oscillator.
>
> Early processors generate 100 MHz via 19.2 MHz * 26 / 5 = 99.84 MHz.
>
> Later processors generate 100 MHz via 19.2 MHz * 125 / 24 = 100 MHz.
>
> Update the Silvermont-based tables accordingly, matching the Software
> Developers Manual.
>
> Also, correct a 166 MHz entry that should have been 116 MHz, and add
> a missing 80 MHz entry for VLV2.
>
> This keeps in sync with Linux kernel commit:
>   05680e7: x86/tsc_msr: Correct Silvermont reference clock values
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
>  drivers/timer/tsc_timer.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>
Bin Meng Aug. 1, 2017, 12:21 p.m. UTC | #2
On Tue, Aug 1, 2017 at 5:11 PM, Simon Glass <sjg@chromium.org> wrote:
> On 25 July 2017 at 21:12, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Atom processors use a 19.2 MHz crystal oscillator.
>>
>> Early processors generate 100 MHz via 19.2 MHz * 26 / 5 = 99.84 MHz.
>>
>> Later processors generate 100 MHz via 19.2 MHz * 125 / 24 = 100 MHz.
>>
>> Update the Silvermont-based tables accordingly, matching the Software
>> Developers Manual.
>>
>> Also, correct a 166 MHz entry that should have been 116 MHz, and add
>> a missing 80 MHz entry for VLV2.
>>
>> This keeps in sync with Linux kernel commit:
>>   05680e7: x86/tsc_msr: Correct Silvermont reference clock values
>>
>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
>> ---
>>
>>  drivers/timer/tsc_timer.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>
> Reviewed-by: Simon Glass <sjg@chromium.org>

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

Patch

diff --git a/drivers/timer/tsc_timer.c b/drivers/timer/tsc_timer.c
index 3c1b745..b242e74 100644
--- a/drivers/timer/tsc_timer.c
+++ b/drivers/timer/tsc_timer.c
@@ -44,11 +44,11 @@  static struct freq_desc freq_desc_tables[] = {
 	/* CLV+ */
 	{ 6, 0x35, 0, { 0, 133200, 0, 0, 0, 99840, 0, 83200 } },
 	/* TNG - Intel Atom processor Z3400 series */
-	{ 6, 0x4a, 1, { 0, 99840, 133200, 0, 0, 0, 0, 0 } },
+	{ 6, 0x4a, 1, { 0, 100000, 133300, 0, 0, 0, 0, 0 } },
 	/* VLV2 - Intel Atom processor E3000, Z3600, Z3700 series */
-	{ 6, 0x37, 1, { 83200, 99840, 133200, 166400, 0, 0, 0, 0 } },
+	{ 6, 0x37, 1, { 83300, 100000, 133300, 116700, 80000, 0, 0, 0 } },
 	/* ANN - Intel Atom processor Z3500 series */
-	{ 6, 0x5a, 1, { 83200, 99840, 133200, 99840, 0, 0, 0, 0 } },
+	{ 6, 0x5a, 1, { 83300, 100000, 133300, 100000, 0, 0, 0, 0 } },
 	/* Ivybridge */
 	{ 6, 0x3a, 2, { 0, 0, 0, 0, 0, 0, 0, 0 } },
 };
@@ -99,7 +99,7 @@  static unsigned long __maybe_unused try_msr_calibrate_tsc(void)
 
 	if (freq_desc_tables[cpu_index].msr_plat == 2) {
 		/* TODO: Figure out how best to deal with this */
-		freq = 99840;
+		freq = 100000;
 		debug("Using frequency: %u KHz\n", freq);
 	} else {
 		/* Get FSB FREQ ID */