Железо

Об аварийном восстановлении BIOS на флеш-микросхемах SPI flash

При эксплуатации видеокарт, материнских плат и других устройств с флеш-памятью BIOS иногда возникает необходимость в ее перепрошивке/обновлении. Это потенциально опасная процедура, способная «окирпичить» устройство, поэтому производители часто устанавливают резервную микросхему с дубликатом BIOS, делают проверку совместимости прошивки с устройством и т.д.

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

В данной статье рассматривается восстановление испорченного BIOS на примере видеокарты AMD Radeon RX550 производства Sapphire. Способы принудительного восстановления BIOS, описанные в статье применимы для любых других устройств с микросхемами SPI flash 8-пин.

Из-за чего возникают проблемы с BIOS видеокарт

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

В случае, если устройство инициализируется системой, прошивку можно восстановить, используя принудительную запись микропрограммы BIOS с ключом f командой (для консольной программы amdvbflash):

amdvbflash -f -p 2 bios.rom

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

Этот метод работоспособен, если программа amdvbflash (ранее называлась atiflash) видит адаптер по команде:

amdvbflash -i

К сожалению, при прошивке неподходящего BIOS устройство не проходит инициализацию в операционной системе, поэтому amdvbflash в этом случае не работает.

Что делать, если видеокарта не инициализируется системой из-за некорректного BIOS?

Прошивка BIOS не от той видеокарты или с очень большими некорректными модификациями приводит к полной неработоспособности видеокарты. Она не инициализируется системой, поэтому ее невозможно прошить используя стандартные методы, включая принудительную запись прошивки (возникает ошибка Adapter not found).

Для восстановления работоспособности таких видеокарт можно использовать два способа:

  1. Прошивка верной версии прошивки BIOS в микросхему с помощью программатора. Разновидностью этого способа является замена микросхемы BIOS на экземпляр с корректной прошивкой. Этот способ восстановления BIOS самый надежный и простой, но требует наличия паяльного оборудования и программатора.
  2. Принудительная инициализация видеокарты с испорченным BIOS-ом при загрузке системы с последующей прошивкой верного BIOS принудительной прошивкой в программе amdvbflash (atiflash) с ключом f. Для принудительной инициализации видеокарты при загрузке системы производится обнуление BIOS на флеш-памяти видеокарты, что позволяет затем получить к ней доступ из операционной системы.

Рассмотрим подробнее процесс восстановления BIOS на примере видеокарт AMD Radeon RX550. Такие видеокарты выпускались с двумя видами ядер: Lexa и Baffin (с программно заблокированными ядрами). При прошивке BIOS для другого типа ядра видеокарта гарантированно выходит из строя.

Чтобы восстановить ее работоспособность, нужно найти микросхему BIOS на плате и принудительно прошить в нее правильную версию BIOS. Большая коллекция проверенных BIOS-ов есть на сайте Techpowerup в разделе Databases — VGA BIOS Collection.

Восстановление BIOS у видеокарт замыканием контактов флеш-памяти при загрузке операционной системы

Микросхема 25Q40CT флеш-памяти BIOS у видеокарты AMD Radeon RX550 производства Sapphire находится на задней стороне платы (обратной стороне видеочипа):

Микросхема 25Q40CT в корпусе SOP8 (150 mil) производства китайской компании GigaDevice Semiconductor на плате Sapphire:

Это микросхема последовательной флэш-памяти емкостью 4 Мбит с интерфейсом SPI (Serial Peripheral Interface). Она питается напряжением +3.3 вольта, которое подается на 8-й вывод Vcc (земля — это четвертый вывод Vss).

Блок-схема внутреннего устройства микросхемы флеш-памяти 25Q40CT:

В стандартном режиме работы микросхема GD25Q40C работает с четырьмя видами сигналов:

  • Serial Clock (SCLK) — сигнал синхронизации;
  • Chip Select (CS#) — сигнал выбора чипа;
  • Serial Data Input (SI) — последовательный вход данных;
  • Serial Data Output (SO) — последовательный выход данных.

Назначение пинов у флеш-памяти 25Q40CT:

  1. CS# – (Chip select input) выбор чипа (включение флеш-памяти), позволяет выбрать конкретный чип из нескольких микросхем, подключенных по одной шине (можно собирать устройства с несколькими коммутируемыми BIOS). Чип на плате выступает в роли ведомого, а устройство, откуда производится чтение является ведущим. Для инициализации видеокарты задействуется этот контакт путем подачи на него +3.3 вольта с восьмого вывода микросхемы (Vcc);
  2. SO/IO1 – выход считывания данных с чипа;
  3. WP#/IO2 – входной пин для записи данных;
  4. Vss — земля;
  5. SI/IO0 – входной пин для записи данных.
  6. SCLK – синхронизация;
  7. Hold#/IO3 – входной контакт для удерживания (ожидания);
  8. Vcc — питание +3.3 вольта.

Выпускаются и другие модификации микросхемы 25Q40CT в разных корпусах с разным объемом памяти, которые широко применяются в радиоэлектронных устройствах.

Маркировка микросхем флеш-памяти производства компании GigaDevice Semiconductor:

Для принудительной инициализации видеокарты и прошивки в нее верной предварительно скачанной версии BIOS нужно:

  • перед загрузкой операционной системы подать на первый вывод (вход выбора чипа) положительный потенциал с восьмого вывода микросхемы (+3.3 вольта). Это можно сделать металлическим пинцетом или предварительно подпаянными/подключенными проводками;
  • дождаться загрузки операционной системы;
  • запустить программу прошивальщик, выбрать в ее меню проблемную карту;
  • разъединить контакты 1 и 8 флеш-памяти;
  • прошить корректный BIOS;
  • перезагрузить систему с восстановленной видеокартой обычным способом и проверить ее работоспособность.

Контакты флеш-памяти 25Q40CT, которые нужно замкнуть для инициализации карты по резервному коду BIOS (выделены красным цветом):

После замыкания контактов система видит видеокарту и ее можно прошить, исправив «косяки»:

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

Восстановление BIOS с помощью программатора

В случае невозможности восстановить BIOS описанными выше способами (с принудительной прошивкой с ключом f, а также с помощью замыкания контактов 1-8 флеш-памяти), нужно выпаять микросхему и прошить в нее верную версию, либо заменить на другую, с рабочим BIOS-ом.

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

Без выпаивания микросхему BIOS можно прошить, подключившись к ее контактам специальной прищепкой:

Для прошивки BIOS можно использовать универсальный программатор, например, SkyPro, EZP2010, Xgecu/Minipro TL866II Plus и другие. Главное, чтобы он поддерживал работу с установленным на видеокарте типом флеш-памяти.

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

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

English English Русский Русский