在K3开发板上测试mhpmevent3寄存器的高位读写:
bit 63 OF
bit 62 MINH
bit 61 SINH
bit 60 UINH
bit 59 VSINH
bit 58 VUINH
最后测出一下结果:
Bad Value: 0xf000000000000000
Expected Value: 0xfc00000000000000
0xfc00... 是 bit 63…58 全部可写可读;0xf000... 只有 bit 63…60,少了:
0x0800000000000000 VSINH
0x0400000000000000 VUINH
已确认K3 支持H + Sscofpmf扩展,测试运行在X100 core上。请问K3 mhpmeventX寄存器的VSINH/VUINH域是否实现?
期待您的答复!
1 Like
K3 X100 mhpmeventX寄存器的VSINH/VUINH域是有实现的,请把测试环境和测试方法发出来,我们看看是什么原因。
我们自己在opensbi里添加测试代码,测试结果如下图:
1 Like
感谢答复,我已经找到问题所在:
opensbi/firmware/fw_base.S
#ifdef CONFIG_PLATFORM_SPACEMIT_K3
...
/*
* Enable hypervisor extension for X100.
* Skip this for A100 since A100 doesn't support it.
*
* Hart IDs:
* X100: 0-7
* A100: 8-15
*/
csrr t0, CSR_MHARTID
li t1, 8
bgeu t0, t1, _skip_enable_h_extension
csrr t2, CSR_MISA
li t3, 0x1
slli t3, t3, ('H' - 'A')
or t2, t2, t3
csrw CSR_MISA, t2
针对K3 X100有enable H操作,我的测试没有主动打开H。