qemu-system-aarch64 вводит el1 при эмуляции включения a53

Я скачал последнюю версию QEMU для Windows, затем запустите ниже линии

qemu-system-aarch64 -M virt,gic_version=3 -cpu cortex-a53 -smp 2 -nographic 
-m 2048 -kernel mybaremetal.axf -s -S

чтобы эмулировать двухъядерный cortex-a53, и я могу использовать gdb-клиент aarch64 для подключения к нему, при входе в mybaremetal.axf я проверил уровень исключения исключения:

mrs x1, CurrentEL

Я всегда получаю значение 4 в x1, но здесь ожидается значение 0xc, как в документе ARM: "При включении питания и при сбросе процессор переходит в EL3".

кто-нибудь знает причину?

1 ответ

Решение

Эмуляция Cortex-A53 в QEMU по умолчанию эмулирует только процессор с EL1, а не EL2 или EL3, и поэтому (как требует архитектура) мы загружаемся в EL1. Если вам нужен процессор с EL2 или EL3, вам нужно специально включить его в командной строке, с -machine virtualization = on, чтобы включить EL2, и -machine secure = on, чтобы включить EL3. Обратите внимание, что поддержка EL2 появилась совсем недавно, и в данный момент вам нужно собрать ее из git master из апстрима, чтобы получить ее (она будет в следующей версии QEMU 2.9.0).

Другие вопросы по тегам