我已经下载了最新的 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,但这里预期值为 0xc,就像在 ARM 文档中一样,它说:在加电和复位时,处理器进入 EL3
有人知道原因吗?
QEMU 的 Cortex-A53 仿真默认只仿真带有 EL1 的 CPU,而不是 EL2 或 EL3,因此(根据架构要求)我们在 EL1 中启动。如果你想要一个带有 EL2 或 EL3 的 CPU,你需要在命令行上专门启用它,使用 -machine virtualization=on 启用 EL2,使用 -machine secure=on 启用 EL3。请注意,EL2支持是最近才有的,此刻您需要从上游git master进行构建才能获得(它将在即将到来的QEMU 2.9.0版本中提供)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句