This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TUSB9261DEMO:传输长度超过最大散射收集列表大小

Guru**** 2460850 points
Other Parts Discussed in Thread: TUSB9261

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/629020/tusb9261demo-transfers-length-exceeds-max-scatter-gather-list-size

部件号:TUSB9261DEMO
主题中讨论的其他部件:TUSB9261

由于特定型号的嵌入式设备上的磁盘IO活动,我遇到了该设备与TUSB9261之间的兼容性问题,在Linux或Windows上的桌面上没有发现该问题。

我能够在Linux (内核版本4.4)中从该驱动器成功装载分区。

运行任何文件操作时,TUSB9261会锁定并需要重置。

1.是否有可用的固件/配置选项作为变通办法?

2.不相关,是否可以获得Linux的固件刷新实用程序?

调试UART输出:

===========================================================================================================
||  TUSB926x固件版本1.06 [2016年12月 8日16:53:12]||   
||                设备ID:0x0000                 ||
===========================================================================================================

 重置标志:[Power-通 电]

[0000000001] datapath RAM用法:8.0208万 / 8.192万字节。
[0.0001万]支持的NCQ深度:32
[0.0001万] U1/U2转换:关闭
[0.0001万] USB PHY挂起:开
[0.0001万] SATA LPM:关闭
[0.0001万]设备已自行供电。
[0.0001万]-> usb_hal_init()
[0.0001万] USB Core版本:0x120a。
[0.0001万] USB SSC已关闭。
[0000000051]-> usb_hal_connect()
[0000000051][0000000051] LTSSM0000000051 LTSSM状态=(0x5) RX检测。
 -> AHCI_INIT()
[0000000051]-> AHCI_HBA_RESET()
[0000000052]发生USB重置事件。
[0000000052] LTSSM状态=(0x7)轮询。
[0000000056]协商的SATA Gen-2速度。
[0000000058]
[0000000058]=========================================================
[0000000058]             识别设备信息
[0000000058]=========================================================
[0000000058]
[0000000058]  型号: 英特尔SSDSA2CW080G3                     
[0000000058]  FW修订版:4PC1.0362万
[0000000058]  串行:CVPR21.1004万LX080BGN  
[0000000058]  饰件支架:是
[0000000058]
[0000000058]  规格符合性:ATA-7
[0000000058]  可移动介质:否
[0000000058]  UDMA模式= 0x407f
[0000000058]  PIO模式= 0x0003
[0000000058]
[0000000058]  lba48:是
[0000000058]  最大LBA = 0x0万 0950f8b0
[0000000058]  写入FAA:是
[0000000058]  全局名称= 0x500.1517万b b287f75b
[0000000058]
[0000000058]  SATA速度:第2代
[0000000058]  NCQ支持:是
[0000000058]  队列深度= 31
[0000000058]
[0000000058]  逻辑扇区大小=512字节
[0000000058]  物理扇区大小=512字节
[0000000058]  逻辑扇区偏移量=0
[0000000058]
[0000000058]=========================================================

[0000000061]已连接至1个AHCI设备。
[0000000098]以超高速连接。
[0000000203]发生USB重置事件。
[0000000203]-> AHCI_RESET_LUN(0)
[0000000203]已以超高速连接。
[0000000316]-> usb_hal_set_address()-地址:0x1.
[0000000377]-> Handle_USB_set_configuration()- val = 1。
[0000001417]-> ums_bot_CASE_handler()-案例5。
[0000001429]-> ums_bot_CASE_handler()-案例5。
[0000001440]-> ums_bot_CASE_handler()-案例5。
[0000001442]-> ums_bot_CASE_handler()-案例5。
[0000001453]-> ums_bot_CASE_handler()-案例5。
[0000001455]-> ums_bot_CASE_handler()-案例5。
[0000001462]-> scsi_build_ata_pass_through _cmd()- cmd = 0xec,byte_cnt = 512,chk_cond = 1。
[0000001463]-> ums_bot_CASE_handler()-案例5。
[1.54亿]-> scsi_build_ata_pass_through _cmd()- cmd = 0xef,byte_cnt = 0,chk_cond = 1。
[0000001542] AHCI任务文件错误! P0TFD错误= 0x04,状态= 0x51。
[0000001542]-> ums_bot_ata_error_callback()- gBOT_state = 3.
[0000001542]-> ums_bot_send_csw()-状态=失败。 CDB[0]= 0x85。
[0000001542]-> ums_bot_CASE_handler()-案例5。
[0000001543]-> scsi_build_ata_pass_through _cmd()- cmd = 0xec,byte_cnt = 512,chk_cond = 0。
[0000092254]@错误:Xfer长度0x80万超过最大s/g列表大小!
[0000092273] AHCI溢出状态中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Dylan,

    已为此问题指派了一名支持工程师。
    您很快就会收到回复。

    此致,
    豪尔赫
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Dylan,

    每笔交易的传输长度限制为1948 KB。    这在"限制查询VPD "页面中指明。  嵌入式系统必须违反此限制。

    此致,

    Brian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    具体来说,您的系统尝试的8192 KB 传输超出了我们的限制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Dylan,

    我通过电子邮件向您发送了Linux Flash刻录机

    此致,
    Roberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于其他人来说,在Linux内核版本4.9 下,一个对我有效的klodge是修改__SCSI_INIT_QUEUE,将blk_queue_max_segments设置为256,将最大段大小设置为4096。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Dylan,感谢您的提示。  令我惊讶的是,Linux没有阅读阻止限制VPD页面,并且假设所有设备都支持8 MB 传输。