This is a risky procedure, do not attempt unless you are confident with modifying and flashing your bios. A mistake could easily brick your board
Use Phoenixtool in a Windows VM to dump all the EFI modules in your bios (a folder called DUMP will appear on the desktop when Phoenix tool runs). Then look at your bios in Aptio MMtool to get the GUID of the powermanagement EFI module. Now look through your DUMP directory until you find the ROM module with the same GUID. In my bios it's called 8C783970-F02A-4A4D-AF09-8797A51EEC8D_1_393.ROM. There will be two files with the same GUID, choose the larger one. This is your powermanagement module that needs to be fixed. Disassemble it using objdump on either Linux or Windoze (using MinGW shell). Google MinGW for more info:
objdump -m i386 -b binary -D 8C783970-F02A-4A4D-AF09-8797A51EEC8D_1_393.ROM > pm.asm
Open up pm.asm with a text editor. Remember we are looking to allow writes to MSR register 0xE2. Bit 15 is the lock bit, 15 in hex is 0xf. So we look for an instance of 0xE2 followed shortly by a bts (bit test and set) of 0xf. Sure enough, in my bios it appears here:
30e4: b9 e2 00 00 00 mov $0xe2,%ecx
30e9: e8 06 11 00 00 call 0x41f4
30ee: 48 dec %eax
30ef: 89 44 24 30 mov %eax,0x30(%esp)
30f3: 0f ba f0 0f btr $0xf,%eax
30f7: 89 44 24 30 mov %eax,0x30(%esp)
30fb: 80 fb 01 cmp $0x1,%bl
30fe: 75 08 jne 0x3108
3100: 0f ba e8 0f bts $0xf,%eax
3104: 89 44 24 30 mov %eax,0x30(%esp)
3108: 48 dec %eax
3109: 8b 54 24 30 mov 0x30(%esp),%edx
310d: b9 e2 00 00 00 mov $0xe2,%ecx
3112: e8 e9 10 00 00 call 0x4200
3117: 33 c0 xor %eax,%eax
3119: 48 dec %eax
311a: 83 c4 20 add $0x20,%esp
311d: 5b pop %ebx
311e: c3 ret
We need to change the jump highlighted above in blue:
30fe: 75 08 jne 0x3108
into:
30fe: eb 08 jmp 0x3108
To make it jump unconditionally as we don't want to set the lock bit. So open up the rom module in your favourite hex editor and search for the byte string:
75080fbae80f89442430
and replace it with:
eb080fbae80f89442430
then save. Now re-run Phoenixtool on your bios, when it has finished unpacking then go into Advanced options and tick the box that says 'Allow user to modify other modules'. Also tick 'No SLIC', then press Done. Now copy over your modified ROM file into the DUMP directory and agree to overwrite the original. Now press Go in Phoenixtool. Phoenixtool will insert the modified rom into your bios, fixing any checksums as it goes along. Flash the fixed bios and native speedstepping is all yours
Please no PM's about fixing your bios. If you learn how to do it yourself then you can always fix any updated bios in the future. That is, until this:
http://www.projectos...t=0



Sign In
Create Account









