qemu-system-aarch64 выход из гостевой системы

Мне было интересно, есть ли способ выйти из qemu из гостевой системы в версии aarch64. Например, x86 имеет устройство isa-debug-exit, которое используется для этой цели.

Любые идеи?

Ваше здоровье


person Patrik    schedule 11.07.2018    source источник


Ответы (1)


Общий ответ на этот вопрос - «делайте все, что вы бы сделали на реальном оборудовании, чтобы вызвать отключение питания». Детали этого зависят от того, какую машину эмулирует QEMU. Для платы aarch64 "virt" можно использовать эмулированный интерфейс встроенного ПО PSCI для запроса отключения питания с помощью функции SYSTEM_OFF.

Документация по API PSCI находится здесь: http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf

В целях отладки / тестирования вас также может заинтересовать API-интерфейс полухостинга (https://developer.arm.com/docs/dui0003/b), который имеет функцию SYS_EXIT, но с некоторыми оговорками: для QEMU вы можете использовать полухостинг, только если вы включите его с помощью аргумента командной строки -semihosting, и только из режима ядра в гостевой системе, и вы должны использовать его только в том случае, если вы абсолютно доверяете гостевому коду, потому что он предоставляет доступ к функциям, которые позволяют гостю читать и записывать любой файл хоста. Но для небольших тестовых программ, которым явно доверяют, это может быть хорошим способом выполнить простую отладочную печать и выйти с заданным статусом выхода.

person Peter Maydell    schedule 12.07.2018
comment
Спасибо, документ ARM PSCI - это то, что я искал. - person phodina; 21.10.2018