K3 mhpmeventX寄存器的VSINH/VUINH域是否实现

在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。