Разблокируем управление таймингами

Одна из основных претензий к большинству биосов для китайских плат на сокете 2011-3 — отсутствие возможности управления таймингами оперативной памяти. При этом сам функционал управления как правило присутствует в прошивке, но попросту скрыт и не доступен по умолчанию. Сегодня мы попробуем исправить этот недостаток.

Эта статья — текстовый вариант видео-инструкции от Кошака, доступной по ссылке (Youtube).

Инструкция предоставлена в формате «как есть», без каких-либо пояснений, либо с небольшими дополнениями.

Как и обычно, результат не гарантируется, а вся ответственность лежит исключительно на вас.

Учитывайте, что в случае каких-либо ошибок, прошивка модифицированного биоса приведет к окирпичиванию платы, восстановление будет возможно только с помощью программатора.

Необходимый софт

Для работы нам понадобится несколько утилит: AmiBCP5, любой HEX редактор, UEFITool и IFRExtractor. Скачать весь необходимый софт можно прямо с этой страницы. Также нам понадобится дамп биоса платы.

    zip AMIBCP 5.02.0034
    AMIBCP 5.02.0034
    Размер файла: 5 МБ Кол-во скачиваний: 17506

    zip HxDSetup
    HeX-редактор HxD
    Размер файла: 3 МБ Кол-во скачиваний: 6877

    zip UEFITool_0.28.0_win32
    Размер файла: 7 МБ Кол-во скачиваний: 5112

    zip IRFExtractor_0.3.6_win
    IRFExtractor_0.3.6
    Размер файла: 40 КБ Кол-во скачиваний: 698

Шаг 1 — убедимся, что меню управления таймингами существует

amibcp_1-300x205

В AmiBCP открываем дамп нашего биоса, раскрываем ветку «IntelRCSetup» и видим типичную для китайских прошивок картину: пункт «Memory Timings & Voltage Override» виден в ветке «IntelRCSetup», однако доступа к нему нет, в основном меню этого пункта не видно.

Нашей задачей будет перенос пункта "Memory Timings & Voltage Override" в меню «Memory Configuration».

Шаг 2 — запускаем UEFITool

И открываем в утилите дамп нашего биоса. Нас будут интересовать 2 модуля: «Platform» и «AMITSESetupdata». Оба модуля находятся в ветке «Intel Image» > «Bios Region» > «Предпоследняя из разворачиваемых веток».

Найдя модуль «Platform» — разворачиваем его, пока не дойдем до «PE32 image». Затем правым кликом вызываем меню и выбираем пункт «Extract body». Сохраним файл под названием «pl.bin».

uefitool_4-300x155

Найдя модуль «AMITSESetupdata» — разворачиваем его, пока не дойдем до «Freeform subtype GUID». Затем правым кликом вызываем меню и выбираем пункт «Extract body». Сохраним файл под названием «fe.bin».

uefitool_5-300x151

Лучше не закрывать UEFITool, он нам еще понадобится.

Шаг 3 — запускаем IFRExtractor

После запуска укажем программе путь к файлу «pl.bin», который мы сохранили на предыдущем шаге. После нажатия кнопки «Extract» утилита сохранит в той же папке текстовый файл «pl IFR.txt».

IFRExtractor_1

Откроем его и найдем строку "memory frequency". Строка может встречаться в файле несколько раз, нас интересует первый найденный вариант.

Обратим внимание на значение параметра «QuestionID», в нашем случае оно равно 0XC05. Также нам понадобится следующий «QuestionID», в нашем случае 0XC06.

notepad_1-1-300x210

В разных биосах значения «QuestionID» могут будут другими, однако если вы видите 0XC05 и 0XC06 — скорее всего вам досталась одна из самых популярных китайских заготовок bios.

Скопируем оба этих значения в отдельный документ или вкладку текстового редактора, но приведем их в другой вид. 0XC05 запишем как 050C, а 0XC06 как 060C.

Несколько примеров преобразования для наглядности. 0xC36 = 360C. 0xC78 = 780С. 0xCB3 = B30C.

Что у нас записано в отдельной вкладке

050C 060С

Шаг 4 — запускаем Hex-редактор

В нем откроем 2 наших ранее сохраненных модуля: pl.bin и fe.bin.

Начнем с fe.bin. Выполняем поиск hex-значения «81000000».

hex_1-300x162

Обратим внимание на 12 символов справа от найденного значения. В нашем случае это 6710, 9000 и 1D00 (в вашем случае символы могут быть другими).

hex_2-241x300

Число 6710 запишем в отдельную вкладку. В неё же запишем число 6910, которое мы получили, прибавив 200 к 6710.

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

Отдельная вкладка

050C 060С
6710 6910 9000

Вернемся в Hex-редактор. Теперь выполним поиск записанного нами ранее значения 050C, но сначала приведем его к виду 0000050C0000, добавив по 4 нуля в начало и в конец значения.

hex_3

Теперь внимательно смотрим на картинку ниже и приводим области рядом с найденным hex-значением в такой-же вид. Обратите внимание, что значения, выделенные красным мы взяли из нашей отдельной вкладки, а вот значения, выделенные синим, нужно просто поставить как на скриншоте.

hex_4

Теперь проделаем ту же операцию, но для записанного нами ранее значения 060C, которое мы также приведем к виду 0000060C0000.

hex_6

Затем снова выполним поиск 0000050C0000. На этот раз обратим внимание на выделенные зеленой рамкой 4 символа: 8A00. Запишем их в отдельную вкладку.

hex_7

Отдельная вкладка

050C 060С
6710 6910 9000

8A00

Помните мы выполняли поиск hex-значения «81000000». Выполним его снова.

Справа от найденного значения по прежнему находятся символы 6710, 9000 и1D00.Заменяем 1D00 на 8A00.

hex_8

На этом модификация файла «fe.bin» закончена, сохраним наши изменения и перейдем к файлу «pl.bin».

Выполняем поиск hex-значения «050C». Оно будет встречаться в файле множество раз, нам нужно найти вариант, перед которым стоят символы, похожие на наши «67106910».

hex_9-1

Спустя некоторое время находим нужный участок:

hex_10

Заменяем символы на "67106910":

hex_11

Теперь повторяем всю процедуру поиска и замены, но уже для hex-значения «060С»:

hex_12

На этом наша работа над файлом "pl.bin" закончена. Сохраним изменения.

Шаг 5 — возвращаемся в UEFITool

Снова находим 2 модуля: «Platform» и «AMITSESetupdata».

Найдя модуль «Platform» — разворачиваем его, пока не дойдем до «PE32 image». Затем правым кликом вызываем меню и выбираем пункт «Replace body». Выбираем наш недавно измененный файл «pl.bin».

uefitool_6

 

Найдя модуль «AMITSESetupdata» — разворачиваем его, пока не дойдем до «Freeform subtype GUID». Затем правым кликом вызываем меню и выбираем пункт «Replace body». Выбираем наш недавно измененный файл «fe.bin».

uefitool_7

Теперь осталось только сохранить наш мод-биос (File> Save imege file).

Шаг 6 — возвращаемся в AMIBCP

Откроем только что сохраненный биос и убедимся, что меню с управлением таймингами появилось и доступно из пункта «Memory Configuration».

amibcp_2-300x206

Вот и всё. Осталось только прошить наш мод-биос любым подходящим для вашей платы способом.