Запуск файлов MLO в QEMU

У меня есть чип ARMv7 Cortex-A8 со встроенным чипом TI AM335x (мой чип очень близок к контроллеру Beaglebone Black). Я скомпилировал весь системный стек, начиная с файлов MLO, заканчивая u-boot, ядром Linux zImage и пользовательским пространством Linux, а также программами, которые должны работать на моем контроллере. Однако для конкретных случаев анализа мне может понадобиться эмулировать архитектуру и системный стек моего контроллера, скажем, в QEMU. Поскольку я исследовал последовательность загрузки большинства встроенных устройств, последовательность выглядит следующим образом: MLO -> u-boot -> ядро ​​​​> пользовательское пространство -> и т. д.

Когда я начал эмулировать систему, я начал с qemu-system-arm (поскольку я использую 32-разрядное устройство ARM, следовательно, ARMv7) и передал следующий тип машины (поскольку это единственное устройство Cortex-A8, доступное в QEMU): realview-pb-a8 , и следующий ЦП: cortex-a8. Я также загрузил свой скомпилированный файл u-boot.bin, используя аргумент -bios. Однако на дисплее VGA ничего не отображается, кроме Guest has not initialized the display (yet), и ничего не отображается на последовательном вводе-выводе. Моя интуиция подсказывает мне, что я должен загрузить MLO перед файлом u-boot, но как мне это сделать, если это возможно?


person falhumai96    schedule 07.01.2020    source источник


Ответы (1)


Вы не можете запустить низкоуровневую программу (например, u-boot или ядро), созданную для одного типа встроенной платы Arm, на другом. Realview-pb-a8 — это аппаратное обеспечение, совершенно отличное от SoC AM335x, и гостевой код просто рухнет, как только попытается что-то сделать с аппаратным обеспечением.

Вам понадобится модель подходящего оборудования в QEMU для запуска этого программного обеспечения, но у QEMU нет модели этого SoC, поэтому, боюсь, вы не сможете.

person Peter Maydell    schedule 10.01.2020
comment
Хм... так что, я думаю, мне нужно собрать QEMU из исходного кода, а затем добавить записи для оборудования, которое я эмулирую, с ЦП + ОЗУ + периферийными устройствами для моей спецификации оборудования. Жаль, что QEMU не поддерживает машины TI из коробки, но, по крайней мере, я изучаю QEMU API :). - person falhumai96; 10.01.2020