Теоретические статьи

Подписаться на эту рубрику по RSS


Эта маленькая заметка появилась по воле случая, произошедшего вчера утром. Как всегда, нечего было cyclone’у ни свет ни заря делать, и решил он завольтмодить что-нибудь, что первым на глаза попалось. Этим чем-то суждено было стать видеокарте 7600GS производства EVGA.
Но, как Вы знаете, закон подлости не только не спит, но даже и не дремлет. Не то, чтобы по утрам, а вообще. Посему, только достав паяльник, автор этих строк его непонятно как умудрился впервые в жизни «уронить» - в руках остался только хвост, тоесть сетевой шнур с вилкой. Сами понимаете, качество наших вещей, в т.ч. героя данных строк, иногда оставляет желать лучшего. О вольтмоде решено было не забывать, ведь в настоящего оверклокера всегда должно быть как минимум два паяльника:). Но, тем не менее, потеря любимого друга отечественного производства тяжело ударила по непроснувшейся психике, посему в срочном порядке было решено поместить свежий «трупик» в реанимацию и спасти ему жизнь. Как это происходило и чем завершилось – читайте дальше.


Но теперь - маленькое вступление по делу. Думаю, большинство из Вас знает, что такое паяльник, и хотя бы раз держало его в руках. Однако тех, кто знаком со строением такого устройства, наверное, намного меньше.
Паяльник – незаменимый инструмент настоящего Оверклокера, ведь разогнать до предела видеокарту, улучшить разгонный потенциал материнской платы невозможно без модификации их систем питания, а карандашом дело в подавляющем большинстве случаев не обойдётся.
Что касается поломки паяльников, то ситуации, аналогичные описанной выше – не редкость. Иногда не очень качественный, но и в то же время недорогой сабж разваливается просто на ходу во время пайки. Конечно, если случилась неприятная ситуация, кто-то предпочтёт купить новый «главный инструмент вольтмоддера». Но есть определенная категория людей, для которых сделать что-то своими руками – хобби, а есть и те, для кого сума, эквивалентная 3-м долларам – расходы, не предусмотренные партией на текущую пятилетку. Именно таким в первую очередь и посвящается данное руководство возвращения к жизни паяльника, у которого случайно или не совсем оборвался сетевой шнур или по иной причине пропал контакт провода с нагревательным элементом. По ходу все желающие также смогут ознакомиться с внутренним строением казалось бы простого, но в то же время столь интересного устройства.

Для проведения операции «реанимация» нам потребуется несколько ингредиентов:
  • паяльник с оторванным сетевым шнуром – минимум 1шт, максимум не ограничен;
  • мультиметр китайский или тестер советский – без каких-либо предпочтений;
  • прямые руки – желательно 2шт;
  • голова на плечах – 1шт;
  • кривые извилины – количество подбирается индивидуально.

Disclaimer

Прежде, чем приступить, вынужден Вам напомнить: всё, что Вы делаете – Вы делаете на свой страх и риск. Ни автор этих строк, ни администрация сайта не несут ответственности в случае выхода из строя любых компонентов, связанных с модификацией, или получения травм различной степени тем, кто решился на повторение описанных на данной странице рекомендаций.
Помните: паяльник работает от сети переменного тока 220В, и любая, даже самая маленькая оплошность может привести к необратимым последствиям!
Строго соблюдайте правила техники безопасности при повторении описанных модификаций и вообще с работой над устройствами, которые питаются от сети переменного тока!

Как всегда, отпугнули нерешительных, предостерегли невнимательных – можно с чистой совестью браться за дело!

Изучаем и ремонтируем паяльник

Напомню, у нас в руках – паяльник с оторванным сетевым шнуром. Задачи на ближайшие полчаса:

а) ознакомиться с внутренним строением героя обзора;
б) по возможности вернуть его к жизни.

Первое, что делаем – снимаем ручку из жаростойкой пластмассы. В руках остается – назовем его так – «кожух», в котором собственно и разместились все внутренности пациента.


Откручиваем единственный болтик – два-три оборота позволяют фиксировать или отпускать стержень, которым собственно и проводится пайка, а полное отделение его от резьбы позволяет извлечь «патрон» для стержня.


С другой стороны «кожуха» отгибаем два усика и аккуратно достаем вначале две тонкие трубки длиной около 4-х см, металлического цвета, а за ними – собственно нагревательный элемент – такого же типажа трубку большего диаметра и длины, в которой разместилась спираль из металла с высоким удельным сопротивлением (скорее всего нихром).




Как видим, контакты нашей спирали остались неповреждёнными – отличная новость. Чтобы убедиться в целостности нагревательного элемента, можно замерить сопротивление между контактами. Для паяльника мощностью 25Вт оно сопротивляет ориентировочно 2кОм +/-100Ом.

Вот всё, из чего состоит любой стандартный паяльник:


Следующий шаг – подключение контактов спирали к сетевому шнуру. Не забываем, что на шнур предварительно нужно «надеть» ручку паяльника и белую термоусадочную трубку, а на каждый провод – маленькие трубки, служащие для изоляции одного контакта от другого


(хотя они и выглядят, как металлические, на самом деле ток не проводят, легко крошатся, облазят. Кроме того, не боятся больших температур).


Можно схалтурить – связать провода кое-как, но в таком случае не исключено, что пациент скоро заболеет снова, так что лучше перестараемся.


Получается? Дальше всё просо – на оголенный провод надеваем наши изоляционные трубочки, подсовываем поближе белую поливинилхлоридную термоусадочную трубку, и помещаем всё это дело в «кожух» нагревательного элемента.


Поскольку держатель стержня и сам стержень изрядно подкоптились за время работы, советую их слегка почистить мелкой наждачной, а «патрон» дополнительно легенько сплюснуть – для достижения лучшего контакта и теплопередачи от одного к другому.


Помещаем патрон со стержнем в «кожух» с другой стороны, и закрепляем винтиком.


На всякий случай снова проверяем сопротивление, на этот раз – между контактами сетевой вилки. Изменяться оно не было должно, поэтому если увеличилось – значит, где-то у Вас плохой контакт. Если же сопротивление близко к нулю – Вы умудрились допустить где-то в этой простой цепи короткое замыкание. Ни первый вариант, ни второй, понятное дело, не годятся для любых реальных испытаний и, тем более, работы. Снова разбираем паяльник, исправляем ошибки, собираем в обратной последовательности.
Теперь всё нормально? Хорошо, тогда можно загнуть усики «кожуха» нагревательного элемента…


…и надеть на него пластмассовую ручку.
На всякий случай ещё проверим сопротивление между контактами сетевой вилки. Теперь паяльник уверенной рукой можно включать в сеть. Особо пугливым можно спрятаться за диваном, а включать паяльник через сетевой удлинитель или вообще рубильник в коридоре:).
Всё _должно_ заработать.
Лично у меня получилось. На всё это дело было затрачено около полчаса времени. На весь день получил заряд энергии народного умельца – можно двигаться к новым вершинам!


А собственно дорогой моему сердцу паяльник не только вернулся к жизни, но даже стал быстрей нагреваться и лучше паять – благодаря уменьшению теплового сопротивления системы «нагревательный элемент – патрон – стержень»!

Надеюсь, данная заметка кому-либо пригодится на практике, а тем временем пусть у Вас никогда ничего не ломается и не горит!
Всегда полный бредовых идей,
© cyclone

1. Прошивальщики.

В качестве вступления напоминаю, что при использовании программы RaBit 1.6 и выше никаких ручных манипуляций по изменению Device ID, объема локальной видеопамяти, VIVO, частоты чипа/памяти и частично SVID SSID проводить не потребуется (это можно смело пропускать :)). И ещё хочу напомнить, что данная статья не является подробным руководством по перепрошивке/включению дополнительных конвейеров, в ней рассматриваются только основные моменты.

1.1 Flashrom 2.40
Flashrom 2.40 непригоден для получения 16 конвейеров на картах X800 Pro VIVO & X800XT. Он сохраняет значения по адресу 0х7А из биоса в карте, сбрасывает в прошиваемом и возвращает прежние. На это указывает строка Preserve R42x ROM settings. Для работы с биосами, модифицированными в hex-редакторах, он подходит как нельзя лучше, т.к. корректировки CRC (контрольных сумм) не требует (вернее, сам принудительно их пересчитывает), поэтому карта не инициализируется как урезанная по памяти и в даун не отправляется. После выхода RaBit 1.6 (корректирует CRC) Flashrom 2.40 потерял, пожалуй, единственное своё преимущество.

1.2 Flashrom16
Flashrom16 может служить универсальным средством, т.к. справляется со всеми задачами. Требует корректировки CRC. Для получения 16 конвейеров подходит как нельзя лучше, т.к. обеспечивает минимум телодвижений. В прошиваемом биосе необходим ASIC ID 4А50 (используем RaBit 1.6).

1.3 GVF12
GVF11 и GVF12 - наименее удобный выбор. Работают только с биосами от Giga-byte. Если попытаемся прошить другой биос, получим сообщение: The file is not for Gigabyte VGA BIOS. Требует корректировки CRC. Адаптирование других биосов для работы с данным прошивальщиком возможно (см. п. 6 "Немного о заблуждениях и удобствах").

2. Изменение Device ID, SVID, SSID.

В установке Device ID (далее DID) принимают участие младшие полубайты следующих байтов по адресам 0х74, 0х7В. Они, и только они, заставляют ASIC проинициализироваться соответствующим образом (в том числе и для получения 16 конвейерной видеокарты). ASIC ID и BIOS ID могут различаться, в дополнительных полях Device ID (0х1А0 - 0х200) вообще могут быть нули, что не играет никакой роли ни для самого Device ID, ни для установки драйверов. Таблица для ручной установки Device ID приводится:


Соответствие DID видеокартам:
RADEON X800 Series = 4A49, 4A4A, 4A4B.
4A49 наблюдается у X800 Pro.
X800ХТ претендуют на 4A4B.
RADEON X800 XT Platinum Edition = 4A50.
ATI FireGL X3-256 = 4A4D.

Для получения всех DID достаточно всего двух значений второго полубайта по адресу 0х74 - 0 и 1. DID из ряда PCI-E получить нельзя, прошивать для этого биосы от PCI-E на AGP КАТЕГОРИЧЕСКИ не рекомендуется (будьте внимательны!). Это приведёт к ГИБЕЛИ вашей карты.

SVID и SSID расположены в стандартных местах (они были рассмотрены в статье BIOS для видеокарт ATI R3x0. Часть 1. Ознакомительная) Корректно правятся в RaBit 1.7.

3. Изменение количества конвейеров.

Для включения/отключения доп. конвейеров самым удобным выбором может стать Flashrom16. DID = 4A50 включит все 16 конвейеров (карта будет определяться как RADEON X800 XT Platinum Edition), DID = 4A49 включит 12 конвейеров. Можно использовать любой биос от х800, предварительно скорректировав DID нужным вам образом. Естественно, частоты чипа/памяти также подлежат редактированию по вашему усмотрению, не у всех карта корректно заработает на частотах X800 XT Platinum Edition.

4. Изменение объема локальной видеопамяти и количества активных каналов памяти.

Количество активных каналов памяти можно найти по регистру MC_CNTL в RaBit. Непосредственно за это отвечает младший (второй) полубайт в значении по умолчанию равном 62 (соотв. 256бит) данного регистра (первый полубайт управляет контроллером памяти - отвечает за количество строк и столбцов).

MC_CNTL (0x00000060) - 64 бит
MC_CNTL (0x00000061) - 128 бит
MC_CNTL (0x00000062) - 256 бит
MC_CNTL (0x00000063) - reserved
... далее последовательность в 4 бита

MC_CNTL (0x00000002) - 2**10 rows, 256 columns
MC_CNTL (0x00000012) - 2**11 rows, 256 columns
MC_CNTL (0x00000022) - 2**12 rows, 256 columns
MC_CNTL (0x00000032) - 2**13 rows, 256 columns
MC_CNTL (0x00000042) - 2**10 rows, 512 columns
MC_CNTL (0x00000052) - 2**11 rows, 512 columns
MC_CNTL (0x00000062) - 2**12 rows, 512 columns
MC_CNTL (0x00000072) - 2**13 rows, 512 columns
... далее последовательность в 4 бита

Объем локальной видеопамяти можно найти по регистру CONFIG_MEMSIZE. За это отвечают два байта данного регистра. В качестве примеров приводится регистр целиком.

CONFIG_MEMSIZE (0x00100000) - 1 МБ
CONFIG_MEMSIZE (0x00200000) - 2 МБ
.....
CONFIG_MEMSIZE (0x00F00000) - 15 МБ
CONFIG_MEMSIZE (0x01000000) - 16 МБ
CONFIG_MEMSIZE (0x01100000) - 17 МБ
....
CONFIG_MEMSIZE (0x01F00000) - 31 МБ
CONFIG_MEMSIZE (0x02000000) - 32 МБ
CONFIG_MEMSIZE (0x02100000) - 33 МБ
....
CONFIG_MEMSIZE (0x04000000) - 64 МБ
....
CONFIG_MEMSIZE (0x08000000) - 128 МБ
....
CONFIG_MEMSIZE (0x10000000) - 256 МБ

5. Изменение частоты чипа/памяти.

Частота чипа/памяти находится по строке RaBit CLOCK table offs. Допустим, она равна 0xB5АE. Отсчитываем в hex редакторе вниз 7 байт. Байты 8 и 9 будут устанавливать частоты чипа - 0хВ5В6-0хВ5В7. Пример: 00010102010209 8CВ9 (8CВ9 соотв. частоте hw 472.5(475.00)). Установка частоты видеопамяти находится ниже на 2 байта (00 00). 3-й и 4-й байты 0хВ5ВА-0хВ5ВВ искомое значение - 0000 C8АF (C8АF соотв. частоте hw 445.5 (450.00)).

Необходимые частоты чипа/памяти рассчитываются с помощью виндового калькулятора :). Сперва переводим его в инженерный вид. Далее, нужную частоту, (к примеру 600) приводим к следующему виду: 600,00 (без запятой). Вводим в калькуляторе в десятичной системе и переводим в шестнадцатеричную, получаем значение EA60. Далее по строке RaBit CLOCK table offs ищем данный регистр и вписываем полученное значение. В hex редакторе это примет вид 010102010209 60EA.Для примера:

 

6. Немного о заблуждениях и удобствах.

Заблуждение связано с прошивальщиками GVF11 и GVF12, прошивающими только биосы от Giga-byte. Биосы от данного производителя, как известно, имеют размер порядка 64кб (вместо 54-56 кб). Почти в самом конце файла имеется техническая область в 13 строк, начинающаяся с сигнатуры $GV (естественно, flashrom эту зону не знает). Именно по ней GVF11 и GVF12 определяют биосы от Giga-byte и получают указатель на адрес 0х47 (символ G), который, в свою очередь, является указателем на зону общего массива ссылок HEADER (KERNELL). Так что утверждение, что именно в этой технической зоне находится управление конвейерами и что только такие биосы правильные, не состоятельно. Кстати, данную область можно прикрутить куда угодно (не в тело биоса), даже сразу за областью действительных данных. Тогда размер биоса будет порядка 56кб :). Так же её можно добавить в любой другой биос от х800ХТ или х800pro (корректировать CRC необходимо), и прошивальщик примет этот биос за свой. Для уменьшения телодвижений следует использовать Flashrom16. Для инициализации 16 конвейеров ему необходим ASIC ID 4А50.

7. Мелочи (как убрать secondary device).

За определение secondary device в биосах карт с чипом R423 стал отвечать младший полубайт по адресу 0х75. Значения, которые приходилось встречать: 0С, 0Е, 08. Чтобы его отключить, достаточно это значение обнулить.

8. Модификации BIOS для Radeon X800 PCI Express.

Изменение SVID, SSID, количество активных каналов памяти, частота чипа/памяти и т.д. аналогично и рассмотрено выше (RaBit 1.6 с этими биосами так же работает). Все рассмотренные прошивальщики могут работать с биосами под PCI-E (т.е. их заливать). Попытки изменения количества конвейеров успеха иметь не будут.

Установка DID для PCI-E и AGP различна. Это связано с аппаратной блокировкой. Таблица для ручной установки Device ID приводится:


Соответствие DID видеокартам:

RADEON X800 SE (R423) = 554B
RADEON X800 Series (R430) = 554F, 554D
RADEON X800 PRO (R423) = 5549
RADEON X800 XT (R423) = 5D57
RADEON X800 XT Platinum Edition (R423) = 554A
RADEON X850 XT Platinum Edition (R480) = 5D4D
RADEON X850 Series (R480) = 5D4F, 5D52
ATI FireGL V5100 (R423GL) = 5551
ATI FireGL V7100 (R423GL) = 5550

Для получения всех DID достаточно всего двух значений второго полубайта по адресу 0х74 - 0 и 1. AGP биосы встают на PCI-E, но, чтобы попасть в нужный DID, необходимо ориентироваться на таблицу образования DID для PCI-E.

А в качестве заключения спешу заметить, что любая критика и любые добавления к вышеизложенному приветствуются. Пишите.

© dvsh

 

Отчего и почему?


Большинство пользователей беззаботно работают на компьютере и не задумываются о том, что в какой-то момент компьютер может выключиться и больше не включиться вовсе. Да и достаточно часто возникает проблема – только что собранный или обновленный компьютер не включается. А еще хуже, если компьютер внезапно перестает работать. В таком случае главное – правильно идентифицировать поломку. Ведь может и ремонт не понадобится.

Для начала стоит разобраться с причинами, которые могут вызвать такое явление. Как известно и пыль и неблагоприятные климатические условия ухудшают состояние компонентов ПК. Соответственно, выход железа из строя может быть вызван окислением контактов, попаданием пыли (и следственно, статического электричества) на микросхемы и разъемы, их перегрев. Перегрев также может быть вызван и плохим охлаждением.

Также все эти ужасы также могут стать следствием скачка напряжения, нестабильностью блока питания, а также неправильного заземления. Первое, что здесь можно порекомендовать – использовать сетевые фильтры, UPS и заземление компьютера. Но помните – лучше вообще не заземлять компьютер, чем заземлять его неправильно. Во-первых, заземлять корпус ПК и модем с телефонной линией надо отдельно. Не стоит заземлять корпус на отопительную батарею, поскольку на тот же стояк ваши соседи могут заземлять, например, холодильник, стиральную машину или перфоратор. В таком случае, эта «земля» уже станет фазой с разностью потенциалов. Нежелательно заземлять несколько устройств в одну «землю» одновременно. Кстати говоря, поэтому не рекомендуется бытовую технику подключать в один сетевой фильтр с компьютером, а вот монитор, принтер и системный блок лучше запитать от одного сетевого фильтра.

К неплохому фейерверку из микросхем может привести и закорачивание какого-либо провода или попаданием питания на земляной контакт. Поэтому всегда стоит следить за качеством подключения кабелей и их состоянием.

Типичные проблемы


Ну а если уж беда случилась, то придется ее диагностировать. Итак, начнем. Для начала приведем полезную статистику, чтобы примерно знать, где может быть собака зарыта.

Если компьютер в состоянии клинической смерти, то, прежде всего, надо сделать вскрытие и постараться найти характерный запах гари и выяснить, откуда он идет. Если его нет, то стоит проверить надежность подключения питания. Если проверка не помогла, то стоит включить ПК и проверить, крутятся ли вентиляторы блока питания (БП), корпуса и кулера процессора (заодно проверьте крепление кулера). Если не крутятся, и винчестер не издает характерного звука раскручивания шпинделя, то вышел из строя блок питания. Наличие напряжения на его выходе можно проверить тестером померив величину напряжения на контактах системной платы в том месте, где жгут проводов питания соединен с БП. Стоит подключить новый БП и проверить целостность остальных компонентов. Для начала их необходимо визуально осмотреть на предмет наличия горелых элементов.

Несмотря на то, что рабочий монитор ломается достаточно редко, стоит проверить, подаются ли на него сигналы с видеоадаптера. Для этого осциллографом на контактах 10 и 13 (земля и синхронизация соответственно) 15-контактного разъема D-Sub видеоадаптера, вставленного в материнскую плату, нужно проверить наличие рабочих сигналов.

Чтобы облегчить задачу поиска неисправного компонента, приведу наиболее часто встречающиеся симптомы поломок различного оборудования. Когда процессор выходит из строя, то чаще всего на его ножках видны следы гари.

В материнских платах наиболее часто встречающаяся поломка – выход из строя дискретных элементов, особенно конденсаторов в VRM (Voltage Regulation Module, представляет собой LC-фильтр). Да и сам этот блок может выгореть. Нередко электролитические конденсаторы попросту вздуваются, что требует их замены. Также часто встречающийся момент – «выбивание» транзисторов в районе северного моста, модулей памяти и VRM. Их можно определить по подгоревшим ножкам и потемнениям в этой области. Встречаются и выходы из строя тактовых генераторов и линий задержки, а также выгорание портов.

Также иногда встречающееся явление – нарушение контакта на плате. Это может быть вызвано помещением платы расширения в слот не до конца, прогибом платы, закорачиванием контактов на обратной стороне платы на корпус, нехваткой длины проводов, идущих от БП к материнской плате.

В винчестерах самое уязвимое место – перегревшийся контроллер и IDE-разъем. Сгоревший контроллер можно определить по потемнениям рядом с местами его крепления. Перегрев микросхемы приводит и к ухудшению контакта между контроллером HDD и гермоблоком. Механические проблемы двигателя винчестера можно определить по сильной вибрации корпуса HDD при вращении дисков. Массовые неполадки были замечены у дисков IBM серии DTLA и Ericsson (70GXP и 60GXP), Maxtor 541DX, Quantum Fireball 3, Fujitsu серии MPG.

В CD-приводах чаще всего выходит из строя оптико-механическая часть. В частности механизм позиционирования лазера и определения диска. Как правило, такая поломка вызывается неисправностью МСУ (микропроцессор системного управления), который вырабатывает управляющие сигналы, а также драйвера двигателя лазерного считывателя, который отвечает за сигнал возбуждения. Для их проверки необходимо промерить выходные сигналы на соответствующих контактах МСУ. Характерным симптомом неисправности МСУ является отсутствие перемещения лазерного считывателя при первоначальном включении питания. У флоппи-дисководов чаще всего встречаются механические поломки связанные с подъемником и прижимом дискеты.

Программно-аппаратная диагностика


Если все вышеперечисленное не помогло определить поломку, то придется перейти к программно-аппаратной диагностике. А для того, чтобы она прошла успешно необходимо точно знать, каков порядок включения устройств ПК.

Итак, рассмотрим порядок загрузки компьютера.
1. После включения питания БП выполняет самотестирование. Если все выходные напряжения соответствуют требуемым, БП выдает на материнскую плату сигнал Power_Good (P_G) на контакт 8 20-контактного разъема питания ATX. Между включением ПК и подачей сигнала проходит около 0,1-0,5 с.
2. Микросхема таймера получает сигнал P_G и прекращает генерировать подаваемый на микропроцессор сигнал начальной установки Reset. Если процессор не исправен, то система зависает.
3. Если CPU жив, то он начинает выполнять код, записанный в ROM BIOS по адресу FFFF0h (адрес программы перезагрузки системы). По этому адресу находится команда безусловного перехода JMP к адресу начала программы загрузки системы через конкретный ROM BIOS (обычно это адрес F0000h).
4. Начинается выполнение конкретного кода ROM BIOS. BIOS начинает проверку компонентов системы на работоспособность (POST – Power On Self Test). Обнаружив ошибку, система подаст звуковой сигнал, так как видеоадаптер пока еще не инициализирован. Проверяется и инициализируется чипсет, DMA и происходит тест определения объема памяти. Если модули памяти вставлены не до конца или некоторые банки памяти повреждены, то или система зависает или звучат длинные повторяющие сигналы из системного динамика.
5. Происходит разархивирование образа BIOS в оперативную память для более быстрого доступа к коду BIOS.
6. Инициализируется контроллер клавиатуры.
7. BIOS сканирует адреса памяти видеоадаптера, начиная с С0000h и заканчивая C7800h. Если BIOS видеоадаптера найден, то проверяется контрольная сумма (CRC) его кода. Если CRC совпадают, то управление передается Video BIOS, который инициализирует видеоадаптер и выводит на экран информацию о версии Video BIOS. Если контрольная сумма не совпадает, то выводится сообщение «C000 ROM Error». Если Video BIOS не найден, то используется драйвер, записанный в BIOS ROM, который инициализирует видеокарту.
8. ROM BIOS сканирует пространство памяти начиная с C8000h в поисках BIOS других устройств, таких как сетевые карты и SCSI-адаптеры, и проверяется их контрольная сумма.
9. BIOS проверяет значение слова по адресу 0472h, чтобы определить, какая загрузка должна быть выполнена – «горячая» или «холодная». Если по этому адресу записано слово 1234h, то процедура POST не выполняется, происходит «горячая» загрузка.
10. В случае холодной загрузки выполняется POST. Инициализируется процессор, выводится информация о его марке, модели и т.д. Выдается один короткий сигнал.
11. Тестируется RTC (Real Time Clock).
12. Определение частоты CPU, проверка типа видеоадаптера (в том числе встроенного).
13. Тестирование стандартной и расширенной памяти.
14. Присвоение ресурсов всем ISA-устройствам.
15. Инициализация IDE-контроллера. Если используется 40-контактный шлейф для подключения ATA/100 HDD, то появится соответствующее сообщение.
16. Инициализация FDC-контроллера.
17. ROM BIOS ищет системную дискету или MBR жесткого диска и читает сектор 1 на дорожке 0 стороны 0, копирует этот сектор по адресу 7С00h. Далее происходит проверка этого сектора: если он оканчивается сигнатурой 55AAh, то MBR просматривает таблицу разделов (Partition Table) и ищет активный раздел, а затем пытается загрузиться с него. Если первый сектор оканчивается любой другой сигнатурой, то вызывается прерывание Int 18h и на экран выводится сообщение «DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER» или «Non-system disk or disk error».

В общем-то все. Что касается последнего пункта, то ошибки указанные в нем говорят о неисправности винчестера (программной или аппаратной). Теперь вам остается только выявить, в какой именно момент перестает работать ваш компьютер. Если это происходит до появления сообщений на мониторе, то неисправность можно определить по звуковым сигналам. Наиболее часто встречающиеся звуковые сигналы приведены в таблице.





Стоит заметить, что звуковые сигналы могут отличаться от приведенных выше из-за различия версий BIOS. Если же и звуковые сигналы не помогли определить неисправность, то остается лишь уповать на аппаратную диагностику. Она производится несколькими средствами.

Аппаратная диагностика


Первое средство весьма банально, но вполне действенно. Работу отдельных блоков можно проверить, дотронувшись до них рукой, чтобы проверить их нагрев. После минутного включения должны греться чипсет, процессор, чипы памяти и блоки видеокарты. Если они кажутся теплыми, то этого достаточно, чтобы сделать вывод хотя бы о том, что на эти элементы подается питание. С большой долей вероятности они должны оказаться рабочими.

Второе средство более научно и требует некоторой инженерной подготовки. Заключается оно в измерении потенциалов на различных элементах. Для этого нужен тестер и осциллограф. Желательно иметь карту разводки материнской платы, поскольку она многослойная, и прохождение сигналов не так очевидно. Начать измерения стоит с силовых элементов входных цепей и стабилизирующих и шунтирующих конденсаторов, проверить наличие +3,3 и +5 В в соответствующих местах материнской платы, работу тактовых генераторов. После этого стоит проверить наличие штатных сигналов на выводах сокета процессора. Далее проверить наличие сигналов в слотах и портах. В последнюю очередь стоит заняться логическими элементами (хотя ремонт их часто оказывается делом неразумным). Для этого вам потребуется знание разводки портов и слотов. Эта информация приведена в таблицах.





Третье и последнее средство диагностики – профессиональные аппаратные средства диагностики. К ним относится использование диагностических карт типа ДП-1 и комплекса PC-3000, созданных компанией «РОСК». Диагностическая плата устанавливается в свободный слот материнской платы, и после включения ПК на ее индикаторе отображается код ошибки в шестнадцатеричном виде. Применение такой платы существенно повышает вероятность локализации неисправности. Использование ДП-1 рассчитано на корректную работу процессора, а CPU выходит из строя крайне редко.

На данный момент в России диагностические карты, тестовые ROM BIOS и другие средства диагностики производятся компанией ACE Laboratory.

При аппаратной диагностике следует иметь ввиду, что в большинстве случаев выходит из строя только одно устройство, и проще всего его выявить, заменив на аналогичное, гарантированно работающее.

Что касается блоков питания и периферийных устройств, то диагностика неисправностей в них – тема отдельного разговора, но по поводу мониторов можно дать ряд советов. Достаточно часто из строя выходит промежуточный строчный трансформатор, включаемый между предоконечным и выходным транзистором строчной развертки. Основной его неисправностью, как правило, бывает короткое замыкание витков. Этот трансформатор – часть высоковольтного блока строчной развертки. Это высокое напряжение подается на ЭЛТ. Поэтому часто отсутствие свечения на экране и отсутствие растра указывают на отсутствие высокого напряжения. Как правило, вертикальная полоса на экране также указывает на отказ блока строчной развертки. Проверить наличие высокого напряжение на ЭЛТ можно проведя рукой по поверхности экрана. Если высокое напряжение подается, то вы должны почувствовать некоторую вибрацию или потрескивания статического электричества.

Программная диагностика


Если же ваш компьютер все же включается, но работает нестабильно, зависает при загрузке, «выпадает» в синий экран, то это чаще всего является следствием переразгона, локального перегрева или «глючностью» памяти, а также ошибками работы HDD (к ним относится и «падение» Windows).

Стабильность их работы можно проверить под DOS, загрузившись c системной дискеты или диска. Для этого следует использовать утилиты CheckIT, PC Doctor, Memtest 86, Stress Linux, Norton Diagnostics, The Troubleshooter. Для профессионального тестирования и восстановления HDD следует использовать HDDUtility и MHDD, но они корректно работают только под MS-DOS 6.22. Первое, что требуется сделать с помощью них – проверить SMART-атрибуты состояния HDD. Также для диагностики, проверки и пометки bad-секторов можно использовать Norton Disk Doctor.

Следует помнить, что полноценную проверку железа можно произвести только под Windows, тестируя стабильность работы в burn-in тестах в течение не менее чем 24 часов. Среди таких тестов можно привести CPU Hi-t Professional Edition, CPU Stability Test, Bionic CPU Keeper, CPU Burn, Hot CPU Tester Pro, HD_Speed, DiskSpeed 32, MemTest.

А вообще, как известно, гораздо легче предупредить событие, чем исправить его последствия, поэтому гораздо легче регулярного (хотя бы раз в несколько недель) следить за параметрами выдаваемых блоком питания напряжений, смотреть SMART-параметры HDD (программы Active SMART, SMARTVision, SMART Disk Monitor), изучать температуру процессора, проверять наличие хорошего охлаждения и отсутствие посторонних звуков. Нелишним было бы и смазывание вентиляторов машинным маслом, как минимум раз в полгода.

Техника безопасности при работе с BIOS



В этом материале мы продолжим изучение внутренней структуры BIOS для видеокарт ATI (напомню ссылку на первую часть статьи: BIOS для ATI R3x0. Часть 1, ознакомительная.). Ниже будут даны описания различных параметров и способов их изменения, поэтому для начала - банальная информация о том, как перешить BIOS, чтобы потом не было мучительно больно.
Вкратце о том, что необходимо сделать перед прошивкой любого BIOS.

С помощью программы rambios необходимо новоиспечённый BIOS проверить на работоспособность. Для этого необходимо загрузиться под DOS и в командной строке набрать следующее: rambios.ехе, файл биоса. Команду можно сделать следующей: r 1.rom. Результатом будет нормально читаемый отчёт, артефакты, или монитор так и не инициализируется. Прошедшие проверку BIOSы рекомендуются к использованию :), но не гарантируют безгрешную работу в винде.
Примечание: для rambios версии 1.5 имеется одно ограничение: Device_ID тестируемого биос должен быть идентичным текущему.

Для проверки таймингов из-под Windows можно использовать ATI Tray Tool (последнюю версию), тайминги доступны на вкладке Overclocking. Несколько большие возможности по выбору таймингов предоставляет RaBit. Тайминги с версии 1.4 можно протестировать в режиме реального времени. Доступны на вкладке MC Timings.

Что необходимо всегда иметь под рукой.

1. Пару загрузочных дискет, на которых должен находиться прошивальщик. Благоразумнее в качестве прошивальщика использовать flashrom2.37. Вместе с ним на дискету идёт flashrom.rom и ваш сохранённый/рабочий BIOS. В файле autoexec.bat прописываем следующее: flashrom.exe -f -p 0 <ваш биос>. Спасительная дискета готова - она позволит перешить BIOS, если на монитор ничего не выводится.

2. PCI-видеокарту. Остаётся заблаговременно в BIOSе материнской платы выставить инициализацию с PCI-видеокарты. Чтобы отшиться, нам потребуется вставить её в свободный PCI-слот, загрузиться в DOS и, используя всё тот же синтаксис flashrom, указать путь к программе и файлу прошивки (надеюсь, они заблаговременно перенесены вами поближе к "корню").

Перешивки winflash-ем я не рассматриваю, так как после нескольких попыток его использования убедился, что программа почему-то не хочет работать стабильно (хотя некоторые используют именно её). Зато я использую весьма удобную её функцию - она позволяет "выдернуть" биос из-под Windows с сохранением его в файл.

Насилие над аппаратной частью


Для изменения и отслеживания всех нижеописанных значений, включая частоты ядра/памяти, наилучшим выбором будет программа RaBit, принадлежащая "перу" Евгения Азарова aka JAZ.
Проект RadEdit обладает куда меньшей функциональностью, к тому же развитие проекта прекращено. Однако, программа может пригодиться для корректировки контрольной суммы, если вы решились править BIOS "вручную" в hex-редакторах.

ASIC (Application Specific Integrated Circuits) - контроллер ввода-вывода и управления. Конфигурируется младшим (вторым) полубайтом по адресу 0х74, являясь как бы дополнительным Device ID. Ориентировочное значение для Device ID в семействе (точнее для младшего полубайта второго байта). Изменение старшего полубайта не повлияло ни на работоспособность видеокарты, ни на изменение ни одного из нижеперечисленных пунктов (по крайней мере, R350/360 прекрасно работают как при значении 0х00, так и 0хF0).

90 - Значения, характерные для 9500/9500Pro/9600/9600Pro/9700/9700Pro/9800Pro/9800SЕ
91 - 9800/9600SЕ (блокирует разгон драйвером)
92 - 9800ХТ/9600ХТ
93 - Значения, характерные для FireGL Z1/X1/X2....
... далее последовательность (4 бита) соответствует вышеизложенной.

В RaBit изменяется удобно и прозрачно для пользователя со сменой Device ID на первой вкладке в совокупности с самим Device ID и количеством конвейеров.

0х75 Значение управляет количеством конвейеров, следует, естественно за ASIC. Конфигурируется младшим (вторым) полубайтом. Для моделей с 8 конвейерами принимает значение 08, для 4-х конвейерных - . Значения, отличные от перечисленных, количество конвейеров не изменяют. Изменение старшего полубайта чревато боком (ПК даже не стартанёт), придется отшиваться с PCI. Если по значению ASIC по адресу 0х74 выставляется младший полубайт второго байта Device ID, то по значению 0х75 младший полубайт первого (1 на Е).
Так же прозрачно изменяем со сменой Device ID и количеством конвейеров на первой вкладке в RaBit.

Device ID (в RaBit, изменяя Device ID на первой вкладке, соответственно меняем значения ASIC и количество конвееров). Часть значений (бит 3) разруливается аппаратно - резисторами на корпусе чипа, три бита посредством битовой маски, которая накладывается на Device ID ( 0x74, из 1:0), остальные "зашиты" в кристалле. Значения идентификатора устройства расположены в биосе в двух местах. Первое место - на строку ниже Description. Перед ним стоят значения Subvendor & Subsystem ID (по два байта на значение). И второе, на 3-4 строки ниже предыдущего значения. Зона начинается с текстового значения: PCIR. Включает значения вендора 02 10 (1002 ATI), Device ID и значения 0х18 - адреса указателя на данную зону.

Наиболее полный список Device ID вы найдете здесь.

Позволяет модифицировать себя в пределах: для R300 диапазон 4х44 - 4х47, для RV350/360 4х50 - 4х54 (5,6 и 7 встречать не приходилось). R350/360 используют значения 4х48-4х4В.

Разрядность шины памяти (количество активных каналов памяти). Задаётся регистром MC_CNTL. Примерное расположение управляющего регистра: 0х1С0 - 0х200 (примечание: в логе RaBit адрес управляющего регистра скрыт). Значение в hex-редакторе может иметь вид 22 00 00 00 (это соответствует 256 бит при 128 Mb локальной видеопамяти на R300/350). Для изменения разрядности требуется модифицировать второй полубайт в значении 22. Значения, которые приходилось встречать:

0 – 64 бит встречается у 128 Mb (9550/9600SЕ/X300SЕ)
1 – 128 бит встречается у 256 Mb (9550/9600XT/X600Pro) и 128Mb у 9600/X300LE
2 – 256 бит встречается у 128 Mb (9500/9700/9800/9800Pro/9800SЕ)
3 – reserved
4 – 64 бит (пока не встречалось)
5 – 128 бит встречается у 128 Mb 9800SЕ
6 – 256 бит (пока не встречалось)
7 – reserved
8 – 64 бит (пока не встречалось)
9 – 128 бит встречается у 128 Mb (9600Pro/9600XT/X600XT)
А – 256 бит встречается только у 256 Mb 350/360
В – reserved
С – 64 бит (пока не встречалось)
D – 128 бит встречается у 128 Mb (9500Pro и 9500 на дизайне от Pro)
E – 256 бит (пока не встречалось)
F – reserved

Дополнительно контролируем по двум местам (см. лог RaBit). По Memory config (пример: 0x2240), первый байт должен соответствовать значению данного регистра (второй байт равен MC_SIZE/2). И, непосредственно, по MC_CNTL (в логе расположен ниже, там же указан адрес). Естественно, все три значения должны совпадать. Если же в вашем новоприобретённом биосе эти значения не совпадают, следовательно это уже остатки от чьей-то трапезы :).

Обьём локальной видеопамяти задаётся регистром MC_SIZE. Длина до двух байт. Следует сразу за MC_CNTL. Принимает значения:

01 - 1 Mb, цвет 8 бит
02 - 2 Mb, цвет 8-16 бит
03 - 3 Mb, цвет 8-32 бит
04 - 4 Mb
05 - 5 Mb
06 - 6 Mb, 1280х1024, 32 бит
07 - 7 Mb
08 - 8 Mb
09 - 9 Mb
10 - 16 Mb
Далее последовательность, я думаю, ясна.
19 - 25 Mb
20 - 32 Mb
40 - 64 Mb
80 - 128 Mb
00 01 - 256 Mb
00 02 - 512 Mb

Дополнительно контролируем по Memory config (пример для 128 Mb: 0x2240), второй байт равен MC_SIZE/2.

Тайминги видеопамяти задаются регистром MC_TIMING_CNTL. Для отслеживания см. лог RaBit. Сам регистр берет начало в строках 0х3А0 - 0х400. У 9800XT начало строк на 10 ниже.

Разберем на примере ASUS A9800XT.

Write Latency (tWL) - 0х4А4. Второй полубайт. Принимает значения: 0-7.5 (0 - F) 16 значений (впереди 00, сзади 30100904).
CAS Latency (tCL) - 0х4А4. Первый полубайт. Принимает значения: reserved - 7 (0 - 7 и 8 - F) 8 значений х2.
"Полный" CAS составляет tCL + tRBS (только для >=R300).

Command Latency (tCMD) - 0х4А4. Первый полубайт. Принимает значения: 0 clock - 1/2clock При tCMD = 0, tCL берется из первых восьми значений при 1/2clock - из вторых (8 - F).

Strobe Latency (tSTB) - следующий за tWL байт 0х4А5. Второй полубайт. Принимает значения: 0 - 1 (= tWL - tWL+1/2clock) 2 значения х8.

RAS-to CAS Read Delay (tRcdRD) - 0х48C. Второй полубайт. Принимает значения: 3 - 10 (0 - 7 и 8 - F) 8 значений х2 (впереди 01, сзади A2291A8801).
RAS-to CAS Write Delay (tRcdWR) - 0х48C. Первый полубайт. Принимает значения: 1 - 8 (0 - 7 и 8 - F) 8 значений х2

Row Precharge Time (tRP) - следующий за RAS-to CAS байт 0х48D. Второй полубайт. Принимает значения: 3 - 10 (0 - 7 и 8 - F) 8 значений х2
RAS Latency (tRAS) - 0х48D. Первый полубайт. Принимает значения: 6 - 21 (8 - F в первом полубайте) 16 значений. Рассчитывается хитро. Четные значения "разруливает" первый полубайт, в образовании нечетных значений принимает участие второй полубайт tRP из 8 - F.

Row activate to Row active command time (tRRD) - рассчитывается из 0х48D, первого полубайта и 0х48E, второго полубайта. Принимает значения: 1 - 8. За четные 2,4,6,8 (8 - В) отвечает 0х48E второго полубайта. Нечетные значения формируются из четных бит 0х48E второго полубайта и 0х48D соответствует первым 8 битам. Значение 3 формируется только из tRAS (22), т.к. 0х48E второго полубайта (9) занят tR2W значением CL+3.

Read to Write Turnaround Time (tR2W) - 0х48E. Второй полубайт. Принимает значения: CL+1/2/3/4 им соответствуют 1,5,9,D (через 4 бита).
Write Recovery Time (tWR) - 0х48E. Первый полубайт. Принимает значения: 1- 8 (0 - 7) 8 значений.

Write to Read Turnaround Time (tW2R) - 0х48F. Второй полубайт. Принимает значения: 0 -7 (8 - F) 8 значений.
Read to Read Turnaround Time (tR2R) - 0х48F. Первый полубайт. Принимает значения: 1 - 4 (0 - 3 и 4 - 7) 4 значения х2

Write to Read Turnaround Time for same Bank (tW2Rsb) - 0х48F. Принимает значения: use tW2R - use tR2R rule. При use tW2R значения соответствуют tW2R, а при use tR2R rule - tR2R.

Shift the pos of RBS signal for READ data (tRBS) - 0х301 0х303 0x30D 0x30F. Второй полубайт. Принимает значения: 1 - 4.5 (8 - F) 8 значений.
Shift the pos of ERST signal for READ data (tERST) - 0х301 0х303 0x30D 0x30F. Первый полубайт. Принимает значения: -2 +1.5 - reset when IDle or refresh (8 - F) 8 значений.

Shift of QSREQ signal (tQSREQ) - следует за tERST: 0х302 0х302 0x30Е 0x310. Второй полубайт. Принимает значения: -2 -always enabled (8 - F) 8 значений.

Memory Refresh Rate (MemRR) - 0х2FВ. Байт. Принимает значения: 00 - FF. 256 (16х16) значений. Стоит перед tRFC.
Refresh Row Cycle Time (tRFC) - 0х2FC. Первый полубайт. Принимает значения: 13 - 28 (0 - F) 16 значений (сзади 00007C01).

Ну, это всё, как говорится, лирика :). А вот с точки зрения повышения производительности успешно модифицируемыми (в сторону уменьшения) оказываются: tRcdRD, tRcdWR, tRAS, tW2R, tRFC. Параметр tRAS всё же лучше не трогать, т.к. при уменьшении его разгон по памяти падает резко. При повышении может увеличиться. Параметр MemRR лучше поставить на максимум. При этом количество FPS и "плавность" в играх возрастает. Про tCL - отдельный разговор. У карт на чипе RV350/360 этот тайминг может устанавливаться в 2.

Естественно, это лишь краткое руководство. С какими таймингами заработает ваша видеокарта, решать вам.

На этом, конечно, количество параметров в биосе, оказывающих влияние на производительность, не исчерпывается. По некоторым данным они насчитывают порядка двух сотен и более.

Post Divider: один из частотных множителей. Задаётся регистром MCLK_CNTL (это для памяти, а для ядра SCLK_CNTL ). Типичное значение 2. У карт 64 бит на чипе RV350 может быть 3. Не приносит особой пользы, скорее является источником головной боли авторов пишущих под ATI, т.к. вносит путаницу в определение частот, отображая реальную частоту памяти как эффективную (удваивая её), а эффективную вдвое выше (при этом карта как ни в чём не бывало работает на номинальных частотах). Бытовало мнение, даже находившее подтверждения, что изменение PD в 1 увеличивает разгонный потенциал. Примерное расположение: 0х560 - 0х610. Изменяются два вторых полубайта. Значения имеют вид 12 12 12 (при 2), 12 11 11 (при 1), ну и 3 при pd 3. Практического значения для увеличения производительности не имеет, для частоты - вопрос спорный.

TV-out. TV zone расположена почти в самом конце файла BIOS. Определяется по значению $TV. Расположено сразу за значением 4Е. Принимает вид 00 - none, 01 - NTSC, 02 - PAL, other - unsupported standards (т.е. второй полубайт).

DVI можно найти по текстовому значению $ATI. Вид искомой последовательности: 11 12 00 23 01 32. Биосы aiw (комбайнов All-In-Wonder) не имеют поддержки DVI, эта строка у них принимает вид: 11 11 00 23 00 00. Как говорится, найди 5 различий.

VIVO. Указатель на зону VIVO возможностей (multimedia table) стоит перед текстовым значением $TVS, которое расположено в строках 0х120 - 0х190, т.е. в начале BIOSа. Имеет вид (для примера) С2 06 (9800XT). Читается 0х6С2. Размер multimedia table, начинающейся в соответствующей строке - 12 байт. Равнодушно относится к переносу за пределы 52 Kb. Главное - правильно прописать новый адрес в зоне указателя.
При модификациях 9800-to-9800XT из BIOSов ХТ с VIVO наблюдается следующий глюк. Монитор по загрузке windows может не инициализироваться секунд 5-6. Лечится просто - обнулением указателя на зону VIVO возможностей. Пишем туда 00 00. Вуаля... :).

При написании статьи использована информация с сайтов Radeon2.ru, Overclockers.ru.

Отдельное спасибо автору программы RaBit, Евгению Азарову aka JAZ, за содействие при написании статьи.

© dvsh


Начиналось всё довольно банально - с покупки новой видеокарты Radeon 9800 128 Мб (после прошлого неудачного опыта с 9500 сразу решил отказаться от "уполовиненных" вариантов). Естественно возник вопрос: как? Вопрос во что был уже решён. Конечно, в ХТ и, бесспорно, перепрошивкой. По мере накопления биосов стали обращать на себя внимание некоторые совпадения (в основном P/N и в датах), при разнообразии названий. По сравнении их друг с другом обнаружилась масса интересных моментов.

Момент первый. В сети гуляет много одинаковых биосов под разными названиями. Нередко на форумах звучала такая фраза: "Вот с биосом *** у меня о-го-го стало, а до этого был ***, так с тем эх :(". При этом давались ссылки на один и тот же биос с разными названиями. Подобные результаты я решил относить к разряду непознанного (полтергейст там, НЛО всякие:)).
Момент второй. В сети гуляет ещё больше биосов модифицированных. В модификациях принимают участие частоты ядра/памяти, количество локальной видеопамяти, Dev ID, ASIC (второй полубайт), TV-out, название чипа, реже тайминги и т.д. Причём довольно много модифицированных биосов распространяются со страницы весьма известного сайта.
Еще в прошлом году народ в форумах сообщал о появлении то тут, то там мифического 9800ХТ с 128 Мб видеопамяти, хотя подобных решений, насколько мне известно, не существовало. И что интересно (да ослепнут мои глаза:)) сам видел их в прайсах некоторых фирм. Но это пускай останется на совести и в компетенции менеджеров, составляющих прайсы.
Момент третий. Народ увлёкся поисками "самого производительного" BIOS. И вот уже в который раз цитирую избитую фразу, что биос под каждую видеокарту подбираются индивидуально, поэтому ситуация "что Иванову хорошо – то Петрову PCI" вполне реальна. "Быстрым" биос делают преимущественно тайминги памяти, а они, в свою очередь, зависят от производителя, времени доступа и т.д. (см. даташит к соответствующей маркировке чипов памяти).
Момент четвёртый. Иногда в форумах задаётся вопрос: "Как через BIOS управлять напряжениями на видеокарте?". Ответ - никак: изменение напряжения через BIOS на Radeon'ах невозможно, по причине отсутствия соответствующих микросхем на карте. Подобные манипуляции поддерживаются картами NVIDIA, но в ограниченном объеме (лишь незначительное увеличение напряжения, до +0.1В).

Эти, и некоторые другие, моменты побудили меня к обобщению и публикации материала.

Данная статья носит преимущественно описательный характер, в дальнейшем мы подойдем к практическим вопросам, связанным с BIOS для Radeon.

Для изучения и изменения биос вам могут понадобиться следующие инструменты:
  • Любой шестнадцатеричный редактор (я использую winhex 11.26 SR-6)
  • RaBit 1.2 - 1.3 или/и RadEdit 1.1D
  • IDA Pro
  • rambios_1.5 и/или ATI Tray Tool (желательно последний).
  • ATI_flashrom_2.37
В опознании принимают участие:

1. Размер. Итак, характерный размер биос для семейств R3х0 - 52 Кб (встречаются также 44 Кб, 48 Кб, 56 Кб, 64 Кб, но подобное разнообразие - удел преимущественно ядер R2х0). Хотя есть и исключение - у Radeon 9550 размер BIOS составляет 48 Кб, а у 9800ХТ - 64 Кб (преимущественно ASUS, Dell с VIVO). У R420: 54 Кб у X800 Pro, 64 Кб у X800 ХТ (с VIVO). Другое дело, что размер действительных данных в файлах больше 52 Кб может не доходить и до 50 Кб; всё остальное место занимает "мусор" (FF).

2. Дата. Расположена в строке 0х50, вид: 2003/02/27 16:12. У R420 вид: 05/07/04,15:51:53 последней цифрой залазит в строку 0х60. Легко и по желанию изменяемый параметр. Доверять особо не следует.

3. Заголовок (Description, Title). Начало - со строки 0х80. У большинства оканчивается в строках 0х100 - 0х120. Имеет вид:


У R420, за счёт переноса предупреждения о неподключенном кабеле в эту область, Description опускается до строки 0х1В0.

В этой области содержится информация о семействе, типе памяти, чипе, P/N, версии и ревизии прошивки и т.д. Подчеркну, что доверять содержимому Description нужно осторожно. Эта область не влияет на функционирование BIOS, следовательно и написано там может быть всё, что угодно. Пример тому - BIOS ATI.9800XT.256.Samsung.bin. Это модифицированный файл r98x256d.f1 с сайта Gigabyte. Добавлено: R360 Hynix DDR BIOS W THERMAL CONTROL P/N 113-A18802-104. Затёрты поля Sub Vendor ID Sub, System ID, 0хCE00 - 0хCECB.

4. P/N и версия BIOS. Опознание производителя. Большинство файлов в сети попадаются безымянными. Т.е. ни словом, ни байтом не указывающие на фирму - виновницу вашего торжества (или головной боли). Вот типичный пример одного из них: RADEON 9800 113-A07502-106 BIOS ATI Technologies Inc. BK-ATI VER008.015.048.000 njrq4461.815 v611.
Как исключение привожу "улики", замеченные в биосах некоторых производителей.
  • ABIT (ABIT Computer Corp. Subvendor ID 147B) - примерная строка: RV360 PRO A198... RAAB616H.X01.

  • У ASUS (ASUSTeK Computer Inc, Subvendor ID 1043) P/N характерен и имеет вид 113-AA00701-206-AS ASUS A9800XT v4E4A.8.15.41.AS30 или 113-AA00800-201-AS.

  • Club3D (C.P. Technology Co Ltd, Subvendor ID 148C) указывает в поле P/N - B815411.11250...

  • Dell (Dell Computer Corporation, Subvendor ID 1028) - прошивки от данного производителя идут с буквой D в версии VER008.017D.026.000...
  • ELSA (ELSA GmbH, Subvendor ID 1048); заявляет о себе прямо: ELSA FALCOX 980FX PRO BK-ATI VER008.004.008.019.BR jhbf2527.ela v611.

  • FIC (First International Computer Inc., Subvendor ID 1509): FIC-A97 Hynix BGA/DDR 4x32/128MB - E275/M540

  • У Gigabyte (Giga-byte Technology, Subvendor ID 1458) на месте P/N фирменная клинопись: R98X256D F1 VER008.015.028.000 qagba175.f2.v611. Это можно перевести как Radeon 9800XT 256 Мб.

  • GeCube (INFO-TEK Corp., Subvendor ID 18BC) тоже оригинальничает - GC-R96XTG-C3 S1G VER008.015.041.001 rdGC1a34.S1G v611.

  • HIS (Hightech Information System Ltd. Subvendor ID 17AF) можно определить по забавной строке R98004P SamSung(E) Channel CD BIOS

  • У Sapphire (SuperGrace/PC Partner, Subvendor ID 174B) P/N имеет вид P/N 113-PC2910-06...

  • Tyan (Interactive Computer Products, Inc. Subvendor ID 1701) - следы от данного производителя замечены в ревизии - ...nhbf2159.tya v611.

  • XpertVision, они же Palit (Yuan Yuan Enterprise Co., Ltd. Subvendor ID 12AB) отличаются строкой RADEON 9800 SERIES DDR 4M*32 VGA BIOS ...ah432P01.SAM

P/N следующего вида: 113-A188** - признак того, что вам достался биос, залитый в карту на чипе R360 (распространен и у 9800 Pro), 113-942** - что на чипе R300.

По ревизии (первые буквы): 9800ХТ - ...nj, 9800PRO - ...nh (nj - R360), 9800 - ...ni, 9800SE - ...ah, 9700 - ...ne, nd, 9700PRO - ...nd, 9600XT - ...ra, (rd - GeCube), 9600PRO & 9600 - ...pa, 9600SE - ...qa, 9550 - ...sa, 9500PRO - ...ne, 9500 - ad. 5. Кроме всего прочего, о производителе поведает вам Subvendor ID (будет рассмотрен вместе с Subsystem ID). Список вы можете взять здесь: Vendors ID или здесь Vendor ID. По этому значению производителя определить можно несколько чаще. Правда, и изменить его гораздо легче.

Поля Subvendor ID и Subsystem ID (необходимы для установки драйверов от конкретного производителя и под конкретную модель устройства).

Первое и главное значение Subvendor ID расположено в строке 0х70 (байты 6 и 7). Именно оно и следующее за ним значение Subsystem ID (байты 8 и 9) определяют, будут ли установлены "фирменные" драйвера (о наличии таковых можно осведомиться в .inf файле соответствующего каталиста или на сайте производителя) или драйвера из разряда series.

Второе значение Subvendor ID и Subsystem ID стоит на 1-2 строки ниже Description (у R420 - на 3-4 строки). Смена этих и последующего значения не приводит к смене драйверов.

Последнее значение Subvendor ID можно найти по логу RaBit (PCIR zone offs).

6. Версия чипа. В файле биос, в трех-четырех местах, стоит обозначение версии чипа, которое выглядит так: R360, R350, R300 так: RV350LX, V350 или так ATI Technologies Inc. R360.01.00 (третье или четвёртое значение). У 9600 и 9550 в строках 0х160 - 0х1В0 встречается следующая надпись: ATI RADEON 9600 PRO, вне зависимости от того, это 9550 или 9600ХТ.
Причём третье-четвертое значение, стоящее ближе к концу файла, очень часто забывают поправить при модификации BIOS :).

7. Определение производителя памяти. В Description может встречаться прямое указание на производителя: Hynix DDR BIOS, Samsung DDR BIOS, Infineon DDR BIOS. Только в одном месте - в начале. Пока указание на производителя памяти совпадала со значениями рассмотренными ниже.

Для определения производителя можно использовать следующие значения. Ориентир для них - значения МС_CNTL/МС_SIZE, строка имеет вид 22 00 00 00 80 00 00 (R300-350, 128 Мб). Расположено в строках 0х190 - 0х1F0. И сразу за ним идут искомые значения. Для памяти Hynix 05 57 78 78... (05 77 77 68...). Для Samsung, Infineon, Ethrontech - 00 30 20 A0 A2 33 51 30 60...

Причём у биосов "под Hynix" далее следуют значения характерные для биосов "под Samsung". Этим, наверное, и объясняется факт, что эти биосы могут работать со всеми типами памяти (присылают, указывая оба типа памяти). А вот биосов "под Samsung", снятых с памяти Hynix видеть не доводилось. Продолжение материала, в котором рассмотрены аспекты модификации BIOS: BIOS для ATI R3x0. Часть 2, практическая.

© dvsh