Содержание
Одна из основных претензий к большинству биосов для китайских плат на сокете 2011-3 — отсутствие возможности управления таймингами оперативной памяти. При этом сам функционал управления как правило присутствует в прошивке, но попросту скрыт и не доступен по умолчанию. Сегодня мы попробуем исправить этот недостаток.
Эта статья — текстовый вариант видео-инструкции от Кошака, доступной по ссылке (Youtube).
Инструкция предоставлена в формате «как есть», без каких-либо пояснений, либо с небольшими дополнениями.
Как и обычно, результат не гарантируется, а вся ответственность лежит исключительно на вас.
Учитывайте, что в случае каких-либо ошибок, прошивка модифицированного биоса приведет к окирпичиванию платы, восстановление будет возможно только с помощью программатора.
Необходимый софт
Для работы нам понадобится несколько утилит: AmiBCP5, любой HEX редактор, UEFITool и IFRExtractor. Скачать весь необходимый софт можно прямо с этой страницы. Также нам понадобится дамп биоса платы.
Шаг 1 — убедимся, что меню управления таймингами существует
В 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».
Найдя модуль «AMITSESetupdata» — разворачиваем его, пока не дойдем до «Freeform subtype GUID». Затем правым кликом вызываем меню и выбираем пункт «Extract body». Сохраним файл под названием «fe.bin».
Лучше не закрывать UEFITool, он нам еще понадобится.
Шаг 3 — запускаем IFRExtractor
После запуска укажем программе путь к файлу «pl.bin», который мы сохранили на предыдущем шаге. После нажатия кнопки «Extract» утилита сохранит в той же папке текстовый файл «pl IFR.txt».
Откроем его и найдем строку "memory frequency". Строка может встречаться в файле несколько раз, нас интересует первый найденный вариант.
Обратим внимание на значение параметра «QuestionID», в нашем случае оно равно 0XC05. Также нам понадобится следующий «QuestionID», в нашем случае 0XC06.
В разных биосах значения «QuestionID» могут будут другими, однако если вы видите 0XC05 и 0XC06 — скорее всего вам досталась одна из самых популярных китайских заготовок bios.
Скопируем оба этих значения в отдельный документ или вкладку текстового редактора, но приведем их в другой вид. 0XC05 запишем как 050C, а 0XC06 как 060C.
Несколько примеров преобразования для наглядности. 0xC36 = 360C. 0xC78 = 780С. 0xCB3 = B30C.
Шаг 4 — запускаем Hex-редактор
В нем откроем 2 наших ранее сохраненных модуля: pl.bin и fe.bin.
Начнем с fe.bin. Выполняем поиск hex-значения «81000000».
Обратим внимание на 12 символов справа от найденного значения. В нашем случае это 6710, 9000 и 1D00 (в вашем случае символы могут быть другими).
Число 6710 запишем в отдельную вкладку. В неё же запишем число 6910, которое мы получили, прибавив 200 к 6710.
В ту же вкладку запишем и число 9000, однако прибавлять к нему ничего не нужно. 1D00 нам тоже пригодится, но им мы займемся позже.
Вернемся в Hex-редактор. Теперь выполним поиск записанного нами ранее значения 050C, но сначала приведем его к виду 0000050C0000, добавив по 4 нуля в начало и в конец значения.
Теперь внимательно смотрим на картинку ниже и приводим области рядом с найденным hex-значением в такой-же вид. Обратите внимание, что значения, выделенные красным мы взяли из нашей отдельной вкладки, а вот значения, выделенные синим, нужно просто поставить как на скриншоте.
Теперь проделаем ту же операцию, но для записанного нами ранее значения 060C, которое мы также приведем к виду 0000060C0000.
Затем снова выполним поиск 0000050C0000. На этот раз обратим внимание на выделенные зеленой рамкой 4 символа: 8A00. Запишем их в отдельную вкладку.
Помните мы выполняли поиск hex-значения «81000000». Выполним его снова.
Справа от найденного значения по прежнему находятся символы 6710, 9000 и1D00.Заменяем 1D00 на 8A00.
На этом модификация файла «fe.bin» закончена, сохраним наши изменения и перейдем к файлу «pl.bin».
Выполняем поиск hex-значения «050C». Оно будет встречаться в файле множество раз, нам нужно найти вариант, перед которым стоят символы, похожие на наши «67106910».
Спустя некоторое время находим нужный участок:
Заменяем символы на "67106910":
Теперь повторяем всю процедуру поиска и замены, но уже для hex-значения «060С»:
На этом наша работа над файлом "pl.bin" закончена. Сохраним изменения.
Шаг 5 — возвращаемся в UEFITool
Снова находим 2 модуля: «Platform» и «AMITSESetupdata».
Найдя модуль «Platform» — разворачиваем его, пока не дойдем до «PE32 image». Затем правым кликом вызываем меню и выбираем пункт «Replace body». Выбираем наш недавно измененный файл «pl.bin».
Найдя модуль «AMITSESetupdata» — разворачиваем его, пока не дойдем до «Freeform subtype GUID». Затем правым кликом вызываем меню и выбираем пункт «Replace body». Выбираем наш недавно измененный файл «fe.bin».
Теперь осталось только сохранить наш мод-биос (File> Save imege file).
Шаг 6 — возвращаемся в AMIBCP
Откроем только что сохраненный биос и убедимся, что меню с управлением таймингами появилось и доступно из пункта «Memory Configuration».
Вот и всё. Осталось только прошить наш мод-биос любым подходящим для вашей платы способом.