Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
Mojave is good enough for the pciutils access method that uses AppleACPIPlatformExpert.


Looks like you have the latest rom so these PCIe commands are probably not helpful unless you want to reduce the PCIe link width (to test performance with slower slots)


What kind of drives does it contain? Is it RAID 0? What speed are you expecting?


Ok. It says it's connected at 10 Gbps.


You didn't check if it got saved by typing nvram boot-args


OpenCore may be blocking you from changing nvram. In that case, add debug=0x144 to boot-args in OpenCore config file.


I dunno. Probably not. You didn't show the PCI link speed (in System Information.app) or the max pci link speed (in pcitree output).


What kind of drives does it contain? Is it RAID 0? What speed are you expecting?
I have two HDDs in RAID 0. Seagate IronWolf 7200. I was expecting, via USB-C connection, speeds over 500 R/W but I mostly get 300.

You didn't check if it got saved by typing nvram boot-args
Do I add this command after the restart?

OpenCore may be blocking you from changing nvram. In that case, add debug=0x144 to boot-args in OpenCore config file.
Do you have info on how to do this?
 
You type (copy and paste) the lines into Terminal.app one line at a time and press enter to execute the command.

First, setup boot-args. You might need to do this from the recovery partition if you don't have SIP disabled.
Code:
sudo nvram boot-args="debug=0x144"
Then restart the computer.

Then do these commands:
Code:
git clone https://gist.github.com/e3cd4ff08aae06279134969c98ca3ab7.git pcitree
git clone https://github.com/joevt/pciutils.git
cd pciutils
make
sudo make install
grep -q /usr/local/sbin /etc/paths || sudo sed -e $'1i\\\n/usr/local/sbin\\\n' -i "" /etc/paths

Then close the terminal window, open a new terminal window and do these commands:
Code:
sudo update-pciids
cd pcitree
chmod +x pcitree.sh
sudo ./pcitree.sh
I think I finally got the pictree, please confirm

I had to remove my usb drive with OpenCore and disable SIP in Recovery

Then run the commands.

I attached the pcitree

and then entered the sudo lspci to see if it worked and am attaching the textfile for that.

I'm trying to get my slot 3 - ethernet card to give me faster speeds with my Nas. Nas is Raid 0 with 7200 drives.

Is there a way to get better speeds on slot 4 with TB3 card?
 

Attachments

  • PciTree_012621.txt
    13.1 KB · Views: 123
  • Sudo_lspci_0126.txt
    7.3 KB · Views: 131
I have two HDDs in RAID 0. Seagate IronWolf 7200. I was expecting, via USB-C connection, speeds over 500 R/W but I mostly get 300.
Why would you expect a single 7200 RPM drive to give 250 MB/s? I think 150 MB/s per drive is good.
I think their specs say max speed is 210 MB/s.

Do I add this command after the restart?
You type nvram boot-args to see what the current value is.

Do you have info on how to do this?
Read the OpenCore documentation.

I think I finally got the pictree, please confirm

I attached the pcitree

I had to remove my usb drive with OpenCore and disable SIP in Recovery
Did you change both of those at the same time? If you change two variables at once then you don't know which one caused the change in outcome.

The pcitree output is fine.

and then entered the sudo lspci to see if it worked and am attaching the textfile for that.
You got a list of devices which means it works.

I'm trying to get my slot 3 - ethernet card to give me faster speeds with my Nas. Nas is Raid 0 with 7200 drives.
The Aquantia is correctly connected at PCIe 2.0 x4. That should be enough for 1600 MB/s but it's a 10 Gbps network so only up to 1250 MB/s is possible (that's for USB without USB overhead - USB can usually do up to 1000 MB/s - I don't have much experience with 10GbE - maybe 700-800 MB/s is good - it also depends on the otherside).

Is there a way to get better speeds on slot 4 with TB3 card?
The Titan Ridge card is correctly connected at PCIe 2.0 x4. Nothing to be done here.

As of today it states, removing my OpenCore thumb drive:
boot-args debug=0x144
That is correct.
 
I am looking at the Inatek KT4004 card for my 5.1.
The info on page 1 goes back a few years, is this card ok with Mojave.

Reading some of the other threads regarding bt interference, some posts suggest the drive itself gives off interference (which I am not experiencing).
My external drive is already usb3, but connected to usb2 on my Mac, would this already be giving off interference as is, or is it the pcie card....?
 
Read the OpenCore documentation.
If someone on here, reads the OpenCore white paper, please let me know. I get confused with those tech specs.

Did you change both of those at the same time? If you change two variables at once then you don't know which one caused the change in outcome.
I first unplugged my thumb drive with OC, but then the SIP was enabled. I tried to disable it in Terminal but it didn't let me so I had to go to Recovery Mode to make the change. Then after the restart, I was able to follow your code with the proper outputs.

The Aquantia is correctly connected at PCIe 2.0 x4. That should be enough for 1600 MB/s but it's a 10 Gbps network so only up to 1250 MB/s is possible (that's for USB without USB overhead - USB can usually do up to 1000 MB/s - I don't have much experience with 10GbE - maybe 700-800 MB/s is good - it also depends on the otherside).
Is there a way to test to see if I'm using USB overhead? At the moment my speeds are 700-800.


Thanks again Joevt, I've been discussing this with you for months and now I'm able to understand how to use better resources to supplement my cMP.
 
Is there a way to test to see if I'm using USB overhead? At the moment my speeds are 700-800.
The Aquantia is not USB, so in this case it's Ethernet overhead (and SMB or whatever protocol you're using to transfer the files).
I guess you just have to look for 10GbE benchmarks to know if 700-800 MB/s is good (I think it's reasonable but I know 10 Gbps USB can do better than that - up to 1000 MB/s; Ethernet just might have more stuff on it).
 
The Aquantia is not USB, so in this case it's Ethernet overhead (and SMB or whatever protocol you're using to transfer the files).
I guess you just have to look for 10GbE benchmarks to know if 700-800 MB/s is good (I think it's reasonable but I know 10 Gbps USB can do better than that - up to 1000 MB/s; Ethernet just might have more stuff on it).
Thanks again for your insight and patience.
 
Is there a way to test to see if I'm using USB overhead? At the moment my speeds are 700-800.
If you are using USB, you are using the USB overhead. I think you might be confused with the term - it's the additional data that is sent by the interface itself in order to properly "channel" the actual useful payload through the interface. Clock frames, error correction data, queue management etc.
 
The Sonnet Homepage says:
macOS Big Sur compatible as follows:

- Compatible when installed in a Thunderbolt to PCIe Card
Expansion System
- Not currently compatible with Mac Pro 7,1 (2019)


So I think it can't work. I saw this after I bought the card!
 
hello

i bought a ORICO 3.2 Gen2x2 pcie card and a compatible enclosure for M.2 NVMe, and it work fine in Catalina read and write 2000MB/S



Unfortunately it does not wotk on big sur, detected by ioregister app but not mount as external drive

i suppose a ssdt is needed, i dont know how to create a SSDT

If anyone could help will be apreciated.

regards
 
On that note, anybody tried an ASM3242 based card like the new Gigabyte GC-USB 3.2 GEN2X2 PCIe Expansion Card?
hello

i bought a ORICO 3.2 Gen2x2 pcie card and a compatible enclosure for M.2 NVMe, and it work fine in Catalina read and write 2000MB/S



Unfortunately it does not wotk on big sur, detected by ioregister app but not mount as external drive

i suppose a ssdt is needed, i dont know how to create a SSDT

If anyone could help will be apreciated.

regards
Gigabyte card:

I don't think macOS has drivers for USB 3.2 Gen 2x2.

It has IOPCIClassMatch for the following four PCI class codes:
UHCI: 0C 03 00
EHCI: 0C 03 10
OHCI: 0C 03 20
XHCI: 0C 03 30

USB4 uses a PCI class code of 0C 03 40 according to the USB4 spec. That is definitely not supported by macOS yet (it's not in the list).

3.2 gen 2x2 is included in the Intel XHCI spec so it will probably use PCI class code 0C 03 30. Apple could have snuck in support? Probably not. They were late with USB 3.1 Gen 2 and they'll probably be late with USB 3.2.


USB 3.1 does not use extra signal pins. USB-C has a DisplayPort alt mode that can use all the pins (4 lanes) for DisplayPort or it can use two lines for USB 3.1 (send and receive) and two lines for DisplayPort (2 lanes). The Thunderbolt alt mode can use two lines for receive and two lines for transmit (40 Gbps each direction).

USB 3.2 gen 1x2 (10 Gbps) and 2x2 (20 Gbps) can use two lines for send and two lines for receive to double the bandwidth of USB 3.1 Gen 1 (5 Gbps) and USB 3.1 Gen 2 (10 Gbps).
USB4 adds gen 3x1 (20 Gbps) and gen 3x2 (40 Gbps).
hello

i bought a ORICO 3.2 Gen2x2 pcie card and a compatible enclosure for M.2 NVMe, and it work fine in Catalina read and write 2000MB/S



Unfortunately it does not wotk on big sur, detected by ioregister app but not mount as external drive

i suppose a ssdt is needed, i dont know how to create a SSDT

If anyone could help will be apreciated.

regards
 
i bought a ORICO 3.2 Gen2x2 pcie card and a compatible enclosure for M.2 NVMe, and it work fine in Catalina read and write 2000MB/s


Unfortunately it does not wotk on big sur, detected by ioregister app but not mount as external drive

i suppose a ssdt is needed, i dont know how to create a SSDT
I don't think an SSDT will fix this.

Please post the result of the following commands (zip the files together and attach them to your post):
Code:
system_profiler SPUSBDataType SPPCIDataType > system_profile.txt
ioreg -filrw0 -c IOPCIDevice > ioregpci.txt
Do the commands in Catalina and Big Sur. Then we can compare.
 
Hello

This orico 3.2 USB 3.2 GEN2X2 works perfectly on Catalina around 2000MB/s pcie 3.0 4x

Unfortunately not in Big Sur, do not know why.


Regards
What model Mac are you getting 2k reads with this card. I bought the same card running on 5,1 Catalina with open-core, same Orico 3.2 gen2x2 card, Samsung Evo 970, and getting 34 mb/s. When using a 3.2 gen 1 I get 900mb/s. Even tested the USB 3.2 gen2x2 PCIe gen 3x4 20g adapter with a 2018 MBP with a thunderbolt PCIe external box with the Orico card and adapter and only got 900mb/s. thank you
 
Last edited:
hello

i bought a ORICO 3.2 Gen2x2 pcie card and a compatible enclosure for M.2 NVMe, and it work fine in Catalina read and write 2000MB/S



Unfortunately it does not wotk on big sur, detected by ioregister app but not mount as external drive

i suppose a ssdt is needed, i dont know how to create a SSDT

If anyone could help will be apreciated.

regards

hello

i bought a ORICO 3.2 Gen2x2 pcie card and a compatible enclosure for M.2 NVMe, and it work fine in Catalina read and write 2000MB/S



Unfortunately it does not wotk on big sur, detected by ioregister app but not mount as external drive

i suppose a ssdt is needed, i dont know how to create a SSDT

If anyone could help will be apreciated.

regards
What model and year mac are you running this card on..thank you
 
Last edited:
I don't think an SSDT will fix this.

Please post the result of the following commands (zip the files together and attach them to your post):
Code:
system_profiler SPUSBDataType SPPCIDataType > system_profile.txt
ioreg -filrw0 -c IOPCIDevice > ioregpci.txt
Do the commands in Catalina and Big Sur. Then we can compare.

hello joevt

thanks for your reply

only now I realise the ASM3242 chip is recognised on Big Sur. When I plug a Kingston DataTraveller 80 usb type-c pen drive, the disk is mounted properly. Unfortunately when I plug the Orico SSD enclosure the disk is not mounted like on Catalina.

the main differences are:


Catalina:

— about this Mac system report (USB) does not shows the USB32bus;

— the AppleAsmediaUSBXHCI (IOKitPersonalitie) is missing on AppleUSBXHCIPCI.kext info.plist, this is a plugin from IOUSBHostFamily.kext;

— the IOUSBAttachedSCSI.kext is present at S/L/E

— the Orico SSD enclosure (ASM236X controller) is mounted under GenericUSBXHCI.kext (from OpenCore) and over IOUSBAttachedSCSI.kext (from S/L/E);

— the Kingston DataTraveler 80 is mounted only under GenericUSBXHCI.kext



Big Sur:

— about this Mac system report (USB) shows the USB32bus;

— the AppleAsmediaUSBXHCI (IOKitPersonalitie) is present on AppleUSBXHCIPCI.kext info.plist, this is a plugin from IOUSBHostFamily.kext;

— the IOUSBAttachedSCSI.kext is not present at S/L/E (so maybe this is the problem)

— the ORICO SSD enclosure (ASM236X controller) is not mounted

— the Kingston DataTraveler 80 is mounted under AppleAsmediaUSBXHCI driver and not under GenericUSBXHCI.kext;



summarizing,

Catalina recognises the AS3242 chip, loads the GenericUSBXHCI.kext (from OpenCore) and IOUSBAttachedSCSI.kext (from S/L/E), mounts the ORICO SSD enclosure (ASM236x controller) and the Kingston DataTraveler 80, this pen loads only the GenericUSBXHCI.kext, not the IOUSBAttachedSCSI.kext

Big Sur recognises the AS3242 chip, loads the AppleAsmediaUSBXHCI driver, mounts the Kingston DataTraveler 80 but not the ORICO SSD enclosure (ASM236x controller).

Check the attached file, I uploaded the commands, screen shots, AppleUSBXHCIPCI plugin info.plist from IOUSBHostFamily.kext (Catalina and Big Sur) and the IOUSBAttachedSCSI.kext from Catalina not present on Big Sur.


Many Thanks and kind regards
 

Attachments

  • ORICO USB3.2 Gen2x2 -- pcie ASM3242 controller and SSD enclosure ASM236X controller.zip
    3.1 MB · Views: 204
Last edited:
hello joevt

thanks for your reply

only now I realise the ASM3242 chip is recognised on Big Sur. When I plug a Kingston DataTraveller 80 usb type-c pen drive, the disk is mounted properly. Unfortunately when I plug the Orico SSD enclosure the disk is not mounted like on Catalina.

the main differences are:


Catalina:

— about this Mac system report (USB) does not shows the USB32bus;

— the AppleAsmediaUSBXHCI (IOKitPersonalitie) is missing on AppleUSBXHCIPCI.kext info.plist, this is a plugin from IOUSBHostFamily.kext;

— the IOUSBAttachedSCSI.kext is present at S/L/E

— the Orico SSD enclosure (ASM236X controller) is mounted under GenericUSBXHCI.kext (from OpenCore) and over IOUSBAttachedSCSI.kext (from S/L/E);

— the Kingston DataTraveler 80 is mounted only under GenericUSBXHCI.kext



Big Sur:

— about this Mac system report (USB) shows the USB32bus;

— the AppleAsmediaUSBXHCI (IOKitPersonalitie) is present on AppleUSBXHCIPCI.kext info.plist, this is a plugin from IOUSBHostFamily.kext;

— the IOUSBAttachedSCSI.kext is not present at S/L/E (so maybe this is the problem)

— the ORICO SSD enclosure (ASM236X controller) is not mounted

— the Kingston DataTraveler 80 is mounted under AppleAsmediaUSBXHCI driver and not under GenericUSBXHCI.kext;



summarizing,

Catalina recognises the AS3242 chip, loads the GenericUSBXHCI.kext (from OpenCore) and IOUSBAttachedSCSI.kext (from S/L/E), mounts the ORICO SSD enclosure (ASM236x controller) and the Kingston DataTraveler 80, this pen loads only the GenericUSBXHCI.kext, not the IOUSBAttachedSCSI.kext

Big Sur recognises the AS3242 chip, loads the AppleAsmediaUSBXHCI driver, mounts the Kingston DataTraveler 80 but not the ORICO SSD enclosure (ASM236x controller).

Check the attached file, I uploaded the commands, screen shots, AppleUSBXHCIPCI plugin info.plist from IOUSBHostFamily.kext (Catalina and Big Sur) and the IOUSBAttachedSCSI.kext from Catalina not present on Big Sur.


Many Thanks and kind regards
Curious how this all behaves under Mojave
 
only now I realise the ASM3242 chip is recognised on Big Sur. When I plug a Kingston DataTraveller 80 usb type-c pen drive, the disk is mounted properly. Unfortunately when I plug the Orico SSD enclosure the disk is not mounted like on Catalina.

Catalina:
— about this Mac system report (USB) does not shows the USB32bus;
— the AppleAsmediaUSBXHCI (IOKitPersonalitie) is missing on AppleUSBXHCIPCI.kext info.plist, this is a plugin from IOUSBHostFamily.kext;
— the IOUSBAttachedSCSI.kext is present at S/L/E
— the Orico SSD enclosure (ASM236X controller) is mounted under GenericUSBXHCI.kext (from OpenCore) and over IOUSBAttachedSCSI.kext (from S/L/E);
— the Kingston DataTraveler 80 is mounted only under GenericUSBXHCI.kext

Catalina recognises the AS3242 chip, loads the GenericUSBXHCI.kext (from OpenCore) and IOUSBAttachedSCSI.kext (from S/L/E), mounts the ORICO SSD enclosure (ASM236x controller) and the Kingston DataTraveler 80, this pen loads only the GenericUSBXHCI.kext, not the IOUSBAttachedSCSI.kext

Big Sur:
— about this Mac system report (USB) shows the USB32bus;
— the AppleAsmediaUSBXHCI (IOKitPersonalitie) is present on AppleUSBXHCIPCI.kext info.plist, this is a plugin from IOUSBHostFamily.kext;
— the IOUSBAttachedSCSI.kext is not present at S/L/E (so maybe this is the problem)
— the ORICO SSD enclosure (ASM236X controller) is not mounted
— the Kingston DataTraveler 80 is mounted under AppleAsmediaUSBXHCI driver and not under GenericUSBXHCI.kext;

Big Sur recognises the AS3242 chip, loads the AppleAsmediaUSBXHCI driver, mounts the Kingston DataTraveler 80 but not the ORICO SSD enclosure (ASM236x controller).

Check the attached file, I uploaded the commands, screen shots, AppleUSBXHCIPCI plugin info.plist from IOUSBHostFamily.kext (Catalina and Big Sur) and the IOUSBAttachedSCSI.kext from Catalina not present on Big Sur.
PCI list:
— system_profile.txt is missing the ASM3242 from the PCI list. I guess the slot used by the ASM3242 is not marked properly as a slot. Your PCI slots have strange AAPL,slot-name values starting with "Internal". Actually, the slot name properties are being applied to the devices instead of the parent slots. My MacPro3,1 has slots named "Slot-1", ..., "Slot-4". Is this a Hackintosh? Or maybe you have a Mac but OpenCore is modifying some stuff? SSDT? Device Properties?

Catalina:
— AppleUSBXHCIPCI.kext has a ASMedia personality only for ASM1042. The default IOClass that matches ASM3242 (or any other ASMedia controller) is AppleUSBXHCIPCI which has IOProbeScore 0. GenericUSBXHCI has an IOProbeScore of 1 which overrides AppleUSBXHCIPCI.
— Does the ASM3242 work with AppleUSBXHCIPCI (remove GenericUSBXHCI)? Does it support 20 Gbps with AppleUSBXHCIPCI?

Big Sur:
— AppleUSBXHCIPCI.kext has a generic ASMedia personality called AppleASMediaUSBXHCI with IOProbeScore 1000 that can match the ASM3242 but I don't think AppleASMediaUSBXHCI is made for ASM3242. All we know from looking at the info.plist is that it's not for the ASM1042, ASM2142, or ASM3142. Maybe it's for the ASM1142.
— Make a codeless kext that matches the ASM3242 (IOProbeScore 5001) and uses the AppleASMedia3142USBXHCI IOClass. Does it work? Does it support 20 Gbps?
— Make a codeless kext that matches the ASM3242 (IOProbeScore 5001) and uses the AppleUSBXHCIPCI IOClass. Does it work? Does it support 20 Gbps?

GenericUSBXHCI:
— It is not part of OpenCore. There are different versions on the internet. What's the url for the one that you are using?
— The ioreg for GenericUSBXHCI is different than Apple's drivers. Apple's drivers adds an entry for each port and attaches USB devices to the port. GenericUSBXHCI adds USB devices directly to itself.
— Buses and devices created by GenericUSBXHCI don't appear in USB tab of System Information.app. I wonder what's needed to make that work? I guess it needs to be updated to use modern iokit USB classes - but those are not open source?
— GenericUSBXHCI should be altered so that it has IOProbeScore -1 (is negative possible?) so that it doesn't always override AppleUSBXHCIPCI - or it should be changed to only attach to specific controllers such as the ASM3242 and the uPD720200 - in which case the IOProbeScore should be at least 5001.

Maybe none of Apple's drivers support 20 Gbps?
For each driver and OS, show an AmorphousDiskMark screenshot (just need SEQ1M QD8) of the max speed (only if you can get 20 Gbps).
Curious how this all behaves under Mojave
For any macOS that doesn't have a XHCI driver, you just need the GenericUSBXHCI.kext. For macOS versions that have a XHCI driver, you'll want a GenericUSBXHCI.kext that matches only the controllers that don't work at full speed with the default Apple driver.
 
  • Like
Reactions: VaZ
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.