Dell bios, how to decompose / mod.

Discussion in 'BIOS Mods' started by wolf69, Nov 21, 2009.

  1. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    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? :worthy:
     
  2. aascut

    aascut MDL Junior Member

    Feb 10, 2011
    53
    15
    0
    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 :Lighten: about addressing dell's bioses. On this I will write later.
     
  3. en4rab

    en4rab MDL Novice

    Oct 27, 2009
    44
    7
    0
    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.
     
  4. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    #564 Apokrif, Jun 17, 2011
    Last edited by a moderator: Apr 20, 2017

    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 :)
     
  5. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
    #565 WIND0WS 7, Jun 17, 2011
    Last edited: Jun 17, 2011
    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?
     
  6. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
    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?
     
  7. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    I don't know. :confused: Too few people read this forum, don't think we can get an answer here...
     
  8. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
    Okay thanks anyway. Could you please tell me how I make it show me the list of microcodes like you guys were doing?
     
  9. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
  10. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
    #570 WIND0WS 7, Jun 20, 2011
    Last edited by a moderator: Apr 20, 2017
    434D4430 is what I need to replace 11 - 00000F4A:0000B562:49525230 - 000007D0 with 11 - 00000F65:0000B562:434D4430 - 000007D0 no?
     
  11. aascut

    aascut MDL Junior Member

    Feb 10, 2011
    53
    15
    0
    #571 aascut, Jun 21, 2011
    Last edited by a moderator: Apr 20, 2017
    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!
     
  12. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
    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€ä€³..Ü·-.üèÔÿ..`€Ì/ŠÃè¬....ŠÇè¡
     
  13. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    #574 Apokrif, Jun 21, 2011
    Last edited by a moderator: Apr 20, 2017
    Exactly!
    Indeed, it was right under my nose :eek:

    Ouch… Could you use WinHex to show binary fragments, please?
    BTW: I assume you got 0F65 microcode from last Intel update, correct?
     
  14. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    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.
     
  15. Apokrif

    Apokrif MDL Addicted

    Dec 7, 2008
    542
    35
    30
    #577 Apokrif, Jun 21, 2011
    Last edited by a moderator: Apr 20, 2017
    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
     
  16. WIND0WS 7

    WIND0WS 7 MDL Member

    Sep 28, 2009
    145
    0
    10
  17. aascut

    aascut MDL Junior Member

    Feb 10, 2011
    53
    15
    0
    I'll look of course.
     
  18. aascut

    aascut MDL Junior Member

    Feb 10, 2011
    53
    15
    0
    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. :eek:.
    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.