bios doesn't read all msr table..

Discussion in 'BIOS Mods' started by notoriuss, Nov 27, 2010.

  1. notoriuss

    notoriuss MDL Novice

    Nov 27, 2010
    1
    0
    0
    From 2 weeks I'm trying to modify my bios to add support to new cpu...Here I don't want ask to you to modify my bios...only to obtain, if possible, some explanation.
    My first cpu was mobile athlon 64 3000+, so specified:
    Processor 1 (ID = 0)
    Number of cores 1 (max 1)
    Number of threads 1 (max 1)
    Name AMD Athlon 64 3000+
    Codename ClawHammer
    Specification AMD Athlon(tm) 64 Processor 3000+
    Package Socket 754
    CPUID F.4.A
    Extended CPUID F.4
    Brand ID 4
    Core Stepping SH7-CG
    Technology 0.13 um
    Core Speed 1801.1 MHz (9.0 x 200.1 MHz)
    HT Link speed 800.5 MHz
    Stock frequency 1800 MHz
    Instructions sets MMX (+), 3DNow! (+), SSE, SSE2, x86-64
    L1 Data cache 64 KBytes, 2-way set associative, 64-byte line size
    L1 Instruction cache 64 KBytes, 2-way set associative, 64-byte line size
    L2 cache 1024 KBytes, 16-way set associative, 64-byte line size
    FID/VID Control yes
    max FID 9.0x
    Features XD
    K8 Thermal sensor yes
    K8 Revision ID 2.5
    Attached device PCI device at bus 0, device 24, function 0
    Attached device PCI device at bus 0, device 24, function 1
    Attached device PCI device at bus 0, device 24, function 2
    Attached device PCI device at bus 0, device 24, function 3


    Thread dumps
    ------------------------------------------------------------------------------------

    CPU Thread 0
    APIC ID 0
    Topology Processor ID 0, Core ID 0, Thread ID 0
    Type 02002001h
    Max CPUID level 00000001h
    Max CPUID ext. level 80000018h

    Function eax ebx ecx edx
    0x00000000 0x00000001 0x68747541 0x444D4163 0x69746E65
    0x00000001 0x00000F4A 0x00000800 0x00000000 0x078BFBFF
    0x80000000 0x80000018 0x68747541 0x444D4163 0x69746E65
    0x80000001 0x00000F4A 0x00000108 0x00000000 0xE1D3FBFF
    0x80000002 0x20444D41 0x6C687441 0x74286E6F 0x3620296D
    0x80000003 0x72502034 0x7365636F 0x20726F73 0x30303033
    0x80000004 0x0000002B 0x00000000 0x00000000 0x00000000
    0x80000005 0xFF08FF08 0xFF20FF20 0x40020140 0x40020140
    0x80000006 0x00000000 0x42004200 0x04008140 0x00000000
    0x80000007 0x00000000 0x00000000 0x00000000 0x0000000F
    0x80000008 0x00003028 0x00000000 0x00000000 0x00000000
    0x80000009 0x00000000 0x00000000 0x00000000 0x00000000
    0x8000000A 0x00000000 0x00000000 0x00000000 0x00000000
    0x8000000B 0x00000000 0x00000000 0x00000000 0x00000000
    0x8000000C 0x00000000 0x00000000 0x00000000 0x00000000
    0x8000000D 0x00000000 0x00000000 0x00000000 0x00000000
    0x8000000E 0x00000000 0x00000000 0x00000000 0x00000000
    0x8000000F 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000010 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000011 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000012 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000013 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000014 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000015 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000016 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000017 0x00000000 0x00000000 0x00000000 0x00000000
    0x80000018 0x00000000 0x00000000 0x00000000 0x00000000

    Cache descriptor Level 1 I 64 KB 1 thread(s)
    Cache descriptor Level 1 D 64 KB 1 thread(s)
    Cache descriptor Level 2 U 1 MB 1 thread(s)

    MSR 0x0000001B edx = 0x00000000 eax = 0xFEE00900
    MSR 0xC001001E edx = 0x00000000 eax = 0x00000025
    MSR 0xC0010015 edx = 0x00000000 eax = 0x00000000
    MSR 0xC0010042 edx = 0x00001200 eax = 0x000A000A
    MSR 0xC0010041 edx = 0x00004E20 eax = 0x0000000A



    I changed this cpu with a mobile athlon 64 4000+ :

    NameMobile AMD Athlon 64 4000+
    CodenameNewark
    SpecificationMobile AMD Athlon(tm) 64 Processor 4000+
    Package Socket 754
    CPUIDF.4.2
    Extended CPUIDF.24
    Brand ID8
    Core SteppingSH8-E5
    Technology90 nm
    Core Speed798.3 MHz
    Multiplier x FSB4.0 x 199.6 MHz
    HT Link speed798.3 MHz
    Stock frequency2600 MHz
    Instructions setsMMX (+), 3DNow! (+), SSE, SSE2, SSE3, x86-64
    L1 Data cache64 KBytes, 2-way set associative, 64-byte line size
    L1 Instruction cache64 KBytes, 2-way set associative, 64-byte line size
    L2 cache1024 KBytes, 16-way set associative, 64-byte line size
    FID/VID Controlyes
    Max FID13.0x
    VID range0.950 V - 1.400 V

    K8 Thermal sensoryes
    K8 Revision ID4.1
    Attached devicePCI device at bus 0, device 24, function 0
    Attached devicePCI device at bus 0, device 24, function 1
    Attached devicePCI device at bus 0, device 24, function 2
    Attached devicePCI device at bus 0, device 24, function 3


    Thread dumps
    -------------------------------------------------------------------------

    CPU Thread 0
    APIC ID0
    TopologyProcessor ID 0, Core ID 0, Thread ID 0
    Type02002002h
    Max CPUID level00000001h
    Max CPUID ext. level80000018h
    Cache descriptorLevel 1, I, 64 KB, 1 thread(s)
    Cache descriptorLevel 1, D, 64 KB, 1 thread(s)
    Cache descriptorLevel 2, U, 1 MB, 1 thread(s)

    CPUID
    0x000000000x000000010x687475410x444D41630x69746E65
    0x000000010x00020F420x000008000x000000010x078BFBFF
    0x800000000x800000180x687475410x444D41630x69746E65
    0x800000010x00020F420x000002120x000000000xE3D3FBFF
    0x800000020x69626F4D0x4120656C0x4120444D0x6F6C6874
    0x800000030x6D74286E0x343620290x6F7250200x73736563
    0x800000040x3420726F0x2B3030300x000000000x00000000
    0x800000050xFF08FF080xFF20FF200x400201400x40020140
    0x800000060x000000000x420042000x040081400x00000000
    0x800000070x000000000x000000000x000000000x0000003F
    0x800000080x000030280x000000000x000000000x00000000
    0x800000090x000000000x000000000x000000000x00000000
    0x8000000A0x000000000x000000000x000000000x00000000
    0x8000000B0x000000000x000000000x000000000x00000000
    0x8000000C0x000000000x000000000x000000000x00000000
    0x8000000D0x000000000x000000000x000000000x00000000
    0x8000000E0x000000000x000000000x000000000x00000000
    0x8000000F0x000000000x000000000x000000000x00000000
    0x800000100x000000000x000000000x000000000x00000000
    0x800000110x000000000x000000000x000000000x00000000
    0x800000120x000000000x000000000x000000000x00000000
    0x800000130x000000000x000000000x000000000x00000000
    0x800000140x000000000x000000000x000000000x00000000
    0x800000150x000000000x000000000x000000000x00000000
    0x800000160x000000000x000000000x000000000x00000000
    0x800000170x000000000x000000000x000000000x00000000
    0x800000180x000000000x000000000x000000000x00000000

    MSR 0x0000001B0x000000000xFEE00900
    MSR 0xC00101140x000000000x00000000
    MSR 0xC001001E0x000000000x00000041
    MSR 0xC00100150x000000000x00000000
    MSR 0xC00100420x180618060x06120000
    MSR 0xC00100410x000001900x00000600

    It is correctly identified by bios but it boots at 800mhz (200x4) and DDR at 160 mhz. As you can see in MSR tables, the first line (red) is equal and it is correctly identified by bios; in fact, it calls to 200mhz fsb, multiplier 4X and voltage 0,950. But the other MSR lines are different and Bios is not be albe to read them; so, bios can't build p-state table and cpu runs always at 800 mhz.

    So, I tried to compare different version of my AMI bios where it was added only support for a new cpu...Using MMTOOL and extracting all modules, I have found differences only in 1B module (Single Link Arch BIOS), but I'm not be able to interpret them...
    May be some of you can explain to me how msr table is read by bios and in which part of bios I have to search the code that read it...