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.

TUSB9261: transmission speed

Part Number: TUSB9261

Hi team,

The customer designed a hard disk box using TUSB9261 chip, but the transmission speed is only about 190MB/s, only half of the theoretical speed, which can not reach the maximum transmission speed of 3Gbps given in the manual. The hard disk used is gen3 hard disk, and the log printed by serial port is as follows:

========================================================

||   TUSB926x Firmware v1.06 [Jan  5 2018 12:01:27]   ||

||                 Device ID: 0x0000                  ||

========================================================

Reset Flag(s): [Power-Up]

[0000000001] Datapath RAM Usage: 80208 / 81920 bytes.

[0000000001] Supported NCQ Depth: 32

[0000000001] U1/U2 Transistions: OFF

[0000000001] USB PHY Suspend: ON

[0000000001] SATA LPM: OFF

[0000000001] Device is Self-powered.

[0000000001] -> usb_hal_init()

[0000000001] USB Core Ver: 0x120a.

[0000000001] USB SSC is OFF.

[0000000051] -> usb_hal_connect()

[0000000051][-> ahci_init()

[0000000051] -> ahci_hba_reset()

[0000000065] USB Reset event occurred.

[0000000065] LTSSM state = (0x7) POLLING.

[0000000070] Connected at SUPER speed.

[0000000070] -> usb_hal_set_address() - addr: 0xd.

[0000000177] -> handle_usb_set_configuration() - val = 1.

[0000000178] -> usb_hal_set_U1_initiate_enable() - 1.

[0000000178] -> usb_hal_set_U2_initiate_enable() - 1.

[0000000306] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.

[0000000306] -> ahci_port_reset(0)

[0000000361] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.

[0000000361] -> ahci_port_reset(0)

[0000000416] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.

[0000000416] -> ahci_port_reset(0)

[0000000426] SATA Gen-2 speed negotiated.

[0000008797]

[0000008797] ================================================

[0000008797]              IDENTIFY DEVICE INFO

[0000008797] ================================================

[0000008797]

[0000008797]   Model:  INTEL SSDSC2KB038T8                    

[0000008797]   FW Rev: XCV10110

[0000008797]   Serial: PHYF946600QQ3P8EGN  

[0000008797]   TRIM Support: Yes [DRAT][RZAT]

[0000008797]

[0000008797]   Spec Compliance: ATA-7

[0000008797]   Removable Media: No

[0000008797]   UDMA Modes = 0x407f

[0000008797]   PIO Modes = 0x0003

[0000008797]

[0000008797]   LBA48: Yes

[0000008797]   Max LBA = 0x00000001 bf1f72b0

[0000008797]   Write FUA: Yes

[0000008797]   World Wide Name = 0x55cd2e41 513c90d2

[0000008797]

[0000008797]   SATA Speed: Gen3

[0000008797]   NCQ Support: Yes

[0000008797]   Queue Depth = 31

[0000008797]

[0000008797]   Logical Sector Size = 512 bytes

[0000008797]   Physical Sector Size = 4096 bytes

[0000008797]   Logical Sector Offset = 0

[0000008797]

[0000008797] ================================================

[0000008881] Connected to 1 AHCI device(s).

[0000008884] AHCI task file error! P0TFD error = 0x04, status = 0x51.

[0000008884] -> ums_bot_ata_error_callback() - gBOT_state = 3.

[0000008884] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0xa2.

[0000008884] AHCI task file error! P0TFD error = 0x04, status = 0x51.

[0000008884] -> ums_bot_ata_error_callback() - gBOT_state = 3.

[0000008884] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0xa2.

[0000008884] AHCI task file error! P0TFD error = 0x04, status = 0x51.

[0000008884] -> ums_bot_ata_error_callback() - gBOT_state = 3.

[0000008884] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0xa2.

[0000008885] AHCI task file error! P0TFD error = 0x04, status = 0x51.

[0000008885] -> ums_bot_ata_error_callback() - gBOT_state = 3.

[0000008885] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0xa2.

[0000008888] AHCI task file error! P0TFD error = 0x04, status = 0x51.

[0000008888] -> ums_bot_ata_error_callback() - gBOT_state = 3.

[0000008888] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0xa2.

[0000008888] AHCI task file error! P0TFD error = 0x04, status = 0x51.

[0000008888] -> ums_bot_ata_error_callback() - gBOT_state = 3.

[0000008888] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0xa2.

[0000008889] -> ums_bot_case_handler() - case 5.

[0000008889] -> ums_bot_case_handler() - case 5.

[0000008898] @Warning: scsi_handle_mode_sense_cmd() - page code 0x1c not supported.

[0000008898] -> ums_bot_send_CSW() - status = FAILED. CDB[0] = 0x1a.

[0000008898] -> ums_bot_case_handler() - case 5.

[0000008899] -> ums_bot_case_handler() - case 5.

[0000008899] -> ums_bot_case_handler() - case 5.

[0000008901] -> ums_bot_case_handler() - case 5.

[0000008904] -> ums_bot_case_handler() - case 5.

[0000008905] -> ums_bot_case_handler() - case 5.

[0000008917] -> ums_bot_case_handler() - case 5.

[0000008918] -> ums_bot_case_handler() - case 5.

[0000008925] -> ums_bot_case_handler() - case 5.

[0000008925] -> ums_bot_case_handler() - case 5.

[0000009809] -> ums_bot_case_handler() - case 5.

[0000009811] -> ums_bot_case_handler() - case 5.

[0000067967] LTSSM state = (0x3) U3.

[0000116504] -> usb_hal_handle_resume()

[0000116504] -> usb_hal_handle_resume()

[0000116504] LTSSM state = (0x8) RECOVERY.

[0000116508] -> ums_bot_case_handler() - case 5.

[0000116709] -> ums_bot_case_handler() - case 5.

[0000117022] -> ums_bot_case_handler() - case 5.

[0000117371] -> ums_bot_case_handler() - case 5.

[0000117679] -> ums_bot_case_handler() - case 5.

[0000118018] -> ums_bot_case_handler() - case 5.

[0000118350] -> ums_bot_case_handler() - case 5.

[0000118659] -> ums_bot_case_handler() - case 5.

[0000118967] -> ums_bot_case_handler() - case 5.

[0000119268] -> ums_bot_case_handler() - case 5.

[0000119627] -> ums_bot_case_handler() - case 5.

[0000119938] -> ums_bot_case_handler() - case 5.

[0000120265] -> ums_bot_case_handler() - case 5.

[0000120565] -> ums_bot_case_handler() - case 5.

[0000120884] -> ums_bot_case_handler() - case 5.

[0000121207] -> ums_bot_case_handler() - case 5.

[0000121505] -> ums_bot_case_handler() - case 5.

[0000121878] -> ums_bot_case_handler() - case 5.

[0000122561] -> ums_bot_case_handler() - case 5.

[0000123219] -> ums_bot_case_handler() - case 5.

[0000123880] -> ums_bot_case_handler() - case 5.

[0000124448] -> ums_bot_case_handler() - case 5.

[0000125004] -> ums_bot_case_handler() - case 5.

[0000125613] -> ums_bot_case_handler() - case 5.

[0000126242] -> ums_bot_case_handler() - case 5.

[0000126828] -> ums_bot_case_handler() - case 5.

[0000127741] -> ums_bot_case_handler() - case 5.

[0000128673] -> ums_bot_case_handler() - case 5.

[0000182463] LTSSM state = (0x3) U3.

Could you give me any suggestion?

Best Regards,
Amy Luo

  • Hi Amy,

    It seems that the USB Bulk in endpoint is repeatedly being stalled due to the SATA device sending less data than the what the host expects (based on the CBW). TUSB9261 seems to be handling this case correctly so this may be a limitation of your hard disk. What operation was being tested when this debug log was observed?

  • Hi Malik,

    Thank you for your reply. Sorry to bother you again.

    This is the log printed after power on. There is no other operation. It should be some initialization and device handshake. After that, the file can be transferred normally. The hard disk used can be identified in the log.

    Best Regards,
    Amy Luo

  • Hi Malik,

    Now the customer has the following questions, could you help me answer them:

    TUSB9261ipv6 is not recognized in Linux. Print the log as follows:

    ========================================================
    ||   TUSB926x Firmware v1.06 [Jan  5 2018 12:01:27]   ||
    ||                 Device ID: 0x0000                  ||
    ========================================================
     Reset Flag(s): [Power-Up]
    [0000000001] Datapath RAM Usage: 80208 / 81920 bytes.
    [0000000001] Supported NCQ Depth: 32
    [0000000001] U1/U2 Transistions: OFF
    [0000000001] USB PHY Suspend: ON
    [0000000001] SATA LPM: OFF
    [0000000001] Device is Self-powered.
    [0000000001] -> usb_hal_init()
    [0000000001] USB Core Ver: 0x120a.
    [0000000001] USB SSC is OFF.
    [0000000051] -> usb_hal_connect()
    [0000000051] [0000000051] LTSSM state = (0x5) RX DETECT.
    -> ahci_init()
    [0000000051] -> ahci_hba_reset()
    [0000000065] USB Reset event occurred.
    [0000000065] LTSSM state = (0x7) POLLING.
    [0000000069] Connected at SUPER speed.
    [0000000196] LTSSM state = (0x5) RX DETECT.
    [0000000197] USB Reset event occurred.
    [0000000197] LTSSM state = (0x7) POLLING.
    [0000000278] USB Reset event occurred.
    [0000000278] LTSSM state = (0x7) POLLING.
    [0000000306] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.
    [0000000306] -> ahci_port_reset(0)
    [0000000307] HS/FS/LS state = (0x0) ON.
    [0000000310] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [0000000313] HS/FS/LS state = (0x3) SUSPEND.
    [0000000361] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.
    [0000000361] -> ahci_port_reset(0)
    [0000000416] -> ahci_wait_complete() timed out! Rd: 0xfb000128 = 0x00000000, cmplt_val = 0x00000003.
    [0000000416] -> ahci_port_reset(0)
    [0000000430] SATA Gen-2 speed negotiated.
    [0000010255]
    [0000010255] ================================================
    [0000010255]              IDENTIFY DEVICE INFO
    [0000010255] ================================================
    [0000010255]
    [0000010255]   Model:  INTEL SSDSC2KB038T8                    
    [0000010255]   FW Rev: XCV10110
    [0000010255]   Serial: PHYF946600QQ3P8EGN 
    [0000010255]   TRIM Support: Yes [DRAT][RZAT]
    [0000010255]
    [0000010255]   Spec Compliance: ATA-7
    [0000010255]   Removable Media: No
    [0000010255]   UDMA Modes = 0x407f
    [0000010255]   PIO Modes = 0x0003
    [0000010255]
    [0000010255]   LBA48: Yes
    [0000010255]   Max LBA = 0x00000001 bf1f72b0
    [0000010255]   Write FUA: Yes
    [0000010255]   World Wide Name = 0x55cd2e41 513c90d2
    [0000010255]
    [0000010255]   SATA Speed: Gen3
    [0000010255]   NCQ Support: Yes
    [0000010255]   Queue Depth = 31
    [0000010255]
    [0000010255]   Logical Sector Size = 512 bytes
    [0000010255]   Physical Sector Size = 4096 bytes
    [0000010255]   Logical Sector Offset = 0
    [0000010255]
    [0000010256] ================================================
    [0000010258] Connected to 1 AHCI device(s).
    Best Regards,
    Amy Luo
  • Hi Amy,

    From the log it seems that TUSB9261 cannot connect over USB and is stuck in Polling state on the USB side. This mean that the USB Host RX terminations are not present as expected. Could you describe your test setup? Is the customer using the DEMO Board or a custom board?

  • Hi Malik,

    Thank you for your reply.

    The customer uses their own board, the connector is a kind of M12 10 Gigabit network cable. It can be used when using standard USB cable, but the transmission speed is only about 179MB. After using M12 cable instead of USB cable, the above problem appears.

    Best Regards,
    Amy

  • Hi Amy,

    From your description it seems that the M12 cable has very poor signal integrity and is interfering with the USB 3 link training process. I would try to use shorter or high quality cable if possible. Do you have a USB protocol analyzer to confirm?