I don't see anything solved here. UASP has been around a while and does not solve the TRIM issue with USB. TRIM is a ATA command, and ATA commands are not passed over USB, with or without UASP.
I was wondering why does my usb 3.0 UASP passed the trim test under Windows 10 trim test Report.
after read this :
This was bothering me so I did an ioreg -l on my mac. The section to search under is IOUSBMassStorageUASDriver. If you see this active then your controller has activated the UASp support in Mac OS X (El Capitan).
When I look through the tree, I discovered that it then activates the SCSI protocol then IOSATDriver, and shows that the drive is “SMART” capable. However, unlike my HDD, it does not verify the SMART status. It appears capable of passing SCSI and ATA commands because clearly it’s doing so in the command set. The question is, are those commands included? If they were, they would pass TRIM or UNMAP (SCSI’s version) commands.
In theory, it is possible to support TRIM on a USB SSD with UASp and this could be done through ATA commands through SCSI UNMAP commands. When using fsck, it reports to be “trimming” the drive. Not sure how accurate this is though.
I am convinced this is an OS problem and not a hardware issue. It is entirely possible to get this working and hopefully was taken into consideration when developing support for USB-C.
| | | | +-o org_dungeon_driver_IOSATDriver <class org_dungeon_driver_IOSATDriver, id 0x100000335, !registered, !matched, active, busy 0 (19 ms), retain 8>
| | | | | {
| | | | | “IOClass” = “org_dungeon_driver_IOSATDriver”
| | | | | “IOMaximumBlockCountWrite” = 2048
| | | | | “Permissive” = Yes
| | | | | “IOPowerManagement” = {“CapabilityFlags”=49216,”MaxPowerState”=4,”ActivityTickles”=1237214,”IdleTimerPeriod”=200000,”DevicePowerState”=4,”TimeSinceLastTickle”=173,”DriverPowerState”=1,”IdleTimerElapsedTime”=154425,”CurrentPowerState”=4}
| | | | | “IOProviderClass” = “IOSCSIPeripheralDeviceNub”
| | | | | “IOMediaIcon” = {“IOBundleResourceFile”=”USBHD.icns”,”CFBundleIdentifier”=”com.apple.iokit.IOSCSIArchitectureModelFamily”}
| | | | | “Peripheral Device Type” = 0
| | | | | “IOProbeScore” = 6000
| | | | | “UsePassThrough16” = No
| | | | | “Product Name” = “Micron_M550_MTFDDAK128MAY”
| | | | | “Serial Number” = “############”
| | | | | “WriteCacheState” = Yes
| | | | | “SATSMARTCapable” = Yes
| | | | | “IOMaximumBlockCountRead” = 2048
| | | | | “CFBundleIdentifier” = “org.dungeon.driver.SATSMARTDriver”
| | | | | “Model” = “Micron_M550_MTFDDAK128MAY”
| | | | | “IOMatchCategory” = “IODefaultMatchCategory”
| | | | | “Product Revision Level” = “MU02”
| | | | | “IOMaximumByteCountWrite” = 1048576
| | | | | “IOMaximumByteCountRead” = 1048576
| | | | | “ATA Features” = 32
| | | | | “IOKitDebug” = 65535
| | | | | }
| | | | |
| | | | +-o IOSATServices <class IOSATServices, id 0x100000339, registered, matched, active, busy 0 (19 ms), retain 6>
| | | | | {
| | | | | “IOCFPlugInTypes” = {“24514B7A-2804-11D6-8A02-003065704866″=”SATSMARTLib.plugin”}
| | | | | “device-type” = “Generic”
| | | | | “IOUserClientClass” = “SATSMARTUserClient”
| | | | | “Device Characteristics” = {“Vendor Name”=”Micron_M”,”Product Name”=”550_MTFDDAK128MA”,”Product Revision Level”=”0501″}
| | | | | “Protocol Characteristics” = {“Physical Interconnect”=”USB”,”Read Time Out Duration”=30000,”SCSI Logical Unit Bytes”=<0000000000000000>,”SCSI Logical Unit Number”=0,”Physical Interconnect Location”=”External”,”Write Time Out Duration”=30000}
| | | | | “SMART Capable” = Yes
| | | | | “IOMinimumSegmentAlignmentByteCount” = 4
| | | | | }
| | | | |
and
UASP is Universal Attached SCSI Protocol. It allows for better management of data transfer over USB for devices with frequent constant I/O. Some people may think I am referring to attaching a SCSI device to a USB. Not quite. SCSI is parallel and ancient but it had a superior method of handling data reads and writes with queue depth storage. It takes USB and adds SCSI protocol on top of it giving your USB device access to SCSI commands on the controller thus increasing performance, latency, throughput, while reducing CPU overhead.
Can your USB truly get 5Gbps ? Well, the answer is pretty much "With UASP it's common to see 4.8Gbps. In some situations you can event get 4.999999Gbps. In rare cases it can even surpass 5.0+ Gbps giving you near SATA 6 speeds". I thought it was tripe until I saw it with my own eyes. There are drawbacks with any technology. Technically TRIM is possible now because you can send those commands through to the device. I've been unable to get it to work but that is an OS issue.
-------
SO
i think SCSI and ATA commands can be send through usb UASP with a right chipset, but rather the os support it or not.