Armv8 系统模式 qemu 中的 Neon 支持
Neon support in Armv8 system mode qemu
系统模式AArch64 QEMU是否支持NEON指令集?
是否有任何可配置的东西可以在 AArch64 系统模式 QEMU 中启用 NEON 支持?
所有 QEMU 的 AArch64 模拟 CPUs 默认支持 NEON (SIMD) -- SIMD 指令支持或多或少是 ARMv8 架构的必需部分,所以如果我们不模拟它,那么我们将无法 运行 Linux 或任何其他有趣的客人。
如果您运行正在使用自己设计的 "bare metal" 来宾 OS,则需要确保写入适当的 CPU 系统寄存器启用 SIMD,就像使用真实硬件一样。
在以下位置询问了要触摸的区域:Enable neon on ARM cortex-a series
但是,,所以你必须跳过 EL3 初始化并只使用:
mov x1, #(0x3 << 20)
msr cpacr_el1, x1
isb
QEMU启动的初始模式可以通过添加一个来验证:
mrs x0, currentel
并使用 GDB 打印寄存器。
EL3 甚至还没有实现,EL2 是最近添加的:https://www.linaro.org/blog/whats-new-qemu-2-9/
测试 this setup。
系统模式AArch64 QEMU是否支持NEON指令集? 是否有任何可配置的东西可以在 AArch64 系统模式 QEMU 中启用 NEON 支持?
所有 QEMU 的 AArch64 模拟 CPUs 默认支持 NEON (SIMD) -- SIMD 指令支持或多或少是 ARMv8 架构的必需部分,所以如果我们不模拟它,那么我们将无法 运行 Linux 或任何其他有趣的客人。
如果您运行正在使用自己设计的 "bare metal" 来宾 OS,则需要确保写入适当的 CPU 系统寄存器启用 SIMD,就像使用真实硬件一样。
在以下位置询问了要触摸的区域:Enable neon on ARM cortex-a series
但是,
mov x1, #(0x3 << 20)
msr cpacr_el1, x1
isb
QEMU启动的初始模式可以通过添加一个来验证:
mrs x0, currentel
并使用 GDB 打印寄存器。
EL3 甚至还没有实现,EL2 是最近添加的:https://www.linaro.org/blog/whats-new-qemu-2-9/
测试 this setup。