如题,我用的是 3A6000 + 7A2000 的这块绿板,从一个 USB CDC 模拟串口设备读取1M大小数据,用时需要 33 秒。我在 3A4000+7A1000 主板及其他两台 x86 电脑上测试都是仅需 7 秒左右。感觉龙芯 3A6000 这块板把全速设备识别成低速设备了(高速设备是正常的,所以应该不是USB接口的问题),Loongnix、LoongarchLinux、AOSC都试过,新旧世界也都试过,都没解决这个问题。有大佬知道吗?
看一下插入设备时的相关 dmesg 输出,有助于排查问题
xen0n 输出信息如下,红色标记表示不同的地方,第一张是 3A6000 的,第2、3张是两台x86的,3A4000的弄不到了(因为不想拆电源,我把板子搭在机箱上(中间放有一块减震膜),可能减震膜太薄,板子底部针脚刺穿薄膜被机箱短路烧坏了,现在开不了机了 )。三个各不一样的,不懂是哪里的问题?
下面两个是两台x86的信息
这比软盘都慢了,数据线坏了吧
EMCA 各个USB口反复试过,数据线也没问题,用的都是同一根数据线
看dmesg信息,是驱动把同一硬件识别成了不同类型的usb设备,换个内核试试,新旧世界也试试
有一种可能,是usb供电上的差异化导致的,偶尔有反馈usb掉设备的情况,建议用主板提供的usb口,usb2.0&3.0都试试
杜比 全部USB接口都试过了,最新的6.12内核也试过。就一颗CH554,啥外设都没连,应该不至于引起供电不足,怀疑也可能是BIOS或者硬件上的问题,只能等新BIOS固件出来再试试了
感觉供电不太足的样子
gainer 不可能是供电问题,U盘能正常读写,说明USB口供电没问题,CH554功耗远不如U盘,甚至都不到一个指示灯的功耗,对CH554使用外置供电也没解决问题,手机数据线2A充电也没问题,这个就是内核、BIOS或者硬件三者之中的问题
最新发现,若主机只请求一次,然后连续返回1M数据只需1s多。若一次请求不大于一个最大长度的包,1M数据分多个包请求时就会发生上面的情况,所以内核调度问题可能性比较大
harder 发现这个问题和我遇到的这个问题很类似啊
龙芯系统在不使用现今常用的DMA大块传输方式而是使用旧的无限循环小块读取的方式访问内存和IO时极易发生问题
我尝试移植MAME模拟器时遇到了类似的问题
https://bbs.loongarch.org/d/507-mamesegment-fault
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途。