Автор: Vadimm , 26 февраля 2009
слетела прошивка на материнке, биос MX25L4005,
Перечитал все что мог на форуме, но внятного ответа так и не нашел.
разьема на матери SPI нет
что могу:
1 отпаять флешку
2 есть программатор willem3m/35
вопрос - можно ли прошить на этом прогере?
если нет, то может как его переделать?
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

maco

16 лет 11 месяцев назад

[off]
Willem беспроблем заливает эти флешки, ток надо скачать новую версию программы и там добавленно большое количество SPI Flash...
Угу и заодно слегка переделать плату :).[/off]

Facyk

16 лет 11 месяцев назад

Ну на счёт Willem 3/4 незнаю... но у меня 4.5 и без переделок всё пошло... но ставил микруху mx25l8005)

maco

16 лет 11 месяцев назад

[off]
но у меня 4.5 и без переделок всё пошло
Угу. И ПО, которое поддерживает SPI флешки тоже работает с PCB4.5, а у автора PCB3.x :).
PCB3.x тоже можно переделать, но иногда значительно проще сваять персональный программатор для SPI флешек.[/off]

Facyk

16 лет 11 месяцев назад

Ну тут уж сори )))... я для информации сказал чем прошить можна... а вам видней ;)

R_Soft

16 лет 11 месяцев назад

[off]Пока читал тему, рыдалъ от изысканий ув. search_max'а :) Ну там, всякие подстроечные "резюки" (или резаки)...[/off]

По теме: после попыток перепрошить проблемную зависающую MB Gigabyte GA-965P-S3, на 80% прогресса перешивки она таки повисла... :) Причем манипуляции с HDD Auto-Recovering не давали никакого эффекта. Обсосал тему по вопросу рекаверинга БИОСа с HDD, расковырял код родного БИОСа посмотреть, что же там такого "ключевого"... ничем не отличается от дампов, приведенных mikkey. Пришлось "ваять" прогамматор, предложенный OLIFA...
Программатор работает без особых нареканий. Стабилизатор 3,3 В делал на LM1117-3.3. Параллельно флеше, традиционно, поставил блокировочную емкость 0,1 мкФ. Токоограничительные резисторы 0805 нашел номиналом 120 Ом. Реадми.тхт о поддерживаемых флешах сразу не читал, поэтому здесь немного осекся - проверял на M25P05 (64 кБ). Ессно, с ключом /i (идентификация) не работает... Полез за осциллографом, смотреть ошибки в "четырех припаянных проводах". :) Везде сигналы есть, ставлю delay 100 - опять с ключом /i не определяется... Ладно, пробую читать содержимое - читает, странно... /images/koloboks/scratch_one-s_head.gif Потом только смотрю Реадми.тхт в котором поддержки указанной флеши нет. :) Но, повидимому, стандартными командами чтения/записи всё работает. Уверенно читает без ключа задержки /d=xxxx. Но, всё же, для режима чтения поставил /d=10 (для уверенности). Для записи пришлось ставить /d=100 - потому как без делэй писать не хочет.
P.S. OLIFA плюх в репутацию за ссылку. :)
Добавлено спустя ...надцать часов.
Час от часу не легче...
Поигравшись с ещё одной флешкой M25P05, путем проб и ошибок определил, что параметр /d= не критичен. Почему неуверенно писало первые разы - не известно.
Основная проблема вот в чем:
Программатор был сделан как "конструкция выходного дня", слепленная на коленке из того что было... дабы перепрошить SST25VF080B с вышеуказанной материнки. Выпаял флешку, запаял на переходник, прочитал содержимое "запоротой" прошивки (содержимое вполне похоже на прошивку). Сделал Erase. Проверил на "чистоту" - ОК. Пишу новый БИОС, потом читаю - мусор. Ввожу зарежку, повторяю процедуры стирания, записи и чтения - аналогичный мусор. Причем байт в байт совпадающий с предыдущим. :) Убираю кабель-удлиннитель, тыкаю плату прямо в порт LPT - то же самое. Гружусь с флеши под Вин98-м ДОСом, добавляю недостающие CSDPMI файлики. Повторяю процедуру - всё точь в точь совпадает - тот же мусор. :) Кстати, делал unprotect, биты защиты снялись. Но положительного результата это не дало.
Неужели флеша таки умерла? Жаль, нет другой емкой флеши 25ххх чтобы опробовать ещё раз на другом "пациенте". Ну разве что ехать на базар и покупать один из вариантов, который есть на рынке - ST M25P80 или Atmel AT26DF081. Обе 8-мегабитки, НО! В таблице поддерживаемых флешей, в БИОСе нет таких... причем для каждой флеши свои процедуры работы стирания/записи... ну выглядит примерно так:
seg000:0E95 ID_TABLE db 0BFh ; DATA XREF: RD_ID_Flash+Eo seg000:0E95 ; SST - First Byte - Manufacturer ID seg000:0E96 db 44h ; D ; SST25VF040A - Second Byte - Device ID seg000:0E97 dw offset SST_CALL seg000:0E99 ; seg000:0E99 db 0BFh ; ┐ ; SST seg000:0E9A db 8Dh ; Н ; SST25VF040B seg000:0E9B dw offset SST_CALL seg000:0E9D ; seg000:0E9D db 0BFh ; ┐ ; SST seg000:0E9E db 80h ; А ; SST25VF080 seg000:0E9F dw offset SST_CALL seg000:0EA1 ; seg000:0EA1 db 0BFh ; ┐ ; SST seg000:0EA2 db 8Eh ; О ; SST25VF080B seg000:0EA3 dw offset SST_CALL seg000:0EA5 ; seg000:0EA5 db 0C2h ; ┬ ; Macronix seg000:0EA6 db 20h ; MX25L8005 seg000:0EA7 dw offset MXIC_WINB seg000:0EA9 ; seg000:0EA9 db 9Dh ; Э ; PMC seg000:0EAA db 7Eh ; ~ ; PM25LV040 seg000:0EAB dw offset PMC_CALL seg000:0EAD ; seg000:0EAD db 9Dh ; Э ; PMC seg000:0EAE db 13h ; PM25LV080 seg000:0EAF dw offset PMC_CALL seg000:0EB1 ; seg000:0EB1 db 1 ; Spansion seg000:0EB2 db 2 ; S25FL008A seg000:0EB3 dw offset SPAN_SST_EON seg000:0EB5 ; seg000:0EB5 db 20h ; Numonyx (ST & Intel) seg000:0EB6 db 80h ; А ; ??? seg000:0EB7 dw offset SPAN_SST_EON seg000:0EB9 ; seg000:0EB9 db 1Ch ; EON seg000:0EBA db 12h ; EN25P40 seg000:0EBB dw offset SPAN_SST_EON seg000:0EBD ; seg000:0EBD db 0EFh ; я ; Winbond seg000:0EBE db 12h ; W25X40 seg000:0EBF dw offset MXIC_WINB seg000:0EC1 ; seg000:0EC1 db 0EFh ; я ; Winbond seg000:0EC2 db 13h ; W25X80 seg000:0EC3 dw offset MXIC_WINB seg000:0EC5 ; seg000:0EC5 db 0 seg000:0EC6 db 0 seg000:0EC7 ; seg000:0EC7 CMD_TABLE db 0ABh ; DATA XREF: RD_ID_Flasho seg000:0EC7 ; Command RDID seg000:0EC8 db 90h ; Р ; Command RDID seg000:0EC9 db 9Fh ; Я ; Command JEDEC ID (Two Bytes) seg000:0ECA db 0
Как вариант - подправить таблицу для Numonyx, второй байт (Device ID) поставить 20h (вместо 80h). Или для JEDEC ID - 20h & 14h. Кстати... не нашел у Numonyx'а (или ST) Device ID=80h /images/koloboks/scratch_one-s_head.gif

R_Soft

16 лет 10 месяцев назад

Пока нет возможности приобрести ST M25P80 и AT26DF081, поэксперементировал с AT25F1024N (1 Mbit). Эта флешь тоже не входит в список поддерживаемых, поэтому не читает сигнатуру, но программатор содержимое успешно прочитал. Пробовал Erase - не трёт, хоть с unlock, хоть без... Пробовал писать - пишет. Но при сравнении записанной прошивки с оригиналом очень много расхождений. Хотел глянуть внутрь программы прошивальщика - а программа оказалась покриптована UPX'ом, дальше не стал заморачиваться...

Skladchik

16 лет 10 месяцев назад

Может напишу не в тему - но хотелось бы выразить своё мнение по поводу прошивки SPI флэшей.
Как то все подзабыли о неплохом на мой взгляд решении . Я давно уже собрал себе это не сложное устройство - и у меня пока что не возникало вопросов с прошивкой флешей , вплоть до последних.
Использую версию програмки с этого сайта 1.0.2.7
Ранее тема этого програматора уже обсуждалась на нашем сайте.

R_Soft

16 лет 10 месяцев назад

Skladchik, решение, возможно, и гениальное... но, сайт требует авторизации. :) а нафик оно другим надо, спрашивается в задаче? ;) Вся гениальность в простоте, и не надо регистрироваться, что характерно...
Итак, погуглив про SPI программаторы на базе Байтбластера, нашел сайтец http://spiflash.org который описывает железяку на базе ByteBlaster'а. И дается некая софтина под винду. Опробовал - прошить SST25VF080B удалось!
Пробовал шить AT25F1024 - выводит загадчный ID - Manufacturer Atmel, Memory Type 96, Capacity 0. Ну а если капасити ноль, то и шить/читать ессно не хочет... странно. Тогда попробую ещё на семействе ST Micro M25Pxx, отпишу результат.
Схема проста:
Стабилизатор на 3,3 В (LM1117-3.3) запитывает Байтбластер (на 74HC244) и флешу...
Разъем Байтбластера <-> Флеша
--------------------------------------------
1 TCK <-> CLK (6 pin)
2 GND <-> GND (4 pin)
3 TDO <-> DO (2 pin)
4 VCC <-> VCC (8 pin) <- со стабилизатора LM1117-3.3
5 TMS <-> /CS (1 pin)
7 nSTATUS <-> GND (сигнал заводится на GND для проверки подключения ByteBlaster'а программой)
9 TDI <-> DIO (5 pin)
10 GND <-> GND (4 pin)
Также, по стандартной схеме включения флеши - выводы 3 (/WP) и 7 (/HOLD) завести на VCC.
Между VCC и GND в непосредственной близости от флеши (или панельки) установить блокировочную емкость 0,1 мкФ. Питание брать с USB.
Дополнено...
Маленькие багфиксы и дополнения:
Чтобы Байтбластер определялся правильно (Test Hardware), нужно проверить, что 15 вывод LPT на Байтбластере заведен на GND (проверка подключения). А также проверить сигнал nSTATUS на GND.
Между выводом 2 (DO) и 8 (VCC) флеши добавить подтягивающий резистор 10 кОм.
Проверено на M25P05AV - ID не работает, но флеша читается/шьется/стирается. Повидимому программа рассчитана на емкие флеши.
Проверено на AT25F1024N - ID определяется частично (см. выше), соотв. не шьется/не читается/не стирается. А если и даешь попытку шить файл, то после прошивки не читает т.к. ID не известен :)
В общем опять где-то что-то не так... или не то...

savely

16 лет 10 месяцев назад

А с исходниками есть софт под такие типа программаторы? Там же как в юнифлеше - почитал даташит, добавил микруху, практически уверен... Ну, переходник еще...

R_Soft

16 лет 10 месяцев назад

savely
Думаю, что есть. Но я глубоко не копал в этом направлении...
Вот, нашел славненький кроссреференс (Spansion® NOR Flash MemoryCompetitive Cross Reference Guide for Embedded Applications, January 2008) на флеш память фирмы Spansion.
Судя по показателю совместимости B- (Pin-for-pin compatibility – difference in sector architecture, # of banks, bank size.) выявились следующие претенденты на замену 8-мегабитных флешей:
AT26DF081A Atmel
S25FL008A Spansion
EN25P80 EON
EN25B80 EON
EN25F80 EON
MX25L8005 Macronix
25VF080B SST
M25P80 ST Micro
W25P80 Winbond
W25X80 Winbond
С вышеозначенными в предыдущих постах двумя флешами (AT26DF081A & M25P80) надо будет попробовать пошаманить в ближайшее время, пока у меня материнка ещё доступна...