Проблема: Имеется прошивка видеобиоса для PCI-E ATI Radeon, размер 0x20000, т.е. аккурат для используемой M25P10 (SPI flash, 1 mbit). Однако, стандартные флешеры ATIFlash и ATIWFlash больше 0x10000 прошивать отказываются, точнее прошивают с ошибкой "Error 0xFL01" и 0x18000/0x20000 writed.
Слышал про ограничение в 0х10000 для досовских флешеров, слышал как с проблемой бороться на флешах с параллельным интерфейсом. Но что делать с SPI флешкой?
Еще слышал про линуксовую flashrom, которой якобы можно прошить и VGA биос. Но у меня она видит только биос м.п., а также биосы карт на PCI. Видео не видит.
p.s. модераторам: Тема скорее для этого форума, чем для видеокарт; если же нет - перенесу
А почитать даташит на M25P10 - влом? IMHO, там вполне доступно английским по белому написано, как сделали.
Ну что же.. действительно, есть защита. Попробовал своим программатором ее снять и получил полный read-only, не стереть не записать, причем внутри остался нерабочий ром. Хоть новую микросхему ищи.
Есть какое то проверенное средство по снятию защиты? Может, самодельный программатор?
Биос мат. платы - AMI для ASUS, утилита MMTOOLS его открывает, кандидат на освобождение места - PCI OptRom от встроенной сетевушки.
Если вставлять видеобиос, то какой у него ModuleID должен быть?Попробовал сделать Insert - автоматически выставилось ModuleID=20, VendorID=1002 (ATI) и DeviceID=7280(Radeonx1950). Ром сохранился без ошибок, но пробовать стремно ) Жду ответа на вопрос, можно ли вообще так делать, и есть ли шанс, что видеокарта заведется от такого фокуса.Т.е. если я правильно понял вашу мысль, единственный для меня способ - восстановить флеш и прошить ее полным (128кб) образом, хотя сам ром занимает <64кб?
p.s. действительно, в старших адресах на границе залоченой области есть немного кода. Чисто познавательный вопрос: а как определить, где этот доп. код начинается? Эти смещения заложены в образе, или же смещения железно зашиты в чипе?
где-где. Я же сказал - во flash. Адрес зависят от конкретного чипа. И узнать их можно из документации. Другой вопрос, что ее у Вас нет. Также можно определить адреса и назначение данных по ним экспериментальным путем (долго).
Но для АТИшек могу подсказать, что вот эти конфигурационные параметры (т.н. ROM based straps) находятся по адресам 0x70-0x80. Там же и Device ID хранится. Т.е. в теории есть софтовая возможность карточки переделывать (правда, не в абы что :-)).[/off]
Вы меня ивините, я т.с. начинающий, вероятно каких то азов не понимаю :)
Можно еще раз уточнить, где во flash: в регистрах самого флеша, с доступом по спец инструкции (в описании микросхемы я ничего подходящего на роль такого "general purpose register" не обнаружил), в памяти флешки внутри самого рома PCIOpt ( т.е. внутри образа, в моем случае чуть менее 64кб), или в памяти флешки, но вне пределов рома (т.е. в старших 64кб адресов, не занятых ромом PCIOpt; сама флешка вмещает 128кб)?
Если два последних варианта, то у меня остался полный дамп флеши. Если же информация лежала в регистрах флеша, то похоже видеокарту можно выбрасывать.
p.s. по смещениям 0x7a,0x7b в роме действительно обнаружил DeviceID.
p.p.s. Все же, если стринги лежат ВНУТРИ рома(и флеши соотв.), а ром (со стрингами) я инсёрчу в биос м.п., почему не будет работать?
"памяти флешки" по определенным адресам. Обычно - где-то в начале. Пример я привел (адреса 0x70-0x80)
потому что видеочип берет свою конфигурацию СО СВОЕЙ ФЛЕШКИ. Нет флэшки - работает с параметрами "по умолчанию" и заданными ножками микросхемы (pin-based straps). И совершенно не факт, что параметры "по умолчанию" дадут загрузиться.
Остальное содержимое флэшки представляет собой, как Вы правильно, заметили PCI Option ROM, который исполняется центральным процессором во время прохождения процедуры POST. И также содержит функции инициализации видеокарты, но на более высоком программном уровне.[/off]