Comment 15 for bug 129172

Revision history for this message
RichardNeill (ubuntu-richardneill) wrote : It's a BIOS bug - fixed :-)

Had a reply from Gigabyte - yes, it *is* a BIOS bug, and the BIOS upgrade fixes it. The kernel bug was rejected as invalid (because it's a BIOS problem, not a kernel problem).
I'll give full details below, because this wasn't quite straightfoward to fix, and hopefully it will help someone else.

1)Get the latest BIOS update from gigabyte. I used this one successfully: motherboard_bios_ga-p35c-ds3r_f4g_beta.exe

2)Extract the BIOS with wine (0.9.41 works fine). Gigabyte don't provide the md5sum, so, for info: 6f283d38e272ea433b4478f39a6cdb03 P35CDS3R.F4g

3)Copy the BIOS onto a floppy. [The manual claims that a USB key is also supported: the Q-flash utility loads the new image fine, but fails at the last step with "BIOS ID CHECK ERROR". You have to use a real old-fashioned diskette.]

4)Flash BIOS, Load optimized defaults. Enjoy.

5)Once updated, free -m reports 8002 MB free (presumably, the rest is used by the kernel). The MTRRs are now:

$ cat /proc/mtrr
reg00: base=0x00000000 ( 0MB), size=4096MB: write-back, count=1
reg01: base=0xe0000000 (3584MB), size= 512MB: uncachable, count=1
reg02: base=0x100000000 (4096MB), size=4096MB: write-back, count=1
reg03: base=0x200000000 (8192MB), size= 512MB: write-back, count=1
reg04: base=0xdff00000 (3583MB), size= 1MB: write-through, count=1

And the performance is about 50% better than the best it was before :-)

I'm sure Gigabyte have shipped lots of boards with the original broken BIOS - is there any way to make the kernel print a warning? It would be nice if the next Ubuntu user who hits this bug can find the fix more easily!

Thanks once again for your help - Richard