Ремонт видеокарты ASUS EAH6450 с установкой видеочипа 216-0809024 от ноутбука.

Приветствую, сегодняшняя статья посвящена проверке теоретической и практической возможности установки мобильного графического процессора 216-0809024 в видеокарту стационарного компьютера. Цель статьи: проверка аппаратной совместимости микросхем, изучение требуемой программной модификации Video BIOS. В качестве испытуемого выступит неисправная видеокарта от стационарного компьютера — ASUS EAH6450 Silent.

eah6450_top

 

Данная видеокарта была демонтирована из системного блока клиента по причине поломки графического процессора и в последствии заменена. Но так как клиент отказался забирать старую, неисправную видеокарту. Сославшись на отсутствие такой необходимости. Она и выступит у нас в роли испытуемого.

 

Внешний вид.

Видеокарта выполнена в низкопрофильном варианте с пассивной системой охлаждения. Установлен графический процессор AMD 215-0804000 и 512Mb видеопамяти стандарта DDR3.

eah6450_marking

 

На представленной ниже фотографии демонтирована система охлаждения. Рядом с напаянным, неисправным графическим процессором 215-0804000 положена микросхема 216-0809024 заранее снятая с системной платы ноутбука донора.

eah6450_rasborka

 

Еще ниже фото обеих микросхем более крупно. Заметны полностью идентичные вид подложки, кремниевый кристалл. Несмотря на существенную разницу в маркировке, обе микросхемы изготовлены на основе одного графического ядра — Caicos, его мобильная версия называется — Seymour. Данное решение представлено на рынок в 2011 году как замена уже устаревшему — Cedar.

eah6450_bad_chip_215-0804000

 

Что мобильная (Seymour), что версия для стационарных компьютеров (Caicos) имеют идентичный функциональный и вычислительный состав микросхемы. Разница в 50Mhz имеется в тактовой частоте шейдерных блоков, но это не существенно и также подлежит модификации на программном уровне в случае необходимости.

В случае значительного архитектурного и частотного различия несмотря на идентичную упаковку чипа. Необходимо выполнение более существенной аппаратной модификации, такой как — добавление микросхем памяти, увеличение мощности dc\dc преобразователя, доработка охлаждения и другие. Значительные изменения часто невозможны и на мой взгляд бессмысленны.

Касаемо нашей видеокарты, необходима замена графического процессора с редактированием Video BIOS. Для поддержки и запуска мобильного чипа 216-0809024, имеющего другой аппаратный идентификатор. Что вполне осуществимо.

 

Установка графического процессора 216-0809024.

Приступим! Для начала меняем графический процессор. На фотографии ниже видно установленный мобильный чип 216-0809024 на видеокарту стационарного компьютера. А рядом (справа) — неисправная демонтированная микросхема.

eah6450_good_chip_216-0809024

 

После установки микросхемы, ждем полного остывания. Проверяем сопротивление относительно земли по основным питающим цепям и сигнальным линиям. Во избежание порчи другого оборудования. Подключаем видеокарту к материнской плате стационарного компьютера. Включаем… И, тишина. Нет ни изображения на мониторе, ни сигнала материнской платы об отсутствии видеокарты. Почему? Все дело в аппаратных идентификаторах зашитых в саму микросхему, точнее в их разнице. Так как в устанавливаемой микросхеме id6760, а в той что была на плате до замены id6779.

Следовательно, для запуска нового идентификатора необходимо изменить Video BIOS. Записанный в ПЗУ видеокарты. Это отдельная, небольшая микросхема в планарном корпусе SOIC-8.

eah6450_eeprom

 

Для считывания, изменения и записи новой микропрограммы Video BIOS. Потребуется ее выпаивание и работа с программатором. Поддерживающим работу с EEPROM и SPI-FLASH.

 

Программная модификация Video BIOS.

Теория

Считав прошивку записанную в ПЗУ видеокарты. Ее необходимо открыть в Hex редакторе. В данной статье я использовал бесплатный — HxD. Но Вы можете использовать любой, к которому привыкли.

У нас есть Video BIOS, есть программа для редактирования. Мы знаем что нам необходимо изменить. Осталось понять где искать эти значения и на что менять. На самом деле, это достаточно глубокая тема. Я попытаюсь максимально кратко объяснить стандарты и общие принципы работы PCI устройств. Для понимания того, что будем изменять в коде.

На каждой плате расширения которой необходимо функционирование до загрузки основной операционной системы. Имеется модуль ПЗУ описывающий тип, модель, функционал устройства. Для его функционирования во время или после прохождения процедуры POST.

Его вид продиктован стандартом PCI ROM и имеет структуру представленную в таблице. Значения смещения представлены начиная с сигнатуры «PCIR» для более удобного поиска. Именно с этой сигнатуры и описывается функционал устройства. Это необходимо запомнить!

Смещение Длина в байтах Назначение
0h 2 Идентификатор производителя
2h 2 Идентификатор устройства
4h 2 Статус устройства
6h 2 Команда для устройства
8h 1 Ревизия устройства
9h 1 Уровень регистра для программирования
Ah 1 Подкласс устройства
Bh 1 Класс устройства
Ch 1 Размер системного кэша для устройства
Dh 1 Значение таймера задержки
Eh 1 Количество функций устройства
Fh 1 Регистр BIST
10h 4 Базовый адрес #0 (BAR0)
14h 4 Базовый адрес #1 (BAR1)
18h 4 Базовый адрес #2 (BAR2)
1Ch 4 Базовый адрес #3 (BAR3)
20h 4 Базовый адрес #4 (BAR4)
24h 4 Базовый адрес #5 (BAR5)
28h 4 Для комбинированного устройства PCI + Card Bus
2Ch 4 Зарегистрированный в PCI SIG идентификатор

 

Опираясь на данные из таблицы можно понять что нас интересует байты идентификатора устройства. Их смещение от сигнатуры «PCIR» 2h, размер — 2 байта. Соответственно рассматривать и редактировать будем фрагмент со смещением 2h-4h.

По заданным адресам имеем шестнадцатеричное значение «7967». Но так как данные представлены в порядке Little-endian (от меньшего к большему). То и фактическое значение идентификатора устройства в привычном нам виде будет выглядеть как «6779», что соответствует аппаратному идентификатору микросхемы 215-0804000.

Big-endian — порядок записи байтов от большого к меньшему. Этот порядок байтов более привычен для нашего чтения и применяется для высокоуровневого использования. Например в Windows или протоколе TCP/IP.
Little-endian — порядок от меньшего к большему. Этот порядок не привычен для человека. Но принят и используется в оперативной памяти компьютеров на архитектуре x86, то есть Intel или AMD.

 

Практика.

Но мы, установили на плату микросхему с идентификатором «6760». И менять соответственно будем значение 79 67 на 60 67. Ищем сигнатуру «PCIR«, отсчитываем 2 байта и меняем значение «79» на «60». Да, просто изменить две цифры, как на фото ниже!

eah6450_mod_bios_id

 

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

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

 

Контрольная сумма.

Для ее редактирования, естественно необходимо знать ее значение до модификации. Это делает программатор, но можно и с помощью программы ее посчитать — Файл\Анализ\Контрольные суммы\Checksum-16\OK.

eah6450_mod_bios_src_Checksum-16

 

Результатом будет фрейм внизу программы с подсчитанной суммой. У нас это — «0D00».

eah6450_mod_bios_src_Checksum-16_0D00

 

И соответственно после модификации должен быть аналогичный результат.

Для этого вспоминаем сделанные изменения. «79» мы поменяли на «60». Первый символ байта изменился на одно значение в сторону уменьшения, а второй символ на 9.

Значит, для корректирования суммы в нашем файле необходимо в одном из байтов увеличить на одно значение первый символ и на 9 второй. Да так, чтоб это не повлияло на функционирование микропрограммы. Я для этого использую байты несущие в себе текстовую информацию о дате выпуска или версии микропрограммы

На фото ниже, изменяю байт «30» на «49». И видим, что в правом, текстовом поле, один нолик изменился на заглавную «I». Но на работу устройства это не повлияет, что и требуется.

eah6450_mod_bios_src

 

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

 

Запаиваем микросхему ПЗУ обратно на нашу видеокарту. Вставляем в материнскую плату компьютера, пробуем включить.

Видеокарта заработала, вот скриншот AIDA в разделе «графический процессор». Кстати обратите внимание на «Версия BIOS» на скриншоте. Там вместо цифирного обозначения версии, появилась наша «I» с помощью которой мы корректировали контрольную сумму микропрограммы.

eah6450_aida

 

Ниже представлены дампы описанные в статье. Их можно скачать и ознакомиться с изменениями самостоятельно.

Скачать дамп eah6450_dump.zip

 

Вывод.

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

Спасибо всем кто дочитал! Ставьте лайки, подписывайтесь на группу вконтакте для получения актуальных постов.

 

Text.ru - 100.00%

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

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