Установка контрольной точки по ходу выполнения кода бутблока

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

	       mov al, 0EEh
Label1:   mov dx,80h
	       out dx,al
	       jmp Label1

Но после прошивки МВ просто не стартует. Пробовал и длинные переходы и короткие, вывод в 80-й порт и вывод в dx - разницы никакой. Просто не заводится - на посткарте начальное состояние (спецсимволы). Причем можно ЭТО вставить хоть в самое начало, хоть в середину, хоть в конец - результат один.
Если же без внедрения кода просто изменить ход выполнения бутблока, например занопить что-нибудь, пару переходов поставить - все работает.

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

Аватар пользователя Root

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

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

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

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

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя Santa

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

-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам

Аватар пользователя Root

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

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

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

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

Аватар пользователя Santa

Цитата:
Чипсет 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 соответственно.

-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам

Santa писал(-а):
Адрес вставки - любой

Давайте попробуем зациклить тренировочный биос 945ps3.f2 после повторного вывода значения CF в порт 80h.

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

Было:
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 байта

Стало:
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

Обратите внимание, что метка стоит ниже вывода в порт.
Возможно, в этом решение проблемы (иначе посткарта "захлёбывается":) )

Аватар пользователя Santa

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

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

-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам

Santa писал(-а):
Похоже тестовая флешка накрылась

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

Аватар пользователя icbook

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

P.S. Есть информация о B=0/D=1Fh/F=0/R=F0h?

F000:FBF5                 mov     eax, 8000F8F0h
F000:FBFB                 mov     dx, 0CF8h
F000:FBFE                 out     dx, eax

icbook писал(-а):
Есть информация о B=0/D=1Fh/F=0/R=F0h?

download.intel.com/design/chipsets/datashts/30701302.pdf (8306912 bytes )
Это LPC bridge of the ICH7.

Offset address: F0h - RCBA - Root Complex Base Address Register (32 bit)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей