目前我正在尝试为我的 AArch64 开发板编写几个具有 EL3 权限的系统控制寄存器。
我将我的代码放在受信任的固件引导加载程序 (BL31) 中。
bl31_main
这是我放入arm-trusted-firmware-source-code 的代码:
asm("MRS %x[result], SCR_EL3"
: [result] "=r" (scr)
);
asm("MSR SCR_EL3, %x[value]"
:
: [value] "r" (scr)
);
我可以正确读取这些寄存器的值,因此我假设我的代码以 EL3 权限运行。
但是,对于我测试的几个寄存器,每次我向它们写入新值后,它们的值甚至都不会改变。
我无法想出可能导致此问题的原因。欢迎任何建议!
提前谢谢你。
西蒙