Jump to content
3 posts in this topic

Recommended Posts

Hi Experts,

 

Recently I am trying to switch from Clover to OpenCore for my Dell Optiplex 7010 SFF running Catalina 10.15.4.  However, my machine's USB 3 controller always disappears after booting with OpenCore.

Could anyone teach me how to fix this issue?  Any input would be appreciated.

 

By the way, if I don't set Kernel->Quirks->XhciPortLimit to enabled, all USB controllers including USB 2 will disappear. 

 

Thank you.

 

Boot with Clover:

00:00.0 8086:0158 /PCI0@0/pci8086,158@0 = PciRoot(0x0)/Pci(0x0,0x0)
00:01.0 8086:0151 /PCI0@0/PEG0@1 = PciRoot(0x0)/Pci(0x1,0x0)
00:14.0 8086:1e31 /PCI0@0/XHC@14 = PciRoot(0x0)/Pci(0x14,0x0) ===> USB 3 Controller 
00:16.0 8086:1e3a /PCI0@0/IMEI@16 = PciRoot(0x0)/Pci(0x16,0x0)
00:16.3 8086:1e3d /PCI0@0/pci8086,1e3d@16,3 = PciRoot(0x0)/Pci(0x16,0x3)
00:19.0 8086:1502 /PCI0@0/GLAN@19 = PciRoot(0x0)/Pci(0x19,0x0)
00:1a.0 8086:1e2d /PCI0@0/EH02@1A = PciRoot(0x0)/Pci(0x1A,0x0)
00:1b.0 8086:1e20 /PCI0@0/HDEF@1B = PciRoot(0x0)/Pci(0x1B,0x0)
00:1c.0 8086:1e10 /PCI0@0/RP01@1C = PciRoot(0x0)/Pci(0x1C,0x0)
00:1c.4 8086:1e18 /PCI0@0/RP05@1C,4 = PciRoot(0x0)/Pci(0x1C,0x4)
00:1d.0 8086:1e26 /PCI0@0/EH01@1D = PciRoot(0x0)/Pci(0x1D,0x0)
00:1f.0 8086:1e47 /PCI0@0/LPCB@1F = PciRoot(0x0)/Pci(0x1F,0x0)
00:1f.2 8086:1e02 /PCI0@0/SATA@1F,2 = PciRoot(0x0)/Pci(0x1F,0x2)
00:1f.3 8086:1e22 /PCI0@0/SBUS@1F,3 = PciRoot(0x0)/Pci(0x1F,0x3)
01:00.0 14e4:43ba /PCI0@0/PEG0@1/ARPT@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
03:00.0 1002:67e3 /PCI0@0/RP05@1C,4/GFX0@0 = PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
03:00.1 1002:aae0 /PCI0@0/RP05@1C,4/HDAU@0,1 = PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x1)

 

Boot with OpenCore:

00:00.0 8086:0158 /PCI0@0/pci8086,158@0 = PciRoot(0x0)/Pci(0x0,0x0)
00:01.0 8086:0151 /PCI0@0/PEG0@1 = PciRoot(0x0)/Pci(0x1,0x0)
00:16.0 8086:1e3a /PCI0@0/IMEI@16 = PciRoot(0x0)/Pci(0x16,0x0)
00:16.3 8086:1e3d /PCI0@0/pci8086,1e3d@16,3 = PciRoot(0x0)/Pci(0x16,0x3)
00:19.0 8086:1502 /PCI0@0/GLAN@19 = PciRoot(0x0)/Pci(0x19,0x0)
00:1a.0 8086:1e2d /PCI0@0/EHC2@1A = PciRoot(0x0)/Pci(0x1A,0x0)
00:1b.0 8086:1e20 /PCI0@0/HDEF@1B = PciRoot(0x0)/Pci(0x1B,0x0)
00:1c.0 8086:1e10 /PCI0@0/RP01@1C = PciRoot(0x0)/Pci(0x1C,0x0)
00:1c.4 8086:1e18 /PCI0@0/RP05@1C,4 = PciRoot(0x0)/Pci(0x1C,0x4)
00:1d.0 8086:1e26 /PCI0@0/EHC1@1D = PciRoot(0x0)/Pci(0x1D,0x0)
00:1f.0 8086:1e47 /PCI0@0/LPCB@1F = PciRoot(0x0)/Pci(0x1F,0x0)
00:1f.2 8086:1e02 /PCI0@0/SAT0@1F,2 = PciRoot(0x0)/Pci(0x1F,0x2)
00:1f.3 8086:1e22 /PCI0@0/SBUS@1F,3 = PciRoot(0x0)/Pci(0x1F,0x3)
01:00.0 14e4:43ba /PCI0@0/PEG0@1/ARPT@0 = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
03:00.0 1002:67e3 /PCI0@0/RP05@1C,4/GFX0@0 = PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
03:00.1 1002:aae0 /PCI0@0/RP05@1C,4/HDAU@0,1 = PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x1)

 

EFI.zip

Edited by iMSannob

It turns out that I have to edit my DSDT by renaming XHCI which is used as a variable to
something else.
 

Code:
    OperationRegion (GNVS, SystemMemory, 0xDDFFDE18, 0x01CF)
    Field (GNVS, AnyAcc, Lock, Preserve)
    {
    ...
        AC1F,   8,
        DTS3,   8,
        DTS4,   8,
        Offset (0x1AA),
        XHCI,   8,    => Replace all XHCI occurrences in DSDT with XHCC
        XHPM,   8,
        XTUB,   32,
        XTUS,   32,
    ...
    }

I boot the machine with
1. FakePCIID.kext
2. FakePCIID_XHCIMux.kext
3. kernel->Quirks->XhciPortLimit = No

Then all USB 2/3 ports showed up.  I've attached my EFI for those who are interested.

 

EFI.zip

  • 4 months later...
×
×
  • Create New...