alibaba / system-register-tools

system-register-tools: The tools are aiming to access the system registers for ARM platform.
Apache License 2.0
26 stars 10 forks source link

system-register-tool安装与A55寄存器不全问题请教下 #4

Closed userjanet closed 1 year ago

userjanet commented 1 year ago

你好,非常感谢邮件的答复 目前还有以下两个问题,对我十分重要 问题1:该工具的readme中显示next,MSR-ARM module is already installed,install system-register-tool as follows:make && make install 问怎么安装 system-register-tool ?有要求在哪个路径下吗?安装命令是make && make install ? 问题2:我看该工具registersv8.table显示的寄存器没有完全包含ARM A55的寄存器,如 ERXPFGCTL_EL1 S3_0_C15_C2_1,所以想问下,是否有A55比较全的寄存器文档?还是需要我自己一个一个的加?将寄存器加到哪些文件内? 非常期待你的答复,感谢 J 18951742957

userjanet commented 1 year ago

备注:我之前安装system-register-tools-main是将整个文件夹放在shell下的/data文件夹内,同时采用make && make install安装,如下图 /data# make && make install system-register-tools-main 结果为 /bin/sh:make:not found 没装成功

userjanet commented 1 year ago

cp /.regstable /.regstable.bak echo "ERXPFGCTL_EL1 S3_0_c15_c2_1">>/.regstable //备注:这里的空格我不知道要几个 此时cat /.regstable发现上述的信息的确有在/.regstable内,可是运行 ./rdsar -p0 -r ERXPFGCTL_EL1 结果显示internal error:oops - undefined instruction:0[#1] SMP 为什么

userjanet commented 1 year ago

楼主,非常感谢,上述问题花了我们2个大牛,终于解完了。可目前发现一个新的问题:ARM A55的ERXPFGCTL_EL1寄存器是32位的,可读可写,对该寄存器写值,如它的默认值,设备会重启,查看临终遗言发现是fatal exception。然后我们对一个可读可写的64位寄存器写默认值,发现设备没重启,且写成功了。 问:我们怀疑该工具的wraser函数只能对64位寄存器进行读写,是这样吗?要是要对32位寄存器进行写值,有什么办法?

wangrongwei commented 1 year ago

cp /.regstable /.regstable.bak echo "ERXPFGCTL_EL1 S3_0_c15_c2_1">>/.regstable //备注:这里的空格我不知道要几个 此时cat /.regstable发现上述的信息的确有在/.regstable内,可是运行 ./rdsar -p0 -r ERXPFGCTL_EL1 结果显示internal error:oops - undefined instruction:0[#1] SMP 为什么

这个问题是如何解决的,是system-register-tools的问题吗?如果是的话,是否可以帮忙提一个PR,或告诉我自己来修复一下。

感谢!

wangrongwei commented 1 year ago

另外,这个工具的开发和测试基本都是在arm服务器(ARMv8)上完成的,缺乏兼顾A55之类的32位处理器的测试。如果在使用过程中,你有什么建议,可以帮忙开一个issue单独列出来?后续我会尝试优化一下。

非常感谢!

userjanet commented 1 year ago

你好      step1:我用了6个空格,如echo "ERXPFGCTL_EL1      S3_0_c15_c2_1" > /.regstable单个箭头将之前所有的寄存器清除,只写入寄存器MPIDR_EL1      S3_0_c15_c2_1      setp2:用双箭头echo "ERXPFGF_EL1      S3_0_c15_c2_0" >> /.regstable输入寄存器ERXPFGF_EL1      S3_0_c15_c2_0,依次类似增加多个对应CPU可用的寄存器            之前./rdaser -t会异常重启,有的时候会coredump。自执行过step1后,现在都不复现异常重启的场景了      要是后续在别的设备上还有出现的话,我让人提个PR给你。       着实抱歉。 J

发件人:"Rongwei @.> 时间: 2023年5月26日 (周五) 09:58 主题: Re: [alibaba/system-register-tools] system-register-tool安装与A55寄存器不全问题请教下 (Issue #4) @.> @.>, @.>

 cp /.regstable /.regstable.bak echo "ERXPFGCTL_EL1 S3_0_c15_c2_1">>/.regstable //备注:这里的空格我不知道要几个 此时cat /.regstable发现上述的信息的确有在/.regstable内,可是运行 ./rdsar -p0 -r ERXPFGCTL_EL1 结果显示internal error:oops - undefined instruction:0[#1https://github.com/alibaba/system-register-tools/issues/1] SMP 为什么   这个问题是如何解决的,是system-register-tools的问题吗?如果是的话,是否可以帮忙提一个PR,或告诉我自己来修复一下。 感谢! — Reply to this email directly,view it on GitHubhttps://github.com/alibaba/system-register-tools/issues/4#issuecomment-1563712602, orunsubscribehttps://github.com/notifications/unsubscribe-auth/BAAK5X5J2LBJ7V7C7QEUFN3XIAE2VANCNFSM6AAAAAAYMYJYEM. You are receiving this because you authored the thread.[image: https://github.com/notifications/beacon/BAAK5X3OSRJMNVVTJBRYIVLXIAE2VA5CNFSM6AAAAAAYMYJYEOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS5GROFU.gif]Message ID: @.***>

userjanet commented 1 year ago

你好      目前是计划将下面的入参uint64_t data改成32位  待改后验证,倘若能解决我再邮件告知。请知悉。 [image] J

发件人:"Rongwei @.> 时间:2023年5月26日 (周五) 10:05 主题:Re: [alibaba/system-register-tools] system-register-tool安装与A55寄存器不全问题请教下 (Issue #4) @.> @.>@.> 另外,这个工具的开发和测试基本都是在arm服务器(ARMv8)上完成的,缺乏兼顾A55之类的32位处理器的测试。如果在使用过程中,你有什么建议,可以帮忙开一个issue单独列出来?后续我会尝试优化一下。非常感谢!— Reply to this email directly,view it on GitHubhttps://github.com/alibaba/system-register-tools/issues/4#issuecomment-1563717400, orunsubscribehttps://github.com/notifications/unsubscribe-auth/BAAK5X7UFUFATJEE4OH5BPLXIAFXFANCNFSM6AAAAAAYMYJYEM. You are receiving this because you authored the thread.[image: https://github.com/notifications/beacon/BAAK5X733T3LWPENH36ADH3XIAFXFA5CNFSM6AAAAAAYMYJYEOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS5GRXRQ.gif]Message @.***>

userjanet commented 1 year ago

补充:发现自运行step1后,现在./rdasr -t都可以正常运行,如预期一样。我们怀疑是贵司工具自带的regstable里的寄存器可能有些是A55不支持的,所以运行某些寄存器时会导致设备异常重启 

From: @.> Date:  Fri, May 26, 2023, 10:54 Subject:  回复:[alibaba/system-register-tools] system-register-tool安装与A55寄存器不全问题请教下 (Issue #4) To: @.> Cc: @.>, @.> 你好      step1:我用了6个空格,如echo "ERXPFGCTL_EL1      S3_0_c15_c2_1" > /.regstable单个箭头将之前所有的寄存器清除,只写入寄存器MPIDR_EL1      S3_0_c15_c2_1      setp2:用双箭头echo "ERXPFGF_EL1      S3_0_c15_c2_0" >> /.regstable输入寄存器ERXPFGF_EL1      S3_0_c15_c2_0,依次类似增加多个对应CPU可用的寄存器            之前./rdasr -t会异常重启,有的时候会coredump。自执行过step1后,现在都不复现异常重启的场景了      要是后续在别的设备上还有出现的话,我让人提个PR给你。       着实抱歉。 J

发件人:"Rongwei @.> 时间: 2023年5月26日 (周五) 09:58 主题: Re: [alibaba/system-register-tools] system-register-tool安装与A55寄存器不全问题请教下 (Issue #4) @.> @.>, @.>

 cp /.regstable /.regstable.bak echo "ERXPFGCTL_EL1 S3_0_c15_c2_1">>/.regstable //备注:这里的空格我不知道要几个 此时cat /.regstable发现上述的信息的确有在/.regstable内,可是运行 ./rdsar -p0 -r ERXPFGCTL_EL1 结果显示internal error:oops - undefined instruction:0[#1https://github.com/alibaba/system-register-tools/issues/1] SMP 为什么    这个问题是如何解决的,是system-register-tools的问题吗?如果是的话,是否可以帮忙提一个PR,或告诉我自己来修复一下。 感谢! — Reply to this email directly,view it on GitHubhttps://github.com/alibaba/system-register-tools/issues/4#issuecomment-1563712602, orunsubscribehttps://github.com/notifications/unsubscribe-auth/BAAK5X5J2LBJ7V7C7QEUFN3XIAE2VANCNFSM6AAAAAAYMYJYEM. You are receiving this because you authored the thread.[image: https://github.com/notifications/beacon/BAAK5X3OSRJMNVVTJBRYIVLXIAE2VA5CNFSM6AAAAAAYMYJYEOWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTS5GROFU.gif]Message ID: @.***>

wangrongwei commented 1 year ago

补充:发现自运行step1后,现在./rdasr -t都可以正常运行,如预期一样。我们怀疑是贵司工具自带的regstable里的寄存器可能有些是A55不支持的,所以运行某些寄存器时会导致设备异常重启

是的,我们是ARMv8。不过该驱动有hook功能,如果检测到是该模块导致的未定义指令异常会拦截,避免宕机。 如此看来有些寄存器在你们的环境里边没有被拦截。主要是我找不到A55环境测试,所以没办法修复。

BTW,这个.regstable文件并非必须的,主要的作用是让用户可以使用ERXPFGF_EL1类似寄存器名的输入,使用S3_0_c15_c2_1是不需要该文件的。