Gigabyte DualBIOS

Дано: GA-MA780G-UD3H с функцией DualBIOS, не виртуальной, на плате реально две SPI flash схемы.
Почти случайно обнаружил комбинации Alt+F11, Alt+F12.
Поисследовал - похоже переключение между схемами производится через бит #0 (самый младший) регистра EFh логического устройства #7 Super I/O контроллера IT8718. Доступ к ROM осуществляется через SPI контроллер в этом же чипе (IT8718).
В документации, которую я смог найти, этот регистр не описан.
Может кто может помочь с более правильной/полной документацией? На самом чипе написано ITE IT8718F-S.
Если кому интересно дальнейшее исследование этой темы - давайте поисследуем вместе.
Сейчас я смотрю на стартовый код биоса и то как/когда он делает переключение между flash чипами.
Похоже, что можно форсировать такое переключение с помощью сигнала RI2 упомянутого Super I/O (pin 127).

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

maco
GB в том отношении, что пинаут гигабайтовский. 8712 и 8718, кстати, являются аналогами.

Цитата:
Реально все завязано на пины 97 и 61. Тоже GPIO

уточню
97 (66) - IRTX/GP47/CEB_N
61 (30) - RESETCON#/CIRTX/CE_N

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

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

agapon
читайте даташит на те пины, что я указал.

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Это уже веселее:).

maco писал(-а):

Я в общем-то могу код не смотреть:). RI2 - вход, так что управлять переключением Main/Backup с его помощью при всем желании не получится, а вот GPIO - никаких проблем. Хотя кроме кода я бы хотел бы услышать о том, что вы отследили физическое соединение между указанным выводом и выводом(ами) микросхем, содержащих Main/Backup BIOS.

Физическое соединение я не отслеживал.. пока. Специализация несколько другая :)


Я вижу, что надо надо объяснить ход моих мыслей по поводу кода.

Я имел в виду, что с помощью сигнала RI2 можно приказать БИОСу переключиться на альтернативный флеш.
Само же переключение производится путем установки бита номер 0 (самого нижнего) в регистре 0EFh логического устройства 7 в Super I/O.
В тех документах по IT871x, которые я смог найти, этот регистр не упоминается. По крайней мере я его не обнаружил.
Возможно это алиас какого-то еще регистра.
То, что этот регистр/бит действительно производит переключение, я проверил с помощью слегка модифицированной утилиты flashrom.

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

Root писал(-а):

97 (66) - IRTX/GP47/CEB_N
61 (30) - RESETCON#/CIRTX/CE_N

У меня эти пины (66 и 30) описаны как имеющие альтернативные функции CE_2N и CE_N, "Serial Flash chip enable".
Что, в общем, похоже на то, что надо.
Но вот только я не вижу описания как ими управлять.

agapon писал(-а):
Я точно не знаю, каким именно выводом производится переключение между микросхемами. Я знаю только какой регистр для этого надо программировать и через какой ввод можно принудить БИОС к переключению.
Это утверждение уже намного точнее исходного:).
Попутно хотелось бы уточнить - выходы SO включены раздельно?

maco писал(-а):

Это утверждение уже намного точнее исходного:).

На самом деле, исходное утверждение (самое первое, в самом верху) было достаточно точным с точки зрения изложения фактов и интерпретаций.
Неясности были привнесены по ходу разговора.

maco писал(-а):

Попутно хотелось бы уточнить - выходы SO включены раздельно?

Не понял вопрос :)

agapon
Факты - фактами, а интерпретация - интерпретацией. У вас интерпретация не была подкреплена фактами, поэтому и осталась всего лишь интерпретацией.
По SO - 2-ой вывод мискросхемы, содержащей Main BIOS, соединен со 2-ым выводо мискросхемы, содержащей Backup BIOS?
IMHO не соединен, но для точного представления ситуации было бы неплохо выяснить, тем более проверить не сложно.

Я позволю себе вернуться к моей плате GA-G31M-ES2L, напомню, процессор Intel, dual bios с двумя SPI флэшами MX25L4005, доступ через ICH7, SO,SI,CLK обеих запараллелены, а CS#, HOLD#, WP# нет. Под рукой такая же плата - в смысле из той же закупки и та же Rev1.1 - но с другими флэшами - SST25VF04.

Вобщем, люди мы лихие, с живых плат поотпаивали микросхемы backup BIOS. В обеих прошита версия F8, но что удивительно - начиная с адреса 7E28Eh (в hex редакторе) в F8 идет 20 ED FF FF FF, в SST - 24 1D 95 С3 78, в MX - 24 1D 3D 26 4F. Видимо, это как то связано с типом микросхемы, хотя идентификаторы микросхем никак на эти коды не похожи. SST:VID BF, DID 8D; MX: VID C2, DID 13. После отпайки резервных биосов из логотипа загрузки исчезло красивое сочетание "Dual BIOS", значит основной биос проверяет наличие резервного.

Вот какой факт просьба объяснить. Записываю F8 через Q-Flash, тут же его считываю в файл и вижу, что свежесчитанный файл уже сильно отличается - в области 6E000-6EFFF в F8 были в основном FF или 00, а теперь совсем не то, включая слова типа Award Software, Gigabyte и т.д., и изменились те самые 5 байт с адреса 7E28Eh. А после перезагрузки и последующего считывания еще и в области 6C000-6CFFF понаписано всякое, в т.ч. куча заголовков Empty. После последующих перезагрузок данные в этой области все время меняются, хотя уже немного. Что это за область флеш-памяти, куда постоянно что-то пишется? И как тогда может работать аппаратная защита биоса, если туда всегда что-то пишется?

Или Q-Flash читает по этим адресам совсем не из биоса? Маловероятно...

bublik
Области DMI/ESCD, например.

bublik писал(-а):
как тогда может работать аппаратная защита биоса, если туда всегда что-то пишется?
Защита в общем-то аппаратно-программная, т.е. обычно нужно выставить бит запрета записи в статусный регистр. Если еще и WP# управляется программно, то защита полностью программная.

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые 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.

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

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