I don't think so... Those numbers are Dell specific. I got an idea. Aascut already found BIOS code does microcode update. I guess, we need to ask him to dig a little further, he might be able to find where those numbers are used. Aascut, The code you posted - what BIOS it's from and which module? Could you help us please?
BIOS from DELL Latitude: D510_A04.rom;D610_A06.rom;D810_A05.rom (not .hdr), last 64kB 000F0000-000FFFFF. Address (flat) of code 000F4470-000F44F0. PS: But I dot'n quite sure what it is exactly. Now i checking another suggestion about addressing dell's bioses. On this I will write later.
The GX280 has updates for the following CPU's: 1200 < 18 dec updates 240F 9200 3042574E 270F 6208 3143574E 290F 3210 3144574E 250F 0218 304D574E 130F D21F 30454C43 300F A227 30414350 310F 7237 30424350 320F 4247 31424350 330F 124F 30434350 370F E256 31434350 340F B25E 30444350 410F 827A 30454350 490F 528E 31474350 600F 2296 30414D43 610F F29D 30424D43 620F C2A5 31424D43 430F 92AD 304E5249 4A0F 62B5 30525249 To hunt for updates in other dell bioses and hopefully find the 4 unknown bytes you need unpack the .hdr file with apokrifs tools (linked here: h**p://forums.mydigitallife.net/threads/12962-Dell-bios-how-to-decompose-mod.?p=211972&viewfull=1#post211972 )or with pheonix tool which uses the same tools to unpack and i think puts all the modules in a directory where you can get to them and look for the module 00-XX-14.rom where XX is any number that should be the microcode updates for that bios.
Code: 00 - 00000F24:00000092:4E574230 - 000007D0 01 - 00000F27:00000862:4E574331 - 000007D0 02 - 00000F29:00001032:4E574431 - 000007D0 03 - 00000F25:00001802:4E574D30 - 000007D0 04 - 00000F13:00001FD2:434C4530 - 000007D0 05 - 00000F30:000027A2:50434130 - 00000FD0 06 - 00000F31:00003772:50434230 - 00000FD0 07 - 00000F32:00004742:50434231 - 000007D0 08 - 00000F33:00004F12:50434330 - 000007D0 09 - 00000F37:000056E2:50434331 - 000007D0 0A - 00000F34:00005EB2:50434430 - 00001BD0 0B - 00000F41:00007A82:50434530 - 000013D0 0C - 00000F49:00008E52:50434731 - 000007D0 0D - 00000F60:00009622:434D4130 - 000007D0 0E - 00000F61:00009DF2:434D4230 - 000007D0 0F - 00000F62:0000A5C2:434D4231 - 000007D0 10 - 00000F43:0000AD92:49524E30 - 000007D0 11 - 00000F4A:0000B562:49525230 - 000007D0 I guess, 4700 and GX280 both have same chipset exactly - so the numbers are same, but there is nothing new there... Code: 0F - 00000F62:0000A5C2:434D4231 - 000007D0 620F C2A5 31424D43 >module 00-XX-14.rom You right - it's always #14
Anyone know if there's a Dell which supports the 65nm Cedar Mill CPU's and/or 0F65 CPU ID? Or a system/board (Dell or not) with the Intel 915G chipset that'll support them?
If a board says it supports 04A and 04B does that mean it won't support a CPU with a different FMB/PCG like 05A even with the correct microcode or is it just a guide?
Okay thanks anyway. Could you please tell me how I make it show me the list of microcodes like you guys were doing?
434D4430 is what I need to replace 11 - 00000F4A:0000B562:49525230 - 000007D0 with 11 - 00000F65:0000B562:434D4430 - 000007D0 no?
Now I'm 100% sure that this is the code upgrade the processor. It turns out that the BIOS is addressed to the block of ROM directly exposing to the bus address FFF60000, which is equivalent to the code at 00060000 (D510,D610,D810). The first part of the code calculates the address of the jump to the most microcode. The second part is the actual update. For example code Code: ***D810_A05.rom Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00060000 01 BA 89 00 00 º‰ ***D510_A04.rom Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00060000 01 78 89 00 00 x‰ ***D610_A06.rom Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00060000 01 71 89 00 00 q‰ Red is the number that is added to the address 00060005. Resalt for D810: Code: Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 000689B0 0E 000689C0 D2 3E 00 00 0A 00 94 06 20 00 56 00 30 42 41 42 Ò> ” V 0BAB 000689D0 95 06 20 00 26 08 31 42 41 42 95 06 80 00 F6 0F • & 1BAB• € ö 000689E0 31 42 43 42 D0 06 20 00 C6 17 30 41 4F 44 D1 06 1BCBÐ Æ 0AODÑ 000689F0 20 00 96 1F 31 41 4F 44 D2 06 20 00 66 27 32 41 – 1AODÒ f'2A 00068A00 4F 44 D6 06 20 00 36 2F 31 42 4F 44 D8 06 20 00 ODÖ 6/1BODØ Numbers of updetes at this segment Proc_ID Example for ProcID=06D8 (Pentium M 90nm 2Mb cash): Code: F000:44CC ; --------------------------------------------------------------------------- F000:44CC F000:44CC loc_F44CC: ; CODE XREF: F000:44B9j F000:44CC mov eax, [esi+6] ; 8)eax=444F4330 F000:44CC ; F000:44D1 out 0E0h, eax ; "DOC0" F000:44D4 movzx eax, word ptr [esi+4] ; 8)word[esi+4]=[FFF68A10]=3706;eax=00003706 F000:44D4 ; F000:44DA sub eax, 4 ; 8)eax=00003702 F000:44DE add eax, edi ; 8)eax=FFF689C4+3702=FFF6C0C6-start address for microcod F000:44DE ; F000:44E1 mov ecx, 79h ; 'y' F000:44E7 xor edx, edx ; edx=0 F000:44EA wrmsr ; 8)start microcode updete for 06D8 (PentiumR M Processor on 90 nm Process with 2-MB L2 Cache =SL7SA=) from address FFF6C0C6 = 0006C0C6 ... Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F data 2000 bytes without header! 0006C0C0 F7 9F C9 62 26 2B 6B 7A FA DA ÷ŸÉb&+kzúÚ 0006C0D0 8B 58 BD D9 02 BE D4 46 46 EF 0F 95 E7 DF 5B 58 ‹X½Ù ¾ÔFFï •çß[X 0006C0E0 82 88 50 E4 28 2B 03 51 0E BC 63 AD 92 B9 4A DC ‚ˆPä(+ Q ¼c*’¹JÜ .+ .i.t.c I Fixed errors which I made because of my negligence!
I have a concern, the 2000 bytes of 0F4A microcode (B562-BD31) in D4700A10.hdr that you said to replace with 0F65 microcode has some readable words in it (pasted below). Is that normal? The last 2000 bytes of 0F65 I replaced it with doesn't have readable words and the beginning has lots of "20" (spaces) in it. ...p90-2004 ?þÜ0Inc./€äà.o‡.`..$PMM.ât Ï.ðovÙàÿà›*<ª.ðé.À‡Û‡Û...‡Û$PnP.!../2È`.ñâ.ðôâOY˜/.ü/.\ð.éÿÔé.Õú°.æ’ä„èž¿°þædôëýMFG jumper inst/¿ä#eP.Keybo/Îü°fuse has fai..PNo tim.10tick.Äü.lüpShutdown.,`ure...T.)pchip cou/ðü..ì.K..üpGate A20.0.y...D*-of-day [email protected] am.Z/·ì_NìPmemory.·@chang.Ô9¢Pþ†2.../ltà[email protected]/Ll.,OL\.g.....Ì...¬./Ñ\OK\.¬.../g\...?/tT.?.Î./.`Oœ\.ÿ._.Ý/•”...Ý._ „...//'`.….O 4...?.4._.W/Y”.O.W...²`...2._.¿.?._..._à..d/,pà..—.ß.Ñ/¹”.ï.Ñ.Ï.Ñ._....??`O;`.ÿ.ï.¿...Ü...o...O.ß ú....`ú.'.>...ï.>._.¿”.ÿ@....–.ß.–...?...‡..._P‡......o.?.4/÷`.?.É/.˜._ É.".ß...ß....... ¬....`¬...ò...Ÿ ò.7...ß...….Ÿ@….5.Ô/.œ&O.Ô"..Æ.O.Æ"/ Ó...ïPÓ.3....o ..?./)..Æ.¯.Å./.Ä"o...ÿP..!.Ž..¯@Ž.?.«..@«.&.ó...ò"Ï€ÿéép..ü../Íh/„*0.PTLy.0_MP_?tœ&%x.ð.....€.À.`.0.....é©’t;_vhŸühï..ï..Ï?.ð#Ðç.è.èûèò¹ƒú.se¿..èû¹r]‹ÚŠ.x.Ñã‹—...ÒtMB2í.ÿ¥¡çŠà좿ð.4€t.P¸þ.Í.X»p.ìì/˜°ð.èc.KuôâïþÅë.JŠÄîBB°.æ„îæ„4.î...“.7ð.ø4HŠø.ý“éÄ»“B°.î¹..è-.âû4.îJëßsÒ.³.ôà.*..A10þ..~i~?Œü*.Q¹@.ŽÙ‹.ê.S”ð..æ„âüY.ÃèæÿËœ.Rfâ.p..à¨.u[¸.&0Øú°Â²``Cæ„ä@Ðà...Š..*†àÑ؋ع..‡Û.?.$.Éä...&.ñ€ð.âfÑè+Ørµº..¸Hu÷ó£ê.Y[fXZ..ÃInvalidRo`nfigura?±hPinform..P- pleaRØð.run SETUP program...Error 8602.'`AuxiliaRKpDevice F?”.`not setÏX..B”+.R“•‰€Add-in FlRÖ.k.....Hc‡[email protected] USB.=.OneÁÐNetwork Controbà@r.BEVï%..ò.;.€.m.. CD-.v.]0SATA.¡.u IDE.¸.ðl.ns..Ù.t¢.Ðpting BIOS updr..;.–0waits….÷..wr‰fû’í.It...rer¹€rted, buttœ. mr*.berÔ acc#..esÕ‹/0IR..’û.šô0†€@&ÿcp0.`øί˜x.ø..0aøÎh..*èiøÎjøÎbøÎk.(.ð....|.?...?./`cøÎ.......h/½ˆ...e.ªx.....\.r./.V°[email protected]...ì..._/¯°.....û“5..€@ PTR _.€0.èË./Ÿ.à1 é¼—ÿG.àb*»c.ðProcess2ì2ï’Ä.m",?Üx.c“ø3Ò¨.@!...A290t! .6pType MisBU.ch£5.".@Speedß#. Cac’à Siz.L.I¥.@ likeCž.«.s3©.on.._x.0tepp3_.Ÿÿá.àÿà. é.¡ÿE.à+ð.ß.%...ÿTö..éÒ÷³ÿÿÄ.àL.ÏÏQ.*8(-........?ËŒ qPZ....P..dp....*aPR........?Ÿx?.*.qÄ0((PP..°,(-)*..)úù†à/åäpz.ûËûôøË..ð.PŒÈ..À©.`u.ûôûXøË.+..Ã.*.Ãú<.t.<.t.‚Ø/¾dð.èßÿr.¸.ð‹È».ñ¾ÿÿ¿ÿÿø..0Çÿr....€„`3Û»üðf¾/±€..`ê...pœú/+ì0.Ãèõ’$.†Ä.. †Äæ..ÐñÿËPèìÿè".XÃèô’Að.PQú‹Ë3ÛŠÁèÊÿ.Ø€×.þÁ:ÍvðYX.ÃPS€ä€³..Ü·-.üèÔÿ..`€Ì/ŠÃè¬....ŠÇè¡
Exactly! Indeed, it was right under my nose Ouch… Could you use WinHex to show binary fragments, please? BTW: I assume you got 0F65 microcode from last Intel update, correct?
To answer it, we need access to 0F4A microcode from 2005-2007, but it’s not available anymore on Intel site... You can compare against another Dell BIOS from about same time interval.
Same fragment from D610: Code: Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00068980 0A 00 94 06 20 00 56 00 ..”. .V. 00068990 30 42 41 42 95 06 20 00 26 08 31 42 41 42 95 06 0BAB•. .&.1BAB•. 000689A0 80 00 F6 0F 31 42 43 42 D0 06 20 00 C6 17 30 41 €.ö.1BCBÐ. .Æ.0A 000689B0 4F 44 D1 06 20 00 96 1F 31 41 4F 44 D2 06 20 00 ODÑ. .–.1AODÒ. . 000689C0 66 27 32 41 4F 44 D6 06 20 00 36 2F 31 42 4F 44 f'2AODÖ. .6/1BOD 000689D0 D8 06 20 00 06 37 30 43 4F 44 5D 53 BE B1 3E 54 Ø. ..70COD]S¾±>T 000689E0 B5 F0 5F 9E 92 81 B1 4B 77 9A 34 F5 C3 39 2D 46 µð_ž’±Kwš4õÃ9-F 000689F0 BF D5 01 FD 31 BE D5 B4 03 C6 B9 96 F8 2E 8C 3F ¿Õ.ý1¾Õ´.ƹ–ø.Œ? Question: For D8 06 the value 30 43 4F 44 - can you tell where/what for it's used? Might be something just before or right after microcode update... Or it might be two values: 30 43 and 4F 44
This value (all four byte) is used only for debugging, as displayed in the service port and no longer used. This is all I've found so far. . I still come to the conclusion that there is at least one code in the body of the BIOS, which is responsible for updating the microcode of the processor. So far I have not found, but I'm sure that I would find.