This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

在EL0和EL1小分别读取ID_AA64DFR0_EL1和ID_AA64DFR1_EL1的值不同问题

在用户态和内核中写模块读取ID_AA64DFR0_EL1和ID_AA64DFR1_EL1,发现两个寄存器的值在用户态读取的值与内核中读取的值不同,这个怎么理解?

读取代码差不多如下:

asm("mrs x0, ID_AA64DFR0_EL1;")

另外,在spec中找到类似解释的地方,也没理解到,如下:

希望有人帮忙解惑一下,谢谢

  • ID_AA64DFR0_EL1  后缀表示只有 EL1 可以正常访问。 如果在 EL0 用户空间访问, 可能是 你所使用的系统OS 提供了一个虚拟访问的 函数接口。因此两者读到的内容可能是不同。

    具体差异,需要查看你对应的 OS 函数接口实现。