Пока читал тему, рыдалъ от изысканий ув. search_max'а Ну там, всякие подстроечные "резюки" (или резаки)...
По теме: после попыток перепрошить проблемную зависающую 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 не определяется... Ладно, пробую читать содержимое - читает, странно... Потом только смотрю Реадми.тхт в котором поддержки указанной флеши нет. Но, повидимому, стандартными командами чтения/записи всё работает. Уверенно читает без ключа задержки /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
Пока читал тему, рыдалъ от изысканий ув. search_max'а Ну там, всякие подстроечные "резюки" (или резаки)...
По теме: после попыток перепрошить проблемную зависающую 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 не определяется... Ладно, пробую читать содержимое - читает, странно... Потом только смотрю Реадми.тхт в котором поддержки указанной флеши нет. Но, повидимому, стандартными командами чтения/записи всё работает. Уверенно читает без ключа задержки /d=xxxx. Но, всё же, для режима чтения поставил /d=10 (для уверенности). Для записи пришлось ставить /d=100 - потому как без делэй писать не хочет.
P.S. OLIFA плюх в репутацию за ссылку.
Добавлено спустя ...надцать часов.
Час от часу не легче...
Поигравшись с ещё одной флешкой M25P05, путем проб и ошибок определил, что параметр /d= не критичен. Почему неуверенно писало первые разы - не известно.
Основная проблема вот в чем:
Программатор был сделан как "конструкция выходного дня", слепленная на коленке из того что было... дабы перепрошить SST25VF080B с вышеуказанной материнки. Выпаял флешку, запаял на переходник, прочитал содержимое "запоротой" прошивки (содержимое вполне похоже на прошивку). Сделал Erase. Проверил на "чистоту" - ОК. Пишу новый БИОС, потом читаю - мусор. Ввожу зарежку, повторяю процедуры стирания, записи и чтения - аналогичный мусор. Причем байт в байт совпадающий с предыдущим. Убираю кабель-удлиннитель, тыкаю плату прямо в порт LPT - то же самое. Гружусь с флеши под Вин98-м ДОСом, добавляю недостающие CSDPMI файлики. Повторяю процедуру - всё точь в точь совпадает - тот же мусор. Кстати, делал unprotect, биты защиты снялись. Но положительного результата это не дало.
Неужели флеша таки умерла? Жаль, нет другой емкой флеши 25ххх чтобы опробовать ещё раз на другом "пациенте". Ну разве что ехать на базар и покупать один из вариантов, который есть на рынке - ST M25P80 или Atmel AT26DF081. Обе 8-мегабитки, НО! В таблице поддерживаемых флешей, в БИОСе нет таких... причем для каждой флеши свои процедуры работы стирания/записи... ну выглядит примерно так:
Как вариант - подправить таблицу для Numonyx, второй байт (Device ID) поставить 20h (вместо 80h). Или для JEDEC ID - 20h & 14h. Кстати... не нашел у Numonyx'а (или ST) Device ID=80h