BIOS mod for Intel 5000X/P/V boards

Проблема такова: есть ряд серверных плат на чипсетах
5000X/5000P/5000V под процессоры Intel Xeon 5000/5100/5300 и память
FB-DIMM.
У меня, в частности, плата Tyan Tempset 5000XT, два процессора Xeon 5320
1.86GHz/1066FSB ( 4-ядерные), 8x1GB FB-DIMM 667.

Для процессоров с шиной 1066MHz есть BSEL -мод, переводящий их в 1333MHz
аналог.
Кроме того, есть возможность програмного разгона. Итого, мои 1.86/1066
разогнаны до ~2.7/1540.
Дальше разгонять не удается, причем причина скорее всего в памяти. Известны
случаи разгона до частоты шины ~1600FSB, но не намного больше.Возможно есть
ограничение и в FSB, но это невозможно пока установить.

Чипсет может работать с делителем 1:1 и 5:4. Но ни на одной плате из всех
существующих нет возможности установить этот коэфициент, и практически нет
никаких возможностей менять настройки памяти -никаких таймингов, ничего.

Я пробовал модифицировать SPD у модулей, чтобы перевести их в 533 и заставить
BIOS выставить делитель 5:4. При этом устанавливаются тайминги 4-4-4
автоматически, так что я еще модифицировал SPD чтобы установить нужные

тайминги 5-5-5. На самом деле, таймингов целая куча, и я практически все их
перепроверил.

В сухом остатке, толку нет. На частоте шины 1600MHz машина виснет при
нагрузке. При этом память работает на частоте DDR2-640MHz c делителем 5:4. .
При стартовой частоте шины 1066, без BSEL -мода (для 1066->1333), предел
1320FSB (660 память), т.е. почти такой же по памяти.
В режиме 1:1 c BSEL предел в районе ~1540 FSB (770 память)

Для тех кто не знаком с FB-DIMM, кратко -это обычные чипы DDR2 + чип-буфер -AMB
(Advanced Memory Buffer).
Все взаимодействие с чипсетом идет через AMB. AMB это весьма сложное
устройство с кучей регистров, которые надо настраивать при инициализации.
После инициализации, практически ничего нельзя поменять. Все существенные
тайминги содержатся именно в AMB, а не в чипсете.
Код инициализации (MRC -memory reference code) в BIOS всех плат один и тот же,
и распространяется самой Intel.

Я довольно детально разобрался в регистрах MCH и AMB. К сожалению, даташита
на именно мой AMB (IDT) нет, так что я пользовался даташитом от Intel.

Чтобы выставить делитель 5:4 , нужно сделать 2 вещи:
1) Прописать в MCH несколько регистров для 5:4 gear ratio. В силу изменения
вступают только после перезагрузки
2) Кроме того, прописать делитель в специальной микросхеме-буфере на плате,
которая подает частоту на память, получая ее из частоты FSB. Адрес этой
микросхемы я знаю и как ее прграммировать тоже.
Но "на лету" это не работает. Если просто задать делитель в буфере, все сразу
зависает по понятным причинам. Изменения в MCH вступают в силу только после
перезагрузки. На самом деле не вступают, поскольку BIOS все назад возвращает
:(
Эту операцию можно сделать только на вполне определенном этапе инициализации
чипсета и памяти. А для этого нужно модифицировать BIOS.

Почему не сработал мой трюк с SPD (рабочая гипотеза, но весьма
правдоподобная) : дело в том, что ряд важных таймингов устанавливаются при
инициализации BIOS-ом соответственно частоте памяти, а частота у нас 533 при
делителе 5:4. Эти тайминги невозможно контроллировать через SPD.
Поэтому предел разгона примерно такой-же, как если стартовать с шины 1066(533
память) при делителе 1:1.

Добавлено спустя 2 минуты 52 секунды:

From apple_rom:
"Биос феникс, в принципе, возможно подправить. Однако, я так понимаю, "стандартные" утилиты могут его не принять из-за относительной новизны (платы-биоса). Если что-либо пробовалось - просьба указать.
Касаемо вопроса - правильней будет, видимо, вносить свои изменения в бутблоке - смотрелся ли оный? Есть ли готовая последовательность инициализации или предполагается изменение имеющейся?
"

Рекомендуется к прочтению по той же теме

Аватар пользователя apple_rom

Автор забыл дать линк на биос (последний, "чисто" образ)

Я к сожалению не очень хорошо ориентируюсь в правке биосов.
С биосом пока не пробовал работать, хотелось-бы понять вообще реальность данного предприятия. Bios действительно Phoenix.

В бутблок изменения вносить не имеет смысла, так как они все равно потом будут overridden by MRC или в других частях, осуществляющих инициализацию чипсета/памяти.


Как это работает, насколько я понимаю:
Биос на определенном этапе (в MRC?) определяет частоту шины процессора - пока это два варианта, 1333 или 1066. Дальше
смотрит в SPD модулей памяти чтобы определить их максимальную частоту -пока это только 533 или 667. Для комбинации 1333/533 устанавливает делитель FSB:Memory 5:4 в чипсете и потом программирует через SMBus делитель на плате. Для 1333:667 , 1066:533 и 1066:667 устанавливает 1:1. Далее AMB на всех модулях программируется соответственно реальной частоте.
Помимо ряда хорошо известных таймингов CL-Trp-Trcd-Tras-Trc и кучи дополнительных (Trrd,Twrc и еще много других) которые можно задавать програмируя SPD модулей памяти (что я и делал), есть еще специфические тайминги задающие частоту и другие параметры AMB.

В частности есть регистр LINKPARNXT (AMB function 1, offset 0x56) где задается текущая частота -800, 667 или 533 MHz. Регистр имеет доступ
RWST (read-write sticky), можно редактировать, но для применения изменения нужен link reset, что в итоге вернет все на круги своя.

Моя идея такова -нужно сделать так, чтобы участок кода, осуществляющий задание делителя 5:4 в MCH и программирование делителя на плате работал всегда, в идеале чтобы для этого была опция в меню BIOS. То есть, AMB нужно запрограммиовать на частоту 667, но запустить на частоте 533. Это должно дать примерно 40-50% разгона от уровня FSB 1333, в моем случае 3.3-3.5 GHz для процессоров с множителем 7.
Кстати, эта FSB 1333 - уже результат BSEL мода с дефолтных 1066, так что в итоге полный разгон, я надеюсь, сможет составить до 90%.

Добавлено спустя 26 минут 42 секунды:

Datasheets:
Intel 5000X/P :
download.intel.com/design/chipsets/datashts/31307003.pdf

Intel AMB:
download.intel.com/design/chipsets/datashts/31307202.pdf

У меня AMB от IDT. Похож, но есть и различия.

Аватар пользователя apple_rom

Мутировавший какой-то феникс... То ли просто новый и неизвестный мне. Особенно, ежели к его рождению приложили руку фуджитцу сотоварищи...
В общем, "с ходу" такой забороть не получится, сначала придется прикрутить разборку и после сборку. Постараюсь заняться этим на днях...

Аватар пользователя icbook

apple_rom писал(-а):
...ежели к его рождению приложили руку фуджитцу сотоварищи...

FS не при делах:)
Просто TYAN выпускает платы для серверов FS. Это давняя традиция.

BIOS - 512 килобайт (начиная с NAPI). 1-я половина (предположительно) для BMC и т.п.:

This program cannot be run in DOS mode
...
D:\reboot\CHIPSET\INTEL\BLAKFORD\BMRC_120\OUT32\MINITDLL.pdb

BMRC - судя по всему именно тот кусок, который осуществляет инициализацию памяти. Если вся необходимая функциональность именно там, то, в случае если бы удалось все же сделать требуемую модификацию, она работала-бы с любым BIOS с MRC данной версии.
Текущая -1.2.

Аватар пользователя apple_rom

Цитата:
BIOS - 512 килобайт (начиная с NAPI). 1-я половина (предположительно) для BMC и т.п.

Не соглашусь, биос 8-мегабитный, заголовки модулей "нездоровые" (на пять байт больше "нормальных" да и выглядят "по-старо-амишному":) ), "растут" модули сначала-вконец и "примбамбас" вначале - просто из жадности - цельный мегабайт на биос ведь и так ушел.:)
Структуру заголовков понять несложно, пытаюсь прикрутить сразу такой феникс в ROMpatcher (на внешний вид, похоже, LZINT компрессия осталась).

Аватар пользователя icbook

Возможно, возможно... Но: как правило Phoenix BIOS начинается с NVS_SIGNATURE="NAPI"

Кроме того, ни 1_02a.rom, ни его усеченная до 512 версия не открываются BE, сообщение одинаковое - Wrong BCPSYS Version! А вся разнница в 3-м после сигнатуры байте длины (82h), во всех предыдущих версиях его значение - 80h:
42 43 50 53¦59 53 03 02¦82 00 04 06¦00 00 00 31 BCPSYS

Аватар пользователя apple_rom

Цитата:
Но: как правило Phoenix BIOS начинается с NVS_SIGNATURE="NAPI"

Ну, потому я сразу и написал, что это - "мутировавший" феникс...;) Вторая половина его почти пустая, большинство модулей лежит в первой части, начиная 14000.

apple_rom писал(-а):

Структуру заголовков понять несложно, пытаюсь прикрутить сразу такой феникс в ROMpatcher (на внешний вид, похоже, LZINT компрессия осталась).

Удалось-ли распаковать блоки? Если да, то как это сделать?
Я бы хотел немного помедитировать с IDA Pro:)

Cronos Рад, что ты нашёл верное место для обсуждения своей проблемы. Лучше придумать трудно. В плане mod BIOS я чайник, но по разгону дам пару напутствий.
1.

Цитата:
Это должно дать примерно 40-50% разгона от уровня FSB 1333, в моем случае 3.3-3.5 GHz для процессоров с множителем 7.
Стоит помнить о иных факторах, которые "вылезут" при дальнейшем разгоне. Решили одну проблему - упрёмся в новую. Скорее всего это будет Vgtlref.

2. Ещё могу посоветовать обратить внимание на тайминг Trfc, он при разгоне всех DDR2 чипсетов (а FB-DIMM то же) имеет превалирующее значение. Также есть другие, сейчас занимаюсь подобным исследованием на 9XX чипсетах. Ещё тайминг Trd, но его не встречал на 965 (контроллер отличается от прочих) и твоём 5000. Продолжу. Ты можешь считать значения подтаймингов? Будет полезным, для размышлений на тему - почему сейчас не грузится.:)

Вместе мы - www.ROM.by!

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей