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