Updating BIOS of Gigabyte P35C-DS3R

Hi,
First, just a big thanks to Fernando for this forum. I always find amazing the amount of good and useful (and bad and useless also, unfortunately) information spread all over the internet. :slight_smile:

I have an old Gigabyte P35C-DS3R (ICH9R) motherboard and recently I got another SSD drive, so, I would like to try creating a RAID 0 array with my two SSD drives. For that, it would be good to have TRIM support, which would only be possible if I manage to update my motherboard’s BIOS with a ROM that supports it.

I’m planning to give it a try first with the 11.2.0.1527. I have been taking a look into the several guides, and even managed to create a first BIOS version following the “standard” guide. However, with all the warnings regarding the Gigabyte Award BIOS possible problems, I did not have the courage to try flashing it yet…

I started by using the CBROM32_198 and simply updated the RAID ROM with the version above with the TRIM fix (the red one from the ROMs thread). It replaced the original RAID ROM without any problems and it fit nicely within the BIOS available space. Even though it also automatically re-added the critical MINIT module, I then checked the “MEMINITENTRYPOINT” offset and it was the same as the one in the original file. However, after reading some of the other threads, I now feel a little bit scared of trying to flash this modded BIOS…

I have been trying to understand the advanced guide but I get lost with the instructions for the creation of the DUMMY ROM. Even though I feel comfortable with this kind of file editing (I’m a programmer and writing firmwares is one of my tasks), I have been struggling to understand all the how-to instructions. I will give it a try again later today, but, for now, one quick question…

What could happen if I try flashing the BIOS that I modded using the standard guide? Would I simply get a BIOS error when trying to flash it, and it would simply not flash at all? Would I be able to flash it, but then, if it would not work fine, would it still allow me to re-flash with the original BIOS? or could I simply not be able to re-flash due to the QFLASH tool being damaged? It would be helpful to know with a little bit more detail the potential problems of messing with the MINIT module… :wink:

My thanks in anticipation, and sorry for so many questions…

@ yesgrey:
Welcome at Win-RAID Forum!

Since the replaced Intel RAID ROM module obviously was obove the sensitive MINIT module, you should not try to flash the BIOS you have modded by using CBROM v1.98 - you will get a failure message. Instead of v1.98 you will have to use CROM v1.55 and to replace the Intel RAID ROM manually without touching the location of the MEMINITENTRYPOINT and the size of the BIOS file. Please have a look into >this< and >this< thread for further details.
Maybe you will get additional support by anyone of our Forum members, who has more experience with such sort of Award/Phoenix BIOS modding.

Regards
Fernando

Thanks for your fast reply.

I am now going through (again) the Enhanced BIOS modding guide and I think I’m finally understanding it… Yesterday I could not open the link that explains the headers of the files. Now I was able to, so, now I’m finally understanding what those headers are… :slight_smile:

I will start simply creating a dummy module to replace the old RAID module (with HxD) and then add the new one at the end using CBROM. I’m not sure this would work because it might not fit into the BIOS size, but if it would not fit then I will try removing other modules or rearrange the BIOS in a different way, always using HxD, to not mess with the MINIT.

I will keep updating this thread with my progress…

I have finished modding my BIOS file.

Here it is what I did…

Original BIOS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
cbrom V1.55 [10/12/05 Release] (C)Phoenix Technologies 2001-2005
 
******** P35CDS3R.F12 BIOS component ********
 
No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS 20000h(128.00K)151F2h(84.49K)p35cds3r.BIN
1. XGROUP CODE 0EBE0h(58.97K)0A4F3h(41.24K)awardext.rom
2. ACPI table 04D12h(19.27K)01909h(6.26K)ACPITBL.BIN
3. EPA LOGO 0168Ch(5.64K)0030Dh(0.76K)AwardBmp.bmp
4. GROUP ROM[18] 02E70h(11.61K)02004h(8.00K)ggroup.bin
5. GROUP ROM[20] 00E20h(3.53K)00B33h(2.80K)ffgroup.bin
6. YGROUP ROM 0C100h(48.25K)06707h(25.76K)awardeyt.rom
7. GROUP ROM[ 0] 083C0h(32.94K)02DBAh(11.43K)_EN_CODE.BIN
8. PCI ROM[A] 10000h(64.00K)09DBEh(39.44K)ICH9RAID.BIN
9. PCI ROM[B] 04000h(16.00K)02B46h(10.82K)AHCI.BIN
10. PCI ROM[C] 07A00h(30.50K)04479h(17.12K)JMB59.BIN
11. MINIT 0CBC0h(50.94K)0CBF1h(50.99K)MEMINIT.BIN
12. PCI ROM[D] 0C800h(50.00K)079FDh(30.50K)rtegrom.lom
13. LOGO BitMap 4B30Ch(300.76K)05CE3h(23.22K)ds3.bmp
14. LOGO1 ROM 00B64h(2.85K)00520h(1.28K)dbios.bmp
15. GV3 022ADh(8.67K)00BD6h(2.96K)PPMINIT.ROM
16. OEM0 CODE 028ABh(10.17K)01E1Bh(7.53K)SBF.BIN
17. OEM2 CODE 01000h(4.00K)00092h(0.14K)AFSC_HDR.ROM
 
Total compress code space = 66000h(408.00K)
Total compressed code size = 5B2E4h(364.72K)
Remain compress code space = 0AD1Ch(43.28K)
 
** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+-------------------
 


Modded BIOS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
cbrom V1.55 [10/12/05 Release] (C)Phoenix Technologies 2001-2005
 
******** P35CDS3R.F13 BIOS component ********
 
No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS 20000h(128.00K)151F2h(84.49K)p35cds3r.BIN
1. XGROUP CODE 0EBE0h(58.97K)0A4F3h(41.24K)awardext.rom
2. ACPI table 04D12h(19.27K)01909h(6.26K)ACPITBL.BIN
3. EPA LOGO 0168Ch(5.64K)0030Dh(0.76K)AwardBmp.bmp
4. GROUP ROM[18] 02E70h(11.61K)02004h(8.00K)ggroup.bin
5. YGROUP ROM 0C100h(48.25K)06707h(25.76K)awardeyt.rom
6. GROUP ROM[ 0] 083C0h(32.94K)02DBAh(11.43K)_EN_CODE.BIN
7. PCI ROM[A] 1DC00h(119.00K)10EE0h(67.72K)ICH9RAID.BIN
8. PCI ROM[E] 04000h(16.00K)009D0h(2.45K)DUMMY.DUM
9. MINIT 0CBC0h(50.94K)0CBF1h(50.99K)MEMINIT.BIN
10. PCI ROM[D] 0C800h(50.00K)079FDh(30.50K)rtegrom.lom
11. LOGO BitMap 4B30Ch(300.76K)05CE3h(23.22K)ds3.bmp
12. LOGO1 ROM 00B64h(2.85K)00520h(1.28K)dbios.bmp
13. GV3 022ADh(8.67K)00BD6h(2.96K)PPMINIT.ROM
14. OEM0 CODE 028ABh(10.17K)01E1Bh(7.53K)SBF.BIN
15. OEM2 CODE 01000h(4.00K)00092h(0.14K)AFSC_HDR.ROM
16. GROUP ROM[20] 00E20h(3.53K)00B33h(2.80K)ffgroup.bin
17. PCI ROM[B] 04000h(16.00K)02B46h(10.82K)AHCI.BIN
18. PCI ROM[C] 07A00h(30.50K)04479h(17.12K)JMB59.BIN
 
Total compress code space = 66000h(408.00K)
Total compressed code size = 62DD6h(395.46K)
Remain compress code space = 0322Ah(12.54K)
 
** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+-------------------
 


Description:
1) I calculated the compressed size of the new RAID ROM (10EE0h). Since the new RAID ROM would not fit by adding it at the end, a few more steps were needed...
2) Using HxD I edited the original BIOS file, cut the ffgroup.bin compressed ROM and pasted it between _EN_CODE.BIN and ICH9RAID.BIN. This way, the new RAID ROM would fit in the space occupied by ffgroup.bin, the original ICH9RAID.BIN, AHCI.BIN and JMB59.BIN, whose total is 118B0h
3) I extracted the ROMs ffgroup.bin, AHCI.BIN and JMB59.BIN to files
4) Following this guideline I created a DUMMY.DUM file with a compressed size of 9D0h, the difference between the space to use and the new RAID BIOS compressed size.
5) Using HxD, I copied the compressed new RAID BIOS and the compressed DUMMY.DUM to the space specified in 2)
6) Using CBROM_155 I added ffgroup.bin
7) Using CBROM_155 I added AHCI.bin
8) Using CBROM_155 I added JMB59.bin
9) I confirmed that the exact offset point for "MEMINITENTRYPOINT" in the modded BIOS and the original one are still the same.

However, before trying to flash this modded BIOS, I still have a few questions...
-The editing I did in step 2) would be problematic? By doing that, I moved awardeyt.rom and _EN_CODE.BIN modules from their original offset positions, and I don't know if that could cause me any troubles or not... Can anyone please enlighten me on this? Now, after finishing, I realized I could have extracted _EN_CODE.BIN and then adding it at the end, instead of shifting it together with the awardeyt.rom... would that have been wiser?
-Since I only wanted to update the RAID ROM I did not consider updating the AHCI.BIN or the JMB59.BIN ROMs with newer versions. Would it be worthy to consider also upgrading any of these two?

The two BIOS files
Original:

P35CDS3Rf12.zip (623 KB)


Modded:

P35CDS3Rf13.zip (654 KB)

@ yesgrey:

Please don’t flash the modded BIOS unless one of our Award/Phoenix BIOS modding experts has given his ok.

Thanks for the warning!

Would be enough keeping following this thread, or shall I contact anyone specifically?

You may send a PM to aaaaaa889 or Ser2k2 and ask for help.

AFAIK,Gigabyte MBs usually have 2 Bios Chips,one for normal usage,the other for backup.So i think it will be safe to flash your modded bios file to the MB.
However,I will go through your process of modding myself to make sure it had been done right.

best regards

Thanks for your input.

I will check if my model already includes the two chips. Now that you refer it, I think I remember reading that some boards have two chips, but since my board is a little bit old I’m not sure if it’s one of those or not…

Regarding my modding process, if you think the other option I talked about, of extracting and adding the _EN_CODE.BIN module instead of the shifting, would be safer, just let me know and I would do it instead.



I have checked, but unfortunately my model seems to not have the 2 BIOS chips, only something called "Virtual Dual BIOS Technology", which seems to be a BIOS backup copy on the Hard drive which would be used to reflash the BIOS automatically, if something goes wrong.

Do you think this would be safe enough to give it a try? Anyway, I guess I will wait for your feedback after having done the same modding process…

I made this mod file myself,and i think it’s safe to flash it.Give it a shot.

P35CDS3R.zip (673 KB)

Thanks, I will give it a try.

Hi,

I finally found the time (and the courage :wink: ) to try your modded BIOS.

The flashing went fine, but I got no luck, the new RAID ROM does not work at all. I tried replacing the 11.2.0.1527 with the 10.1.0.1008, 10.5.1.1070 and 11.6.0.1702, but I got always the same behavior: as soon as I change the SATA setting in the BIOS to RAID, none of the hard drives are detected. WHen I set it back to AHCI, the drives are detected fine.

To be sure it was not related with the TRIM fix, I tried with the original 11.2.0.1527, but got the same problem.

Then, to be sure it was not due to the RAID ROM new position in your modded BIOS, I created a new one using RAID 10.1.0.1008 in the place of the old one, and a dummy file, and then added AHCI and JMB59 at the end, but exactly the same behavior, no drives detected when RAID is enabled in the BIOS. Here is the modded file, if you would like to take a look:

P35CDS3R_mod.zip (657 KB)



After all the trouble of creating a new modded BIOS with another structure, I had the idea of replacing the RAID ROM on your modded BIOS with the original one, version 7.5.0.1017, and… it worked fine, all the disks were detected again, so, your modded BIOS structure is working fine.

Any idea of what might be wrong with all the new RAID ROMs to give me this problem? One thing that I noticed is that even though my AHCI ROM is the 1.20E version, when I tried comparing it with the one supplied on the ROMs thread I noticed they are different. Do you think it would be fine for me to replace the AHCI ROM of the original BIOS with the one from the ROMs thread?

Any other suggestions, or shall I simply quit and forget trying to make my P35/ICH9R board work with TRIM for RAID-0? :frowning:

No, this will not solve anything.

I suspect, that the jump from your original MSM OROM v7.5.0.1017 to a much newer Intel RST OROM v10 or v11 was too big. The new OROM may have not been able to detect the RAID array, which has been created with the absolutely outdated OROM version v7.
This is what I suggest to do:
1. Do a backup of your important data.
2. Delete your current RAID array by using the old MSM RAID Utility v7.5.
3. Flash the BIOS, which contains the TRIM modded Intel RAID ROM v10.1.0.1008 (just to be on the safe side regarding the OROM module size).
4. Create a new RAID array by using the Intel RAID Utility v10.1.0.1008.
5. Check, if everything is fine.
6. Flash the modded BIOS containg the TRIM modded Intel RST RAID ROM v11.2.0.1527.
7. If everything is still fine, install the OS.

Good luck!
Fernando


Ok, I realize now I did not give you all the information… :wink:

I don’t have any RAID array yet. I got another ssd drive and then started thinking in creating a RAID-0 array, however, for that I would like to enable TRIM, otherwise the performance might not be that good…

So, when I said that no drives were detected I was not meaning only the ones in the RAID array (because I don’t have any), I was meaning all the drives. I have currently 6 drives on my system: 2 ssd and 4 hard disks. 5 are connected to the ICH9R and the other one to the JBM sata.

With the 7.5 ROM, all the 5 drives are detected when I enable RAID in the BIOS, however, when I put the modded bios, none of them are detected, only the one connected to the JMB.

Tomorrow I will try with all ROM versions available from the ROMs thread. I will start first with the 8.x versions, which are closer to the one I have now. If even those would not work, then probably none would… I was only hoping that the problem might be related with any incompatibility with the other ROMs… Do you think it might help trying to update the JMB ROM to the newer version available in the ROMs thread?

I also noticed that there was a recent thread about someone with a Gigabyte P35-DS3R that was not having any luck with modded BIOS, so, maybe it’s a limitation of these boards, since mine should be very similar to that one… :frowning:

@ yesgrey:
Thanks for your additional report.

Your issue may have something to do with the size of the inserted Intel RAID ROM module. A too strong compression of the ROM file can shrink its functionality.
What is the uncompressed size of the Intel RAID ROM v7.5.0.1017 (you get it by extracting the original ROM module)?

I agree with you.

No, I don’t think that, but you may try to remove the JMicron RAID ROM module for testing purposes (to verify, if your issue is caused by a space problem within the BIOS). If the TRIM modded Intel RST RAID ROM v10.1.0.1008 or v11.2.0.1527 has been inserted below the MINIT module, you may try to remove the LOGO BitMap module to get more space for the Intel RAID ROM one.

I have never heard about such limitation.


I put also a few of the others for comparison purposes…
v7.5.0.1017: 64kB
v8.5.0.1030: 64kB
v8.9.1.1002: 80kB
v10.1.0.1008: 85kB
v11.2.0.1527: 119kB


I don’t quite understand that… AFAIK the compression of the ROM file is always the same and decided by CBROM, or is there any kind of setting to control that?

What would make some sense to me would be the uncompressed size of the ROM being too big to fit the execution memory (I don’t know how the BIOS works, but are the ROMs uncompressed to some kind of RAM to allow them to run then?)


I will give it a try with removing the JMicron RAID ROM. It’s size is 31kB, so, by removing it I might be able to run the V10.1.0.1008, which is 85kB, less than 95kB (64+31). The logo removal was already done by aaaaaa889 and it only helped getting space for putting the compressed ROMs .

Anyway, I think the definite test would be replacing the v7.5.0.1017 with the v8.5.0.1030. Since they have the same size, if the latter doesn’t work then the problem should be in the new ROMs, maybe they had changed them the ROMs with some kind of private data?

I don’t quite understand that… AFAIK the compression of the ROM file is always the same and decided by CBROM, or is there any kind of setting to control that?


No. All BIOS modding tools (in your case: CBROM) can compress the inserted modules and do it until a limited amount, but they do not care about the impact on the functionality of the modules after the compression.


[quote="Fernando, post:16, topic:30624"] I have never heard about such limitation.
[/quote]

With all due respect, Fernando, I think you have

@yesgrey
If you refer here and here; look under the Gigabyte GA-965P-DS4 (ICH8R) that I tried many times to upgrade in the same way you are. I had to admit defeat and keep using the old AHCI ROM 1.20E (in my case it was purely to stop BSOD errors on a new SSD boot drive with RST drivers, subsequently resolved by reinstallation of the OS; RAID was not an issue). As I stated then, only the JMicron ROM was successfully upgraded and is still working fine with an external backup drive.

My point is, it would appear that some (all?) Gigabyte boards with RAID controllers prior to ICH10R have serious issues utilising a relevant RAID OROM above 8.x (in my case, 6.x!!). Flashing was successful but Windows installation could see no drive on the controller unless the original MSM ROM 6.x was reloaded - that was my experience, and it appears to be yours too! In your case with the ICH9R, it may be worth trying the last 8.x version.

Hope that helps in some way

With all due respect, Fernando, I think you have



Thanks for the correction.
Since I am not a youngster anymore (having 3 children and meanwhile 8 grandchildren), I obviously have already a memory leak within my brain.