Gigabyte option rom modding, a challenge to all of us.

Discussion in 'BIOS Mods' started by chenxuwen, Feb 8, 2010.

  1. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    HI Guys, here is challenge.
    I have a EP45-DQ6. Thinking about how to upgrade its Intel AHCI rom to 1.20E, Intel Raid rom to 8.91.1002. However, CBROM 1.96 fails because there is sensitive module MINIT inside.
    Though ssv3 SLIC suceeds, how do we mod this type of bios?

    On my P5Q PRO, it's so easy.
    And this is a realistic question since Gigabyte didn't upgrade their option roms. Old AHCI rom causes delay in booting. Old Intel raid rom slows down the raid array and mke the rebuilt rediculous long.

    So any ideas? Senior?
     
  2. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    #2 Yen, Feb 9, 2010
    Last edited by a moderator: Apr 20, 2017

    It should be possible using cbrom196 (and cbrom 115 to extract the nocompress rom)!!!

    Here is the order:
    Code:
    D:\test>CBROM196.EXE ep45dq6.f12 /D
    CBROM196.EXE V1.96 [01/30/08] (C)Phoenix Technologies 2001-2007
                  ********  ep45dq6.f12 BIOS component ********
     No. Item-Name         Original-Size   Compressed-Size Original-File-Name
    ================================================================================
      0. System BIOS       20000h(128.00K)  1453Bh(81.31K)  ep45dq6.BIN
      1. XGROUP CODE       0EFD0h(59.95K)   0A2AFh(40.67K)  awardext.rom
      2. ACPI table        04E70h(19.61K)   019E5h(6.47K)   ACPITBL.BIN
      3. EPA LOGO          0168Ch(5.64K)    0030Dh(0.76K)   AwardBmp.bmp
      4. GROUP ROM[18]     04CB0h(19.17K)   03392h(12.89K)  ggroup.bin
      5. GROUP ROM[20]     020C0h(8.19K)    018ECh(6.23K)   ffgroup.bin
      6. YGROUP ROM        0D740h(53.81K)   06D8Bh(27.39K)  awardeyt.rom
      7. GROUP ROM[22]     0F630h(61.55K)   014DBh(5.21K)   tgroup.bin
      8. GROUP ROM[23]     0F630h(61.55K)   026F3h(9.74K)   t1group.bin
      9. GROUP ROM[24]     0F630h(61.55K)   00AF0h(2.73K)   t2group.bin
     10. GROUP ROM[ 0]     09080h(36.13K)   032E2h(12.72K)  _EN_CODE.BIN
    11. PCI ROM[A]        03600h(13.50K)   0254Dh(9.33K)   ICHAAHCI.BIN
    12. PCI ROM(B)       07C00h(31.00K)   045B6h(17.43K)  jmb10678.bin
    13. MINIT             147C0h(81.94K)   147E9h(81.98K)  DQ6_DDR2.BIN
    14. PCI ROM[C]        10000h(64.00K)   09E3Eh(39.56K)  ICHARAID.BIN
    15. PCI ROM[D]        0C800h(50.00K)   079FDh(30.50K)  rtegrom.lom
    16. LOGO1 ROM         00B64h(2.85K)    00520h(1.28K)   dbios.bmp
    17. LOGO BitMap       4B30Ch(300.76K)  14B29h(82.79K)  des_dq6.bmp
    18. OEM5 CODE         01132h(4.30K)    009B0h(2.42K)   TPMMPDRV.ROM
    19. GROUP ROM[21]     00050h(0.08K)    00078h(0.12K)   TCGSMI32.BIN
    20. GV3                0234Dh(8.83K)   00C31h(3.05K)   PPMINIT.ROM
    21. OEM0 CODE         028DBh(10.21K)   01E52h(7.58K)   SBF.BIN
    22. NoCompress ROM    11000h(68.00K)   1103Ch(68.06K)  UTS64K.BIN
    (SP) NCPUCODE          20800h(130.00K)  20800h(130.00K) NCPUCODE.BIN
    Total compress code space  = E5000h(916.00K)
    Total compressed code size = AA0FCh(680.25K)
    Remain compress code space = 3AF24h(235.79K)
    
    Extract all modules using cbrom115 for the nocompresss module and for all others use 1.96

    After you have extracted them, release all modules using cbrom196 last module first going upwards module by module until you have released module 11. Then insert all again, use the new modules (module 11 and module 14)..make sure you are remaining the original module order..

    Extract command for nocompressrom that works:
    D:\test>CBROM115.EXE ep45dq6.f12 /nocompress extract
    Enter an extract file Name : (UTS64K.BIN)
    [NOCOMPRESS] ROM is extracted to UTS64K.BIN


    Release commands (replace 'release' with 'extract' to obtain the corresponding extract commands):
    D:\test>CBROM196.EXE ep45dq6.f12 /nocompress release
    D:\test>CBROM196.EXE ep45dq6.f12 /oem0 release
    D:\test>CBROM196.EXE ep45dq6.f12 /gv3 release
    D:\test>CBROM196.EXE ep45dq6.f12 /group21 release
    D:\test>CBROM196.EXE ep45dq6.f12 /oem5 release
    D:\test>CBROM196.EXE ep45dq6.f12 /logo release
    D:\test>CBROM196.EXE ep45dq6.f12 /logo1 release

    D:\test>CBROM196.EXE ep45dq6.f12 /pci release
    CBROM196.EXE V1.96 [01/30/08] (C)Phoenix Technologies 2001-2007
    PCI ROM - - - [A] : ICHAAHCI.BIN
    PCI ROM - - - : jmb10678.bin
    PCI ROM - - - [C] : ICHARAID.BIN
    PCI ROM - - - [D] : rtegrom.lom
    Enter a choice:D
    [PCI-D] ROM is release

    D:\test>CBROM196.EXE ep45dq6.f12 /pci release
    CBROM196.EXE V1.96 [01/30/08] (C)Phoenix Technologies 2001-2007
    PCI ROM - - - [A] : ICHAAHCI.BIN
    PCI ROM - - - : jmb10678.bin
    PCI ROM - - - [C] : ICHARAID.BIN
    Enter a choice:c
    [PCI-C] ROM is release

    D:\test>CBROM196.EXE ep45dq6.f12 /minit release

    D:\test>CBROM196.EXE ep45dq6.f12 /pci release
    CBROM196.EXE V1.96 [01/30/08] (C)Phoenix Technologies 2001-2007
    PCI ROM - - - [A] : ICHAAHCI.BIN
    PCI ROM - - - : jmb10678.bin
    Enter a choice:b
    [PCI-B] ROM is release

    D:\test>CBROM196.EXE ep45dq6.f12 /pci release
    CBROM196.EXE V1.96 [01/30/08] (C)Phoenix Technologies 2001-2007
    PCI ROM - - - [A] : ICHAAHCI.BIN
    [PCI-A] ROM is release

    So now you may add all the modules again starting with your updated ICHAAHCI.BIN
    To reinsert just use the module name and follow with the original filename.
    E.g. reinsert module 19:

    D:\test>CBROM196.EXE ep45dq6.f12 /group21 TCGSMI32.BIN

    This is very time consuming, but I did my first mods that way (sensitive modules) it should work....
    The module's order MUST NOT change!!! Cbrom is able to correct the entry point of init modules..

    cbrom196 is not able to extract that nocompress module!!!! I have used cbrom115 therefore.....that UTS64K.BIN
    data is used to prevent modding and AFAIK not needed at all........
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  3. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
  4. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    AFAIK cbrom196 is able to adjust the entry point of the sensitive modules, even though the updated modules will cause a shift of offsets if you follow the steps and remain the order of the modules.

    Edit: AFAIK the sensitive modules will cause trouble if you release a module that's before it. The sensitive modules are MINIT and GV3 ....make sure you are able to recover..every bios may behave different....
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  5. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    If you want to wait..I have to go now..but will later have a look again regarding entry point. You may find the address by loading the biosfile into a hexeditor and look for ENTRYPOINT string....I want to try to verify that......if you are sure to recover you may try, otherwise I suggest to wait for my next reply....
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  6. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    #6 chenxuwen, Feb 9, 2010
    Last edited: Feb 9, 2010
    (OP)
    Yeah, I am able to recover. Just short no.1 and no.8 of the bios pin, the back up bios will take action.
    Well, before I asked, I've tried many methods in my mind.
    Thanks. Will try.

    Edit: I'll wait for you. Since I am backing up important datas.
     
  7. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    #7 Yen, Feb 9, 2010
    Last edited by a moderator: Apr 20, 2017
    The first entry point /address has been corrected, the second remained at all bioses! All pointers are pointing to the same code, no matter if modded or not! So cbrom had to correct one only. ;)


    Search for (the first) ENTRYPOINT string at original bios: (The second one, found at second ENTRYPOINT string remains untouched and points always to E0B2FFFF--->FFFFB2EO--->FB2E0 where is found the same code at every bios.)
    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    
    000E5560   45 4E 54 52 59 50 4F 49  4E 54 E0 3C F4 FF 08 00   ENTRYPOINTà<ôÿ..
    
    The bytes behind are: E03CF4FF--> reverse it to get the address at EEPROM: FFF43CE0h
    It's a 1Mbyte bios so it points to the bios offset FFF00000h-FFF43CE0h= 43CE0h
    Have a look at the code there:

    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    
    00043CE0   E8 B1 F4 FF FF CB E8 72  79 FF FF CB E8 E9 EF FF   è±ôÿÿËèryÿÿËèéïÿ
    00043CF0   FF CB 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ÿË..............
    00043D00   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
    
    
    
    Now have a look at your ep45dq6.13M ENTRYPOINT which has the same address pointer as EP45DQ6_SLIC.13M, because the SLIC mod didn't change anything regarding DQ6_DDR2.BIN :
    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    
    000E5560   45 4E 54 52 59 50 4F 49  4E 54 E0 42 F4 FF 08 00   ENTRYPOINTàBôÿ..
    
    E042F4FF--->FFF442E0--->bios offset : 442E0: (shift of 600h)
    Look at offset 442E0:

    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    
    000442E0   E8 B1 F4 FF FF CB E8 72  79 FF FF CB E8 E9 EF FF   è±ôÿÿËèryÿÿËèéïÿ
    000442F0   FF CB 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ÿË..............
    00044300   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
    
    
    points to the same code!!!

    Old bios 12, ENTRYPOINT:
    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    
    000E5560   45 4E 54 52 59 50 4F 49  4E 54 A0 2C F4 FF 08 00   ENTRYPOINT ,ôÿ..
    
    A02CF4FF-->FFF42CA0--->42CA0:

    Code:
    Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
    
    00042CA0   E8 B1 F4 FF FF CB E8 72  79 FF FF CB E8 E9 EF FF   è±ôÿÿËèryÿÿËèéïÿ
    00042CB0   FF CB 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ÿË..............
    00042CC0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
    
    
    
    same code as well.

    Conclusion: cbrom has corrected the entry address well! Since it points to the same code at every bios I have to assume cbrom did a good job when using as described.
    There are some address changes found as well at the code if you have a closer look..AFAIK these are corrections made by cbrom as well guessing it did it right....
    The original code of ichaahci.bin has increased from 03600h(13.50K) to 04000h(16.00K) ...ICHARAID.BIN from 10000h(64.00K) to 13E00h(79.50K) original code size....at my (ASUS) board I never encountered an increasing of original size of code..are you sure these modules will work with your hardware?
    You can give it a try....you are able to recover so no problem...let me know how it went.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  8. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    EP45DQ6 is a motherboard with P45+ICH10R. I have tried these two roms Intel Raid 8.9.1.1002 and AHCI1.20E on my ASUS P5Q PRO which has the same chipset setting.
    So if cbrom is doing it correctly, then the bios will work.
    What ASUS board are you using? If you are using P5Q series, please try out my Modded bios for P5Q series at extreme systems.
    I'll try the bios very soon. I'll keep you posted.
     
  9. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    #9 chenxuwen, Feb 10, 2010
    Last edited: Feb 10, 2010
    (OP)
    Yen,
    Hi. I tested the bios with a failure result. The machine kept rebooting itself. Nothing showed up in the screen nor initiate bios recovery. Bootblock damage I think.
    So this is still a challenge.
    Don't worry! I recovered it with manually initiating backup bios.
    Let's don't give up. Let's continue and make it work!
     
  10. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    No we don't give up!;) I want this resolved, too...
    Only thing I have to go at 15th of February..check my signature please.

    OK, we have to go step by step to determine what's wrong...the PCI module 14 (ICHARAID.BIN) is located right after the MINIT module....you could try to replace that module only (same procedure), so the MINIT module would stay original......if it boots then we can go further.......

    I got a lot of ideas to try to figure what could be wrong.....e.g. to try the entire procedure without to change a module.....the sizes would be the same..anyway we could make sure cbrom doesn't have a general issue.......

    Btw: At my old Asus board I have updated the Silicon Image raid module several times. Award bios, NforceII chipset, no sensitive modules. It remained the original size of code every time....of course the compressed module size changed....
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  11. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
  12. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    Yen,

    I've tested it. This time the machine posted but stoped at the device table. The raid bios was loaded with normal status showing. But it stop before booting into windows. Another observation is I can get into bios then it stopped (No keyboard). However, disabling raidbios, then I can get in to bios with keyboard. So I guess the board will load something into the upper memory (upper 1MB) where the raidbios is loaded to.
    So I'll try 8.5.0.1030 the last version with 64K size this time to test.
     
  13. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    Yen,

    Bad news though 8.5.1038 can continue booting. But it's incompatible to the array. So it's even worse than 8.9.1.1002 which shows the array being normal.
    So we have no progress currently.

    Any new ideas?
     
  14. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    From where did you get the 8.5.1038 code? AMI bios? It there a chance to obtain it from an Award bios, preferable from another Gigabyte bios?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  15. chenxuwen

    chenxuwen MDL Novice

    Jul 8, 2008
    30
    0
    0
    I don't know. I think Intel distributes the codes all the same. They are just PCI roms.
    I have tried doing no module change, just the whole thing again, there is nothing wrong. So CBROM did something but not quite enogh.
     
  16. Yen

    Yen Admin
    Staff Member

    May 6, 2007
    11,377
    11,262
    340
    This means cbrom is able to extract and release the modules correctly, it is also able to add them properly, if the sizes (offsets) are not changing.....

    We need two things to do:
    to find a compatible rom module
    to figure if cbrom is able to handle minit correctly if the offsets (sizes) are changing....

    What do you want to figure?
    To test the second I suggest to change some bytes at 10. GROUP ROM[ 0]
    It's before minit as well. When you change some strings at the extracted module (no code) we can be sure the module is still working and its compressed size is chaging..this results to a shift of the offsets of all modules behind, cbrom has to handle..the size of the module code itself doesn't matter, it's the compressed size of the modified module at the bios that matters......
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. mushbert

    mushbert MDL Novice

    Oct 18, 2010
    2
    0
    0
    Hi Yen and chenxuwen, sorry to revive this old thread, but I don't see a point in starting a new one when this procedure is exactly what I'm trying to do. I'm not interested in adding SLIC to my board, but I am trying to add the newer AHCI and RAID modules.

    I am using a GA-EP45-DS4P, and like chenxuwen, I also have the no-keyboard issue after flashing a BIOS with the updated RAID version (v8.9.1.1002) after turning RAID on. I didn't have an OS installed when I tried it, so I'm not sure if it would have booted. Unfortunately the next thing I tried flashing was a file with both the new RAID modules and AHCI 1.20E (simply released/re-added with CBROM 1.98), and the board is now stuck in an endless reboot cycle (I haven't had any luck activating the backup BIOS chip so far).

    I'd love to hear any suggestions for successfully pulling off this mod. If the problem is the MINIT module, could perhaps the EPA logo be made smaller, to increase the space before the AHCI module and thus allow it to be hex edited in without moving MINIT?

    Yen, you mentioned that GV3 (PPMINIT.ROM) is one of the "sensitive" modules. Can you elaborate on this? Most modding tutorials I can find have not been updated since before the P45/ICH10 systems came out, and most also utilized older versions of CBROM. From reading several hundred posts, I have pieced together a mental picture of what might need to be done - but it's troubling that no one seems to have documented their own (working!) procedures.
     
  18. daywalker2806

    daywalker2806 MDL Novice

    Aug 25, 2011
    1
    0
    0
    reactivate this thread ... trying to mod bios for a Gigabyte EP45-DQ6 ... but without luck :-(

    any new ideas?

    christian
     
  19. mushbert

    mushbert MDL Novice

    Oct 18, 2010
    2
    0
    0
    Hi daywalker2806, there doesn't appear to be much interest in this anymore, but you might want to check out bios-mods.com... After I posted there looking for help, I was provided a rebuilt BIOS to try. The replaced modules were in the correct order, so I don't know how it was done - the poster did not appear to want to share his methods. This was about 10 months ago, but I still haven't gotten around to testing it yet; having a working system* was much more important.
    :doh:

    *Be careful: Gigabyte's Dual-BIOS implementation appears to be IN the BIOS itself. This means that if certain modules/locations of the BIOS are altered, the backup chip will not activate, either automatically or by shorting pins (as you might find scattered references to). If this happens, the board will need to be physically repaired (by sending it away for service, or swapping the chips yourself, which is what I ended up doing.)
     
  20. Karel Gott

    Karel Gott MDL Novice

    Sep 25, 2011
    23
    0
    0
    Thank you very mutch.