Как прошить ATI bios больше 0x10000

Проблема: Имеется прошивка видеобиоса для 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. модераторам: Тема скорее для этого форума, чем для видеокарт; если же нет - перенесу

Спаял флешку и поставил на программатор. То же, только в профиль - после 0х18000 ошибка. Таким образом выявлена аппаратная блокировка, а ATIFlash не виновата. Не ясно только как это сделали, ведь флешка 256к по маркировке.

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

Цитата:
Не ясно только как это сделали

А почитать даташит на M25P10 - влом? IMHO, там вполне доступно английским по белому написано, как сделали.

А кому счас легко...

savely

Цитата:
IMHO, там вполне доступно английским по белому написано, как сделали.

Ну что же.. действительно, есть защита. Попробовал своим программатором ее снять и получил полный read-only, не стереть не записать, причем внутри остался нерабочий ром. Хоть новую микросхему ищи.
Есть какое то проверенное средство по снятию защиты? Может, самодельный программатор?

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

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

А кому счас легко...

А такой вопрос: если у видеокарты флешка накрылась, можно ли встроить видеобиос в биос мат. платы?

Биос мат. платы - AMI для ASUS, утилита MMTOOLS его открывает, кандидат на освобождение места - PCI OptRom от встроенной сетевушки. Если вставлять видеобиос, то какой у него ModuleID должен быть? Попробовал сделать Insert - автоматически выставилось ModuleID=20, VendorID=1002 (ATI) и DeviceID=7280(Radeonx1950). Ром сохранился без ошибок, но пробовать стремно ) Жду ответа на вопрос, можно ли вообще так делать, и есть ли шанс, что видеокарта заведется от такого фокуса.

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

это плохая идея вставлять видеобиос от современной видеокарты в биос материнской платы. Я почти наверняка уверен, что в flash видеокарты прописаны конфигурационные параметры. И без flash инициализация нормально не пойдет.

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

А где они, прописанные параметры? У меня во флешке была залочена старшая четверть адресов, которые я благополучно стер программатором, а потом спалил и саму флешку.
Т.е. если я правильно понял вашу мысль, единственный для меня способ - восстановить флеш и прошить ее полным (128кб) образом, хотя сам ром занимает <64кб?

p.s. действительно, в старших адресах на границе залоченой области есть немного кода. Чисто познавательный вопрос: а как определить, где этот доп. код начинается? Эти смещения заложены в образе, или же смещения железно зашиты в чипе?

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

Kyros
где-где. Я же сказал - во flash. Адрес зависят от конкретного чипа. И узнать их можно из документации. Другой вопрос, что ее у Вас нет. Также можно определить адреса и назначение данных по ним экспериментальным путем (долго).
Но для АТИшек могу подсказать, что вот эти конфигурационные параметры (т.н. ROM based straps) находятся по адресам 0x70-0x80. Там же и Device ID хранится. Т.е. в теории есть софтовая возможность карточки переделывать (правда, не в абы что :)).

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

Root
Вы меня ивините, я т.с. начинающий, вероятно каких то азов не понимаю:)

Цитата:
где-где. Я же сказал - во flash. Адрес зависят от конкретного чипа.

Можно еще раз уточнить, где во flash: в регистрах самого флеша, с доступом по спец инструкции (в описании микросхемы я ничего подходящего на роль такого "general purpose register" не обнаружил), в памяти флешки внутри самого рома PCIOpt ( т.е. внутри образа, в моем случае чуть менее 64кб), или в памяти флешки, но вне пределов рома (т.е. в старших 64кб адресов, не занятых ромом PCIOpt; сама флешка вмещает 128кб)?
Если два последних варианта, то у меня остался полный дамп флеши. Если же информация лежала в регистрах флеша, то похоже видеокарту можно выбрасывать.

p.s. по смещениям 0x7a,0x7b в роме действительно обнаружил DeviceID.
p.p.s. Все же, если стринги лежат ВНУТРИ рома(и флеши соотв.), а ром (со стрингами) я инсёрчу в биос м.п., почему не будет работать?

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

Kyros

Цитата:
Можно еще раз уточнить, где во flash

"памяти флешки" по определенным адресам. Обычно - где-то в начале. Пример я привел (адреса 0x70-0x80)

Цитата:
Все же, если стринги лежат ВНУТРИ рома(и флеши соотв.), а ром (со стрингами) я инсёрчу в биос м.п., почему не будет работать?

потому что видеочип берет свою конфигурацию СО СВОЕЙ ФЛЕШКИ. Нет флэшки - работает с параметрами "по умолчанию" и заданными ножками микросхемы (pin-based straps). И совершенно не факт, что параметры "по умолчанию" дадут загрузиться.
Остальное содержимое флэшки представляет собой, как Вы правильно, заметили PCI Option ROM, который исполняется центральным процессором во время прохождения процедуры POST. И также содержит функции инициализации видеокарты, но на более высоком программном уровне.

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

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

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

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

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