eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Электроника —› Отладка BIOS/EFI - аппаратные отладчики
Посл.ответ Сообщение


Ранг: 210.7 (наставник)
Статус: Участник
X-Literator

Создано: 23 января 2014 13:56 · Поправил: Crawler New!
Цитата · Личное сообщение · #1

В общем, суть в следующем: хочу отлаживать BIOS на реальной тачке. Надоело свои эксперименты проводить со связками QEMU/GDB, VMWare/GDB и так далее - это очень далеко от реальности. Есть программатор, им пробовал модифицировать и шить, но отладка, сами понимаете, очень затруднена - через COM (в редких случаях) или вообще никак (чаще всего) - зависит от стадии загрузки.

Может, есть какие-то варианты вроде XDP или JTAG-отладчиков?

А еще - интересно, чем отличаются внутрисхемные отладчики от эмуляторов? В качестве примера:

1) http://www.prosoft.ru/products/brands/windriver/436319/436325.html
2) http://www.arium.com/product/55/ECM-XDP3-Intel-JTAG-Debugger.html

Первый - эмулятор, второй - внутрисхемный отладчик.

Вроде бы JTAG-отладчики - это проще и дешевле, но хуже, если верить этому: http://phyton.ru/pages/page83.html#jtag

Буду благодарен за любую инфу по теме отладки BIOS (не на виртуалках, а на реальном железе).

Ранг: 42.5 (посетитель)
Статус: Участник

Создано: 23 января 2014 14:58 · Поправил: spinz New!
Цитата · Личное сообщение · #2

В принципе БИОС отлаживать все же можно и на реальном железе без аппаратного отладчика, но только после INIT# - после RESET# на entry point никак не тормознуться. Только подходящего софта для этого все равно нет.
Crawler пишет:
чем отличаются внутрисхемные отладчики от эмуляторов

Имхо, отличие чисто семантическое, по приведенным ссылкам оба девайса называются JTAG debugger

Ранг: 569.5 (!)
Статус: Модератор

Создано: 23 января 2014 15:40 New!
Цитата · Личное сообщение · #3

Отличие в том что один работает на серийном железе, а второй - отладочный стенд. На кристалле второго расположен дополнительный блок поддержки отладки. Соответственно, поддерживаются расширенные режимы отладки. Второй обычно дороже первого.
Впрочем, может @hors подключится и расскажет детали.

| Сообщение посчитали полезным: Crawler


Ранг: 10.2 (новичок)
Статус: Участник

Создано: 23 января 2014 18:16 · Поправил: connect6 New!
Цитата · Личное сообщение · #4

Для XDP отлаживания нужна мамка с XDP разъёмом. Таких мало. Если найдешь, то она вряд ли будет с интересующим тебя чипсетом/BIOS...A остальное железо уже не так дорого: --> Link <--


Ранг: 210.7 (наставник)
Статус: Участник
X-Literator

Создано: 23 января 2014 18:45 New!
Цитата · Личное сообщение · #5

connect6, штуковина более чем сомнительная. JTAG-отладчик под Intel за 30 баксов? Буду рад, если предоставишь хоть какую-то информацию о нем (уверен, ее нет)


Ранг: 516.8 (!)
Статус: Участник
Победитель турнира 2010

Создано: 23 января 2014 19:08 New!
Цитата · Личное сообщение · #6

Вот более вменяемая поделка http://www.arium.com/product/55/

| Сообщение посчитали полезным: Crawler


Ранг: 10.2 (новичок)
Статус: Участник

Создано: 23 января 2014 19:38 · Поправил: connect6 New!
Цитата · Личное сообщение · #7

Crawler
Раз ты уверен, что инфо нет, то нет. ;) Принимаю коммереских задач по теме x86/x64 биосов...

Ранг: 370.2 (мудрец)
Статус: Участник

Создано: 24 января 2014 06:36 New!
Цитата · Личное сообщение · #8

Варианта ровно два: post карта и вывод отладочной инфы в ком порт. Еще понадобится программатор. Модифицируешь модули BIOS, чтобы они выводили нужную тебе отладочную информацию, прошиваешься, смотришь что получилось. Я так отлаживал.

| Сообщение посчитали полезным: Crawler



Ранг: 210.7 (наставник)
Статус: Участник
X-Literator

Создано: 24 января 2014 13:12 New!
Цитата · Личное сообщение · #9

ntldr, оно понятно, но именно от этого варианта я и хочу уйти - не всегда ком инициализируется, когда мне это нужно. Если ком-порта нет, видео - тем более - остается очень мало вариантов (вроде eb fe на нужное место и смотреть, виснет комп или нет).


Ранг: 210.7 (наставник)
Статус: Участник
X-Literator

Создано: 24 января 2014 13:15 · Поправил: Crawler New!
Цитата · Личное сообщение · #10

OKOB
Да, реально крутая штука. Единственное - его нужно где-то взять. Да и если он стоит 20 тысяч баксов, это чуть дороговато для удовлетворения моего любопытства)))

Ранг: 370.2 (мудрец)
Статус: Участник

Создано: 24 января 2014 19:39 New!
Цитата · Личное сообщение · #11

Crawler пишет:
остается очень мало вариантов

POST карта позволяет выводить отладочные коды даже из бутблока, начиная с первых инструкций процессора. Главное чтобы она была подключена к шине на которую по-умолчанию декодируются IO циклы 0x80 порта, на современных мамках это pci-x линии идущие прямо из проца (pci-x16 разьем для видеокарты), другие шины (pci, pci-x1, lpc) могут потребовать инициализации южного моста и superio.

Ранг: 42.5 (посетитель)
Статус: Участник

Создано: 25 января 2014 16:59 New!
Цитата · Личное сообщение · #12

На многоядерных процессорах или многопроцессорных системах, как известно, только одно ядро(процессор) при рестарте системы фактически выполняет код, начиная c FFFFFFF0. Остальные находятся в состоянии wait-for-SIPI, после получения SIPI они выполняют кодес, начиная at 000VV000H,where VV is the vector contained in the SIPI message. Можно на bootstrap ядре послать другим ядрам SIPI с вектором, указывающим
на наш код, который взведет на целевом ядре TF и передаст управление на FFFFFFF0. Таким образом можно протрейсить биос от первой инструкции без всякого доп. железа

Ранг: 10.2 (новичок)
Статус: Участник

Создано: 25 января 2014 20:59 · Поправил: connect6 New!
Цитата · Личное сообщение · #13

spinz, что за консоль/интерфейс будет у такого отладчика? Как выживет его код при проверки/стирания RAM? Что будет с SMM? Без виртуализаций железа (чипсет/периферий) не обойтись....

| Сообщение посчитали полезным: Crawler


Ранг: 42.5 (посетитель)
Статус: Участник

Создано: 26 января 2014 02:23 New!
Цитата · Личное сообщение · #14

Сложностей здесь действительно немало, но принципильно непреодолимы нет. Виртуализация всей "обвязки" компутера (по аналогии с варей и пр.) не нужна

Ранг: 10.2 (новичок)
Статус: Участник

Создано: 26 января 2014 06:29 New!
Цитата · Личное сообщение · #15

Какая разница вся - не вся, все же виртуализация нужна. И вообще глупо говорить что НЕ нужно. Гораздо важнее что надо сделать ;)

Ранг: 42.5 (посетитель)
Статус: Участник

Создано: 26 января 2014 10:09 New!
Цитата · Личное сообщение · #16

connect6 пишет:
Гораздо важнее что надо сделать

Это будет сильно зависеть от биоса, универсального решения тут быть не может (а никто ведь, как я понял, и не ставит цель научиться отлаживать все биосы в мире). Какую-то часть функционала в любом случае надо будет затачивать под вполне конкретный целевой биос. Это конечно весьма затратно по времени и силам, но покупать железку за 20к тоже затратно ;)

Ранг: 62.8 (постоянный)
Статус: Участник

Создано: 26 января 2014 23:41 New!
Цитата · Личное сообщение · #17

Crawler
для отладки процедур инициализации всяких узлов нужно наверно и какие-то средства мониторинга состояния этого узла

про jtag я насколько понял это всего лишь электрический интерфейс выдающий сигнал о том как устройство нормально включилось или нет -- я хз как с его помощью конфиг миросхем смотреть (если можно значит я сильно отстал от темы)

Ранг: 42.5 (посетитель)
Статус: Участник

Создано: 27 января 2014 08:30 New!
Цитата · Личное сообщение · #18

spinz пишет:
Остальные находятся в состоянии wait-for-SIPI, после получения SIPI они выполняют кодес, начиная at 000VV000H,where VV is the vector contained in the SIPI message...

Впрочем, такая методика вряд ли позволит стартовать целевое ядро действительно "с нуля", т.е. состояния, идентичного состоянию после reset. Если бы это было так, то девелоперы биосов полные идиоты. Правильней, с точки зрения секьюрности, было бы проинициализировать каждое non-bootastrap ядро (установить, например, "правильный" SMBASE, указывающий на защищенную память, а не 0x30000; SMRR; IA32_FEATURE_CONTROL и пр). А потом опять отправить ядро в состояние wait-for-SIPI посылкой INIT' а (при этом указанные регистры, как известно, не изменятся) Как на самом деле реализована инициализация разных ядер в современных биосах - я хз, если кто в курсе или просто не лень покопаться в бисое, поделитесь инфой.


Ранг: 210.7 (наставник)
Статус: Участник
X-Literator

Создано: 27 января 2014 13:49 New!
Цитата · Личное сообщение · #19

Rockphorr, ну, не сказал бы

http://www.intel.my/content/dam/www/public/us/en/documents/white-papers/jtag-101-ieee-1149x-paper.pdf

spinz пишет:
Можно на bootstrap ядре послать другим ядрам SIPI с вектором, указывающим
на наш код, который взведет на целевом ядре TF и передаст управление на FFFFFFF0. Таким образом можно протрейсить биос от первой инструкции без всякого доп. железа


Да. А можно еще написать свой гипервизор и отладчик впридачу, но вот только как его самого писать и отлаживать?)
 eXeL@B —› Электроника —› Отладка BIOS/EFI - аппаратные отладчики

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS