Проблема такова: есть ряд серверных плат на чипсетах
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 чтобы установить нужные
В сухом остатке, толку нет. На частоте шины 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:
"Биос феникс, в принципе, возможно подправить. Однако, я так понимаю, "стандартные" утилиты могут его не принять из-за относительной новизны (платы-биоса). Если что-либо пробовалось - просьба указать.
Касаемо вопроса - правильней будет, видимо, вносить свои изменения в бутблоке - смотрелся ли оный? Есть ли готовая последовательность инициализации или предполагается изменение имеющейся?
"
Автор забыл дать линк на биос (последний, "чисто" образ)
Я к сожалению не очень хорошо ориентируюсь в правке биосов.
С биосом пока не пробовал работать, хотелось-бы понять вообще реальность данного предприятия. 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. Похож, но есть и различия.
Мутировавший какой-то феникс... То ли просто новый и неизвестный мне. Особенно, ежели к его рождению приложили руку фуджитцу сотоварищи...
В общем, "с ходу" такой забороть не получится, сначала придется прикрутить разборку и после сборку. Постараюсь заняться этим на днях...
FS не при делах
Просто TYAN выпускает платы для серверов FS. Это давняя традиция.
BIOS - 512 килобайт (начиная с NAPI). 1-я половина (предположительно) для BMC и т.п.:
Открытая книга: icbook.com.ua
BMRC - судя по всему именно тот кусок, который осуществляет инициализацию памяти. Если вся необходимая функциональность именно там, то, в случае если бы удалось все же сделать требуемую модификацию, она работала-бы с любым BIOS с MRC данной версии.
Текущая -1.2.
Не соглашусь, биос 8-мегабитный, заголовки модулей "нездоровые" (на пять байт больше "нормальных" да и выглядят "по-старо-амишному" ), "растут" модули сначала-вконец и "примбамбас" вначале - просто из жадности - цельный мегабайт на биос ведь и так ушел.
Структуру заголовков понять несложно, пытаюсь прикрутить сразу такой феникс в ROMpatcher (на внешний вид, похоже, LZINT компрессия осталась).
Возможно, возможно... Но: как правило 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
Открытая книга: icbook.com.ua
Ну, потому я сразу и написал, что это - "мутировавший" феникс... Вторая половина его почти пустая, большинство модулей лежит в первой части, начиная 14000.
Удалось-ли распаковать блоки? Если да, то как это сделать?
Я бы хотел немного помедитировать с IDA Pro
Cronos Рад, что ты нашёл верное место для обсуждения своей проблемы. Лучше придумать трудно. В плане mod BIOS я чайник, но по разгону дам пару напутствий.
1.
2. Ещё могу посоветовать обратить внимание на тайминг Trfc, он при разгоне всех DDR2 чипсетов (а FB-DIMM то же) имеет превалирующее значение. Также есть другие, сейчас занимаюсь подобным исследованием на 9XX чипсетах. Ещё тайминг Trd, но его не встречал на 965 (контроллер отличается от прочих) и твоём 5000. Продолжу. Ты можешь считать значения подтаймингов? Будет полезным, для размышлений на тему - почему сейчас не грузится.
Вместе мы - www.ROM.by!
Отправить комментарий