Автор: sush , 9 октября 2010
Здравствуйте.

Плата Foxconn G41MXE

Сегодня столкнулся с такой вещью: принудительно (нажатием Ctrl + Page Up) запустил аварийную перепрошивку (заранее вставил дискету с файлом образа AMIBOOT.ROM).
Дискета почиталась почиталась, файл прочитался, после чего на экране появился логотип AMI и подряд несколько строк примерно следующего содержания:

Starting Recovery BIOS.
Erasing Flash.
Programming Flash
...........
Reboot System.

Соответсвенно случилась перезагрузка и всё нормально прошилось.
--------------------------------------------------------------------------------------------------------------------------------

Теперь собственно суть вопроса:
Я, ранее разбираясь в этом самом алгоритме аварийного восстановления, был убеждён (да и остаюсь в общем-то), что на этом этапе работы BIOS из устройств инициализировано только самое низкоуровневое и необходимое для перепрошивки.
Видеоконтроллер если и работает, то очень усечённо, его ROM точно не запускался ещё!
Да и вообще, логотип AMI и видео ROM - это упакованные компоненты, а запуск аварийного восстановления возможен также при скомпроментированности упакованных модулей образа BIOS.
Строковые константы тоже кстати сидят в одном из упакованных модулей - Multilanguage.

Почему же я увидел на экране логотип и строки?
Получается, что аварийное восстановление обращается к упакованным модулям?
Если кто сталкивался или разбирался более подробно - подскажите разгадку................................
Я покопаю алгоритм дальше, надо разобраться.
Есть вариант, что принудительный запуск аварийного восстановления отличается от реального сбоя CRC....
Содержимое данного поля является приватным и не предназначено для показа.

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

15 лет 4 месяца назад

[off]Если это поможет отцу русской демократии :):
; 964F1P05.rom sub_F464A: push ds push es mov al, 0D6h out 80h, al push 0 pop es push 8000h pop ds mov al, ds:63h and al, 8 xor al, 8 jz short loc_F467C and byte ptr ds:63h, 0FEh call far ptr 8000h:71Eh jz short loc_F467C xor al, al call sub_F4683 jz short loc_F467C mov cx, ds:66h call far ptr 8000h:80Ch loc_F467C: or ds:63h, al pop es pop ds retn sub_F4683: mov ax, 0B3B3h call far ptr 8000h:474h test al, 40h jz short loc_F46BB and al, 0BFh xchg ah, al call far ptr 8000h:478h mov al, 0B1h call far ptr 8000h:474h mov ah, al mov al, 0B0h call far ptr 8000h:474h cmp ax, 55AAh jnz short loc_F46BB mov ax, 0B0h call far ptr 8000h:478h mov al, 0Ah cmp ax, ax jmp short locret_F46BF loc_F46BB: xor al, al or sp, sp locret_F46BF: retn[/off]

sush

15 лет 4 месяца назад

>> to maco

Вы приводите пост, в котором выполняется опрос клавиатуры на предмет нажатия клавиш Ins/Del/Ctrl + Page Up/Ctrl + Page Downp/Ctrl + Home.
Уже в следующей за ним процедуре проверяется необходимость перехода на Rercovery BIOS на данной стадии.
Если были нажатия Ctrl + XXX, то переход произойдёт и пойдёт опрос поддерживаемых устройств аварийного восстановления - это всё известно.
Непонятка с присутсвием упакованных компонент образа в процессе аварийного восстановления....

PS: хотел прилипить к ответу такой же как у вас листинг - ида на сером фоне, но пока не понял как это делается. Подскажите в двух словах.

maco

15 лет 4 месяца назад

[off]Можете покопаться еще в POST D5:
.....
Copies compressed boot block code to memory in right segments.
.....
Можете пойти экспериментальным путем - залить с помощью программатора только bootblock и поглядеть на происходящее.

Листинг - используйте теги [notag]....[/notag].[/off]

sush

15 лет 4 месяца назад

хм.....
D5 не занимается распаковкой

D5 занимается копирование бутблока в ОЗУ (в сегмент 8000) и переходит туда для продолжения работы, а F000 затеняется RAM

А вот с попоробовать залить только бутблок - это вариант! Эврика!
...только вот микросхема там MX25L8005, а у меня нет к ней программатора
так что критических ошибок допускать нельзя

maco

15 лет 4 месяца назад

[off]О распаковке речь и не идет пока :). Просто упоминаются упакованные части bootblock'а - тут уже сами разбирайтесь, есть ли таковые.

только вот микросхема там MX25L8005, а у меня нет к ней программатора
Найти еще одну микросхему с SPI интерфейсом IMHO не сложно (хоть на 64 кб). Программатор для SPI собрать тоже не сложно.
Естественно, производить операции над основной микросхемой нежелательно. Так что ищите еще одну микросхему.[/off]

sush

15 лет 4 месяца назад

упакованных частей в бутблоке нет, там итак неиспользованного места полно остаётся в бутблоке - смысла упаковывать у разработчиков не было
с пробованием разных SPI микросхем всё упирается в программатор
у меня доступен пока что только Мастер-02 с кроваткой PLCC32

maco

15 лет 4 месяца назад

[off]Относительно программатора - в этом же разделе есть темы, посвященные простым программаторам SPI - собираются элементарно :).[/off]

sush

15 лет 4 месяца назад

Разобрался с этим моментом.

Дело обстоит так:
в бутблоке только ищется файл образа на накопителе и копируется вместо копии BIOS в ОЗУ
(а я то думал раньше, зачем выполняется повторное создание структуры модулей на базе копии образа.... теперь всё встало на свои места! всему есть причина!)
потом уже в новом биосе ищутся модули 08 и 1B и дальше работа идёт с ними
пока не наступает POST_37_2 (в моей нумераци), где проверяется нужно ли перепрограммировать BIOS той самой копией BIOS
и если нужно, то перепрограммируется и потом hard reset и всё, работаем на новом биосе!

у амишника осталось мало тёмных мест)))))