Доработка Radeon VE, Часть I: BIOS.
|
|
|
|
Мы предупреждаем: Этот материал является результатом эксперимента и не призывает к
изменению конструкции видеокарты.
Автор и редакция сайта не несут ответственности за поломку видеокарты или других комплектующих в результате
её модификации.
Просто имейте ввиду, что у автора все работает :) Но работа требует внимания, определенных знаний и
навыков.
|
|
1. Предисловие. |
|
Как известно, при производстве карт на базе Radeon VE экономят на всем, на чем
можно, и частично на том, на чем нельзя ;). Достаточно часто вместо Flash для хранения BIOS используется
EEPROM. Это статья посвящена тому, как сделать такой BIOS прошиваемым. |
|
Как узнать, что стоит на плате?
|
|
Прежде всего надо определить, что за микросхема установлена на плате.
Стандартная маркировка микросхем:
"W29EE" - серия, "011" - размер, "-15" - время доступа.
Расшифровку можно сделать по нижеприведенным таблицам маркировок и корпусов:
|
|
Серия |
Тип |
Vcc/Vpp |
Архитектура |
Комментарий |
xx27C |
Parallel EEPROM |
3.3/5/12V |
- |
- |
xx28xx |
Parallel Flash |
12V |
BootBlock |
В качестве видеобиос не используются. |
AT29C |
Parallel Flash |
5V |
SectorErase |
производитель Atmel |
AT29LV |
Parallel Flash |
3.3V |
SectorErase |
производитель Atmel |
A290 |
Parallel Flash |
5V |
BootBlock |
производитель Amic |
xx29F |
Parallel Flash |
5V |
BootBlock |
- |
V29C51 |
Parallel Flash |
5V |
BootBlock |
произв-ль Mosel Vitelic |
V29LC51 |
Parallel Flash |
2.7/3.3V |
BootBlock |
произв-ль Mosel Vitelic |
xx29EE |
Parallel Flash |
5V |
SectorErase |
EEPROM - совместимые |
xx29LE |
Parallel Flash |
2.7/3.3V |
SectorErase |
EEPROM - совместимые |
xx39SF |
Parallel Flash |
5V |
SectorErase |
- |
xx39VF |
Parallel Flash |
2.7/3.3V |
SectorErase |
- |
xx39LV |
Parallel Flash |
3.0V |
SectorErase |
- |
AT49F |
Parallel Flash |
5V |
BootBlock |
производитель Atmel |
xx25F |
Serial Flash |
5V |
BulkErase |
- |
xx25LV |
Serial Flash |
2.7/3.3V |
BulkErase |
- |
xx25P |
Serial Flash |
1.8/2.7V |
BulkErase |
- |
AT45DB |
Serial Flash |
2.7/3.3/3.6V |
BulkErase |
Atmel, конструктив DataFlash Card |
|
|
Для использования в качестве видеобиос подходит как Flash с последовательным доступом,
так и Flash со стандартной для BIOS материнских плат параллельной архитектурой (8-разрядная шина). Архитектура
определяет организацию микросхемы:
• BootBlock - Создавались для использования в материнских платах. Имеют один или несколько
основных блоков достаточно большого размера (используются под основной код BIOS), и 3 небольших (8-16Kb) блока в конце адресного пространства. Два
первых использутся под ESCD и DMI, последний (как правило, с программной или аппаратной защитой) - под BootBlock.
Прошивальщиком FlashRom/AtiFlash стираются и программируются только полностью, как BulkErase.
• SectorErase - В отличие от BootBlock, их можно програмировать и стирать не большими блоками,
а посекторно. Размер сектора, как правило, 64-128 байт.
• BulkErase - Стираются и программируются только целиком.
Размер микросхем: |
|
Маркировка |
Размер, килобит |
256 |
256 |
05,512 |
512 |
01,010,011,001 |
1024 |
020,002 |
2048 |
040,004 |
4096 |
|
|
На сегодня есть микросхемы и большего объема, но для наших целей они не используются.
Возможные варианты разводок: |
|
|
|
Микросхема с последовательным доступом, корпус TSOP-8. Как правило, это Flash. Перепаивать нет необходимости. |
|
|
|
Микросхема с параллельным доступом, корпус PLCC-32. На Radeon VE это часто EEPROM. Снять ее можно без особых проблем,
но припаять такую микросхему человеку без опыта да еще обычным паяльником очень тяжело. К счастью, обычно есть еще разводка под DIP-32 или TSOP-8. |
|
|
|
Микросхема с параллельным доступом, корпус DIP-28/32. В DIP28 (28 ножек) - EEPROM. Flash в этом корпусе нет.
При DIP-32 (32 ножки) возможны варианты... Смотрите маркировку.
Если у вас Flash, проблем с прошивкой возникнуть не должно. Если же из платы торчит EEPROM его надо... правильно, заменить
на Flash. Сначала надо выбрать микросхему. Вполне возможно, подойдет микросхема из старой материнской платы, например, очень распространенная
Winbond 29EE011.
Прежде всего, под микросхему должна быть разводка на плате (Помните, PLCC-32 микросхемы одним паяльником припаивать ОЧЕНЬ сложно. Лучше найти
микросхему в DIP-32, или, если нет разводки, в TSOP-8), и она должна быть совместима по питанию с установленной на плате EEPROM, т. е., поддерживать
тоже напряжение для чтения/записи. Это напряжение можно посмотреть в документации на EEPROM, или же просто измерить на микросхеме (Vdd):
|
|
|
|
Программа-прошивальщик Atiflash/Flashrom поддерживает следующие типы микросхем: |
|
Производитель |
Маркировка |
ATMEL |
AT29C256
AT29LV256
AT29C512
AT29LV512
AT29C010A
AT29LV010A
AT29C020
AT29LV020
AT29C040A
AT29LV040A
AT49LV010
AT49F001N
AT49F511
AT49F001T
AT49BV512
AT49F512
AT25F1024
AT45DB011 |
AMD |
AM29F010AT
AM29F002B
AM29F002B |
SST |
29EE512
29LE512
29EE010
29LE010
SST39SF512
SST39SF010
SST39VF512
SST39VF010
M25P05
M25P10 |
MXIC |
MX29F512
MX29F001
MX29F001 |
MOSEL VITELIC |
V29LC51001
V29C51001T
V29C51001T
V29C51000T
V29C51000T
V29LC51000 |
WINBOND |
W29EE011
W29EE512 |
AMIC |
A290011 |
PMC |
Pm39LV010R |
NEXFLASH / ISSI |
NX25F011B |
|
|
Что делать, если вы не нашли здесь вашу микросхему, или ваша микросхема неверно идентифицируется прошивальщиком?
Надо посмотреть DeviceID/VendorID микросхемы командой flashrom -i и добавить ее в список. Главное, чтобы производитель был известен
программе. Делается это так: открываете файл atiflash.cfg или flashrom.rom (в зависимости от прошивальщика), и видите следующую запись
(для примера взят Winbond):
; WINBOND
ROM C1DA W29EE011 0x20000 128
ROM C8DA W29EE512 0x10000 128
Winbond - все понятно, это название производителя. Далее идет описание микросхем вида:
• ROM - указатель на начало идентификатора.
• C1DA - DeviceID, VendorID - уникальные идентификаторы микросхемы, по 2 байта каждый
(есть в документации на микросхему, DA=Winbond). Для микросхем с последовательным доступом - 0.
• W29EE011 - маркировка микросхемы.
• 0x20000 - размер микросхемы в килобайтах (шестнадцатеричный формат).
• 128 - размер сектора микросхемы (есть в документации на микросхему). Для BootBlock и целиком стираемых - 0.
Даже если вы не нашли производителя микросхемы в списке, попробуйте выяснить, не совместима ли его система
команд с какой-либо из вышеперечисленных (например, есть достаточно много клонов AMD с аналогичным набором команд). Если совместима,
опишите микросхему в соответствующем разделе. |
|
Замена микросхемы |
|
Итак, микросхема выбрана. Прежде всего, надо снять с платы старую микросхему. Микросхемы в корпусе DIP,
как правило, стоят в "кроватках", так что снять их - не проблема. С микросхемой же в PLCC-32 придется повозиться - ее необходимо
выпаять, аккуратно поднимая лезвием каждую ногу, что довольно муторно. Если не жалко, можно отрезать сверху корпус от ног микросхемы,
а затем выпаять ее бренные останки в виде ног ;) - так быстрее, и меньше риск повредить контактные площадки на плате. Но от микросхемы,
естественно, остается одно воспоминание. ВНИМАНИЕ: через контактные площадки для PLCC-32 микросхемы могут проходить дорожки, нужные и
для DIP-32. Если вы повредите металлизацию на контактной площадке, необходимо будет восстановить дорожку:
Вам будет проще, - вы уже предупреждены :) В принципе, использование навесных проводов возможно, но нежелательно. Частота все же достаточно большая - порядка
нескольких мегагерц.
В результате работы паяльником у нас есть девственно чистая плата с пятнами канифоли (шутка ;) Теперь необходимо
поставить Flash. Но прежде чем ставить микросхему, надо удостовериться, что она будет нормально работать. Прежде всего проверьте разводку:
микросхем с нестандартной разводкой мало, но перестраховаться не помешает. На рисунке, как можно заметить, разводка под PLCC-32 для стандартных
микросхем не подойдет - смещены линии даннных:
Микросхемы 74HC374D в корпусах TSOP-20 - триггеры, использующиеся как защелки сигналов A0..A15. Также вы видите разводку
под микросхему в 14-контактном корпусе. Вот тут-то и начинается самое интересное - там должна стоять микросхема 74HC74D, которая "защелкивает" A16 и WE#.
Для 64Kb EEPROM она не нужна, и поэтому ее часто не ставят на плату, но если вы хотите ставить мегабитную микросхему или прошивать Flash прямо на видеокарте,
эту 74HC74D необходимо впаять. Ее можно снять со старой материнской платы, или же купить в магазине типа Чип&Дип - стоит она порядка 10 рублей. Не забудьте
убрать резистор, подтягивающий WE# к Vcc. Если вы все же не нашли ее, а микросхема у вас мегабитная, подтяните A16 к земле через резистор на 10K, а резистор,
подтягивающий WE# к Vcc не трогайте. Оставшейся емкости вам хватит, и читаться все будет корректно. Если же меньше двух мегабит микросхем у вас не нашлось,
обязательно подтяните к земле A17 - управление им почти никогда не распаивают, а на рисунке, как можно заметить, на него для совместимости с EEPROM в DIP-28
вообще развели Vcc.
ВНИМАНИЕ: для низковольтной флеш-памяти могут использоваться аналогичные 3.3V микросхемы 74LCX374D и 74LCX74D. Внимательно смотрите, что
стоит на плате. Также возможно использование микросхем в корпусах TSSOP:
Следующий этап - установка новой микросхемы. Паять DIP-32 "намертво" радости мало, так что лучше всего поставить панельку. Если раньше
в плате стояла микросхема в DIP-32 (или в DIP-28, но производитель платы не пожадничал на 4 ноги разъема), все прекрасно - панелька уже есть. Для платы с
"родной" панелькой DIP-28 придется впаять 4х ногий "обрезок". Если же у вас на плате стояло что-то в PLCC-32, вам придется впаивать всю 32х контактную панельку:
В микросхему желательно прошить старый образ BIOS. Он читается из EEPROM с соответствующими ключами прошивальщика так, чтобы его размер
совпал с размером новой микросхемы. Можно просто дописать в конец существующего образа "FF"ов до нужного размера. Затем получившийся файл прошивается на
программаторе (что совсем хорошо и правильно) или на материнской плате "горячей заменой" awdflash'ем с недокументированным ключом -f, дабы он не ругался на
содержимое (что уже несколько рисково и требует определенного опыта и практики).
Итак, все готово и вы дрожащими руками вставляете флешку :)
вставляете видеокарту в AGP и нажимаете большую красную кнопку. Если все работает - прекрасно. Если же раздается веселый писк PC-спикера
и экран остается подозрительно черным, не паникуйте. Во-первых, проверьте все контакты - линии A0..A15 должны звонится на Q-выходы 74HC374D, WE# и A16 - на Q-выходы
74HC74D. R# и S#-входы 74HC74D - на +5V, а CP всех микросхем - между собой. Для локализации неисправностей лучше заранее подготовить дискету с прошивальщиком,
в autoexec.bat которой прописана команда чтения образа BIOS (flashrom -s 0 bios.bin). Получившийся файл позволит точно локализовать проблему - если блоки данных
перепутаны местами, проблема с линиями адреса (с какими конкретно - вычисляется достаточно элементарно). Если же определенный бит в каждом байте всегда равен единице,
проблема с линиями данных (опять же, достаточно элементарно вычисляется с каким именно). Если же вообще ничего не читается, проверяйте Vcc, землю, WE# и OE#. Убедитесь,
есть ли контакт ноги "кроватки" с отходящим от нее проводником - возможно, вы разломали контактную площадку. Не исключено также, что проводники подходят к отверстию с
обеих сторон платы. Проследите, чтобы отверстие было полностью залито припоем.
Удачи!
|
|
|
|
|
|
|
|
|
На главную страницу |
|