0

我有一个覆盆子 pi4 板,由 Cortex-A72 处理器供电。在这个处理器中存在一个名为“ID_AA64PFR0_EL1”的特殊寄存器。Cortex-A72 的文档说明:

要在 AArch64 状态下访问 ID_AA64PFR0_EL1,请使用以下命令读取寄存器: MRS , ID_AA64PFR0_EL1; 读取 AArch64 处理器特性寄存器 0

如上述命令所示,我们可以在 AArch64 模式下读取 ID_AA64PFR0_EL1 寄存器。但是官方的 raspbian os 只支持 AArch32 模式。所以我想知道无论如何让我在 AArch32 模式下读取 ID_AA64PFR0_EL1 寄存器?

4

1 回答 1

0

似乎可以在 AArch32 模式下访问 ID_AA64PFR0_EL1。

根据《架构参考手册 ARMv8》

ID_AA64PFR0_EL1, AArch64 处理器特性寄存器 0
...
配置
AArch64 系统寄存器 ID_AA64PFR0_EL1 在架构上映射到 外部寄存器 EDPFR

EDP​​FR,外部调试处理器特性寄存器
EDPFR[31:0] 可以通过内部存储器映射接口访问

根据相同的“架构参考手册 ARMv8”和“ARM® Cortex®-A72 MPCore 处理器,技术参考手册”

要在 AArch64 状态下访问 ID_AA64PFR0_EL1,请使用以下命令读取寄存器:
MRS <Xt>, ID_AA64PFR0_EL1; Read AArch64 Processor Feature Register 0
可以ID_AA64PFR0[31:0]通过内存映射接口和外部调试接口 offset 进行访问 0xD20
The ID_AA64PFR0[63:32]可以通过内存映射接口和外部调试接口 offset 访问 0xD24

因此,您应该检查芯片上的制造文档,并找出映射“调试接口”的地址。
之后阅读[addr + 0xd20]&[addr + 0xd24]

享受。

于 2021-08-29T11:25:42.830 回答