How do you check if UASP is enabled for a disk?
I’m using a mbp2022(13.3) with a m2 chip, the os is sequoia 15.2. When I connect a Samsung 870 evo, the reading speed can only get up to 380mb/s :(
I’m using a mbp2022(13.3) with a m2 chip, the os is sequoia 15.2. When I connect a Samsung 870 evo, the reading speed can only get up to 380mb/s :(
Ok, I did some investigating & experimentation today.
TLDR: It does not appear that recent versions of macOS support the UASP protocol for USB3 devices, although the Apple hardware itself does support UASP when booting & using Ubuntu Asahi Linux.
Now onto the details:
I was incorrect on my earlier post where I mentioned UASP support should be shown in the USB section of the Apple System Profiler since I cannot find any online reference to that, but years ago (macOS 10.10 Yosemite) it was possible to tell if UASP was being used by checking the Apple System Profiler's Software --> Extensions to look for "IOUSBAttachedSCSI" being loaded. However, for later versions of macOS I found some posts which mentioned another driver had to be examined, but even that no longer seems to work.
Unfortunately today with more recent versions of macOS it doesn't seem like macOS supports UASP anymore which is extremely unfortunate and disappointing. I had to go digging into the raw data collected by macOS to locate the relevant data showing what protocols are being used by the USB interface when a USB drive is connected and use information from Linux to discover the "code" used for the two types of USB transfer protocols.....Block Only Transport mode (BOT) and USB Attached SCSI mode (UASP). It seems BOT mode has a code of "80" while UASP has a code of "98". If UASP is supported, then the OS should show both Interface Protocols as being available.
When I finally located the raw data for the connected USB drive, I discovered that the "InterfaceProtocol" being used only had a code of "80"......meaning only BOT mode which is extremely disappointing since code "98" was not shown.
I confirmed that the actual hardware of the MacBook Air (M1, 2020) laptop I was using for testing did support UASP by testing the same USB3 to SATA Adapter along with the Apple USB-C to USB-A Adapter while booted into Ubuntu Asahi Linux. So the Apple hardware still supports UASP under Linux, but macOS has declined to support UASP at least with macOS 14.6.1 Sonoma. I guess it should not be surprising when Apple does not support USB3.2 Gen2 either.
For anyone interested here is how you can confirm the USB protocol being used on macOS. Just make sure the USB drive you want to check is the only USB device connected to simplify things since the output of the following Terminal command filters out everything except the "InterfaceProtocol" being used....besides I'm not entirely sure how to reliably match up the "InterfaceProtocol" reported here with the actual device. If you run the command with other USB devices attached, then you won't know which code goes with which device although you can disconnect the external drive and run the command again to see that one of items does disappear.
ioreg -w0 -r -n 'IOUSBMassStorageDriver' | grep -i 'interface'
With only my USB3 Adapter/SSD connected, this command returns:
| "bInterfaceProtocol" = 80
If macOS actually supported UASP, then you should have a second line as well with a value of "98".
You may be able to match the "InterfaceProtocol" listed here with the actual drive, by using the following command where I try to filter for a line showing the physical drive which occurred 10 lines later (on my system), but I have found the "ioreg" output can sometimes vary how the output is displayed.
ioreg -w0 -r -n 'IOUSBMassStorageDriver' | grep -i 'interface' -A10 | grep -iE 'interface|IOMedia,'
Which returned this for me on macOS where "CT1000MX 500SSD1 Media" is my Crucial MX500 1TB SSD:
| "bInterfaceProtocol" = 80
+-o CT1000MX 500SSD1 Media <class IOMedia, id 0x100295fd6, registered, matched, active, busy 0 (51 ms), retain 12>
FYI, it is best to just copy & paste these commands since mistyping a single character can give different results or even a command failure.
Ok, I did some investigating & experimentation today.
TLDR: It does not appear that recent versions of macOS support the UASP protocol for USB3 devices, although the Apple hardware itself does support UASP when booting & using Ubuntu Asahi Linux.
Now onto the details:
I was incorrect on my earlier post where I mentioned UASP support should be shown in the USB section of the Apple System Profiler since I cannot find any online reference to that, but years ago (macOS 10.10 Yosemite) it was possible to tell if UASP was being used by checking the Apple System Profiler's Software --> Extensions to look for "IOUSBAttachedSCSI" being loaded. However, for later versions of macOS I found some posts which mentioned another driver had to be examined, but even that no longer seems to work.
Unfortunately today with more recent versions of macOS it doesn't seem like macOS supports UASP anymore which is extremely unfortunate and disappointing. I had to go digging into the raw data collected by macOS to locate the relevant data showing what protocols are being used by the USB interface when a USB drive is connected and use information from Linux to discover the "code" used for the two types of USB transfer protocols.....Block Only Transport mode (BOT) and USB Attached SCSI mode (UASP). It seems BOT mode has a code of "80" while UASP has a code of "98". If UASP is supported, then the OS should show both Interface Protocols as being available.
When I finally located the raw data for the connected USB drive, I discovered that the "InterfaceProtocol" being used only had a code of "80"......meaning only BOT mode which is extremely disappointing since code "98" was not shown.
I confirmed that the actual hardware of the MacBook Air (M1, 2020) laptop I was using for testing did support UASP by testing the same USB3 to SATA Adapter along with the Apple USB-C to USB-A Adapter while booted into Ubuntu Asahi Linux. So the Apple hardware still supports UASP under Linux, but macOS has declined to support UASP at least with macOS 14.6.1 Sonoma. I guess it should not be surprising when Apple does not support USB3.2 Gen2 either.
For anyone interested here is how you can confirm the USB protocol being used on macOS. Just make sure the USB drive you want to check is the only USB device connected to simplify things since the output of the following Terminal command filters out everything except the "InterfaceProtocol" being used....besides I'm not entirely sure how to reliably match up the "InterfaceProtocol" reported here with the actual device. If you run the command with other USB devices attached, then you won't know which code goes with which device although you can disconnect the external drive and run the command again to see that one of items does disappear.
ioreg -w0 -r -n 'IOUSBMassStorageDriver' | grep -i 'interface'
With only my USB3 Adapter/SSD connected, this command returns:
| "bInterfaceProtocol" = 80
If macOS actually supported UASP, then you should have a second line as well with a value of "98".
You may be able to match the "InterfaceProtocol" listed here with the actual drive, by using the following command where I try to filter for a line showing the physical drive which occurred 10 lines later (on my system), but I have found the "ioreg" output can sometimes vary how the output is displayed.
ioreg -w0 -r -n 'IOUSBMassStorageDriver' | grep -i 'interface' -A10 | grep -iE 'interface|IOMedia,'
Which returned this for me on macOS where "CT1000MX 500SSD1 Media" is my Crucial MX500 1TB SSD:
| "bInterfaceProtocol" = 80
+-o CT1000MX 500SSD1 Media <class IOMedia, id 0x100295fd6, registered, matched, active, busy 0 (51 ms), retain 12>
FYI, it is best to just copy & paste these commands since mistyping a single character can give different results or even a command failure.
Check the USB section of the System Profiler for connection details for that drive. It will show if UASP is on or off.
FYI, the USB3 SSD adapter, dock, enclosure must support UASP. If you are connecting the SSD to a another adapter, dock, or hub, then that must also support UASP. I find that most ASMedia USB chipsets support UASP and tend to be in the better quality products.
If you are running any anti-virus software, cleaning/optimizer apps, or third party security software, then they could be interfering as well. These types of apps are not needed on a Mac and will usually cause more problems than they solve because they interfere with the normal operation of macOS. If you are using these types of apps, then uninstall them by following the developers' instructions.
HWTech wrote:
TLDR: It does not appear that recent versions of macOS support the UASP protocol for USB3 devices, although the Apple hardware itself does support UASP when booting & using Ubuntu Asahi Linux.
What's "recent"?
I just checked this on my 2017 MBP and my 2020 M1 MBP, both running Ventura. There was no difference between them.
It's pretty easy to see in the "ioreg" output. I don't like feeding that stuff through grep. Just dump and review.
I can find the desired disk easily enough:
+-o Samsung PSSD T7 Shield Media <class IOMedia, id 0x10020c837, registered, matched, active, busy 0 (144 ms), retain 12>
| {
| "Content" = "GUID_partition_scheme"
| "Removable" = No
| "Whole" = Yes
| "Leaf" = No
| "BSD Name" = "disk2"
| "Ejectable" = No
| "Preferred Block Size" = 512
| "BSD Minor" = 11
| "IOGeneralInterest" = "IOCommand is not serializable"
| "Writable" = Yes
| "BSD Major" = 1
| "Size" = 4000787030016
| "IOBusyInterest" = "IOCommand is not serializable"
| "Open" = Yes
| "Content Hint" = ""
| "BSD Unit" = 2
| }
From there, just walk up the device tree to the IOUSBMassStorageDriverNub.
+-o IOUSBMassStorageDriverNub <class IOUSBMassStorageDriverNub, id 0x10020c825, registered, matched, active, busy 0 (256 ms), retain 14>
| {
| "IOClass" = "IOUSBMassStorageDriverNub"
| "Number Of InterfaceNubs" = 1
| "IOPersonalityPublisher" = "com.apple.iokit.IOUSBMassStorageDriver"
| "IOMatchedAtBoot" = Yes
| "idProduct" = 25083
| "bInterfaceProtocol" = 98
| "IOProviderClass" = "IOUSBMassStorageInterfaceNub"
| "USB Device Info" = {"bcdDevice"=256,"idProduct"=25083,"bInterfaceSubClass"=6,"locationID"=1048576,"bConfigurationValue"=1,"kUSBVen
| "USB Product Name" = "PSSD T7 Shield"
| "Physical Interconnect Location" = "External"
| "IOPowerManagement" = {"ChildrenPowerState"=1,"DevicePowerState"=1,"CurrentPowerState"=1,"CapabilityFlags"=32768,"MaxPowerState"=1,
| "IOProbeScore" = 0
| "bInterfaceClass" = 8
| "bInterfaceSubClass" = 6
| "CFBundleIdentifierKernel" = "com.apple.iokit.IOUSBMassStorageDriver"
| "Physical Interconnect" = "USB"
| "bConfigurationValue" = 1
| "IOMatchCategory" = "IODefaultMatchCategory"
| "CFBundleIdentifier" = "com.apple.iokit.IOUSBMassStorageDriver"
| "USB Mass Storage Trace ID" = 353640301414318080
| "idVendor" = 1256
| "bInterfaceNumber" = 0
| "kUSBVendorString" = "Samsung"
This shows ""bInterfaceProtocol" = 98". But actually, you don't have to go that far. The nodes right below this are IOUSBMassStorageUASDriver, IOSCSITargetDevice, and IOSCSIHierarchicalLogicalUnit, which are all pretty unambiguous. Plus, the IOUSBMassStorageUASDriver even says: "UAS Version" = "Version .04"
I tried this again with another drive, using an aftermarket enclosure, even via an old hub. Still UAS.
I'll have to try this again on my newer MacBook Air running Sequoia.
Continued...
Here is a forum post where I discovered the proper "code" associated with BOT and UASP when looking to see how I could confirm UASP support when using a Linux based operating system.
Here is a picture of the USB information for my UASP connected drive using Ubuntu Asahi Linux on my MBAir (M1, 2020) laptop where you see both BOT and UASP codes (80 & 98) listed for the one USB3 device I have connected....a USB3 to SATA Adapter using the JMicron chipset.
Here is another picture from the Ubuntu Asahi Linux system log showing the details when I connected the UASP supported drive.....I have a yellow arrow pointing to the relevant line: "scsi host0: uas" where "uas" stands for USB Attached SCSI (aka UASP) and mentioned in the Linux form thread I linked. And you can see it is connected to an M-series Mac by the entry 11 lines above the arrow where it mentions "Linux 6.8.0-1008-apple-arm xhci-hcd" which is the Linux USB kernel driver.
If the apparent lack of UASP support bothers you, then I suggest providing Apple with product feedback here:
You may also want to mention the lack of USB3.2 Gen2 support as well while you are at it. It probably won't do any good unless they receive lots of feedback....even then I doubt Apple really cares. Apple won't respond to product feedback.
Contacting Apple corporate about the issues may gather a bit more attention or possibly even a response:
Contact - How to Contact Us - Apple
No, wait. I found the one still functional Orico USB adapter. (I used to have two). It's little more than a cable with USB A on one end and a disk port on the other.
This one shows "bInterfaceProtocol" = 80 and no UAS anywhere. In this case, the tree looks like:
IOUSBMassStorageDriver, IOSCSILogicalUnitNub. The next node is IOSCSIPeripheralDeviceType00, which is the same as the UAS version.
That appears to be for an Orico enclosure using a Realtek USB chipset. Unfortunately they don't seem to publish their specifications, but I found a couple of posts where some enclosures don't support UASP while others do (only recently). I cannot find any information to confirm it either way. Orico generally seems to be budget oriented, so I wouldn't really expect them to use a USB chipset with special features. I find manufacturers that don't publish detailed specifications generally don't have anything worth advertising.
Personally I've never thought much of that brand (I think we tried one of their enclosures years ago and had issues with it). I've found that Macs can be picky about the drives/devices they like so I try to stay with a few brands that have stood up well over the years. I try to use products that use an ASMedia USB chipset since I know they've performed well over the years and tend to be used in the better higher end products.
I've also seen some recent posts on this forum where some people were questioning whether some M-series Macs even support UASP. I recall one post mentioning that one set of ports on an M-series may support UASP while the others may not (they were discussing either the Mac Studio or Mac Mini). Unfortunately there has not been enough details provided to know one way or the other.
Any devices I currently have which support UASP I cannot test with my M-series Mac since I need to use a USB-C to USB-A Adapter, but I'm not sure the ones I have are rated for UASP. I'll try to remember to test a couple later this week if I have the time, but unless they show up as UASP I won't know if it is the M-series Mac or the adapter I need to use.
Maybe if you have access to an Intel Mac or even a standard Windows PC you can check it assuming that the standard PC even supports UASP over their USB3 ports.
I didnt see anything there about UASP :( the adapter i use should support UASP i think(at least the shop claimed so)
How do you check if UASP is enabled for a disk?