LINUX.ORG.RU

Фреймбуфер QEMU

 


0

1

Уважаемые специалисты. Подскажите пожалуйста как посмотреть какой в запущенной системе QEMU действует видеобуфер и как адрес этого буфера можно задать. Если это возможно, как аргумент qemu-system. Или в каком файле он прописывается, если его аргументом изменить невозможно.

Для разных архитектур они разные. В мониторе можно посмотреть какие устройства подключены куда:

info mtree

alt-x ★★★★★
()
Ответ на: комментарий от Viktor2004

О. Это PReP. Там по умолчанию воткнута PCIная видюха S3-Trio (если -M 40p) или Cirrus Logic (если -M prep).

Можно воткнуть другую видюху, (опция -vga), но по-моему, эти адреса стандартны для PCIных и ISA видюх.

Т.е. без правки исходников - никак скорее всего. Править prep.c соответственно (если его не переименовали с тех пор как я смотрел).

А почему именно PReP? Может, какую-нибудь более подходящую модель найти? Как я понимаю, речь о embedded идёт? Там, вроде какие-то платы были.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Спасибо. Файлов prep.c 4 штуки /hw/ppc/prep.c /hw/pci-host/prep.c /roms/openhackware/src/libexec/prep.c /roms/openhackware/src/libpart/prep.c Который из них? И какое значение там править? Искал 0хС00А0000 там такого нет

prep выбрал потому что только он у меня вообще запускается с моим BIOS и набором загружаемых в RAM данных.

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

OpenHackWare - это биос. Устаревший уже, но ты его всё равно не используешь, как я понимаю из соседнего топика.

Править /hw/ppc/prep.c, но вопрос, какую видюху ты хочешь туда воткнуть. Не PCI, очевидно, так что придётся повозиться.

Искал 0хС00А0000 там такого нет

Логично. Это где-то в мостах PCI - поскольку стандартный адрес. Типа legacy VGA - для совместимости с ISA-шными видюхами.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Спасибо. Видюху мне пока не принципиально какую. S3-Trio подойдет. Мне бы найти в какую область памяти воткнуть виртуальную видюху. А то дебажить BIOS потихоньку удается, а вот отображать пока ничего не хочет.

Viktor2004
() автор топика
Ответ на: комментарий от alt-x

Извините, на вопрос что я эмулирую получился некрасиво звучащий ответ. ЧПУ-ху одну. ЧПУ

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

Строка запуска

qemu-system-ppc -M prep ...
или
qemu-system-ppc -M 40p ...

В первом случае, будет либо CirrusLogic, либо QEMU VGA (совместимая с Bochs VGA). Уже не помню. Кстати, -M prep в следующем релизе собираются выкинуть.

Во втором - S3-Trio32. Вообще-то, если нужен только фреймбуфер, наверно, QEMU VGA поудобнее будет. Она буквально парой инструкций инициализируется. Доки есть, гуглить, Bochs VGA. Можно её явно выбрать опцией "-vga std" .

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Спасибо. Попробую покопать в этом направлении

Viktor2004
() автор топика

Ещё в качестве идеи:

можно грузить не сразу прошивку-ELF, а сначала OpenBIOS, или мою версию OFW для 40p (у меня, правда нет под рукой бинарника, уже год как руки не доходят какой-нибудь хостинг запилить, но оно легко собирается). То и другое должно умееть грузить ELF, но сначала проинициализирует видюху, так что фреймбуффер будет отображаться хотябы.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Да у меня строка запуска аж вон какая

viktor@debian:~$ qemu-system-ppc -m 2047 -machine prep -device loader,file=10934000.bin,addr=0x10934000 -device loader,file=0_8000.bin,addr=0x00000000 -bios FANUC_nul.bin -writeconfig 333.txt -monitor pipe:montest -s -S 

BIOS у меня сжатый, распаковывается в RAM в две части. Я в BIOS поставил просто вектор RESET, а сам BIOS гружу уже распакованным

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

Ещё -cpu может потребоваться. По умолчанию там был 601, который, по-моему не очень точно эмулируется. Как минимум AIX у меня с ним не запустилась.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Там все интегрировано на плате. Даже контроллер дисплея. Выход с платы непосредственно на матрицу экрана.

Viktor2004
() автор топика
Ответ на: комментарий от alt-x

Там все чипы на ПЛИСах. При чем маркировка сделана внутренняя, производителя изделия. Там все свое. Даже разъемы и слоты свои, не имеющие аналогов. Начинаешь искать на сайте производителя, максимум во что упираешься это в сообщение о спецзаказе.

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

Засада. Можно ещё в мониторе QEMU сохранить распакованное содержание прошивки (pmemsave, по-моему) и пройтись по нему string. Может, какие-нибудь названия выскочат, чтоб было понятно, куда копать.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

А что толку? У меня распакованное содержание есть на IDA. Там я попробую найти адрес вывода текста. А в QEMU мне нужно будет подставить под этот адрес видеокарту. Пока по mtree я вижу

00000000c00a0000-00000000c00bffff (prio 1, i/o): vga-lowmem
но поиск по файлам исходникам пока не находит то место, которое задает этот адрес

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

«Это не те дроны, что ты ищешь.» Это - адрес для legacy. А нормальный адрес будет там, куда PCI его запрограммирует. Так же, как на реальной видиокарте. Управляется через PCI BAR.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Я просто думал что тут как в Синклере. Есть железная область памяти начиная с адреса 16384, когда туда отправляешь байт, он тут же в виде точек отображается в верхнем левом углу. И только паяльник способен переместить эту область памяти в другое место.

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

В мире PCI это не так. Но, можно написать небольшую программку, которая поставит фрембуффер куда надо, и будет как железная область. Записали байт и его сразу видно. У видюх такой режим есть, и например OFW его использует. Возможно, что и OpenBIOS - но про него я меньше знаю. OpenHackWare - не использует, поскольку переключает карту в текстовый режим.

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

Вопрос что там в тех ПЛИСах. Вполне вероятно, что внутри там тоже PCI - вряд ли они свою шину стали изобретать.

А что на проце написано, только 603, или ещё буквы какие есть?

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

На проце только внутренняя маркировка компании заказавшей процы. О том что там 603 я узнал из документации по прикладному программированию. Там указано что бы настроить кросс-компилятор для 603. Прикладное программирование представляет из себя шаблон для Visual C++ 2008

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

А про BookE в доках ничего не сказано? Можно попробовать погуглить картинки PPC 603 embedded и посмотреть, кто визуально похож.

Их делали Freescale, Motorola и IBM. Зная проц, можно посмотреть на его типовую обвязку. А что там в качестве базы ОС? WxWorks? Тогда надо смотреть, что оно поддерживает.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

Что в качестве базы ОС я не знаю. Ищу способ добраться до ОС. Образ ОС хранится в NAND памяти. Прочитать эту NAND пока нет возможности. NAND подключена через контроллер GBDriver RA6 информации о нем в сети нет. Рабочая память содержит DRAM и SRAM. SRAM прочитать можно, но там никакой полезной информации. Только прикладная.

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

Думаю что контроллер разбросал информацию внутри NAND рандомным способом, так что только контроллер знает где что лежит

Viktor2004
() автор топика
Ответ на: комментарий от Viktor2004

Так может и остальные чипы, не ПЛИСы, а обычная обвязка для этого проца, перемаркированная производителем? Если оно на частоте больше 100МГц шуршит, то ПЛИСам трудно было бы.

alt-x ★★★★★
()

В распакованом имидже есть символы? Может, по ним можно угадать перефирию?

alt-x ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.