Модификация БИОС AWARD материнской платы Gigabyte GA-M68SM-S2 v1.0 под новый процессор или Как обновить свой БИОС, потеряв надежду

Анатолий Автаев/ 21 декабря, 2021/ 0 комментариев

Давным-давно, когда процессорный разъём AM2 был актуальным и были надежды сохранения его совместимости с последующими, я купил материнку Gigabyte GA-M68SM-S2 с процессором Sempron LE-1100 и почти сразу обновил БИОС. Для тех задач мне этого хватало, а с течением времени, когда стоимость на вторичном рынке камней сильно упала, я купил уже Athlon 64 X2 5400+ и сразу почувствовал разницу.

 

И всё бы хорошо, тем более, что мне подарили ещё и неплохую видеокарту Sapphire ATI Radeon 4870 1GB, а я к этому добавил немного памяти и довёл её объём до 12 ГБ, но… Хочется повкуснее. И некоторое время назад пошёл за новым процессором. Так как этот сокет электрически совместим с AM2+ и AM3, то выбирал по деньгам. Кулер тоже давно взял с запасом — на 130 TDP.

Но оказалось, что не всё так просто и много чего упиралось в другое. Например, моя матплата официально поддерживала только процессоры до Athlon 64 X2 6400+ и ничего с более новых сокетов. Самый последний БИОС я, естественно, прошил уже давно.

Ну, ладно. Объяснив ситуацию продавцу процессоров, я потащил свой очень тяжёлый системник через всю Москву (как улучшал корпус ещё расскажу). Изрядно оттянув руки система была привезена на тест. Проверив несколько старших процессоров и не дождавшись никакого отклика от материнской платы, мы воткнули Athlon 64 X2 6000+ и только с ним всё зашелестело. Сделав выводы, мы ударили по рукам и я уехал хоть и не с самым продвинутым камнем, но явно с лучшим, чем был у меня.

Что интересно,

на этой системе я играю в Far Cry 3 с максимальными настройками в Full HD и у меня ничего не тормозит. Также и с другими задачами. В общем, мои задачи не могут перегрузить систему. Но хочется лучше! Тем более, что максимальный процессор Phenom II X6 1100T можно сейчас купить за 2500-3000 рублей.

Отодвинув мысль о несправедливости мира, я не забил её окончательно и некоторое время назад подумал: «А может что-то можно сделать с БИОСом?». Покурив интернет я понял, что можно, и дальше покажу как изменить прошивку, чтобы она понимала новые процессоры. А некоторые, не побоюсь этого слова, гениальные, личности даже добавляют новые функции.

Что понадобится для работы

Для работы нам понадобится тройка программ: cbrom32, bit (BIOS Info Tool) и какой-нибудь шестнадцатеричный редактор наподобие HxD. И конечно-же не забываем про cmd. PowerShell мне как-то не зашёл. Ещё не забудем про оригинальный БИОС и БИОС донора (Gigabyte GA-MA785GM-US2H vF12F). Все проги можно скачать в инете.

Смотрим файл с оригинальной прошивкой

cbrom32 m68sms2.f3 /d

и видим куцую строчку с микрокодами

** Micro Code Information **

Bridge ID | Bridge ID

North South Update ID CPUID | North South Update ID CPUID

---------------------------------------+| 0062 00000414| 0068 0000040A C0012102 00000401

006D 0000041| 0083 00000680|

Вытаскиваем нужные файлы

Дальше запускаем командную оболочку Windows, переходим в рабочий каталог и запускаем BIOS Info Tool

bit M785GS2H.12f

Достаём AGESA

Эта команда распакует всё что можно в отдельный каталог. Из всего этого разнообразия нам нужен только файл с последней версией AGESA (AMD Generic Encapsulated Software Architecture — Общая архитектура инкапсулированного программного обеспечения AMD) AGESACPU.ROM. Его мы копируем в рабочую директорию. Файл с логом отработки report.dat нам также пригодится.

Достаём CPU micro code

Из этого же БИОСа достанем файл с микрокодами процессоров (CPU micro code) NCPUCODE.BIN с помощью шестнадцатеричного редактора. Этот файл хранится в этой прошивке в распакованном виде, а в нужном нам образе БИОСа запакованном. Нам нужен именно распакованный, т. к. при добавлении микрокодов мы используем ключ /cpucode и модуль внедрится в упакованном виде. Распаковать файл тоже не проблема — используется архиватор lzh с пятым методом сжатия и это видно в заголовке — там записано -lh5-. Но этот модуль нам уже распаковала утилита bit.

Выясняем длину этого файла

cbrom32 M785GS2H.12f /d

в строчке

(SP) NCPUCODE 06800h(26.00K) 06800h(26.00K) NCPUCODE.BIN

это 06800h(26.00K)

Загружаем в редактор файл с BIOS донора и ищем последовательность *ALIN16*. Байт перед звёздочкой — это последний байт нужного нам файла. А чтобы найти начало файла применяем формулу: Адрес последнего байта — Длина файла NCPUCODE.BIN + 1 = Адрес начала файла. Считаем в шестнадцатеричном калькуляторе, который есть в Windows 10 или в самих редакторах. Например в данном случае: E3FDF — 6800 + 1 = DD7E0. Выделяем всё это и сохраняем в файл CPUCODE.BIN в рабочей директории. Сражу же на него ставим защиту от записи.

Иногда этот файл можно вытащить с помощью awbedit (Award BIOS Editor), но именно в этом образе программа его не увидела.

Из оригинального образа БИОСа GA-M68SM-S2 тоже всё вытаскиваем. Последняя версия F3

bit m68sms2.f3

Отсюда нам нужны почти все файлы, но в первую очередь я поработал с системным файлом (System BIOS) и поменял там номер версии, дату и вписал своё имя. Делал всё это в том же шестнадцатеричном редакторе.

Запакуем файл, используя ненужный образ, например

cbrom32 M785GS2H.12f /other 5000:0 m68sms2.BIN

и в рабочей директории появится файл bios.rom, который мы потом вставим в новый пустой образ БИОСа. Файлик пока уберём подальше.

Удаляем из оригинального образа

Начнём удалять всё из оригинальной прошивки снизу вверх

e:\bios>cbrom32 m68sms2.f3 /gv3 release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[GV3] ROM is release

и cbrom рапортует, что удалил один из модулей.

Можем посмотреть удалилось или нет

cbrom32 m68sms2.f3 /d

Дальше

e:\bios>cbrom32 m68sms2.f3 /oem0 release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[OEM0] ROM is release

e:\bios>cbrom32 m68sms2.f3 /vga release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
VGA ROM - - - [1] : mcp68-02.rom
[VGA-1] ROM is release

С PCI ROM своя история

e:\bios>cbrom32 m68sms2.f3 /pci release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
PCI ROM - - - [A] : NVPXES.NIC
PCI ROM - - - [B] : NVRAID.ROM
PCI ROM - - - [C] : AHCI_NV.BIN

выбираем C

Enter a choice:c
[PCI-C] ROM is release

остальные удаляем также, но последний даже выбирать не пришлось. Умная программа догадалась, что его надо удалить.

Следующий шаг

cbrom32 m68sms2.f3 /oem2 release

Потом удаляем GROUP ROM. Номер группы пишется в квадратных скобках

cbrom32 m68sms2.f3 /group0 release

Надо удалить

7. YGROUP ROM 0B080h(44.13K) 04A5Bh(18.59K) awardeyt.rom

и оказывается, что во встроенной справке не записан ключ для работы с таким блоком. Но ключ этот есть — /ygroup

e:\bios>cbrom32 m68sms2.f3 /ygroup release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[YGROUP] ROM is release

Удаляем группы 20 и 18

e:\bios>cbrom32 m68sms2.f3 /group20 release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[GROUP] ROM is release

e:\bios>cbrom32 m68sms2.f3 /group18 release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[GROUP] ROM is release

Далее EPA логотип

e:\bios>cbrom32 m68sms2.f3 /epa release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[EPA] ROM is release

И таблица ACPI

e:\bios>cbrom32 m68sms2.f3 /acpitbl release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[ACPI] ROM is release

CPU micro code тоже удаляем, тем более, что он под замену

e:\bios>cbrom32 m68sms2.f3 /cpucode release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[CPUCODE] ROM is release

Если системный БИОС не изменяли, то на этом можно закончить и начать добавлять модули. Если изменяли, то продолжим удалять.

Опять ключ, отсутствующий во встроенном help /xgroup

e:\bios>cbrom32 m68sms2.f3 /xgroup release
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
[XGROUP] ROM is release

И у нас остался только System BIOS и модуль NVMM. Системный БИОС удалить невозможно, а nVIDIA memory module мы не трогаем.

Вставляем изменённый System BIOS

Чтобы вставить новый системный БИОС, мы открываем оригинальный образ БИОСа нашей материнской платы, из которого мы всё удалили, в шестнадцатеричном редакторе и вставляем в него с самого начала тот bios.rom, который отложили в сторонку. Если внедряемый БИОС окажется чуть больше, то только сохраняем оригинальный образ, а если он чуть меньше, то заливаем байты, оставшиеся от старого БИОС байтами FF (так рекомендуют) и также сохраняем.

Добавляем в оригинальный образ

А сейчас начинаем добавлять в том же порядке, что и удаляли. Это делаем из-за того, что некоторые BIOS не запускаются, если порядок файлов в нём другой. Добавляем разархивированные файлы, а скомпрессированные не трогаем. Если что, то порядок можно посмотреть в report.dat, который нам выдал bit или подсмотрим в не изменённом БИОС командой

cbrom32 m68sms2.f3 /d

Только не сотрите случайно файл, над которым мы так долго работали!

e:\bios>cbrom32 m68sms2.f3 /xgroup awardext.rom
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding awardext.rom ....... 69.4%

Первый пошёл! Вторым пойдёт наш файл с микрокодами процессора, который мы вытащили из БИОСа донора CPUCODE.BIN. Не забываем, что он должен быть защищён от записи.

e:\bios>cbrom32 m68sms2.f3 /cpucode CPUCODE.BIN
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding CPUCODE.BIN ... 16.0%

Проверяем

cbrom32 m68sms2.f3 /d

и видим

** Micro Code Information **
Bridge ID | Bridge ID
North South Update ID CPUID | North South Update ID CPUID
---------------------------------------+| 1000002 00000| 0062 00000414 C0012102 00000401
0068 0000040| 006D 0000041B| 0083 00000680| 1000020 00001000
1000085 0000| 10000BF 00001| 10000C6 00001| 10000C7 00001062
10000C8 0000| 10000C9 00001| 10000CA 00001| 0

что микрокодов стало существенно больше.

Идём в обратном порядке

e:\bios>cbrom32 m68sms2.f3 /acpitbl ACPITBL.BIN
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding ACPITBL.BIN .. 38.4%

e:\bios>cbrom32 m68sms2.f3 /epa AwardBmp.bmp
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding AwardBmp.bmp 11.1%

e:\bios>cbrom32 m68sms2.f3 /group18 ggroup.bin
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding ggroup.bin 72.9%

e:\bios>cbrom32 m68sms2.f3 /group20 ffgroup.bin
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding ffgroup.bin 77.0%

e:\bios>cbrom32 m68sms2.f3 /ygroup awardeyt.rom
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding awardeyt.rom ..... 42.0%

e:\bios>cbrom32 m68sms2.f3 /group0 _EN_CODE.BIN
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding _EN_CODE.BIN ... 40.8%

e:\bios>cbrom32 m68sms2.f3 /oem2 BSMICODE.ROM
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding BSMICODE.ROM ...... 3.2%

e:\bios>cbrom32 m68sms2.f3 /pci NVPXES.NIC
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding NVPXES.NIC ....... 51.4%

e:\bios>cbrom32 m68sms2.f3 /pci NVRAID.ROM
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding NVRAID.ROM ...... 62.8%

e:\bios>cbrom32 m68sms2.f3 /pci AHCI_NV.BIN
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding AHCI_NV.BIN .. 62.6%

e:\bios>cbrom32 m68sms2.f3 /vga mcp68-02.rom
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding mcp68-02.rom ....... 71.1%

e:\bios>cbrom32 m68sms2.f3 /oem0 SBF.BIN
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding SBF.BIN . 73.7%

Последний файл AGESACPU.ROM опять берём с образа донора и добавляем

e:\bios>cbrom32 m68sms2.f3 /gv3 AGESACPU.ROM
cbrom32 V1.99 [02/12/2010] (C)Phoenix Technologies 2001-2008
Adding AGESACPU.ROM .... 34.0%

Должно получиться точь-в-точь как было, за исключением двух блоков — 2. CPU micro code и 15. GV3. И у нас даже осталось 109 КБ свободного пространства.

******** m68sms2.f3 BIOS component ********

No. Item-Name

Original-Size

Compressed-Size

Original-File-Name

========================================================================

0. System BIOS

20000h(128.00K)

140E8h(80.23K)

m68sms2.BIN

1. XGROUP CODE

0E3C0h(56.94K)

09E37h(39.55K)

awardext.rom

2. CPU micro code

06800h(26.00K)

010CFh(4.20K)

CPUCODE.BIN

3. ACPI table

05429h(21.04K)

02074h(8.11K)

ACPITBL.BIN

4. EPA LOGO

0168Ch(5.64K)

002AAh(0.67K)

AwardBmp.bmp

5. GROUP ROM[18]

019A0h(6.41K)

012D2h(4.71K)

ggroup.bin

6. GROUP ROM[20]

00750h(1.83K)

005C9h(1.45K)

ffgroup.bin

7. YGROUP ROM

0B080h(44.13K)

04A5Bh(18.59K)

awardeyt.rom

8. GROUP ROM[ 0]

06140h(24.31K)

027D4h(9.96K)

_EN_CODE.BIN

9. OEM2 CODE

0C220h(48.53K)

0066Eh(1.61K)

BSMICODE.ROM

10. PCI ROM[A]

0F000h(60.00K)

07B73h(30.86K)

NVPXES.NIC

11. PCI ROM[B]

0C400h(49.00K)

07B41h(30.81K)

NVRAID.ROM

12. PCI ROM[C]

04000h(16.00K)

0283Ah(10.06K)

AHCI_NV.BIN

13. VGA ROM[1]

0EC00h(59.00K)

0A80Eh(42.01K)

mcp68-02.rom

14. OEM0 CODE

028ABh(10.17K)

01E1Bh(7.53K)

SBF.BIN

15. GV3

09453h(37.08K)

032A5h(12.66K)

AGESACPU.ROM

Total compress code space = 67000h(412.00K)
Total compressed code size = 4BC00h(303.00K)
Remain compress code space = 1B400h(109.00K)

*** NVMM 4.081.6403/19/08 ◄♥ * Start Offset => 0, End Offset => 4b00 ***

** Micro Code Information **
Bridge ID | Bridge ID
North South Update ID CPUID | North South Update ID CPUID
---------------------------------------+| 1000002 00000| 0062 00000414 C0012102 00000401
0068 0000040| 006D 0000041B| 0083 00000680| 1000020 00001000
1000085 0000| 10000BF 00001| 10000C6 00001| 10000C7 00001062
10000C8 0000| 10000C9 00001| 10000CA 00001| 0

Окончание

Теперь это можно прошить в микросхему BIOS и запустить компьютер. Естественно делать это стоит только, если есть возможность откатиться на точно рабочий БИОС, например, если на материнской плате стоит Dual BIOS или у вас есть программатор. Я не рискнул, т. к. у меня нет ни того, ни другого.

Я попросил на форумах прошить результат более опытных и имеющих нужное людей. Пока нет видимых результатов и я начал засматриваться на детальки на китайском сайте. Так что есть вероятность, что буду экспериментировать с железками сам и что появится вторая часть. Но также прошу и вас попробовать — файл здесь. О результатах отпишитесь, пожалуйста.


Если хотите помочь деньгами, то перечислите на карту банка ВТБ N 5368 2901 3605 7181, привязанную к телефону +7-927-842-36-72 АНАТОЛИЙ ИВАНОВИЧ А. СПАСИБО!

Поделиться этой записью

Оставить комментарий

Ваш адрес email не будет опубликован.