(03-25-2016, 04:05 AM)DeathBringer Wrote: I've made BIOS mod.
Please don't flash it, but verify it by iflash:
iflash /v BX2838P.BIO
P.S. 06FB platform 80 is only for mobile CPU.
iflash just says :
Intel Flash Memory Update Utility Part 643643-060
nothing else
It goes the same with an original bios (no message)
tried to flash it :
iflash /md /pf bx2838p.bio - unsuccessfull
from within iflash - unsuccessfull (it identifies correctly the version/build etc.) gives the same version error.
flashed an older version first with and without reboot, and tried again - unsuccessful.
I see you've injected the new microcode but you didn't mod the checksums (last 2 bytes - E7 98 in our case) and the bytes that I presume are some sort of checksum from the microcode block header (18 67)
My findings so far :
ucode block header :
0E AF 0B 14 12 8D 8F 47 A0 B4 17 B9 B7 B5 CE ED - this doesn't change between versions. ie: 2836 has the same ucode block as 2838, 2813 is larger
18 67 01 41 1A F0 00 F8 : the part that matters (i think) :
the block ends with 2 bytes (after the last ucode) : E7 98
chk8 of the entire data - is 99. they put 98 (last byte).
not(98) = 67 (see header) -> 18th byte
The 17th byte (18) here would be :
not (chk8 ( 0E AF 0B 14 12 8D 8F 47 A0 B4 17 B9 B7 B5 CE ED 00 00 01 41 1A F0 00 )) + 1 - notice 17th and 18th zeroed and not including the 24th (F8).
I reckon F8 is some status that can change and it's not counted in the checksum.
The penultimate byte (E7) = not (18) -> the 17th byte.
I've checked this theory with another ucode block (ie: from 2813) and it stands.
To test my theory, I've just updated the microcode for the running cpu (c2d e6600 - 06f6), and modded the checksums (also tried without ) but couldn't flash.
I've put the ucode block back (tried as a file or just body) using uefitool.
None could be flashed - ergo the thread.