Written by Tatyana Hiko < tatyana at miko dot org >
=ChangeLog=
Initial Release (Dec 1, 2009)
Gigabyte technology's MPC7A Motherboard GA-E7AUM-DS2H has a bug in its BIOS. (This bug still remains in the latest BIOS, version F4)
Due to this problem this motherboard won't work with FreeBSD stably if
You can avoid this problem by
though, here I want to try to find a software solution.
Basically this BIOS returns an incorrect SMAP information which has an overlap area during a free area (100000:bfdf0000) and the frame buffer (70000000:10000000).
| BASE | LENGTH | TYPE |
| 0 | 9e800 | 1 |
| 9e800 | 800 | 2 |
| f0000 | 10000 | 2 |
| 100000 | bfdf0000 | 1 |
| 70000000 | 10000000 | 2 |
| 80000000 | 3fef0000 | 1 |
| bfef0000 | 3000 | 4 |
| bfef3000 | d000 | 3 |
| ea000000 | 2000000 | 2 |
| fec00000 | 1400000 | 2 |
| 100000000 | 40000000 | 1 |
* bfdf0000 should be 6ff00000
So, we can avoid this problem by patching the FreeBSD boot loader to convert this incorrect SMAP information into a correct one which hasn't any overlapping area.
To patch and rebuild the FreeBSD boot loader, first of all, you have to decrease the RAM to 2GB and install the FreeBSD properly. After that you can patch the source tree like the following.
$ mkdir ~/Sources
$ cd ~/Sources
$ wget http://miko.org/~tatyana/tech/FreeBSD/FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff
$ openssl rmd160 FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff
RIPEMD160(FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff)= 522615669719b4cac3a0f6a838fefdc00a93bcdb
$ cd /usr/src
$ sudo patch -p0 < ~/Sources/FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff
After the patching, try to build and install the boot loader.
$ cd /usr/src/sys/boot $ sudo make clean $ sudo make obj $ sudo make depend $ sudo make $ cd i386/loader $ sudo make install $ cd ../.. $ sudo make clean
Thanks to adidasprince's Chameleon patch.