Автор: Santa , 8 апреля 2007
Hi all, великий и ужасный! БИОС AWARD, MB Gigabyte 8I945P-G. Посткарта NM9221 МастерКит.
Проблема вот в чем. Пробую установить контрольную точку в бутблоке (это ради тренировки) путем замены кода своим:
[code:1] mov al, 0EEh
Label1: mov dx,80h
out dx,al
jmp Label1
[/code:1]
Но после прошивки МВ просто не стартует. Пробовал и длинные переходы и короткие, вывод в 80-й порт и вывод в dx - разницы никакой. Просто не заводится - на посткарте начальное состояние (спецсимволы). Причем можно ЭТО вставить хоть в самое начало, хоть в середину, хоть в конец - результат один.
Если же без внедрения кода просто изменить ход выполнения бутблока, например занопить что-нибудь, пару переходов поставить - все работает.

Вопрос:
- виновата/глючит посткарта? Те точка остановки срабатывает, но не отображается?
- вывод кодов в 80h порт начинается со старта системы? (Идиотский вопрос, но все-же)
- все ли я делаю правильно?
Содержимое данного поля является приватным и не предназначено для показа.

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-адреса преобразовываются в ссылки автоматически.

Root

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

Просто не заводится - на посткарте начальное состояние (спецсимволы)

какие?
- вывод кодов в 80h порт начинается со старта системы? (Идиотский вопрос, но все-же)

практически да, только вот на 945 могут возникнуть интересные моменты, т.к. родной для него интерфейс - PCI-Ex, а не PCI. И вполне возможна ситуация, что для нормальной работы ПОСТки надо приложить доп. усилия по настройке чипсета.
- виновата/глючит посткарта? Те точка остановки срабатывает, но не отображается?

в зависимости от того как скомпилить этот кусок кода, может получиться разный результат... jmp Label1 может _в принципе_ указывать куда угодно, но не на инструкцию "mov dx, 80h"...

Santa

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

Спецсимволы здесь - это отличные от "нормальных" букаф и цифер символы UU.
Компилировать такой маленький кусочек кода вовсе не обязательно - можно и так опкодами вручную набросать, поэтому от компилятора здесь бяки ждать не приходится.
Все же я больше склоняюсь к погрешности пост-карточки.

Root

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

Santa
я бы проверил аналогичную методику на других матерях, дабы сделать какой-то релевантный вывод.

Strelets

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

БИОС AWARD, MB Gigabyte 8I945P-G. Посткарта NM9221 МастерКит.
Проблема вот в чем. Пробую установить контрольную точку в бутблоке (это ради тренировки) путем замены кода своим

Чипсет i945 - это для меня сейчас актуально :)
Дайте, пожалуйста,
1. ссылку на биос
2. текст вставляемого кода
3. адрес вставки
Попробуем отладить тренировочный патч в эмуляторе.

Santa

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

Чипсет i945 - это для меня сейчас актуально

Я тоже захожу к Вам за новостями чуть не каждый день. Ждемс...
Область применения - все тот же Конрой.
Целевой БИОС - GA-8I945P-G
Тренировочный БИОС - GA-8I945P-S3 rev 1.0. Я на нем как раз "сижу".

Длинный переход: B0 EE E6 80 E9 F9 FF
Короткий переход: B0 EE E6 80 EB FA или как в первом посте.

Адрес вставки - любой от F000:FFF0h до F000:EC42h (переход в оригинал.тмп). Применительно к файлу прошивки - 7FFF0h, 7EC42h соответственно.

Strelets

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

Адрес вставки - любой

Давайте попробуем зациклить тренировочный биос 945ps3.f2 после повторного вывода значения CF в порт 80h.
Если интересно - это произойдет после исполнения ЦПУ 11484 операций :).
Для этого нужно изменить по адресу F000:ED5D два байта 0x87, 0xF2 на 0xEB, 0xFE.

Было:
[code:1]
F000:ED55 B0 CF mov al, 0CFh
F000:ED57 E6 80 out 80h, al
F000:ED59 B0 CF mov al, 0CFh
F000:ED5B E6 80 out 80h, al
F000:ED5D 87 F2 xchg si, dx <== изменим 2 байта
[/code:1]
Стало:
[code:1]
F000:ED55 B0 CF mov al, 0CFh
F000:ED57 E6 80 out 80h, al
F000:ED59 B0 CF mov al, 0CFh
F000:ED5B E6 80 out 80h, al
F000:ED5D label1:
F000:ED5D EB FE jmp short label1
[/code:1]
Обратите внимание, что метка стоит ниже вывода в порт.
Возможно, в этом решение проблемы (иначе посткарта "захлёбывается":) )

Santa

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

Отличная идея... Но у меня не прокатывает. Виснет и ничего не показывает точно как раньше, куда не поставь этот BreakPoint с измененным переходом. Похоже придется пробовать ставить бряку уже в original.tmp. Первый код, который я вижу на карточке, это 04h, а в бутблоке как бы и нет такого.

PS Похоже тестовая флешка накрылась, не шьется. Верой и правдой служила ты мне полгода. Спи спокойно, дорогой товарищь...

Strelets

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

Похоже тестовая флешка накрылась

Жаль...
И у меня нет тестовой флешки.
Да и мамки с i945 тоже нет :):):)

icbook

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

Постараюсь заполучть тестовую платформу и проверить сей факт.

P.S. Есть информация о B=0/D=1Fh/F=0/R=F0h?
[code:1]F000:FBF5 mov eax, 8000F8F0h
F000:FBFB mov dx, 0CF8h
F000:FBFE out dx, eax[/code:1]