- Как правильно шить биос через прищепка
- Как прошить BIOS через EZP2010 + SPI прищепку?
- Прошивка bios, перепрошивка биос, прошить материнскую плату.
- Для тех, кому лень читать, а хочется побыстрей прошить BIOS и забыть. Мифы.
- Где хранятся эти микропрограммы?
- Программа для прошивки bios.
- Какие материнские платы перепрошиваются?
- Программа перепрошивки bios AWDFLASH
- Обновления для Intel
- Express BIOS Update
- iFlash
- Программа перепрошивки bios AMIFLASH
- О том как прошить биос asus.
- Прошиваем через DOS (с флешки)
- Самый безопасный вариант — не затрагивает операционную систему. Процесс схож на разных моделях ПК, хотя может отличаться в деталях.
- Основные проблемы и сообщения об ошибках
- Зачем вообще прошивать BIOS?
- Как прошить биос «как было».
- Прошивка bios на программаторе.
- Хотсвоп (на горячую).
- Как сделать «ухват» для перепрошивки биос на «горячую».
- Прошивка bios с носителя
- Как определить модель материнской платы
- Проще всего прочитать в документации к материнке или на упаковке. Если же ни того, ни другого не нашлось, предлагаем четыре способа.
- Прошивка bios — азы.
- Сборка устройства
- Для сборки нам понадобится:
- Девайс в сборе:
- Особенности программирования микросхем Intel 28Fxxx
- Программные особенности прошивки флэшек
- LPC-интерфейс.
- Собственный комплекс для перепрошивки bios
- Нужна ли резервная копия?
Как правильно шить биос через прищепка
Если вы по каким либо причинам испортили прошивку BIOS, или произошёл сбой во время прошивки BIOS материнской платы, то оживить её поможет только программатор. В данной инструкции мы рассмотрим как правильно собрать и подключить программатор CH341A с прищепкой, чтобы прошить микросхему BIOS материнской платы не выпаивая её, а подключившись к ней прищепкой.
Данная инструкция подходит к любой материнской плате, будь то Китайская или брендовая (Asus, MSI, Gigabyte и т.д.)
Первое что нужно сделать это соединить правильно программатор с прищепкой:
Подключите коннектор от провода прищепки так, чтобы красный провод был соединён с контактом №1 специальной переходной панельки
Вставьте переходную панельку в программатор и зафиксируйте её небольшим рычагом опустив его вниз (пример для микросхемы 25-й серии)
Теперь подключите прищепку программатора к микросхеме BIOS так, чтобы красный провод был на первой ножке микросхемы, как правило она обозначена точкой
Для удачной прошивки и во избежание повреждения компонентов платы, следует вытащить CPU, RAM и батарейку, а также подключите питание 24-pin и 8-pin, соблюдение таких условий практически гарантирует удачную прошивку.
Следует отметить, что всё зависит от особенностей платы, так например есть платы которые прошиваются без подключения питания, а иногда плата не прошивается без батарейки, нужно пробовать.
После того как всё правильно подключили к микросхеме BIOS, можно подключать программатор к USB компьютера (желательно к USB 3.0, так скорость прошивки будет быстрее) и приступать к прошивки. Не рекомендуется использовать USB удлинители.
Прошивка BIOS программой AsProgrammer:
Скачайте и распакуйте архив с программой AsProgrammer, установите оба драйвера из папки «CH341-Drivers», после этого программатор должен корректно определиться в диспетчере устройств
Запустите программу AsProgrammer и во вкладке «Программатор» выберите «CH341a»
Во вкладке «Микросхема», выберите нужную согласно маркировке вашего BIOS, или воспользуйтесь «Поиск» в той же вкладке и начните вводить маркировку пока не найдёте свою
Теперь нужно сначала «Прочитать» микросхему (кнопка с зелёной стрелкой вправо) и на всякий случай «Сохранить» родной дамп BIOS (кнопка с изображением дискеты)
Далее нажимаем кнопку загрузки прошивки в редактор (кнопка с изображением папки), выбираем необходимый файл (любого расширения, программатору неважно какое расширение файла *.rom, *.bin, или вообще без расширения)
После того как мы загрузили нужную прошивку в редактор, нажимаем кнопку прошивки «Снять защиту -> стереть -> записать -> проверить», после чего скрипт программы сам всё сделает, останется всего лишь дождаться окончания работы
Стирание микросхемы длится около 30сек, за это время может показаться что всё зависло, но это не так. Когда начнётся запись, появится зелёная полоса процесса. По завершению процесса вы увидите надпись что всё прошло успешно, если нет — то сообщение об ошибке.
P.S. Из-за особенностей некоторых материнских плат, не все микросхемы удается прошивать не выпаивая из материнской платы. В некоторых случаях без выпаивания не обойтись.
Если вы уверены, что все подключили правильно и все контакты имеются, а микросхема не поддается прошивке, попробуйте выпаять микросхему, возможно ее прошивке мешают другие элементы материнской платы.
Как прошить BIOS через EZP2010 + SPI прищепку?
Здравствуйте, есть ноутбук (Lenovo G510), нужно прошить микросхемку (чтобы убрать белый список железок) BIOS без выпаивания (руки кривоваты для выпайки). Для этих целей был приобретен программатор EZP2010 + прищепка под SOIC8 .
Собственно проблема: прицепляюсь прищепкой к микросхемке, включаю программатор в USB порт, горит Power и мигает Run, запускаю прогу (что комплектная) и жму Detect, в ответ получаю ошибку детектирования чипа (чип живой и рабочий) и перестает мигать Run (тухнет). Микросхемка Winbond 25Q64FVSIQ
Думал что-то с прищепкой — каждая контакт корректно звонится с другим концом.
Соответственно и чтение и запись не работают. Подключаю верно (первая нога к первой ноге, согласно нумерации)
- Вопрос задан более двух лет назад
- 2669 просмотров
Советую выпрямлять руки, выпаивать микросхему и программировать ее одну на программаторе. Применение сплава Розе сильно облегчает выпаивание.
Если объяснить происходящее коротко, то когда вы прищепкой пытаетесь программировать микросхему flash-памяти, то заодно программатор пытается запитать еще некоторое количество других микросхем, которые питаются от этой же шины питания, например мультиконтроллер, какие-то блоки хаба, еще кто-нибудь. Программатор на подобное не только не рассчитан, но и часто несет в себе защиту от повышенного потребления программируемой микросхемы. Плюс все те микросхемы, которые мы ненароком запитали, начинают жить своей жизнью и включившийся мультиконтроллер может начать вычитывать из флэшки свою прошивку, а программатор ее пытается программировать.
Прошивка bios, перепрошивка биос, прошить материнскую плату.
Для тех, кому лень читать, а хочется побыстрей прошить BIOS и забыть. Мифы.
Не буду акцентировать вопрос на том, что такое биос, какие они бывают и зачем. Раз вы это читаете, значит, вам что-то уже известно. Потому начнём с обратного — развеем самые стандартные, почему-то непотопляемые мифы и заблуждения.
- Прошивать Bios нужно (лучше) только «своим» прошивальщиком (пример: Award — с помощью AwdFlash, AMI — AMIFlash). Бред. Однако некоторым сложно это понять и поверить — ведь на сайте производителя платы много всяческих грозных непонятных предупреждений (да ещё и на не русском). Почему же так? Интересно — тогда дочитайте эту статью.
- Перепрошивку биос «на горячую» (Hot Swap — «хотсвапом») нужно (можно) только на точно такой же матери (таком же чипсете, с точно такой же флэшкой т.п.). Второе самое распространённое заблуждение. Имеет корни в незнании функционирования различных типов флэшмикросхем, которое, действительно, может накладывать некоторые ограничения на используемую для хотсвапа мать. Хотя если у вас есть другая точно такая же (только рабочая;) мать — это несомненный плюс.
Где хранятся эти микропрограммы?
Теперь понятно, что прошивка записывается непосредственно в устройства, но каким образом производится хранение? Любая прошивка, как правило, хранится в специальных типах памяти, называемых флеш-ПЗУ. Аббревиатура ПЗУ или ROM обозначает память только для чтения, и как обычно бывает, этот файл записан один раз производителем используемого аппаратного средства. Память ROM необходима для любого вида электронного устройства, она должна постоянно содержать эти данные, даже когда устройство выключено.
Хоть ROM является памятью, хранящей первоначальную запись производителя, многочисленные примеры её перезаписи свидетельствуют о том, что не только ему это под силу. Можно использовать свою собственную разработку для перезаписи, что часто делают со смартфонами, но лучше воспользоваться инструментом, предоставленным разработчиком специально и официальной прошивкой.
Программа для прошивки bios.
Самыми популярными являются AwdFlash, AMIFlash и UniFlash. Остальные являются специфичными для конкретной фирмы (например, для «родных» матерей от Intel либо Asus — свой, ибо другие могут не сработать).
Я не буду касаться расшифровки ключей — этой информации полно в интернете, я остановлюсь на том, какие из них включать.
ВНИМАНИЕ: запуск программы для прошивки bios БЕЗ КЛЮЧЕЙ может привести к ПОВРЕЖДЕНИЮ биоса, даже если вы не собирались его перешивать, а лишь полюбопытствовали либо хотели сохранить текущую версию. Это крайне редкое явление и в основном касается некоторых версий amiflash, но оно точно имеет место.
ДОПОЛНЕНИЕ: запуск различных утилит (например, типа DMICFG), имеющихся на компактах прилагаемых к матплате (для «настройки» биоса) часто приводят к ситуации аналогичной предыдущему абзацу — повреждение биоса, даже если вы не собирались ничего делать, а лишь полюбопытствовали и ничего не перешивали.
Какие материнские платы перепрошиваются?
Теоретически можно перепрошить любую модель: это заложено в её архитектуре. Однако производителям весьма невыгодно исправлять ошибки в микропрограмме — гораздо выгоднее продать новую материнскую плату. В основном прошивки выпускают ASUS, MSI и ASRock.
Проверьте версию ПО на сайте фирмы, выпустившей вашу материнку. Вам нужна будет модель платы. Зайдите на сайт и найдите в разделе ПО свою модель. На странице модели материнки найдётся свежая версия , если она вообще существует. Не качайте обновления со сторонних сайтов! И обязательно поищите инструкцию по прошиванию.
Программа перепрошивки bios AWDFLASH
Самый популярный, но не самый лучший перепрошивальщик bios. Запускать с ключиками:
awdflash имя_прошивки /cc/cd/cp/py/sn/f/r
В этом случае биос прошивается без лишних вопросов
/f — не проверять от той ли платы это биос и биос ли это вообще;
/r — Reset, после окончания прошивки комп сразу перезагрузится;
/cc — Clear CMOS, автоматический сброс CMOS (по умолчанию).
/nab — Work with not Award BIOS, если прошиваем не award bios (например ami).
Обновления для Intel
Express BIOS Update
Проще не бывает: скачиваете самораспаковывающийся архив, запускаете и соглашаетесь со всем. Приложение само обновит биос до новейшей версии.
iFlash
Этот способ потребует некоторых усилий — если точнее, то вы сами будете создавать загрузочный диск. Необходимо скачать свою версию микропрограммы, DOS и утилиту iFlash. Кроме того, для форматирования в этот раз понадобится программа HP USB Disk Storage FormatTool 2.2.3.
Перед прошивкой нужно разархивировать все файлы. Затем — запустить приложение для форматирования и проставить галочку «Create a DOS startup disk». Выбрать второй подпункт и указать папку, куда сохранены файлы DOS. Запустить процесс форматирования.
По окончании форматирования на USB скопируйте микропрограмму и выполните перезагрузку ПК, не вынимая носителя. Проставьте приоритет для USB в биосе и снова загрузите систему. Запустится DOS. В консоли напишите «IFLASH /PF XXX.BIO» — запустится обновление. Далее всего лишь нужно следовать инструкции.
Программа перепрошивки bios AMIFLASH
Не такой популярный перепрошивальщик как awdflash, но в отличие от него — самый лучший (даже несмотря на вышеупомянутые проблемы с некоторыми версиями при запуске без ключиков). Запускать с ключиками:
amiflash имя_прошивки /b /n /-o /-c /-d /-r /v /-i /-k /-e /-g
Если нужно перед прошивкой сохранить старый биос, запускать с ключиками:
amiflash /b /n /-o /-c /-d /-r /v /-i /-k /-e /-g/sимя_прошивки
После ключика /s — пробела быть не должно! Чтоб не набирать такую кучу ключей — не поленитесь, сделайте один раз .bat-файлик с содержимым типа:
c:\vc\utils\amf.exe %1 /b /n /-o /-c /-d /-r /v /-i /-k /-e /-g
О том как прошить биос asus.
Для прошивки асусовских плат не подойдут «стандартные» прошивальщики, т.к. ВСЕ асусовские биосы (начиная с самых древних Pentium1) блокируют обычные способы перепрошивки. Для перепрошивки на таких матплатах придётся использовать фирменные асусовские утилиты. Для самых старых плат — это pflash, для более современных — aflash (хотя во многих случаях aflash подходит и для очень старых), для совсем новых — придётся использовать утилиты под винду. В случае pflash/aflash выражение «придётся использовать» не совсем корректно, т.к., во-первых, они крайне удобны, понятны, достаточно универсальны и, главное, не пристают с вопросами, прошивая «всё, что шьётся». Во-вторых, амифлэш всё-таки можно использовать, хоть он и заканчивает работу с ошибками (точней не он, а dos4gw). В любом случае, всем счастливым обладателям асусовских плат к перешивке нужно подходить с особым вниманием ибо восстановление при ошибке дело непростое, а иногда очень даже сложное. И если вы даже имеете опыт и даже немалый — повторюсь, будьте бдительны, асусовские инженеры используют в своих творениях крайне изощрённые меры для защиты биосов, обратной стороной медали которых являются иногда возникающие серьёзные проблемы с «оживлением» — плата может «прикидываться» дохлой («00» на POST-карте), флэшка — аналогично (при попытках перешивки на других платах), хотя реально и один и другой будут совершенно живыми, что может подтвердится установкой в другие точно такие же, только исправные. Если вы боретесь (боролись) с подобными глюками — внимательно прочтите главу о LPC-интерфейсе (асусовцы его давно применяют, в то время как другие стали его использовать совсем недавно).
P.S. подобное в определённой степени (желательность и/или обязательность использования «родных» фирменных программ для прошивки bios) касается и некоторых других производителей, как правило — известных. Например, многие платы от Abit также имеют тонкости при программировании — тот же Uniflash, вообще, предупреждает, что не дружит с этой фирмой.
Прошиваем через DOS (с флешки)
Самый безопасный вариант — не затрагивает операционную систему. Процесс схож на разных моделях ПК, хотя может отличаться в деталях.
- Подготовить флешку или дискету для перепрошивки. На носителе не должно быть данных. Форматируйте устройство через «Мой компьютер», нажав правую кнопку и выбрав «форматировать».
- Ознакомиться с инструкцией производителя материнки.
- Загрузив на носитель прошивку по инструкции, перезагрузить компьютер и войти в биос, нажав клавишу, указанную на начальном экране (обычно F2, Delete, Enter). Важно: нажать клавишу надо успеть, когда виден начальный экран.
- В биос выбрать раздел Boot, поставить первой загрузку с флеш-носителя/floppy. Нажать F10 — сохранить изменения и перезагрузить.
- Следовать инструкциям от производителя.
Основные проблемы и сообщения об ошибках
Объём файла прошивки bios не сопадает с объёмом флэшки.
Распространённая проблема. Как правило является результатом того, что производитель использовал в разных версиях (матплат) разные флэшки (по объёму). Например, первые платы какой-то модели шли с мегабитными, а все следующие — с двухмегабитными. В некоторых случаях, если производитель не признаётся, что выпускал платы с биосы разных объёмов, это может быть свидетельством того, что плата «левая» (т.е., например, в подделке используется более дешёвая флэшка большего объёма — 4Mbit вместо 2Mbit).
Программа перепрошивки bios по каким-либо причинам «не соглашается» прошивать биос, утверждая, что он не от этой платы или вообще не биос.
Ещё более распространённая вещь. Однако с вышеуказанными «секретными» ключиками вас больше не будут посылать… почитать даташиты.
Программа перепрошивки bios не может определить тип флэшки потому не прошивает её.
Это тоже частое явление. Причин тому может быть несколько: стоит защита от перезаписи (именно это обычно и предлагают проверить матюгающиеся прошивальщики). На древних платах защита ставилась перемычками, в современных — как правило, выбирается в BIOS Setup (пунктик типа BIOS Flash Protection = En./Dis.).
Данная версия программы перепрошивки bios не знает данный тип флэшки
Редкое явление — обычно возникает при попытке шить древние флэши новыми версиями либо наоборот.
Всунутая хотсвапом флэшка (тип) не поддерживается самой матерью.
см. дальше по FWH/LPC интерфейсам. Просто битая флэшка — убедитесь ещё раз, что Вы вставили её правильно. Флэшка — вовсе и не флэшка, а «однократной записи» либо вообще — с УФ-стиранием (с окошком). Верно, как правило, лишь для самых древних плат (до Pentium1) и можно определить по маркировке — она будет начинасть с цифр 27ххх .
Всё прошло благополучно, без видимых проблем и… тишина.
Для восстанавления вам придётся всё ж почитать подробней — см. дальше.
Зачем вообще прошивать BIOS?
Чаще всего причина прошивки — обновление, выпущенное производителем материнской платы. Они постоянно работают над усовершенствованием кода и исправляют найденные ошибки. Обновления от производителей лучше устанавливать, а вот с неофициальными прошивками стоит быть осторожным: никто не гарантирует, что они будут работать корректно.
Прошивать биос опаснее, чем ставить программы или даже операционную систему: отключение электричества или неправильные действия могут привести материнскую плату в нерабочее состояние. Однако это необходимо: новая версия приносит совместимость с современными устройствами — вместо покупки новой материнки можно её всего лишь бесплатно обновить.
Как прошить биос «как было».
Учитавая понятный факт, что эту статью, как правило, будут читать не для перешивки новой версии биоса, а восстановления работоспособности вообще, остановимся на различных способах перешивки.
Прошивка bios на программаторе.
Банально и неинтересно — разбиваешь свинку с мелочью, выдираешь флэшку и идёшь с дискетой и пивом к ближайшим ремонтникам, владеющих приёмами борьбы программатором. Если флэшка запаяна — придётся разбить ещё одну свинку и нести всю плату. Могу посоветовать напрячь их впаять колодку — впредь при желании сможете сэкономить на третьей свинке.
Хотсвоп (на горячую).
Берётся другая РАБОЧАЯ плата. Как уже говорилось, она не обязательно должна быть «точно такая же», «на таком же чипсете», «той же совместимые» группы:
- «обычные» (в частности, именно к ним относятся все «прямоугольные» флэшки — в DIP32 корпусе) — 28xxxx, 29xxxx, 39xxxx, некоторые 49xxxx
- «хабовые» (все они только «квадратные в корпусе PLCC32) — большинство серии 49xxxx и «родные» интеловские 82802xx
Соответственно, если на плате для восстановления будет «совместимая» флэшка того же (или большего) объёма — всё должно пройти.
Как сделать «ухват» для перепрошивки биос на «горячую».
Вариант промышленного «ухвата» для DIP32
Проявите фантазию — главное «во время процесса» не ронять на работающую плату чужеродные токопроводящие детали (и не проливать жидкости). Для микрушек в корпусе DIP32 — попроще. Обычно рекомендуют обвязать их нитками, чтоб выдернуть можно было полегче. Я же порекомендую найти что-нибудь типа шлейфика от старенького COM-порта и подложить его под микросхему — так и схватиться удобней и ширина как раз на микросхему и толщина кабеля не даст сильно застрять флэшке в разъёме.
Для «квадратных» (PLCC32) — чуть сложней. Можно продолжить мучаться с нитками. Если есть неплохой доступ и руки не дрожат — можно банально подковырнуть иголкой в соответствующих уголках и аккуратно вынуть. Если же постоянно занимаетесь этим (перешивкой подобных) или просто хотите «чтоб наверняка» — приклейте к «спине» флэшки какую-нибудь штуку, чтоб можно было удобно вынимать/вставлять: подойдёт кусок пластмассы или даже растопить часть стержня для клеевого пистолета… В общем — это уже дело техники, в крайнем случае вы можете пойти и купить специальный «экстрактор» для PLCC32.
Варианты «ухватов» для PLCC32
Прошивка bios с носителя
С дискеты (для современных — в том числе с винчестера/CD-ROM-а). В случае, когда компьютер умер не полностью и при загрузке противно хрустит дисководом и/или выдаёт надпись «BIOS checksum error» можно попытаться восстановить биос без походов к товарищу.
ВНИМАНИЕ: Если у вас стоит AGP/PCI видеокарта — Вы можете не увидить этого сообщения (биос чексум еррор). Для этого потребуется ISA-карточка для P1-P3-компьютеров, PCI-карта для более современных, не имеющих ISA-слотов. Хотя в большинстве современных плат бутблок (а именно он сообщает об этом грустном факте, пытаясь восстановить биос с дисковода) поддерживает вывод и на AGP-карточки.
ДОПОЛНЕНИЕ: Если у вас есть POST-карта (например, встроенная в матплату), то «BIOS checksum error» просто отслеживается по ошибке «41» в самом «начале» POST-а (если вы не способны оценить «начало», то это где-то 5-6 код из тех, что вы успеет разглядеть:). Код «41» в Аварде — это обращение к FDD (попытка загрузиться с дискеты), в случае AMI «бутблочные» коды попыток загрузиться с авариной дискеты — «F0-FE».
В большинстве случаев для этого нужно сделать чистую системную дискету (т.е. только файлы io.sys, msdos.sys и command.com) и записать на неё файл с прошивкой (bios.bin), сам прошивальщик (awdflash.exe) и autoexec.bat с соответствующей командной строкой внутри:
для Award: awdflash bios.bin /cd/cp/py/sn/f/r
для AMI amiflashamibios.rom /b /n /-o /-c /-d /-r /v /-i /-k /-e /-g
При чём не рекомендую использовать свои имена прошивок/прошивальщиков (т.е. стоит использовать только вышеуказанные стандартные названия) — некоторые биосы (бутблоки) могут просто проигнорировать такой диск, выдавая всё то же сообщение о несистемной дискете в дисководе.
Однако единого «стандарта» на процесс восстановления с дисковода всё же нет. Большинство «брэндовых» компов (т.е. фирменные Intel, HP/Compaq, Dell, IBM, Fujitsu etc) могут быть оживлены дискеткой, содержимое которой можно слить с их собственного сайта (там же должно быть подробное описание).
В зависимости от современности конкретной платы/биоса (Award/AMI) на дискетке может потребоваться наличие ЛИШЬ (т.е. она, наоборот, не должна быть системной) файлов прошивальщика и прошивки или даже, вообще, только самой прошивки (когда прошивальщик встроен в биос).
Короче имеются различные вариации и если к ним добавить возможность просто аппаратного сбоя самого бутблока и/или железа, то восстановление прошивки данным методом становится не самым надёжным и «многовероятным» способом (это же подтверждает и статистика). Однако, всё равно, начинать лучше именно с него — авось, повезёт и свинка уцелеет.
Как определить модель материнской платы
Проще всего прочитать в документации к материнке или на упаковке. Если же ни того, ни другого не нашлось, предлагаем четыре способа.
- Заглянуть внутрь компьютера и найти модель прямо на материнке. Однако в ноутбуке или любом другом компьютере с гарантией разборка лишит вас возможности обратиться в сервисный центр по ней.
- Проверить через командную строку. Способ подходит пользователям Windows. Вызовите окно запуска программ через Windows+R, введите в нём cmd, нажмите Enter. В открывшейся консоли введите «wmic baseboard get Manufacturer» — выведется модель материнки. Напишите «wmic baseboard get product» — получите модель.
- В случае, если с командной строкой не хочется работать, поставьте программу AIDA64 (free-версию) — в разделе «Системная плата» напротив слова Motherboard найдёте фирму и модель платы. Также поможет msinfo32. Данные расположены в разделе «System Information».
- Для пользователей Unix-подобных систем. В консоли ввести команду dmidecode. В пунктах Manufacturer и Product Name нужная информация.
Прошивка bios — азы.
Что ж, если дочитали досель — значит начнём с самого начала. Которое я пропустил из-за того, что очень многие его не читают , предпочитая середину или даже сразу конец.
Немного о принципах работы.
PP-тип интерфейс FlashBIOS
«Обычная» флэшка имеет следующие сигналы:
8 линий данных DQ0-DQ7 17-18 линий адреса A00-A16/17 (в зависимости от объёма: 1Mbit — 17, 2Mbit — 18) CE# (ChipEnable) — «чипселект» (разрешение на работу с микросхемой) OE# (OutputEnable) RE (возможность считать байт данных) WE# (WriteEnable) WE (возможность записать байт данных) Короче, достаточно примитивно и понятно, даже если Вы не обладаете особыми познаниями в электронике. И уже из этого видно, что уже только из-за 8-битной шины данных (в современных Nforce2 — она 128-bit) скорость выборки данных из флэшки (которая к тому же ещё больше ухудшается из-за больших задержек самой флэшпамяти) превратила бы загрузку даже самого быстрого компьютера в мучительное ожидание. Поэтому флэшка подключена особым способом к южному мосту, что позволяет «отображать» («Shadow») её содержимое на «реальную» память, эмулируя при этом память ReadOnly (ПЗУ по-нашенски) и снимая ограничение по скорости.
Опять же, из сказанного ещё один вывод: ежели Вы засунули совсем нездоровую флэшку либо вставили её неправильно — пострадать может не только сама микросхема (что обычно и случается при вставлении «задом наперёд»), но и напрямую_подключённый_южный_мост (из неоднократного личного опыта). В адресном пространстве флэшка занимает самые верхние адреса E0000-FFFFF (верно для 1Mbit, для остальных аналогично, потому разберём на примере именно 1Mbit/AwardBIOS). После включения компьютера и окончании сигнала RESET# процессор выполняет свою первую команду по адресу F000:FFF0. После самой первичной инициализации происходит проверка различных контрольных сумм (их много в биосе), главная из которых — контрольная сумма E000:0-FFFF+F000:0-BFFC. Если она нарушена происходит запуск бутблока, расположенного по «самым» верхним адресам (F000:C000/E000-FFFF — последние 8/16kB), который производит инициализацию дисковода и пытается считать с него систему и/или запустить прошивальщик с прошивкой.
Отсюда ещё один интересный вывод: если вы хотите принудительно запустить бутблок (для перешивки) можно испортить CRC «вручную» — закоротив адресные линии «выше» бутблочных. Например, я обычно корочу рядом расположенные A15 и A16 (pin 2 и 3). Объём бутблока = 16kB = 2^14, в результате чего он никак не пострадает, а контрольная сумма «остального», понятно, собъётся. Если вам не совсем понятно, зачем это может быть нужно, то когда столкнётесь с запаянной флэшкой, в которую залили «похожую» прошивку — поймёте. И, кстати, для линий адреса это (корочение) совершенно безопасно. После проверки CRC биос «шадовится» (операция Shadow), т.е. происходит копирование содержимого флэшки в «реальную» память, сама флэшка отключается (южным мостом), а для того, чтоб программы поверили, что обращаются к ПЗУ на область адресов биос вешаются атрибуты ReadOnly посредством программирования регистров SB (и/или MSR процессора для AMD K7/K8). Вся дальнейшая работа происходит только с «зашадовленным» образом флэшки.
Вывод: Именно по этим причинам мы можем беспрепятственно вытаскивать флэшку, сразу же, как только увидим строчку «Starting Windows/DOS/linux». Если же потребуется работа именно с самой флэшкой (например, запись в неё ESCD/DMI), то для этого используются соответствующие процедуры, специфичные для каждого чипсета — нужно будет опять подключить флэшку к шине и снова отключить после окончания операции. Вывод: из-за различных способов программирования подключения/отключения флэшки (для различных чипсетов) прошивальщик должен уметь это делать, т.е. «знать» чипсет, на котором происходит перешивка.
Сборка устройства
Для сборки нам понадобится:
- 1 разъем DB25P, можно отрезать от ненужного шнура от принтера
- 4 шт. резисторы по 150 Ом
- 1 любой электролитический конденсатор емкостью 100 мкФ или более и рабочим напряжением на 6.3 В или больше (нужен при запитке от БП)
- Кусок плоского шлейфа с IDC разъемом на 10 контактов (он идеален при наличии SPI разъема на плате)
- Штекер molex (как на жестких дисках ATA), либо гнездо для батарейки CR2032
Ничего дефицитного нет, все можно найти в куче хлама или за копейки в любом радиомагазине. В худшем случае, можно попробовать обойтись вообще несколькими кусками провода, подсоединив контакты с SPI напрямую к LPT, однако, в данном случае нужно быть предельно острожным, да и правильность записи гарантировать сложно.
Схема с сайта автора, при подключении непосредственно к чипу (для флеш-памяти с рабочим напряжением 3 вольта):
Программатор SPIPGM может использоваться и для микросхем флеш-памяти с рабочим напряжением 1.8 Вольт. Автор применяет для этого дополнительный модуль (своего рода переходник), который подключается к основному модулю и состоит из дополнительных резисторов для гашения напряжения и каскада усиления на транзисторах BC547 для выходного сигнала чипа (схемы на сайты автора по ссылке выше). Ниже приводится адаптация схемы подключения, сразу предназначенная для работы с чипами на 1.8В. Для получения напряжения питания в 1.8 Вольта применен делитель напряжения (на схеме серые резисторы, желательно 1/4 Ватт), делитель при желании может быть пересчитан на другие номиналы (я указываю варианты 10 и 12 Ом, или 100 и 120 Ом), а еще лучше заменен подходящим DC-DC преобразователем (например, TLV70018). Диоды любые, нужны они для минимизации ошибок и, в принципе, можно обойтись без них.
Мы же будем подключать программатор не к чипу, а к разъему SPI_J1.
Если разъем 7 контактный, то подключается к нему следующим образом:
1. -> питание +3.3v 2. -> земля от питания и вывод 18 на LPT 3. -> резистор -> LPT 7 4. -> резистор -> LPT 8 5. -> резистор -> LPT 10 6. -> резистор -> LPT 9
Так же, на некоторых материнских платах бывают 9 контактные разъемы, там схема подключения немного отличается:
Разъем DB25P хорош тем, что внутри него можно разместить все необходимые детали. Желательно использовать максимально короткую длину кабеля, иначе будут ошибки записи. Неплохо было бы закрыть провода экраном, либо от антенного кабеля, либо просто обмотав фольгой от шоколадки, не забыв подсоединить экран к земле (GND).
При питании от батарейки конденсатор можно исключить. Лично я брал с +5 шины блока питания (красный провод), подключив к нему через разъем molex и погасив напряжение диодами до
3.3v (двух-трех диодов будет достаточно).
Блок питания все же надежней батарейки. Имея отдельный БП можно запитать напрямую от шины +3.3 (оранжевый провод ATX разъема). Чтобы запустить блок питания без компьютера нужно замкнуть зеленый и черный провода.
Девайс в сборе:
Особенности программирования микросхем Intel 28Fxxx
Если в вашей плате стоит флэшка от Intel — будьте трижды осторожны при прошивке. Дело в том, что интельные микросхемы используют аппаратную защиту бутблока. Что это значит? А это значит, что в них присутствует ещё один сигнал — RP# (pin 30) — разрешение на программирование бутблока. В двухмегабитках — это A17, 1Mbit — NC (NotConnected, не используется). Т.е. для того, чтоб корректно прошилась вся_область_флэшки на ножке RP# должно присутствовать +12V. Именно это задают распространённые на многих Socket7-матерях перемычки с названием Flash Type: Intel / Non-Intel.
Вывод: Если в плате стоит ‘Intel 28Fxxx, а разводка платы не предусматривала правильную коммутацию для программирования Intel-флэшей (что является очень распространённым явлением) — BIOS погибнет при первой же попытке перешивки без особых шансов на восстановление (на этой плате). Для перешивки Intel 28Fxxx на таких платах (без разводки RP#) нужно подать на pin30 вручную +12V, но так, чтоб оно не пошло на саму плату (а это A17) — для это можно просто отогнуть эту лапку, т.е. чтоб она не втыкалась в сам разъём.
Программные особенности прошивки флэшек
Главный аспект, на который хотелось бы обратить внимание — флэшка не перепрограммируется «зараз» (сразу одним блоком) и, наоборот, нельзя перезаписать один отдельно взятый байт. Флэшка поддерживает лишь «блочную» запись (секторизация). У разных типов флэшек разная секторная организация. Например у распространённой 28F001BX есть следующие блоки:
- Первый блок, в начале, самый большой, «главный» — 112kB. В нём обычно располагается всё «тело» упакованного биоса (поэтому самый большой).
- Дальше два одинаковых блока по 4kB — в этих адресах обычно хранятся изменяемые данные типа ESCD/DMI/CMOS/пароли и т.п.
- Последний блок — 8kB — бутблок.
Т.е. говоря техническим языком — i28F001BX имеет организацию 112+4×2+8. Достаточно понятная и логичная организация: самый большой блок в 112kB, всё равно, переписывается лишь при обновлении биоса, дальше — постоянно изменяемые данные, потому сделаны два маленьких блока (чтоб легче и быстрей было перезаписывать эти «куски») и в конце — неизменяемый обычно бутблок (специально отдельно от других — для защиты биоса в смысле возможности запуска аварийного восстановления с дисковода) — он всегда сделан отдельно, что его «не трогали» при обычных перезаписях других блоков. Некоторые флэшки имеют очень мелкую секторизацию, например, та же SST 29EE020 (2Mbit) имеет целых 2048 одинаковых секторов по 128 байт. Однако большинство, всё ж, придерживается организации схожей с вышеприведенной, потому как маленький блок имеет и свои отрицательные стороны (например, в плане более сложной защиты от перезаписи).
LPC-интерфейс.
В конце 97-го года Intel решила, что у мощного процессора обязательно должен быть «баальшой» биос (4-8MBit и больше, хотя большинство фирм до сих пор используют в основном лишь 2Mbit), а для этого никак не хватит ног (для линий адреса) на широкораспространённых «обычных» PLCC32-флэшках. Сказано — сделано, так появился стандарт LPC (LowPinCount — «малоколичественноножное» соединение, хотя корпус по понятным причинам оставили прежним — PLCC32). Кроме возможности использования больших (до 4Gb!) объёмов флэшей одной из самых главных причин называлась скорая погибель ISA-шной шины, отстутствие которой снимало потребность разводить линии адреса/данных и позволяло ограничиться меньшим количеством линий для общения, в первую очередь, «мультика» (SuperIO) и южного моста (очевидная возможность же интеграции SIO в сам SB скромно умалчивалась;). В LPC для этого используется лишь пять проводов: LAD0-LAD3 + LFRAME# (поэтому «lowpin…»). Применительно к флэшам (т.к. использовать LPC-интерфейс могут разные устройства) этот стандарт вылился в следующее воплощение:
Далее в скобках — значение ножки в режиме LPC или FWHю. Как видно, такая флэшка может работать сразу в двух различных режимах — LPC-mode и PP-mode (Parallel-Programming). Режим работы выбирается уровнем на ножке IC (Interface Configuration Pin) во время старта компьютера- «0» — LPC-mode, «1» — PP-mode. Режим PP наиболее близок к «обычным» флэшкам и совместим с ними по многим (но не по всем) ножкам, с учётом только того, что линий адресов всего 11 (0-10), но зато они мультиплексируются, т.е. сначала выдаётся/считывается значение A00-A10, а затем A11-A21. С учётом этого (мультиплексирования адресов) и «пропажи» сигнала CE всё остальное полностью аналогично «обычным» флэшкам. В режиме LPC общение между мостом и флэшкой происходит лишь по четырёхбитной шине, а пятый LFRAME# служит в качестве стартового (для начала операции по обмену данными). Плюс LRESET# и LCLK#, которые полностью аналогичны своим собратьям на материской плате — вот и весь набор нужных проводов (остальные — опционально). В общем, это есть попытка максимально упростить интерфейс, но не скатиться до «абсолютно последовательного», типа I2C, оставив возможность использования даже режимов DMA и BusMaster-инга (которые могут использоваться, например, в устройствах типа DiskOnChip/LPC). Режим PP используется при «хабовые»). Он был полностью аналогичен LPC электрически (по ножкам/разъёму), но (дальше сами догадаетесь;) — абсолютно _несовместим_ по протоколу передачи данных. Как можно прочитать в некоторых документах, это было сделано для возможности поставить в систему кроме LPC-устройства ещё и FWH, повесив их на одну и ту же шину (ведь они электрически совместимы, но при передаче пакетов данных каждый будет брать свой из-за разных протоколов), при чём «хабовых» флэшей можно было навешать до шестнадцати штук, т.к. в них появились дополнительные ID0-ID3 сигналы. (прим. автора: все мои уколы в сторону родителя x86 просьба воспринимать как шутку, хотя как известно — в каждой шутке есть доля шутки… см. рис. выше. Как видно, картина совершенно аналогично LPC, только названия LAD0-3 + LFRAME# заменены на FWH0-3 + FWH4. Режим PP совершенно тот же. FWH отличается от LPC протоколом, т.е. все команды для операций имеют совершенно другие кодовые значения в полях обмена данными. Плюс возможность использовать несколько (до 16) FWH-устройств, благодаря введению новых «идентификационных» сигналов ID0-3. По умолчанию для работы в качестве флэшки на матплате принимается (что и запросто можно проверить, прозвонив соответсвующие ножки (9-12) на вашей интеловской плате (они все «на земле»). Вообще, универсальным способом отличить флэшку по типу хабовая/обычная можно просто прозвонив ножку pin28 — в хабовой она будет строго на земле, в то время как в «обычной» будет что-то в районе килоома («звонить» надо в колодке самой матплаты, хотя некоторые флэшки тоже «звонятся» — для этого используйте pin16/28).
Собственный комплекс для перепрошивки bios
Если вы по работе постоянно имеете дело с потребностью в перешивке могу дать несколько рекомендаций. Кто-то может посоветовать использовать в таком случае именно программатор, хотя я так не считаю и даже не советую. Для этого есть две простые и веские причины — во-первых, программатор не знает всех типов микрух (правильней, конечно — есть такие, что знают, но их цена исчисляется тремя нулями без преувеличения), во-вторых, даже не самый крутой программатор просто дороже.
Для перешивки 99.9% флэшек (к матплатам, конечно) вам понадобятся три платы:
- Что-нибудь подревнее, под Pentium1 — для перешивки очень распространённых Intel-флэшей 1Mbit.
- Что-нибудь под P2 с 2Mbit-ным биосом — для перешивки остальных «обычных» 1- и 2Mbit флэшек.
- Что-нибудь под P3 из серии i8xx — для перешивки «хабовых» флэшек.
- (Добавлен в последней версии статьи — прим.ред.) Что-нибудь на nForce (1/2/3).
В качестве п.1 я использую Asus на i430HX (конкретно — P55T2P4). Для таких случаев (1Mbit и /или Intel-флэшки) рекомендуется именно Asus по причине возможности использовать исключительно удобный асусовский прошивальщик — старый pflash или поновее aflash — элементарные в использовании, не пристают с глупыми вопросами и показывают адрес повреждённой области микросхемы в случае ошибки.
В качестве п.2 я использую плату на i440BX (конкретно — PCPartner-928). Она 2Mbit-ная, что позволяет шить и 1- и 2Mbit-ные «обычные» флэшки. Тип разъёма на ней DIP32, для перешивки PLCC32 используется переходничок PLCC32->DIP32, сделанный из старой неисправной платы с PLCC32 колодкой (см. фото).
Cамодельный переходник PLCC32->DIP32.
Сделан путём фигурной резьбы лобзиком по неисправным материнским платам;) плюс допаянные вручную ножки) Cамодельный переходник PLCC32->DIP32 — вид снизу В качестве п.3 я использую плату на i820 (конкретно — Chaintech 6CTA2). На ней стоит i82802AB (4Mbit), что позволяет шить как сами интеловские «хабы» так и «хабовые» 2- и 4Mbit-ные флэшки.
В качестве п.4 я использую плату на nForce (первый который, но не принципиально) — Abit NV7-133R. Она предназначена для самых тяжёлых случаев — для перешивки «чисто» LPC-шных флэшек. /Просто многие (даже, видимо — большинство) производители плат на nForce1/2/3 (а LPC стал использоваться именно на них) обычно используют флэшки с поддержкой и LPC и FWH, что позволяет шить их на п.3)/.
Вообще никаких особых условий по выбору конкретной модели или фирмы (кроме случая с Асус для Intel-флэшей) нет. Не нужно стремится брать для такой цели «крутые» и «навороченные» платы. Нужно строго наоборот — чем «безвестнее» и примитивнее плата — тем более лучший получится из неё «программатор». Т.е. для этого просто идеальны всякие Акорпы да PCPartner-ы, а вот любые платы даже с минимальными «претензиями» всегда ухудшают «универсальность». Плюс, конечно, другим важным условием является хороший и удобный доступ к гнезду флэшки.
В качестве главного программного обеспечения используются amiflash (конкретно — версия 8.37, только с ключами). Он знает большинство чипсетов/флэшей и очень удобен в работе благодаря удобной коммандной строке (батфайлик для него прилагался выше).
Для редких случаев, когда не справляется amiflash (некоторые типы флэшек и/или экзотные чипсеты) — используется awdflash (обязательно с ключом /f).
Для тяжёлых случаев (как правило очень экзотные флэши/биосы/чипсеты, очень старые, либо, наоборот, самые новые матплаты) используется Uniflash. Он же может быть использован с целью визуальной проверки места проблем во флэшке. Плюс особенно стоит обратить на него внимание счастливым обладателям современных плат на nForce2, использующие LPC-флэшки типа PMC (как правило — Epox/Gigabyte).
PMC-шки поддерживают два режима (LPC/FWH) и, может быть, из-за этого часто «стандартные» прошивальщики некорректно их перешивают (а то и зависают в процессе перешивки) — uniflash же это делает исключительно корректно.
п.с. последние версии uniflash стали настолько корректными и удобными, что теперь я в основном только им и пользуюсь…
Нужна ли резервная копия?
Кажется, что свежая версия — всегда благо. На самом деле производитель может допустить нелепую ошибку в коде новой прошивки, и, чтобы не сидеть, пока они её исправляют, без ПК, нужно иметь возможность откатиться к предыдущей версии. Резервная копия защитит от последствий совершённых ошибок.
Производители обычно не предоставляют инструментов для резервного копирования, вместо них это делают сторонние разработчики, производя инструменты наподобие Universal BIOS Backup ToolKit. Написанный в 2008 году, продукт позволяет создавать резервные копии на системах до Windows 8.1, включая её. Перед её использованием отключите антивирус: он определит программу как вирус. В качестве защиты качайте ToolKit только с оф. сайта. Она интуитивно понятна, так что инструкции не требуется.