// USBInjectAll configuration/override for ProBook 4x0 G1 Haswell // // Based on information provided from ProBook 450 G1 Haswell (from Titanius) // DefinitionBlock ("", "SSDT", 2, "hack", "usb4x0g1", 0) { // // Override for USBInjectAll.kext // Device(UIAC) { Name(_HID, "UIA00000") Name(RMCF, Package() { // XHC overrides "8086_8c31", Package() { //"port-count", Buffer() { 21, 0, 0, 0 }, "ports", Package() { //HS01 not used "HS02", Package() // HS USB3 left back { "UsbConnector", 3, "port", Buffer() { 2, 0, 0, 0 }, }, "HS03", Package() // HS USB3 left front { "UsbConnector", 3, "port", Buffer() { 3, 0, 0, 0 }, }, "HS04", Package() // USB2 right front { "UsbConnector", 0, "port", Buffer() { 4, 0, 0, 0 }, }, //HS05 is finger print reader (disabled) "HS06", Package() // USB2 right back { "UsbConnector", 0, "port", Buffer() { 6, 0, 0, 0 }, }, "HS07", Package() // camera { "UsbConnector", 255, "port", Buffer() { 7, 0, 0, 0 }, }, //HS08/HS09/HS10/HS11 not used "HS12", Package() // bluetooth { "UsbConnector", 255, "port", Buffer() { 12, 0, 0, 0 }, }, //HS13/HS14 not used //HS15 is phantom port (port address 15 not used) //SSP1 not used "SSP2", Package() // SS USB3 left back { "UsbConnector", 3, "port", Buffer() { 17, 0, 0, 0 }, }, "SSP3", Package() // SS USB3 left front { "UsbConnector", 3, "port", Buffer() { 18, 0, 0, 0 }, }, //SSP4/SSP5/SSP6 not used }, }, }) } // // Disabling EHCI #1 and #2 // External(_SB.PCI0, DeviceObj) External(_SB.PCI0.EH01, DeviceObj) External(_SB.PCI0.EH02, 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 } } // registers needed for disabling EHC#1 Scope(_SB.PCI0.EH02) { 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 // disable EHCI#2 // put EHCI#2 in D3hot (sleep mode) ^^EH02.PSTE = 3 // disable EHCI#2 PCI space ^^LPCB.FDE2 = 1 } } } } //EOF