Arm qemu-system-aarch64在模拟a53通电时进入el1

Arm qemu-system-aarch64在模拟a53通电时进入el1,arm,qemu,arm64,Arm,Qemu,Arm64,我已经下载了最新的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,并且我可以使用aarch64 gdb客户端连接到它,在mybaremetal.axf的条目中,我通过以下方式检查了执行的异常级别: mrs x1, CurrentE

我已经下载了最新的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,并且我可以使用aarch64 gdb客户端连接到它,在mybaremetal.axf的条目中,我通过以下方式检查了执行的异常级别:

mrs x1, CurrentEL
我总是在x1中得到值4,但在ARM文档中期望值0xc,它表示:通电和复位时,处理器进入EL3


有人知道原因吗?

QEMU的Cortex-A53模拟默认情况下只模拟带有EL1的CPU,而不是EL2或EL3,因此根据架构要求,我们在EL1中启动。如果希望CPU具有EL2或EL3,则需要在命令行上专门启用它,使用-machine virtualization=on启用EL2,使用-machine secure=on启用EL3。请注意,EL2支持是最新的,目前您需要从上游git master进行构建,以便在即将发布的QEMU 2.9.0版本中获得它。

以下是一些简单的win示例: