TUSB9261: Failure to send data

Part Number: TUSB9261

Tool/software:

Hi team,

I connected CPU and SSD and sent ATA PATHTHROUGH (12), some commands pass and some do not.
I am trying to send ATA command (SSD original command) + additional data (512 bytes), but it seems that the one that fails is not sending the additional data correctly.
Are there any possible causes?

Best Regards,
Ryu.

  • Hi,

    What does the reference clock jitter look like in your application?

  • Hi Ryu,

    Can you answer a few questions so we can narrow down the issue?

    1. Is this a prototype that has being tested or an existing design and the performance has changed?
    2. How are you sending the commands?  Is there some software involved or are you coding something from scratch?
    3. Can you provide more details about the command that is passing and the one that is failing?
    4. When you say the command that fails "is not sending the additional data correctly" what does that mean?  It's not sending it at all, or is the data corrupted?

    Regards,

    Nicholaus

  • Hi Nicholaus,

    Is this a prototype that has being tested or an existing design and the performance has changed?

    Prototype.

    How are you sending the commands?  Is there some software involved or are you coding something from scratch?

    It is sent with the sg_raw command.

    Can you provide more details about the command that is passing and the one that is failing?

    When Successful
    Send Command:81h,Feature51h command, then send 512 bytes of data after the command as additional data.
    The data is correctly recognized.
    On failure
    After sending the Command:81h,Feature00h command, 512 bytes of data are sent after the command as additional data.
    Data is not recognized correctly and processing is not completed.

    When you say the command that fails "is not sending the additional data correctly" what does that mean?  It's not sending it at all, or is the data corrupted?

    As mentioned above, data is not recognized and processing stops.

    Best Regards,
    Ryu.

  • Hi Ryu,

    Thanks for clarifying. We are looking further into this issue.

  • Hi Vishesh,

    Thank you for your research.
    When can I expect the results?

    Best Regards,
    Ryu.

  • Hi Ryu

    The TUSB9261 supports 12-byte and 16-byte ATA Pass-Through commands with data length up to 64KB which can be used to send any generic ATA command.

    Best

    Brian

  • Hi Brian,

    Why does the transmission fail?

    Best Regards,
    Ryu.

  • Hi Ryu:

         What is difference between Feature 00h and Feature 51h?

    Best

    Brian

  • Hi Brian,

    Success command
    PROTOCOL: PIO Data-Out
    FEATURE:51h
    COMMAND: 81h

    Failure command
    PROTOCOL: PIO Data-Out
    FEATURE: 00h
    COMMAND:81h

    Both are proprietary commands, and the content is changed by changing the FEATURE.

    Best Regards,
    Ryu.

  • Hi Ryu:

       I will give you update  by tomorrow.

    Best

    Brian

  • It seems like it is.  One thing I want to clarify.

    When you say the command that fails "is not sending the additional data correctly" what does that mean?  It's not sending it at all, or is the data corrupted?

    "As mentioned above, data is not recognized and processing stops."

    I'm still not sure what "data is not recognized and processing stops" means.  Please give a specific description of what the failure is.  Do you have a screenshot?  What value does the sg_raw command return?  That should give an exit status code that will give us error information.

    Command description - sg_raw(8) - Linux man page
    Exit Status Descriptionssg3_utils(8) - Linux man page

    Failing command text:
     sg_raw -s 512 ?i Exam1.bin /dev/sda a1 2a 25 00 00 00 00 00 00 81 00 00

    Passing command text:
     sg_raw -s 512 ?i Exam2.bin /dev/sda a1 2a 25 51 00 00 00 00 00 00 81 00 00

    After reviewing the command, you are sending 512 bytes of IFILE data; Exam1.bin in one case, and Exam2.bin in another.  

    The follow up data is the command descriptor block (CBD).  The SCSI OpCode is A1h - ATA Pass-Through (12-bytes).  

    Op Code Reserved/Command Parameters Command Parameters Reserved Control Byte
    A1 2A 25 00 00 00 00 00 00 81 00

    00

    A1 2A 25 51 00 00 00 00 00 00 81 00 00

    I would think the commands should look like this, but maybe I am misunderstanding.


     sg_raw -s 512 ?i Exam1.bin /dev/sda a1 2a 25 00 00 00 00 00 00 81 00 00


     sg_raw -s 512 ?i Exam1.bin /dev/sda a1 2a 25 51 00 00 00 00 00 81 00 00

    Regards,

    Nicholaus

  • Hi Nicholaus,

    Thanks for the reply.
    This has to do with the link.
    I attach the image data of the situation.

    success
    success

    failure
    failure

    Best Regards,
    Ryu.

  • Hi Ryu,

    Does the screenshot show the returned value of sg_raw?  I see a response that says, "SCSI Status: Check Condition" and a response that says "SCSI Status: Good".  What number value does this correspond to on this page?   Exit Status Descriptions - sg3_utils(8) - Linux man page

    The commands in the screenshots don't seem to match to me.  It looks like the transfer length is incorrect. I'm still reviewing the data.  Give me a little more time today and I will follow up.  

    Regards,

    Nicholaus

  • Hi Ryu,

    Do you have access to the TUSB9261 UART debug port?  Below are the connection details.

    - SCI Interface Configuration - 

    • BAUD rate: 115,200
    • Data bits: 8
    • Stop bits: 1
    • Parity: None.
    • Flow control: None.

    Regards,

    Nicholaus

  • Can you tell me the specific model of SSD that is being tested?

    Regards,

    Nicholaus

  • Hi Nicholaus,

    The SSD model is SNT2A800G:T.
    https://product.tdk.com/system/files/dam/doc/product/flash-storage/flashstorage-catalog_en_21.pdf

    Debugging logs are also attached.

    [2025-03-07 11:42:48.276] [0001523386] -> ums_bot_case_handler() - case 5.
    [2025-03-07 11:42:48.276] [0001523390] -> ums_bot_case_handler() - case 5.
    [2025-03-07 11:42:48.276] [0001523391] -> ums_bot_case_handler() - case 5.
    [2025-03-07 11:42:48.303] [0001523431] -> ums_bot_case_handler() - case 5.
    [2025-03-07 11:43:52.244] [0001587188] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-07 11:43:52.244] [0001587189] USB Reset event occurred.
    [2025-03-07 11:43:52.244] [0001587189] -> ahci_reset_lun(0)
    [2025-03-07 11:43:52.244] [0001587189] -> ahci_fatal_error_recovery() - dev_status = 0x00000058, outstanding_cmd_slots = 0x00000000, force_comreset = 0.
    [2025-03-07 11:43:52.244] [0001587189] -> ahci_port_reset(0)
    [2025-03-07 11:43:52.244] [0001587195] @Error: ATA device busy! Re-initializing HBA.
    [2025-03-07 11:43:52.244] [0001587195] -> ahci_init()
    [2025-03-07 11:43:52.244] [0001587195] -> ahci_hba_reset()
    [2025-03-07 11:43:52.244] [0001587196] SATA Gen-2 speed negotiated.
    [2025-03-07 11:43:52.244] [0001587215] 
    [2025-03-07 11:43:52.244] [0001587215] ================================================
    [2025-03-07 11:43:52.244] [0001587215]              IDENTIFY DEVICE INFO
    [2025-03-07 11:43:52.244] [0001587215] ================================================
    [2025-03-07 11:43:52.244] [0001587215] 
    [2025-03-07 11:43:52.244] [0001587215]   Model:  GBDriver GS2                            
    [2025-03-07 11:43:52.244] [0001587215]   FW Rev: gs2.a100
    [2025-03-07 11:43:52.244] [0001587215]   Serial: GS2000000T0000001630
    [2025-03-07 11:43:52.244] [0001587215]   Disk Type: Solid State
    [2025-03-07 11:43:52.244] [0001587215]   TRIM Support: Yes
    [2025-03-07 11:43:52.244] [0001587215] 
    [2025-03-07 11:43:52.244] [0001587215]   Spec Compliance: ATA-3
    [2025-03-07 11:43:52.244] [0001587215]   Removable Media: No
    [2025-03-07 11:43:52.244] [0001587215]   UDMA Modes = 0x407f
    [2025-03-07 11:43:52.244] [0001587215]   PIO Modes = 0x0003
    [2025-03-07 11:43:52.248] [0001587215] 
    [2025-03-07 11:43:52.248] [0001587215]   LBA48: Yes
    [2025-03-07 11:43:52.248] [0001587215]   Max LBA = 0x00000000 5d28bb00
    [2025-03-07 11:43:52.248] [0001587215]   Write FUA: Yes
    [2025-03-07 11:43:52.248] [0001587215]   World Wide Name: Not valid.
    [2025-03-07 11:43:52.248] [0001587215] 
    [2025-03-07 11:43:52.248] [0001587215]   SATA Gen 2 (3.0 Gb/s): Yes
    [2025-03-07 11:43:52.248] [0001587216]   NCQ Support: Yes
    [2025-03-07 11:43:52.248] [0001587216]   Queue Depth = 31
    [2025-03-07 11:43:52.248] [0001587216] 
    [2025-03-07 11:43:52.248] [0001587216]   Logical Sector Size = 512 bytes
    [2025-03-07 11:43:52.248] [0001587216]   Physical Sector Size = 4096 bytes
    [2025-03-07 11:43:52.248] [0001587216]   Logical Sector Offset = 0
    [2025-03-07 11:43:52.248] [0001587216] 
    [2025-03-07 11:43:52.248] [0001587216] ================================================
    [2025-03-07 11:43:52.248] 
    [2025-03-07 11:43:52.248] [0001587218] Connected to 1 AHCI device(s).
    [2025-03-07 11:43:52.248] [0001587218] -> ahci_reset_lun(0)
    [2025-03-07 11:43:52.248] [0001587218] -> ahci_reset_lun(0)
    [2025-03-07 11:43:52.248] [0001587218] Connected at HIGH speed.
    [2025-03-07 11:43:52.248] [0001587218] HS/FS/LS state = (0x0) ON.
    [2025-03-07 11:43:52.248] [0001587276] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-07 11:43:52.248] [0001587276] USB Reset event occurred.
    [2025-03-07 11:43:52.248] [0001587276] -> ahci_reset_lun(0)
    [2025-03-07 11:43:52.248] [0001587276] -> ahci_reset_lun(0)
    [2025-03-07 11:43:52.248] [0001587276] -> ahci_reset_lun(0)
    [2025-03-07 11:43:52.248] [0001587283] Connected at HIGH speed.
    [2025-03-07 11:43:52.248] [0001587283] HS/FS/LS state = (0x0) ON.
    [2025-03-07 11:43:52.248] [0001587354] -> usb_hal_set_address() - addr: 0x3.
    [2025-03-07 11:43:52.271] [0001587385] -> handle_usb_set_configuration() - val = 1.
    [2025-03-07 11:43:52.271] [0001587390] -> ums_bot_case_handler() - case 5.
    [2025-03-07 11:43:52.271] [0001587392] -> ums_bot_case_handler() - case 5.
    [2025-03-07 11:43:52.303] [0001587434] -> ums_bot_case_handler() - case 5.
    
    [2025-03-07 11:42:44.783] sg_raw -s 512 -i auth_device.bin /dev/sda a1 2a 25 51 00 00 00 00 00 81 00 00
    [2025-03-07 11:42:48.274] SCSI Status: Check Condition 
    [2025-03-07 11:42:48.274] 
    [2025-03-07 11:42:48.274] Sense Information:
    [2025-03-07 11:42:48.274] Fixed format, current; Sense key: Recovered Error
    [2025-03-07 11:42:48.274] Additional sense: ATA pass through information available
    [2025-03-07 11:42:48.274]   error=0x0, status=0x0, device=0x0, count(7:0)=0x0 
    [2025-03-07 11:42:48.274]   extend=0, log_index=0x0, lba_high,mid,low(7:0)=0x0,0x0,0x0 
    [2025-03-07 11:42:48.280] 
    [2025-03-07 11:42:48.286] root@imx8mn-ddr4-evk:~# sg_raw -s 512 -i SET_auth.bin /dev/sda a1 0a 25 00 00 00 00 00 00 81 00 00
    [2025-03-07 11:43:52.137] [ 1589.326926] usb 1-1.2: reset high-speed USB device number 3 using ci_hdrc
    [2025-03-07 11:43:52.252] >>> transport error: Host_status=0x03 [DID_TIME_OUT]
    [2025-03-07 11:43:52.252] 
    [2025-03-07 11:43:52.252] SCSI Status: Good 
    [2025-03-07 11:43:52.252] 
    [2025-03-07 11:43:52.263] root@imx8mn-ddr4-evk:~# 

    Best Regards,
    Ryu.

  • Hi Ryu,

    As discussed in your other issue, you are using firmware v1.0.  Please try updating to v1.06 as we continue debug

    Regards,

    Nicholaus

  • Hi Nicholaus,

    I did the update but the result was the same.

    [2025-03-14 13:44:45.276] root@imx8mn-ddr4-evk:~# sg_raw -s 512 -i SET_auth.bin /dev/sda a1 0a 25 00 00 00 00 00 00 81 00 00
    [2025-03-14 13:45:50.183] [  330.058984] usb 1-1.2: reset high-speed USB device number 3 using ci_hdrc
    [2025-03-14 13:45:50.300] >>> transport error: Host_status=0x03 [DID_TIME_OUT]
    [2025-03-14 13:45:50.300] 
    [2025-03-14 13:45:50.300] SCSI Status: Good 
    [2025-03-14 13:45:50.300] 
    [2025-03-14 13:45:50.309] root@imx8mn-ddr4-evk:~# sg_raw -s 512 -i auth_device.bin /dev/sda a1 2a 25 51 00 00 00 00 00 81 00 00
    [2025-03-14 13:46:00.303] SCSI Status: Check Condition 
    [2025-03-14 13:46:00.303] 
    [2025-03-14 13:46:00.303] Sense Information:
    [2025-03-14 13:46:00.303] Fixed format, current; Sense key: Recovered Error
    [2025-03-14 13:46:00.303] Additional sense: ATA pass through information available
    [2025-03-14 13:46:00.303]   error=0x0, status=0x50, device=0xa0, count(7:0)=0x0 
    [2025-03-14 13:46:00.303]   extend=0, log_index=0x0, lba_high,mid,low(7:0)=0x0,0x0,0x0 
    [2025-03-14 13:46:00.307] 
    [2025-03-14 13:46:00.313] root@imx8mn-ddr4-evk:~# 
    [2025-03-14 13:40:09.355] [0000089877] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-14 13:40:09.355] [0000089877] USB Reset event occurred.
    [2025-03-14 13:40:09.355] [0000089878] -> ahci_reset_lun(0)
    [2025-03-14 13:40:22.253] 
    [2025-03-14 13:40:22.253] ========================================================
    [2025-03-14 13:40:22.253] ||   TUSB926x Firmware v1.06 [Jan  5 2018 12:01:27]   ||
    [2025-03-14 13:40:22.253] ||                 Device ID: 0x0000                  ||
    [2025-03-14 13:40:22.253] ========================================================
    [2025-03-14 13:40:22.253] 
    [2025-03-14 13:40:22.253]  Reset Flag(s): [Power-Up]
    [2025-03-14 13:40:22.253] 
    [2025-03-14 13:40:22.253] [0000000001] Datapath RAM Usage: 80208 / 81920 bytes.
    [2025-03-14 13:40:22.253] [0000000001] Supported NCQ Depth: 32
    [2025-03-14 13:40:22.253] [0000000001] U1/U2 Transistions: OFF
    [2025-03-14 13:40:22.253] [0000000001] USB PHY Suspend: ON
    [2025-03-14 13:40:22.253] [0000000001] SATA LPM: OFF
    [2025-03-14 13:40:22.253] [0000000001] Device is Bus-powered.
    [2025-03-14 13:40:22.253] [0000000001] -> usb_hal_init()
    [2025-03-14 13:40:22.253] [0000000001] USB Core Ver: 0x120a.
    [2025-03-14 13:40:22.253] [0000000001] USB SSC is OFF.
    [2025-03-14 13:40:22.253] [0000000051] -> usb_hal_connect()
    [2025-03-14 13:40:22.253] [0000000051][0000000051] LTSSM state = (0x5) RX DETECT.
    [2025-03-14 13:40:22.253]  -> ahci_init()
    [2025-03-14 13:40:22.253] [0000000051] -> ahci_hba_reset()
    [2025-03-14 13:40:22.253] [0000000057] SATA Gen-2 speed negotiated.
    [2025-03-14 13:40:22.312] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_rx_error_isr() - err_cnt = 0xf.
    [2025-03-14 13:40:22.382] [0000000136] -> ahci_port_reset(0)
    [2025-03-14 13:40:22.382] [0000000142] Num of port resets = 1.
    [2025-03-14 13:40:22.382] [0000000149] HS/FS/LS state = (0x0) ON.
    [2025-03-14 13:40:22.382] [0000000152] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-14 13:40:22.382] [0000000155] HS/FS/LS state = (0x3) SUSPEND.
    [2025-03-14 13:40:22.505] [0000000333] USB Reset event occurred.
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536] ================================================
    [2025-03-14 13:40:22.835] [0000000536]              IDENTIFY DEVICE INFO
    [2025-03-14 13:40:22.835] [0000000536] ================================================
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536]   Model:  GBDriver GS2                            
    [2025-03-14 13:40:22.835] [0000000536]   FW Rev: gs2.a100
    [2025-03-14 13:40:22.835] [0000000536]   Serial: GS2000000T0000001630
    [2025-03-14 13:40:22.835] [0000000536]   TRIM Support: Yes [DRAT][RZAT]
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536]   Spec Compliance: ATA-7
    [2025-03-14 13:40:22.835] [0000000536]   Removable Media: No
    [2025-03-14 13:40:22.835] [0000000536]   UDMA Modes = 0x007f
    [2025-03-14 13:40:22.835] [0000000536]   PIO Modes = 0x0003
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536]   LBA48: Yes
    [2025-03-14 13:40:22.835] [0000000536]   Max LBA = 0x00000000 5d28bb00
    [2025-03-14 13:40:22.835] [0000000536]   Write FUA: Yes
    [2025-03-14 13:40:22.835] [0000000536]   World Wide Name: N/A
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536]   SATA Speed: Gen3
    [2025-03-14 13:40:22.835] [0000000536]   NCQ Support: Yes
    [2025-03-14 13:40:22.835] [0000000536]   Queue Depth = 31
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536]   Logical Sector Size = 512 bytes
    [2025-03-14 13:40:22.835] [0000000536]   Physical Sector Size = 4096 bytes
    [2025-03-14 13:40:22.835] [0000000536]   Logical Sector Offset = 0
    [2025-03-14 13:40:22.835] [0000000536] 
    [2025-03-14 13:40:22.835] [0000000536] ================================================
    [2025-03-14 13:40:22.839] 
    [2025-03-14 13:40:22.839] [0000000539] Connected to 1 AHCI device(s).
    [2025-03-14 13:40:22.839] [0000000623] Connected at FULL speed.
    [2025-03-14 13:40:22.839] [0000000623] HS/FS/LS state = (0x0) ON.
    [2025-03-14 13:40:22.839] [0000000626] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-14 13:40:22.839] [0000000629] HS/FS/LS state = (0x3) SUSPEND.
    [2025-03-14 13:40:23.040] [0000000838] USB Reset event occurred.
    [2025-03-14 13:40:23.040] [0000000838] -> ahci_reset_lun(0)
    [2025-03-14 13:40:23.040] [0000000848] Connected at HIGH speed.
    [2025-03-14 13:40:23.040] [0000000848] HS/FS/LS state = (0x0) ON.
    [2025-03-14 13:40:23.101] [0000000927] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-14 13:40:23.101] [0000000927] USB Reset event occurred.
    [2025-03-14 13:40:23.125] [0000000927] -> ahci_reset_lun(0)
    [2025-03-14 13:40:23.125] [0000000935] Connected at HIGH speed.
    [2025-03-14 13:40:23.125] [0000000935] HS/FS/LS state = (0x0) ON.
    [2025-03-14 13:40:23.175] [0000001001] -> usb_hal_set_address() - addr: 0x3.
    [2025-03-14 13:40:23.209] [0000001031] -> handle_usb_set_configuration() - val = 1.
    [2025-03-14 13:40:24.326] [0000002142] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:40:24.341] [0000002170] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:40:24.374] [0000002204] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:40:24.395] [0000002206] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:40:27.431] [0000005234] -> scsi_build_ata_pass_through_cmd() - cmd = 0xec, byte_cnt = 512, chk_cond = 1.
    [2025-03-14 13:40:27.431] [0000005235] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:45:29.974] [0000307804] -> scsi_build_ata_pass_through_cmd() - cmd = 0x81, byte_cnt = 0, chk_cond = 1.
    [2025-03-14 13:45:50.290] [0000327935] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-14 13:45:50.290] [0000327936] USB Reset event occurred.
    [2025-03-14 13:45:50.290] [0000327936] -> ahci_reset_lun(0)
    [2025-03-14 13:45:50.290] [0000327936] -> ahci_fatal_error_recovery() - dev_status = 0x00000058, outstanding_cmd_slots = 0x00000000, force_comreset = 0.
    [2025-03-14 13:45:50.290] [0000327936] -> ahci_port_reset(0)
    [2025-03-14 13:45:50.292] [0000327942] @Error: ATA device busy! Re-initializing HBA.
    [2025-03-14 13:45:50.292] [0000327942] -> ahci_init()
    [2025-03-14 13:45:50.292] [0000327942] -> ahci_hba_reset()
    [2025-03-14 13:45:50.292] [0000327948] SATA Gen-2 speed negotiated.
    [2025-03-14 13:45:50.292] [0000327963] 
    [2025-03-14 13:45:50.292] [0000327963] ================================================
    [2025-03-14 13:45:50.292] [0000327963]              IDENTIFY DEVICE INFO
    [2025-03-14 13:45:50.292] [0000327963] ================================================
    [2025-03-14 13:45:50.292] [0000327963] 
    [2025-03-14 13:45:50.292] [0000327963]   Model:  GBDriver GS2                            
    [2025-03-14 13:45:50.292] [0000327963]   FW Rev: gs2.a100
    [2025-03-14 13:45:50.292] [0000327963]   Serial: GS2000000T0000001630
    [2025-03-14 13:45:50.292] [0000327963]   TRIM Support: Yes [DRAT][RZAT]
    [2025-03-14 13:45:50.292] [0000327963] 
    [2025-03-14 13:45:50.292] [0000327963]   Spec Compliance: ATA-7
    [2025-03-14 13:45:50.292] [0000327963]   Removable Media: No
    [2025-03-14 13:45:50.292] [0000327963]   UDMA Modes = 0x407f
    [2025-03-14 13:45:50.292] [0000327963]   PIO Modes = 0x0003
    [2025-03-14 13:45:50.292] [0000327963] 
    [2025-03-14 13:45:50.296] [0000327963]   LBA48: Yes
    [2025-03-14 13:45:50.296] [0000327963]   Max LBA = 0x00000000 5d28bb00
    [2025-03-14 13:45:50.296] [0000327963]   Write FUA: Yes
    [2025-03-14 13:45:50.296] [0000327963]   World Wide Name: N/A
    [2025-03-14 13:45:50.296] [0000327963] 
    [2025-03-14 13:45:50.296] [0000327963]   SATA Speed: Gen3
    [2025-03-14 13:45:50.296] [0000327963]   NCQ Support: Yes
    [2025-03-14 13:45:50.296] [0000327963]   Queue Depth = 31
    [2025-03-14 13:45:50.296] [0000327963] 
    [2025-03-14 13:45:50.296] [0000327963]   Logical Sector Size = 512 bytes
    [2025-03-14 13:45:50.296] [0000327963]   Physical Sector Size = 4096 bytes
    [2025-03-14 13:45:50.296] [0000327963]   Logical Sector Offset = 0
    [2025-03-14 13:45:50.296] [0000327964] 
    [2025-03-14 13:45:50.296] [0000327964] ================================================
    [2025-03-14 13:45:50.296] 
    [2025-03-14 13:45:50.296] [0000327966] Connected to 1 AHCI device(s).
    [2025-03-14 13:45:50.296] [0000327966] -> ahci_reset_lun(0)
    [2025-03-14 13:45:50.296] [0000327966] Connected at HIGH speed.
    [2025-03-14 13:45:50.296] [0000327966] HS/FS/LS state = (0x0) ON.
    [2025-03-14 13:45:50.296] [0000328019] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-14 13:45:50.296] [0000328019] USB Reset event occurred.
    [2025-03-14 13:45:50.296] [0000328019] -> ahci_reset_lun(0)
    [2025-03-14 13:45:50.296] [0000328019] -> ahci_reset_lun(0)
    [2025-03-14 13:45:50.296] [0000328027] Connected at HIGH speed.
    [2025-03-14 13:45:50.296] [0000328027] HS/FS/LS state = (0x0) ON.
    [2025-03-14 13:45:50.296] [0000328093] -> usb_hal_set_address() - addr: 0x3.
    [2025-03-14 13:45:50.319] [0000328125] -> handle_usb_set_configuration() - val = 1.
    [2025-03-14 13:45:50.319] [0000328129] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:45:50.319] [0000328131] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:45:50.369] [0000328174] -> scsi_build_ata_pass_through_cmd() - cmd = 0xec, byte_cnt = 512, chk_cond = 1.
    [2025-03-14 13:45:50.369] [0000328175] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:46:00.309] [0000338108] -> scsi_build_ata_pass_through_cmd() - cmd = 0x81, byte_cnt = 41472, chk_cond = 1.
    [2025-03-14 13:46:00.309] [0000338110] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:46:00.309] [0000338116] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:46:00.309] [0000338117] -> ums_bot_case_handler() - case 5.
    [2025-03-14 13:46:00.355] [0000338161] -> scsi_build_ata_pass_through_cmd() - cmd = 0xec, byte_cnt = 512, chk_cond = 1.
    [2025-03-14 13:46:00.355] [0000338162] -> ums_bot_case_handler() - case 5.
    

    Best Regards,
    Ryu.

  • Hi Nicholaus,

    In other words, is it a matter of compatibility?
    Would any other SSD work?
    Do you have any background on the selection of these?

    Best Regards,
    Ryu.

  • Hi Ryu,

    I realize now that this SSD is different than what you mentioned.  This looks like the better option, but it is too expensive.  SNT2A800GKLDWA00ESA0 TDK Corporation | Memory - Modules, Cards | DigiKey

    This issue has proven difficult to debug remotely, so I was hoping to reproduce the issue in our lab.  I have asked for the return code for sg_raw.  Based on your logs.  I believe the successful case is Exit Code 11.  

    sg_raw Exit code 11: "the DEVICE reports a "recovered error". The requested command was successful. Most likely a utility will report a recovered error to stderr and continue, probably leaving the utility with an exit status of 0" [ sg3_utils(8) - Linux man page

    I'm not sure what the sg_raw exit code is for the failing case.  It would be helpful if you can provide it.  What we do see is:

    "usb 1-1.2: reset high-speed USB device number 3 using ci_hdrc
    transport error: Host_status=0x03 [DID_TIME_OUT]". 

    It looks like the TUS9261 is being reset after attempting this command.  Can you capture a USB protocol trace and see if that is the case?

    Regards,

    Nicholaus

  • Hi Nichoaus,

    The log is attached.

    [2025-03-19 17:00:43.925] sg_raw -v -s 512 -i SET_auth.bin /de/ v/sda a1 0a 25 00 00 00 00 00 00 81 00 00 
    [2025-03-19 17:01:42.497]     cdb to send: [a1 0a 25 00 00 00 00 00 00 81 00 00]
    [2025-03-19 17:02:02.715] [22991.182905] usb 1-1.2: reset high-speed USB device number 3 using ci_hdrc
    [2025-03-19 17:02:02.831] >>> transport error: Host_status=0x03 [DID_TIME_OUT]
    [2025-03-19 17:02:02.831] 
    [2025-03-19 17:02:02.831] SCSI Status: Good 
    [2025-03-19 17:02:02.831] 
    [2025-03-19 17:02:02.831] Some other error
    [2025-03-19 17:02:02.841] root@imx8mn-ddr4-evk:~# echo $?
    [2025-03-19 17:02:10.491] 99
    [2025-03-19 17:02:10.500] root@imx8mn-ddr4-evk:~# sg_raw -v -s 512 -i auth_device.bin /dev/sda a1 2a 25 41    51 00 00 00 00 00 81 00 00
    [2025-03-19 17:02:51.002]     cdb to send: [a1 2a 25 51 00 00 00 00 00 81 00 00]
    [2025-03-19 17:02:51.010] SCSI Status: Check Condition 
    [2025-03-19 17:02:51.010] 
    [2025-03-19 17:02:51.010] Sense Information:
    [2025-03-19 17:02:51.010] Fixed format, current; Sense key: Recovered Error
    [2025-03-19 17:02:51.012] Additional sense: ATA pass through information available
    [2025-03-19 17:02:51.020]   error=0x0, status=0x50, device=0xa0, count(7:0)=0x0 
    [2025-03-19 17:02:51.040]   extend=0, log_index=0x0, lba_high,mid,low(7:0)=0x0,0x0,0x0 
    [2025-03-19 17:02:51.040]  Raw sense data (in hex), sb_len=18
    [2025-03-19 17:02:51.040]         f0 00 01 00 50 a0 00 0a  00 00 00 00 00 1d 00 00
    [2025-03-19 17:02:51.040]         00 00
    [2025-03-19 17:02:51.040] 
    [2025-03-19 17:02:51.040] Recovered error (warning)
    [2025-03-19 17:02:51.048] root@imx8mn-ddr4-evk:~# echo $?
    [2025-03-19 17:02:58.267] 21
    [2025-03-19 17:02:58.276] root@imx8mn-ddr4-evk:~# 
    [2025-03-19 17:01:42.513] [0022969194] -> scsi_build_ata_pass_through_cmd() - cmd = 0x81, byte_cnt = 0, chk_cond = 1.
    [2025-03-19 17:02:02.847] [0022989330] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-19 17:02:02.847] [0022989331] USB Reset event occurred.
    [2025-03-19 17:02:02.847] [0022989331] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.847] [0022989331] -> ahci_fatal_error_recovery() - dev_status = 0x00000058, outstanding_cmd_slots = 0x00000000, force_comreset = 0.
    [2025-03-19 17:02:02.847] [0022989331] -> ahci_port_reset(0)
    [2025-03-19 17:02:02.847] [0022989337] @Error: ATA device busy! Re-initializing HBA.
    [2025-03-19 17:02:02.847] [0022989337] -> ahci_init()
    [2025-03-19 17:02:02.847] [0022989337] -> ahci_hba_reset()
    [2025-03-19 17:02:02.847] [0022989343] SATA Gen-2 speed negotiated.
    [2025-03-19 17:02:02.847] [0022989358] 
    [2025-03-19 17:02:02.847] [0022989358] ================================================
    [2025-03-19 17:02:02.847] [0022989358]              IDENTIFY DEVICE INFO
    [2025-03-19 17:02:02.847] [0022989358] ================================================
    [2025-03-19 17:02:02.847] [0022989358] 
    [2025-03-19 17:02:02.847] [0022989358]   Model:  GBDriver GS2                            
    [2025-03-19 17:02:02.847] [0022989358]   FW Rev: gs2.a100
    [2025-03-19 17:02:02.847] [0022989358]   Serial: GS2000000T0000001630
    [2025-03-19 17:02:02.847] [0022989358]   TRIM Support: Yes [DRAT][RZAT]
    [2025-03-19 17:02:02.847] [0022989358] 
    [2025-03-19 17:02:02.847] [0022989358]   Spec Compliance: ATA-7
    [2025-03-19 17:02:02.847] [0022989358]   Removable Media: No
    [2025-03-19 17:02:02.847] [0022989358]   UDMA Modes = 0x407f
    [2025-03-19 17:02:02.847] [0022989358]   PIO Modes = 0x0003
    [2025-03-19 17:02:02.847] [0022989358] 
    [2025-03-19 17:02:02.851] [0022989358]   LBA48: Yes
    [2025-03-19 17:02:02.851] [0022989358]   Max LBA = 0x00000000 5d28bb00
    [2025-03-19 17:02:02.851] [0022989358]   Write FUA: Yes
    [2025-03-19 17:02:02.851] [0022989358]   World Wide Name: N/A
    [2025-03-19 17:02:02.851] [0022989358] 
    [2025-03-19 17:02:02.851] [0022989358]   SATA Speed: Gen3
    [2025-03-19 17:02:02.851] [0022989358]   NCQ Support: Yes
    [2025-03-19 17:02:02.851] [0022989358]   Queue Depth = 31
    [2025-03-19 17:02:02.851] [0022989358] 
    [2025-03-19 17:02:02.851] [0022989358]   Logical Sector Size = 512 bytes
    [2025-03-19 17:02:02.851] [0022989358]   Physical Sector Size = 4096 bytes
    [2025-03-19 17:02:02.851] [0022989358]   Logical Sector Offset = 0
    [2025-03-19 17:02:02.851] [0022989359] 
    [2025-03-19 17:02:02.851] [0022989359] ================================================
    [2025-03-19 17:02:02.851] 
    [2025-03-19 17:02:02.851] [0022989361] Connected to 1 AHCI device(s).
    [2025-03-19 17:02:02.851] [0022989361] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989361] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989361] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989361] Connected at HIGH speed.
    [2025-03-19 17:02:02.851] [0022989361] HS/FS/LS state = (0x0) ON.
    [2025-03-19 17:02:02.851] [0022989417] HS/FS/LS state = (0x5) EARLY SUSPEND.
    [2025-03-19 17:02:02.851] [0022989418] USB Reset event occurred.
    [2025-03-19 17:02:02.851] [0022989418] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989418] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989418] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989418] -> ahci_reset_lun(0)
    [2025-03-19 17:02:02.851] [0022989425] Connected at HIGH speed.
    [2025-03-19 17:02:02.851] [0022989425] HS/FS/LS state = (0x0) ON.
    [2025-03-19 17:02:02.853] [0022989491] -> usb_hal_set_address() - addr: 0x3.
    [2025-03-19 17:02:02.853] [0022989520] -> handle_usb_set_configuration() - val = 1.
    [2025-03-19 17:02:02.853] [0022989525] -> ums_bot_case_handler() - case 5.
    [2025-03-19 17:02:02.853] [0022989527] -> ums_bot_case_handler() - case 5.
    [2025-03-19 17:02:02.898] [0022989570] -> scsi_build_ata_pass_through_cmd() - cmd = 0xec, byte_cnt = 512, chk_cond = 1.
    [2025-03-19 17:02:02.898] [0022989571] -> ums_bot_case_handler() - case 5.
    [2025-03-19 17:02:51.030] [0023037699] -> scsi_build_ata_pass_through_cmd() - cmd = 0x81, byte_cnt = 41472, chk_cond = 1.
    [2025-03-19 17:02:51.030] [0023037702] -> ums_bot_case_handler() - case 5.
    [2025-03-19 17:02:51.030] [0023037709] -> ums_bot_case_handler() - case 5.
    [2025-03-19 17:02:51.030] [0023037712] -> ums_bot_case_handler() - case 5.
    [2025-03-19 17:02:51.081] [0023037756] -> scsi_build_ata_pass_through_cmd() - cmd = 0xec, byte_cnt = 512, chk_cond = 1.
    [2025-03-19 17:02:51.081] [0023037758] -> ums_bot_case_handler() - case 5.
    

    It looks like the TUS9261 is being reset after attempting this command.  Can you capture a USB protocol trace and see if that is the case?

    I did not know how to implement this one.

    Best Regards,
    Ryu.

  • Hi Ryu,

    Since the host is timing out, it is difficult to debug without seeing what the host is doing on the USB-side.  There is equipment that will capture the USB protocol messages.  

    Beagle USB 480 Protocol Analyzer - Total Phase

    USB-T0S2-A01-X Teledyne LeCroy | Test and Measurement | DigiKey

    Are these available? 

    Regards,

    Nicholaus

  • Hi Nicholaus,

    Since I do not have the equipment you mentioned, is it possible to capture it in a different way?
    Is it possible to capture by another method?
    For example, is it possible to capture by putting wireshark into the CPU?
    If there is an alternative method, such as putting wireshark into the CPU, please let us know.

    Best Regards,
    Ryu.

  • Hi Ryu,

    No, Wireshark is a networking protocol monitor.  It doesn't work for USB.  

    Regards,

    Nicholaus

  • Hi Nicholaus,

    I do not have a measuring device, so I could not determine the cause.
    Can you please check with my SSD to determine the cause?
    I will send you my SSD.

    Best Regards,
    Ryu.

  • Hi Ryu,

    Yes, I can do that.  Please provide a test procedure as well.

    Regards,

    Nicholaus

  • Hi Nicholaus,

    Sent via private message.
    Please check it.

    Best Regards,
    Ryu.

  • Hi Ryu,

    Last week I was out of office.  I'm catching up now and will respond shortly.

    Regards,

    Nicholaus

  • Waiting on customer system to arrive.

  • The SSD has arrived.  I am setting up a bench evaluation for this and installing Linux for testing.

    Regards,

    Nicholaus

  • Hi Nicholaus,

    Thank you for contacting us.
    Waiting for you to share the test results.

    Best Regards,
    Ryu.

  • Hi Ryu,

    We are still working on getting this test setup going, I will reply when we have it setup and test results. Thanks for waiting.

    Thanks,

    Ryan

  • Hi Ryan,

    What is the status of the test?

    Best Regards,
    Ryu.

  • Hi Ryu,

    Sorry for the delay on this. I am still working on get a PC setup in our lab for Linux testing, as this isn't something we have readily on hand, so I am working on getting a PC setup and installed with a Linux based OS.

    On the side, I took the SSD we were provided and tested it in an NVME enclosure we had, and I noticed it did not enumerate as a valid drive. Should it be able to enumerate as a data drive?

    Also, I would like to confirm, is the SSD we were provided meant to connect to the SSD side of the TUSB9261, or to the PC and then send data through the TUSB9261 to a SATA?

    And for these commands that need to be sent, are these just being sent from a command prompt on Linux?

    Thanks,

    Ryan

  • Hi Ryan,

    On the side, I took the SSD we were provided and tested it in an NVME enclosure we had, and I noticed it did not enumerate as a valid drive. Should it be able to enumerate as a data drive?

    It is formatted with ext4 file system and cannot be recognized by Windows PC.
    It should be recognized as /dev/sda when connected to a Linux PC.

    Also, I would like to confirm, is the SSD we were provided meant to connect to the SSD side of the TUSB9261, or to the PC and then send data through the TUSB9261 to a SATA?

    Send commands from PC to SATA through TUSB9261.

    And for these commands that need to be sent, are these just being sent from a command prompt on Linux?

    Yes, it is.

    Best Regards,
    Ryu.

  • Hi Ryu,

    Okay, understood. That makes sense. Once we have the setup complete and I can test on my end, I'll let you know what I see on my end.

    Thanks,

    Ryan

  • Hi Ryan,

    My client is in a bit of a hurry with development so I am waiting to hear from you as soon as possible.

    Best Regards,
    Ryu.

  • Hi Ryu,

    I totally understand, sorry about the wait. While I was working on getting a motherboard setup for Linux, I was able to find a Raspberry Pi with Raspbian installed on it, so I went ahead and gave that a try with the customer provided SSD via an NVME M.2 enclosure.

    With that Raspberry Pi, I was able to see the SSD show up, however, I was given this error once it was detected/attempted to mount: 

    I tried to check what this might indicate (I'm not too familiar with Linux), and after sending some commands through the command window, I got this:

    It looks like the SSD may be corrupted, and may need to be reformatted. Is it possible this SSD may have been corrupted? Or does the customer believe this may be a setup issue?

    If the SSD does need to be reformatted, is that okay, or were there important files on the SSD? Any specific instructions from the customer?

    Thanks,

    Ryan

  • Hi Ryan,

    I suspect it is a setup issue.
    Could you first do this in a specified setup?

    Best Regards,
    Ryu.

  • Hi Ryu,

    I think I see the issue on my end. Just to confirm, is this SSD meant to connect through the TUSB9261 on the SATA side? I thought it would connect to a PC and then communicate through the TUSB9261 to a SATA drive, but if it connects to the TUSB9261 on the SATA side, then I think my setup was incorrect, and I'll fix it accordingly.

    Thanks,

    Ryan

  • Hi Ryan,

    Connected to the SATA side of TUSB9261.
    Have you received a test environment from Nicholas?

    Best Regards,
    Ryu.

  • Hi Ryu,

    Are you referring to the test setup documentation and the .bin files? Yes, I have received these files from Nicholaus, I just had not realized the M.2 SSD was meant to be for the SATA drive side, not the USB side, that's my mistake.

    When I was trying to get this setup today, I realized we do not have a SATA to M.2 enclosure here in the lab, and I'm not sure if one was sent over with the SSD or not. I've already gone ahead and ordered this, it should be here tomorrow or Monday next week, and once I have that, I will perform the required testing noted in the test environment document. Again, sorry for the wait.

    Thanks,

    Ryan

  • Hi Ryu,

    I received the SATA to M.2 enclosure, and I was able to see the SSD appear on host PC:

    This is what appears when I look at the SSD on the host, so I wanted to confirm this is whether this is what was expected to be found, or if there are meant to be files here that are not present.

    Additionally, I did try to open this "lost+found" folder, but I was meant with a "permission denied" error.

    My next steps are to take those files sent over with the test environment, have them put onto this SSD, and then to test the commands specified in the test environment.

    Thanks,

    Ryan

  • Hi Ryan,

    It was good that it worked.
    I am waiting for the next results.

    Best Regards,
    Ryu.

  • Hi Ryu,

    I tried to get some testing done on this today, however I was running into some issues. Namely, when I would try to send any of the commands listed in the test environment, I would receive errors with using the auth_device.bin, saying it was an unknown command byte when listing the device directory. To go off of that, from what I can tell, our device directory is /media/admin. I don't see a /dev/sdX associated with it. Am I missing it somewhere, or is there potentially an issue in the setup there?

    I'm not the most familiar with Linux commands, so an explanation of what this command is meant to do may help. My current assumption is that it will send the attached file, like auth_device.bin to the SSD.

    Additionally, I tried to manually move these files to the SSD via the file manager on the host, however I was met with a 'permission denied' prompt. This should not be the case, correct?

    Thanks,

    Ryan

  • Hi Ryan,

    If the device directory is /media/admin, you need to send the command there, so please change the destination.
    Also, the command is not intended to send files.
    This command is used to configure the SSD.
    It is sent with the file accompanying it as detailed information about the settings.

    Best Regards,
    Ryu.

  • Hi Ryu,

    I tried sending the commands again with the correct address for the drive I believe, I right clicked the drive in the file manager and copied the path, so hopefully that is valid for this test.

    However, I am still seeing issues with sending these commands. I opened the terminal in the folder that contains the .bin files, and sent the commands from there. I will attach the log I saved for testing the two successful commands noted in the test environment document:

    Device location from copying path in file manager: /media/admin/a107acc3-2c69-4ef3-a420-74b52c35955b
    
    admin@raspberrypi:~/Desktop/test environment $ sg_raw -s 512 –i auth_device.bin /media/admin/a107acc3-2c69-4ef3-a420-74b52c35955b a1 28 2d 51 00 00 00 00 00 81 00 00
    Invalid command byte 'auth_device.bin'
    Usage: sg_raw [OPTION]* DEVICE [CDB0 CDB1 ...]
    
    Options:
      --binary|-b            Dump data in binary form, even when writing to
                             stdout
      --cmdfile=CF|-c CF     CF is file containing command in hex bytes
      --cmdset=CS|-C CS      CS is 0 (def) heuristic chooses command set;
                             1: force SCSI; 2: force NVMe
      --enumerate|-e         Decodes cdb name then exits; requires DEVICE but
                             ignores it
      --help|-h              Show this message and exit
      --infile=IFILE|-i IFILE    Read data to send from IFILE (default:
                                 stdin)
      --nosense|-n           Don't display sense information
      --nvm|-N               command is for NVM command set (e.g. Read);
                             default, if NVMe fd, Admin command set
      --outfile=OFILE|-o OFILE    Write binary data to OFILE (def: hexdump
                                  to stdout)
      --raw|-w               interpret CF (command file) as binary (def:
                             interpret as ASCII hex)
      --readonly|-R          Open DEVICE read-only (default: read-write)
      --request=RLEN|-r RLEN    Request up to RLEN bytes of data (data-in)
      --scan=FO,LO|-Q FO,LO    scan command set from FO (first opcode)
                               to LO (last opcode) inclusive. Uses given
                               command bytes, varying the opcode
      --send=SLEN|-s SLEN    Send SLEN bytes of data (data-out)
      --skip=KLEN|-k KLEN    Skip the first KLEN bytes when reading
                             data to send (default: 0)
      --timeout=SECS|-t SECS    Timeout in seconds (default: 20)
      --verbose|-v           Increase verbosity
      --version|-V           Show version information and exit
    
    Between 6 and 260 command bytes (two hex digits each) can be specified
    and will be sent to DEVICE. Lengths RLEN, SLEN and KLEN are decimal by
    default. Bidirectional commands accepted.
    
    Simple example: Perform INQUIRY on /dev/sg0:
      sg_raw -r 1k /dev/sg0 12 00 00 00 60 00
    admin@raspberrypi:~/Desktop/test environment $ sg_raw -s 512 –i auth_device.bin /media/admin/ a1 28 2d 51 00 00 00 00 00 81 00 00
    Invalid command byte 'auth_device.bin'
    Usage: sg_raw [OPTION]* DEVICE [CDB0 CDB1 ...]
    
    Options:
      --binary|-b            Dump data in binary form, even when writing to
                             stdout
      --cmdfile=CF|-c CF     CF is file containing command in hex bytes
      --cmdset=CS|-C CS      CS is 0 (def) heuristic chooses command set;
                             1: force SCSI; 2: force NVMe
      --enumerate|-e         Decodes cdb name then exits; requires DEVICE but
                             ignores it
      --help|-h              Show this message and exit
      --infile=IFILE|-i IFILE    Read data to send from IFILE (default:
                                 stdin)
      --nosense|-n           Don't display sense information
      --nvm|-N               command is for NVM command set (e.g. Read);
                             default, if NVMe fd, Admin command set
      --outfile=OFILE|-o OFILE    Write binary data to OFILE (def: hexdump
                                  to stdout)
      --raw|-w               interpret CF (command file) as binary (def:
                             interpret as ASCII hex)
      --readonly|-R          Open DEVICE read-only (default: read-write)
      --request=RLEN|-r RLEN    Request up to RLEN bytes of data (data-in)
      --scan=FO,LO|-Q FO,LO    scan command set from FO (first opcode)
                               to LO (last opcode) inclusive. Uses given
                               command bytes, varying the opcode
      --send=SLEN|-s SLEN    Send SLEN bytes of data (data-out)
      --skip=KLEN|-k KLEN    Skip the first KLEN bytes when reading
                             data to send (default: 0)
      --timeout=SECS|-t SECS    Timeout in seconds (default: 20)
      --verbose|-v           Increase verbosity
      --version|-V           Show version information and exit
    
    Between 6 and 260 command bytes (two hex digits each) can be specified
    and will be sent to DEVICE. Lengths RLEN, SLEN and KLEN are decimal by
    default. Bidirectional commands accepted.
    
    Simple example: Perform INQUIRY on /dev/sg0:
      sg_raw -r 1k /dev/sg0 12 00 00 00 60 00
    admin@raspberrypi:~/Desktop/test environment $ sg_raw -r 512 –i /media/admin/a107acc3-2c69-4ef3-a420-74b52c35955b a1 28 2d 52 00 00 00 00 00 81 00 00
    Invalid command byte '/media/admin/a107acc3-2c69-4ef3-a420-74b52c35955b'
    Usage: sg_raw [OPTION]* DEVICE [CDB0 CDB1 ...]
    
    Options:
      --binary|-b            Dump data in binary form, even when writing to
                             stdout
      --cmdfile=CF|-c CF     CF is file containing command in hex bytes
      --cmdset=CS|-C CS      CS is 0 (def) heuristic chooses command set;
                             1: force SCSI; 2: force NVMe
      --enumerate|-e         Decodes cdb name then exits; requires DEVICE but
                             ignores it
      --help|-h              Show this message and exit
      --infile=IFILE|-i IFILE    Read data to send from IFILE (default:
                                 stdin)
      --nosense|-n           Don't display sense information
      --nvm|-N               command is for NVM command set (e.g. Read);
                             default, if NVMe fd, Admin command set
      --outfile=OFILE|-o OFILE    Write binary data to OFILE (def: hexdump
                                  to stdout)
      --raw|-w               interpret CF (command file) as binary (def:
                             interpret as ASCII hex)
      --readonly|-R          Open DEVICE read-only (default: read-write)
      --request=RLEN|-r RLEN    Request up to RLEN bytes of data (data-in)
      --scan=FO,LO|-Q FO,LO    scan command set from FO (first opcode)
                               to LO (last opcode) inclusive. Uses given
                               command bytes, varying the opcode
      --send=SLEN|-s SLEN    Send SLEN bytes of data (data-out)
      --skip=KLEN|-k KLEN    Skip the first KLEN bytes when reading
                             data to send (default: 0)
      --timeout=SECS|-t SECS    Timeout in seconds (default: 20)
      --verbose|-v           Increase verbosity
      --version|-V           Show version information and exit
    
    Between 6 and 260 command bytes (two hex digits each) can be specified
    and will be sent to DEVICE. Lengths RLEN, SLEN and KLEN are decimal by
    default. Bidirectional commands accepted.
    
    Simple example: Perform INQUIRY on /dev/sg0:
      sg_raw -r 1k /dev/sg0 12 00 00 00 60 00
    admin@raspberrypi:~/Desktop/test environment $ sg_raw -r 512 –i /media/admin/ a1 28 2d 52 00 00 00 00 00 81 00 00
    Invalid command byte '/media/admin/'
    Usage: sg_raw [OPTION]* DEVICE [CDB0 CDB1 ...]
    
    Options:
      --binary|-b            Dump data in binary form, even when writing to
                             stdout
      --cmdfile=CF|-c CF     CF is file containing command in hex bytes
      --cmdset=CS|-C CS      CS is 0 (def) heuristic chooses command set;
                             1: force SCSI; 2: force NVMe
      --enumerate|-e         Decodes cdb name then exits; requires DEVICE but
                             ignores it
      --help|-h              Show this message and exit
      --infile=IFILE|-i IFILE    Read data to send from IFILE (default:
                                 stdin)
      --nosense|-n           Don't display sense information
      --nvm|-N               command is for NVM command set (e.g. Read);
                             default, if NVMe fd, Admin command set
      --outfile=OFILE|-o OFILE    Write binary data to OFILE (def: hexdump
                                  to stdout)
      --raw|-w               interpret CF (command file) as binary (def:
                             interpret as ASCII hex)
      --readonly|-R          Open DEVICE read-only (default: read-write)
      --request=RLEN|-r RLEN    Request up to RLEN bytes of data (data-in)
      --scan=FO,LO|-Q FO,LO    scan command set from FO (first opcode)
                               to LO (last opcode) inclusive. Uses given
                               command bytes, varying the opcode
      --send=SLEN|-s SLEN    Send SLEN bytes of data (data-out)
      --skip=KLEN|-k KLEN    Skip the first KLEN bytes when reading
                             data to send (default: 0)
      --timeout=SECS|-t SECS    Timeout in seconds (default: 20)
      --verbose|-v           Increase verbosity
      --version|-V           Show version information and exit
    
    Between 6 and 260 command bytes (two hex digits each) can be specified
    and will be sent to DEVICE. Lengths RLEN, SLEN and KLEN are decimal by
    default. Bidirectional commands accepted.
    
    Simple example: Perform INQUIRY on /dev/sg0:
      sg_raw -r 1k /dev/sg0 12 00 00 00 60 00
    admin@raspberrypi:~/Desktop/test environment $ sg_raw -r 512 –i /media/admin a1 28 2d 52 00 00 00 00 00 81 00 00
    Invalid command byte '/media/admin'
    Usage: sg_raw [OPTION]* DEVICE [CDB0 CDB1 ...]
    
    Options:
      --binary|-b            Dump data in binary form, even when writing to
                             stdout
      --cmdfile=CF|-c CF     CF is file containing command in hex bytes
      --cmdset=CS|-C CS      CS is 0 (def) heuristic chooses command set;
                             1: force SCSI; 2: force NVMe
      --enumerate|-e         Decodes cdb name then exits; requires DEVICE but
                             ignores it
      --help|-h              Show this message and exit
      --infile=IFILE|-i IFILE    Read data to send from IFILE (default:
                                 stdin)
      --nosense|-n           Don't display sense information
      --nvm|-N               command is for NVM command set (e.g. Read);
                             default, if NVMe fd, Admin command set
      --outfile=OFILE|-o OFILE    Write binary data to OFILE (def: hexdump
                                  to stdout)
      --raw|-w               interpret CF (command file) as binary (def:
                             interpret as ASCII hex)
      --readonly|-R          Open DEVICE read-only (default: read-write)
      --request=RLEN|-r RLEN    Request up to RLEN bytes of data (data-in)
      --scan=FO,LO|-Q FO,LO    scan command set from FO (first opcode)
                               to LO (last opcode) inclusive. Uses given
                               command bytes, varying the opcode
      --send=SLEN|-s SLEN    Send SLEN bytes of data (data-out)
      --skip=KLEN|-k KLEN    Skip the first KLEN bytes when reading
                             data to send (default: 0)
      --timeout=SECS|-t SECS    Timeout in seconds (default: 20)
      --verbose|-v           Increase verbosity
      --version|-V           Show version information and exit
    
    Between 6 and 260 command bytes (two hex digits each) can be specified
    and will be sent to DEVICE. Lengths RLEN, SLEN and KLEN are decimal by
    default. Bidirectional commands accepted.
    
    Simple example: Perform INQUIRY on /dev/sg0:
      sg_raw -r 1k /dev/sg0 12 00 00 00 60 00
    

    Please review this and let me know if you can see if there is anything telling as what the issue may be. I saw the test environment mentions SCSI settings, I'll see what I can do with that and see if that's the issue, though I'm not sure it will be, given we are connected to the TUSB9261EVM and SSD via a USB cable.

    Thanks,

    Ryan