- Joined
- May 9, 2013
- Messages
- 481
- Mobile Phone
I think this was the patch I used (or a derivative of it) probably and older version of it since I did it in June/July
Code:# Maintained by: PJALM for: PJALM Intel7 at: Thu Aug 15 09:07:46 UTC 2013# Patch Name : USB Multiplex # Intel z77 USB2/USB3 Multiplexing Fix # USB3 patches in thanks to SJ_Underwater and Mieze # Code optimizations thanks to RehabMan and PikeRAlpha # Add method OSDW to the main block, it's used by the USB3 patches into method label OSDW remove_entry; into definitionblock code_regex . insert begin Method (OSDW, 0, NotSerialized)\n {\n If (LEqual (OSYS, 0x2710))\n {\n Return (One)\n }\n Else\n {\n Return (Zero)\n }\n } end; # Fix method _OSC into method label _OSC parent_label PCI0 remove_entry; into device label PCI0 parent_label _SB insert begin Method (_OSC, 4, Serialized)\n {\n Store (Arg3, Local0)\n CreateDWordField (Local0, Zero, CDW1)\n CreateDWordField (Local0, 0x04, CDW2)\n CreateDWordField (Local0, 0x08, CDW3)\n Store (CDW2, SUPP)\n Store (CDW3, CTRL)\n If (LEqual (One, OSDW ()))\n {\n If (LAnd (LEqual (Arg0, GUID), NEXP))\n {\n If (Not (And (CDW1, One)))\n {\n If (And (CTRL, 0x02))\n {\n NHPG ()\n }\n \n If (And (CTRL, 0x04))\n {\n NPME ()\n }\n }\n \n If (LNotEqual (Arg1, One))\n {\n Or (CDW1, 0x08, CDW1)\n }\n \n If (LNotEqual (CDW3, CTRL))\n {\n Or (CDW1, 0x10, CDW1)\n }\n \n Store (CTRL, CDW3)\n Store (CTRL, OSCC)\n Return (Local0)\n }\n Else\n {\n Or (CDW1, 0x04, CDW1)\n Return (Local0)\n }\n }\n Else\n {\n If (LEqual (Arg0, Buffer (0x10)\n {\n /* 0000 */ 0xA9, 0x12, 0x95, 0x7C, 0x05, 0x17, 0xB4, 0x4C,\n /* 0008 */ 0xAF, 0x7D, 0x50, 0x6A, 0x24, 0x23, 0xAB, 0x71\n }))\n {\n Store (One, ^XHC1.PASS)\n Store (One, ^XHC1.PAHC)\n Store (One, ^XHC1.PBSS)\n Store (One, ^XHC1.PBHC)\n Store (One, ^XHC1.PCSS)\n Store (One, ^XHC1.PCHC)\n Store (One, ^XHC1.PDSS)\n Store (One, ^XHC1.PDHC)\n }\n Return (Local0)\n }\n } end; # Fix EHC1 into Device label PR11 code_regex Name\s\(MUXS[^)]+\) remove_matched; into device label PR11 parent_label PR01 insert begin Name (MUXS, "XHCA") end; into Device label PR12 code_regex Name\s\(MUXS[^)]+\) remove_matched; into device label PR12 parent_label PR01 insert begin Name (MUXS, "XHCB") end; into Device label PR13 code_regex Name\s\(MUXS[^)]+\) remove_matched; into device label PR13 parent_label PR01 insert begin Name (MUXS, "XHCC") end; into Device label PR18 code_regex Name\s\(MUXS[^)]+\) remove_matched; into device label PR18 parent_label PR01 insert begin Name (MUXS, "XHCD") end; into method label XHCA parent_label EHC1 remove_entry; into method label XHCB parent_label EHC1 remove_entry; into method label XHCC parent_label EHC1 remove_entry; into method label XHCD parent_label EHC1 remove_entry; into method label EHCA parent_label EHC1 remove_entry; into method label EHCB parent_label EHC1 remove_entry; into method label EHCC parent_label EHC1 remove_entry; into method label EHCD parent_label EHC1 remove_entry; into method label XHCN parent_label EHC1 remove_entry; into device label EHC1 code_regex Name\s\(XHCN,\sOne\) remove_matched; into device label EHC1 insert begin Name (XHCN, One)\n Method (XHCA, 0, NotSerialized)\n {\n Store (One, ^^XHC1.PAHC)\n }\n Method (XHCB, 0, NotSerialized)\n {\n Store (One, ^^XHC1.PBHC)\n }\n Method (XHCC, 0, NotSerialized)\n {\n Store (One, ^^XHC1.PCHC)\n }\n Method (XHCD, 0, NotSerialized)\n {\n Store (One, ^^XHC1.PDHC)\n }\n Method (EHCA, 0, NotSerialized)\n {\n Store (Zero, ^^XHC1.PAHC)\n }\n Method (EHCB, 0, NotSerialized)\n {\n Store (Zero, ^^XHC1.PBHC)\n }\n Method (EHCC, 0, NotSerialized)\n {\n Store (Zero, ^^XHC1.PCHC)\n }\n Method (EHCD, 0, NotSerialized)\n {\n Store (Zero, ^^XHC1.PDHC)\n }\n end; # Fix EHC2 into method label XHCN parent_label EHC2 remove_entry; into device label EHC2 code_regex Name\s\(XHCN,\sOne\) remove_matched; into device label EHC2 insert begin Name (XHCN, One)\n end; # Fix XHC1 into device label XHC set_label begin XHC1 end; into_all all code_regex XHC(?=\W) replaceall_matched begin XHC1 end; into method label _WAK code_regex \_SB.PCI0.XHC1.XWAK replace_matched begin _SB.PCI0.XHC1._INI end; into device label XHC1 replace_content begin Name (_ADR, 0x00140000)\n Name (_S3D, 0x02)\n Name (_S4D, 0x02)\n Name (XRST, Zero)\n \n OperationRegion (XPRT, PCI_Config, 0x74, 0x10)\n Field (XPRT, DWordAcc, NoLock, Preserve)\n {\n Offset (0x01),\n PMEE, 1,\n , 6,\n PMES, 1\n }\n \n OperationRegion (XH1C, PCI_Config, 0xD0, 0x10)\n Field (XH1C, ByteAcc, NoLock, Preserve)\n {\n PAHC, 1,\n PBHC, 1,\n PCHC, 1,\n PDHC, 1,\n Offset (0x08),\n PASS, 1,\n PBSS, 1,\n PCSS, 1,\n PDSS, 1\n }\n \n OperationRegion (XHC2, PCI_Config, 0x44, 0x04)\n Field (XHC2, ByteAcc, NoLock, Preserve)\n {\n Offset (0x01),\n MIAI, 2\n }\n \n Method (_INI, 0, NotSerialized)\n {\n If (OSDW ())\n {\n Store (Zero, MIAI)\n }\n \n If (LAnd (LGreaterEqual (OSYS, 0x07DC), LLess (OSYS, 0x2710)))\n {\n Store (One, PASS)\n Store (One, PAHC)\n Store (One, PBSS)\n Store (One, PBHC)\n Store (One, PCSS)\n Store (One, PCHC)\n Store (One, PDSS)\n Store (One, PDHC)\n }\n }\n \n Device (RHUB)\n {\n Name (_ADR, Zero)\n Device (PRT1)\n {\n Name (_ADR, One)\n Method (_UPC, 0, Serialized)\n {\n Name (UPCP, Package (0x04)\n {\n 0xFF,\n 0x03,\n Zero,\n Zero\n })\n Return (UPCP)\n }\n \n Method (_PLD, 0, Serialized)\n {\n Name (PLDP, Package (0x01)\n {\n Buffer (0x10)\n {\n /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n /* 0008 */ 0x69, 0x0C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00\n }\n })\n Return (PLDP)\n }\n Name (MUXS, "EHCA")\n }\n \n Device (PRT2)\n {\n Name (_ADR, 0x02)\n Method (_UPC, 0, Serialized)\n {\n Name (UPCP, Package (0x04)\n {\n 0xFF,\n 0x03,\n Zero,\n Zero\n })\n Return (UPCP)\n }\n \n Method (_PLD, 0, Serialized)\n {\n Name (PLDP, Package (0x01)\n {\n Buffer (0x10)\n {\n /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n /* 0008 */ 0x69, 0x0C, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00\n }\n })\n Return (PLDP)\n }\n Name (MUXS, "EHCB")\n }\n \n Device (PRT3)\n {\n Name (_ADR, 0x03)\n Method (_UPC, 0, Serialized)\n {\n Name (UPCP, Package (0x04)\n {\n 0xFF,\n 0x03,\n Zero,\n Zero\n })\n Return (UPCP)\n }\n \n Method (_PLD, 0, Serialized)\n {\n Name (PLDP, Package (0x01)\n {\n Buffer (0x10)\n {\n /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n /* 0008 */ 0x69, 0x0C, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00\n }\n })\n Return (PLDP)\n }\n Name (MUXS, "EHCC")\n }\n \n Device (PRT4)\n {\n Name (_ADR, 0x04)\n Method (_UPC, 0, Serialized)\n {\n Name (UPCP, Package (0x04)\n {\n 0xFF,\n 0x03,\n Zero,\n Zero\n })\n Return (UPCP)\n }\n \n Method (_PLD, 0, Serialized)\n {\n Name (PLDP, Package (0x01)\n {\n Buffer (0x10)\n {\n /* 0000 */ 0x01, 0xC6, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,\n /* 0008 */ 0x69, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00\n }\n })\n Return (PLDP)\n }\n Name (MUXS, "EHCD")\n }\n }\n \n Method (_PRW, 0, NotSerialized)\n {\n Return (GPRW (0x0D, 0x04))\n }\n \n Method (XHCA, 0, NotSerialized)\n {\n Store (One, PAHC)\n }\n \n Method (XHCB, 0, NotSerialized)\n {\n Store (One, PBHC)\n }\n \n Method (XHCC, 0, NotSerialized)\n {\n Store (One, PCHC)\n }\n \n Method (XHCD, 0, NotSerialized)\n {\n Store (One, PDHC)\n }\n \n Method (EHCA, 0, NotSerialized)\n {\n Store (Zero, PAHC)\n }\n \n Method (EHCB, 0, NotSerialized)\n {\n Store (Zero, PBHC)\n }\n \n Method (EHCC, 0, NotSerialized)\n {\n Store (Zero, PCHC)\n }\n \n Method (EHCD, 0, NotSerialized)\n {\n Store (Zero, PDHC)\n }\n \n Method (_DSM, 4, NotSerialized)\n {\n Store (Package (0x15)\n {\n "AAPL,slot-name", "Built In",\n "name", "Intel xHCI Controller",\n "model", "Intel 7 Series Chipset Family USB xHCI Host Controller",\n "device_type", "USB Controller",\n "AAPL,current-available", 0x0834,\n "AAPL,current-extra", 0x0A8C,\n "AAPL,current-in-sleep", 0x03E8,\n "AAPL,current-extra-in-sleep", 0x0834,\n "AAPL,max-port-current-in-sleep", 0x0A8C,\n "AAPL,device-internal", 0x02,\n Buffer (One) {0x00}\n }, Local0)\n DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n Return (Local0)\n } end;
Jos1984, XMYUKON,
you can experiment and do a quick test with this one if you like. Not promising it will fix anything, but the fun part is the experiment right?
Just wanted to chime in that this patched worked for me on the U410. Restored USB 2.0 devices on the 3.0 ports with stock AppleUSBXHCI. Sweet.
Now I have a camera and USB 3.0