КороткоМануал по прошивке микросхемы БИОСа с выпайкой из материнки
Материнская плата - Gigabyte GA-965P-DQ6. Слетели оба БИОСа при перепрошивке на новую версию. Единственный вариант - выпаивать флеш-память и шить самопальным LPT-программатором (или любым SPI).
ДлинноПоявился тут давеча пациент один, гигабайтом звать. Все симптомы явно указывали на то, что слетел БИОС. И это не смотря на то, что он в двух копиях распаян на мамке, а так же можно зашиться с дампа на винте или болванке. Не тут-то было.
Как выяснилось чуть позже - БИОС рухнул во время прошивки на свежую версию. Машина ребутнулась и привет. Странно, что слетело сразу с обеих флех. Одним словом - гигабайт.
И так, что имеем (симптомы):
1. При включении пускается и останавливается кулер проца.
2. По остановке кулера, врубается кулер БП и дует буквально пару секунд.
3. Запускается кулер проца на низких оборотах и так же крутится пару секунд.
4. Все останавливается. Тишина.
5. Еще через 2 секунды цикл повторяется вновь.
Наличие периферии тут не причем. Все то же самое можно наблюдать как на полностью снаряженной машине, так и на комплекте мать+камень+бп (без памяти, видюх и т.д.).
Что ж, выход один - шить флеш-память. Интерфейс понятный и давным-давно стандартный - SPI. Шить, в принципе, можно и внутрисхемно, но на этой мамке не оказалось распаянного разъема SPI, а искать где он может торчать, было очень и очень лениво. В ход пошел паяльник.



Если под руками нет человеческого паяльника, а еще лучше станции, а еще лучше фена, а еще ... берем имеющийся и приводим жало в человеческий вид напильником. Кромка должна быть ровной и желательно не более 1мм толщиной. Поскольку мой паяльник предательски сдох, пришлось все паяльные дела вести тем валенком, жало которого фигурирует на снимках ниже.
Вообще, широким жалом самое милое дело отпаивать подобные микрухи. У меня на все про все ушло около 2-3 секунд времени. Сказка.



Честь и хвала тем людям, которые пишут софт для самопальных программаторов. Вот на этом сайте
SPI FlashROMs supported (new are marked with *) *********************************************** AMIC: A25L05PU/PT (64kB) A25L10PU/PT (128kB) A25L20PU/PT (256kB) A25L40PU/PT (512kB) A25L80PU/PT (1MB) A25L16PU/PT (2MB) A25L32PU/PT (4MB) A25L64PU/PT (8MB) A25L512 (64kB) A25L010 (128kB) A25L020 (256kB) A25L040 (512kB) A25L080 (1MB) - tested OK Atmel: *AT25F512B (64kB) *AT25DF021 (256kB) AT26DF041 (512kB) AT25DF041A (512kB) AT26F004 (512kB) - tested OK AT26DF081 (1MB) AT25/26DF081A (1MB) AT25DF081 (1MB) *AT26DF161 (1MB) AT26DF161A (2MB) AT25DF161 (2MB) *AT25DQ161 (2MB) AT25/26DF321 (4MB) AT25DF321A (4MB) *AT25DQ321A (4MB) AT25DF641(A) (8MB) EON: *EN25B10 (128kB) *EN25B20 (256kB) *EN25B40(T) (512kB) *EN25B80 (1MB) *EN25B16 (2MB) EN25P32 (4MB) EN25P64 (8MB) EN25P128 (16MB) EN25F10 (128kB) EN25F20 (256kB) EN25F40 (512kB) EN25F80 (1MB) - tested OK EN25F16 (2MB) EN25F32 (4MB) EN25F64 (8MB) EN25F128 (16MB) ESMT: F25L004A (512kB) - tested OK *F25L008A/08PA (1MB) *F25L016A/16PA (2MB) *F25L32PA (4MB) *F25L64PA (8MB) F25S04PA (512kB) F25L08PA (1MB) *F25L016QA (2MB) F25L32QA (4MB) F25L64QA (8MB) Intel: QB25F016S33B8 (2MB) QB25F032S33B8 (4MB) QB25F064S33B8 (8MB) Macronix: *MX25L512E (64kB) MX25L1005/1006E (128kB) MX25L2005/2006E (256kB) MX25L4005/4006E (512kB) MX25L8005/8006E (1MB) - tested OK MX25L1605/1606E (2MB) - tested OK MX25L3205/3206E (4MB) MX25L6405/6406E (8MB) *MX25L12835E/12836E (16MB) *MX25L25635E/25735E/25835E (32MB) PMC: Pm25LV512(A) (64kB) - tested OK Pm25LV010(AB) (128kB) Pm25LV020 (256kB) Pm25LV040 (512kB) - tested OK Pm25LV080B (1MB) Pm25LV016B (2MB) Pm25LV032B (4MB) Pm25LV064B (8MB) Spansion: S25FL004A (512kB) S25FL008A (1MB) S25FL016A (2MB) S25FL032A (4MB) S25FL064A (8MB) S25FL128P/129P (16MB) *S25FL256S (32MB) *S25FL512S (64MB) *S25FL01GS (128MB) ST Microelectronic/Numonyx: *M25P05 (64kB) M25P10 (128kB) M25P20 (256kB) M25P40 (512kB) M25P80 (1MB) M25P16 (2MB) M25P32 (4MB) - tested OK M25P64 (8MB) M25P128 (16MB) *M45PE10 (128kB) *M45PE20 (256kB) *M45PE40 (512kB) *M45PE80 (1MB) *M45PE16 (2MB) *M25PX80 (1MB) *M25PX16 (2MB) *M25PX32 (4MB) *M25PX64 (8MB) *N25Q032A13E (4MB) *N25Q032A11E (4MB) *N25Q064A13E (8MB) *N25Q064A11E (8MB) *N25Q128A13E (16MB) *N25Q128A11E (16MB) *N25Q256A13E (32MB) *N25Q256A11E (32MB) *N25Q512A13G (64MB) *N25Q512A11G (64MB) *N25Q00AA13GB (128MB) SST: *SST25VF512(B) (64kB) - tested OK *SST25VF010(B) (128kB) *SST25VF020(B) (256kB) *SST25VF040(B) (512kB) *SST25VF080(B) (1MB) - tested OK *SST25VF016(B) (2MB) *SST25VF032(B) (4MB) *SST25VF064C (8MB) *SST25VF128(B) (16MB) SST26VF016 (2MB) SST26VF032 (4MB) SST26VF064 (8MB) Winbond: W25Q10B (128kB) W25Q20BV (256kB) W25Q40BV (512kB) W25Q80BV (1MB) - tested OK W25Q16BV (2MB) - tested OK W25Q32BV (4MB) W25Q64BV (8MB) W25Q128BV (16MB) *W25Q256FV (32MB) W25X10 (128kB) W25X20 (256kB) W25X40 (512kB) W25X80 (1MB) - tested OK W25X16 (2MB) W25X32 (4MB) - tested OK W25X64 (8MB)
В принципе, обойтись можно и без сопротивлений, напрямую припаявшись к микрухе. Запитать прошиваемую флешку можно хоть от USB, поставив соответствующего номинала сопротивление. Я же использовал батарейку с ремонтируемой мамки, благо SST25VF080B (флеш-память) работает от 2.7 до 3.6 вольт по
Кстати, прежде чем варганить программатор, сверьтесь с распиновкой вашей флешки.
У выше названной пины выглядят так:
1. CE#
2. SO
3. WP#
4. Vss (-)
5. SI
6. SCK
7. HOLD#
8. Vdd (+)
Так же хотелось бы дать совет - не делайте провода от порта до микросхемы длинными. Поскольку программатор примитивнее палки, он не защищен от помех и прочих факторов, влияющих на его стабильность при работе. Так что никаких 5-10м удлинителей и подобных вещей. Все должно быть коротко и ясно.
По программатору вроде все.



Прошивальщик качаем
Я не стал экспериментировать с программированием флешки под Win7 x64 Ult, а запустил все это дело под самой обычной Win XP SP3. Все завелось с первого раза без глюков и проблем.
Теперь по поводу самого процесса. Тут схема такая:
- идентифицируем микруху (чтобы быть уверенными, что все "ок" и она правильно распозналась)
- разлочиваем на записать
- стираем
- прошиваем
Команды, необходимые при работе с прошивальщиком:
spipgmw.exe /iЗапрос на идентификацию флеш-памяти. Основное, что интересует - совпадение модели микросхемы с реальностью.
spipgmw.exe /uРазблокировка флешки для последующей записи.
spipgmw.exe /eОчистка содержимого флеш-памяти.
spipgmw.exe /p файл_прошивкиПрошивка флешки из файла БИОСа (надеюсь ясно, что сливать его надо с сайта производителя материнки ?)
Поскольку мной двигало любопытство, я решил, прежде чем стереть флешку, посмотреть, что же там в ней содержится. Поэтому вначале сделал дамп (spipgmw.exe /d файл_дампа). Содержимое оказалось простым - первые 65535 байт FF, далее 00 до самого конца. Занятно.
Вообще настоятельно рекомендую, после того, как прошьете микруху, сделайте дамп и сравните с эталонной прошивкой (например, программой
Что ж, поехали...






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

Если все "ок", то после включения, на экране появится графическая заставка, которая через несколько мгновений сменится табличкой с просьбой не отключать комп, потому что идет сохранение копии БИОСа в резервную флеш-память. Затем машина перезагрузится и скажет, что с настройками БИОСа дела плохи и предложит загрузить дефолтные значения. Загружаем. Все ! Осталось настроить БИОС под свои нужды...



Спасибо за внимание.