well, i cant. i tried this code :
// Disabling EHCI #1
DefinitionBlock("", "SSDT", 2, "hack", "D-EHCI", 0)
{
External(_SB.PCI0, DeviceObj)
External(_SB.PCI0.EH01, DeviceObj)
External(_SB.PCI0.LPCB, DeviceObj)
// registers needed for disabling EHC#1
Scope(_SB.PCI0.EH01)
{
OperationRegion(RMP1, PCI_Config, 0x54, 2)
Field(RMP1, WordAcc, NoLock, Preserve)
{
PSTE, 2 // bits 2:0 are power state
}
}
Scope(_SB.PCI0.LPCB)
{
OperationRegion(RMP1, PCI_Config, 0xF0, 4)
Field(RMP1, DWordAcc, NoLock, Preserve)
{
RCB1, 32, // Root Complex Base Address
}
// address is in bits 31:14
OperationRegion(FDM1, SystemMemory, (RCB1 & Not((1<<14)-1)) + 0x3418, 4)
Field(FDM1, DWordAcc, NoLock, Preserve)
{
,13, // skip first 13 bits
FDE2,1, // should be bit 13 (0-based) (FD EHCI#2)
,1,
FDE1,1, // should be bit 15 (0-based) (FD EHCI#1)
}
}
Scope(_SB.PCI0)
{
Device(RMD2)
{
Name(_HID, "RMD20000")
Method(_INI)
{
// disable EHCI#1
// put EHCI#1 in D3hot (sleep mode)
^^EH01.PSTE = 3
// disable EHCI#1 PCI space
^^LPCB.FDE1 = 1
}
}
}
}
now I dont have usb2.0 ports, which seems obvious. but now how do they work now ?
i found ths code in one of your files:
External(_SB.PCI0.XHC, DeviceObj)
// inject properties for XHCI
Method(_SB.PCI0.XHC._DSM, 4)
{
If (!Arg2) { Return (Buffer() { 0x03 } ) }
Local0 = Package()
{
"RM,pr2-force", Buffer() { 0, 0, 0, 0 },
"subsystem-id", Buffer() { 0x70, 0x72, 0x00, 0x00 },
"subsystem-vendor-id", Buffer() { 0x86, 0x80, 0x00, 0x00 },
"AAPL,current-available", Buffer() { 0x34, 0x08, 0, 0 },
"AAPL,current-extra", Buffer() { 0x98, 0x08, 0, 0, },
"AAPL,current-extra-in-sleep", Buffer() { 0x40, 0x06, 0, 0, },
"AAPL,max-port-current-in-sleep", Buffer() { 0x34, 0x08, 0, 0 },
}
// force USB2 on XHC if EHCI is disabled
If (CondRefOf(\_SB.PCI0.RMD2) || CondRefOf(\_SB.PCI0.RMD3) || CondRefOf(\_SB.PCI0.RMD4))
{
CreateDWordField(DerefOf(Local0[1]), 0, PR2F)
PR2F = 0x3fff
}
Return(Local0)
}
but it didnt work.
what about Mux extension? should it be deleted from SLE? i did and nothing change, so i deleted.