If fid_multiplier is 0, it doesn't seem to have any sense. So I agree.
Acked-by: zheng bao zheng.bao@amd.com
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Marc Jones Sent: Tuesday, January 06, 2009 9:26 AM To: Rudolf Marek; Bao, Zheng Cc: Carl-Daniel Hailfinger; Coreboot Subject: Re: [coreboot] AMD DBM690T PowerNow table problems
On Sat, Jan 3, 2009 at 3:04 PM, Rudolf Marek r.marek@assembler.cz wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
Here we go.
Its seems that the generated table has wrong conversion for frequency
and its
FID representation. In other words the table is OK but the first field
is not
consistent with FID and real freq.
invalid freq entries 1000000 kHz vs. 800000
This means that:
Package (0x06) { 0x00000320,. <--- here should be 0x3e8 0x0000F230,. 0x00000064,. 0x00000007,. 0xE8202F0A,. 0x0000030A },. Package (0x06) { 0x00000320,. 0x0000BB8C,. 0x00000064,. 0x00000007,. 0xE8202C82,. 0x00000482 }
FID is 0A and 02 which means it should be: set to 0x3e8 and 0x320.
I guess it is because your CPU is revF and not revG.
fid_multiplier = ((cpuid1.edx & 0x40) >> 6) * 100;
This line will cause that your CPU has fid_multiplier 0 instead of
100x.
I believe that the multiplier should be always 100. Because revF CPU
hav LSB in
FID always 0.
Rudolf
I agree with this analysis. Patch attached.
Marc