Contribute
Register

Native Intel Panther Point USB 3.0 Patch for 4540S

Status
Not open for further replies.
As far as I know MacBookPro8,1 doesn't have USB 3 ports. Honestly I don't care about USB3, but my USB2 ports don't work without removing that "AppleUSBXHCI.kext" plugin. It would be nice if we could make at least the USB2 ports work without touching IOUSBFamily.kext.
 
I found the original MacBookPro8,1 ioreg.
MacBook Pro8,1 "Core i5" 2.3 13" Early 2011 A1278 | MC700 2.3GHz/4GB/320GB/HD Graphics 3000/SD

This how EHC1 looks in the original ioreg (notice the device id: 1c26):
EHC1.png

and EHC2 (notice the device id: 1c2d):

EHC2.png

In Rehabman's patches I see different value for EHC2. His patches set 1c26 to both EHC1 and EHC2:

Code:
#    EHCI fix  inject  device 0x1C26 into EHC1 
into method label _DSM parent_adr 0x001D0000 remove_entry;
into device name_adr 0x001D0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package ()\n
        {\n
            "device-id", \n
            Buffer (0x04)\n
            {\n
                0x26, 0x1c, 0x00, 0x00\n
            }, \n
            "built-in", \n
            Buffer (One)\n
            {\n
                0x00\n
            }, \n
            "AAPL,clock-id", \n
            Buffer (One)\n
            {\n
                0x01\n
            }, \n
            "device_type", \n
            Buffer (0x05)\n
            {\n
                "EHCI"\n
            }, \n
            "AAPL,current-available", \n
            0x0834, \n
            "AAPL,current-extra", \n
            0x0898, \n
            "AAPL,current-extra-in-sleep", \n
            0x0640, \n
            "AAPL,device-internal",\n
            0x02,\n
            "AAPL,max-port-current-in-sleep",\n
            0x0834,  \n
            Buffer (One)\n
            {\n
                0x00\n
            }\n
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
}
end;


#    EHCI fix inject  device 0x1C26 into EHC2
into method label _DSM parent_adr 0x001A0000 remove_entry;
into device name_adr 0x001A0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
    Store (Package ()\n
        {\n
            "device-id", \n
            Buffer (0x04)\n
            {\n
                0x26, 0x1c, 0x00, 0x00\n
            }, \n
            "built-in", \n
            Buffer (One)\n
            {\n
                0x00\n
            }, \n
            "AAPL,clock-id", \n
            Buffer (One)\n
            {\n
                0x02\n
            }, \n
            "device_type", \n
            Buffer (0x05)\n
            {\n
                "EHCI"\n
            }, \n
            "AAPL,current-available", \n
            0x0834, \n
            "AAPL,current-extra", \n
            0x0898, \n
            "AAPL,current-extra-in-sleep", \n
            0x0640, \n
            "AAPL,device-internal",\n
            0x02,\n
            "AAPL,max-port-current-in-sleep",\n
            0x0834,  \n
            Buffer (One)\n
            {\n
                0x00\n
            }\n
        }, Local0)\n
    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
    Return (Local0)\n
}
end;

Isn't better to set EHC2 to 1c2d like the real MacBookPro8,1?
 

Attachments

  • MacBookPro81_original_IOREgs.zip
    695.6 KB · Views: 70
Yes I think it's a good idea. Waiting for confirmation...
 
I'm wondering what SystemDefinition Rehabman uses.
 
Isn't better to set EHC2 to 1c2d like the real MacBookPro8,1?

I don't think it's a good idea using previous generation chipset Id's since 4540S HM76 is supported natively by OS X.
If you used IvyBridge Beta Installer, did you restore back AppleUSBXHCI.kext ? Also any PXHCD.kext would interfere with native support.
Having that what do you mean by "
Nothing happens for me"? Can you more specific like:
Do USB2 devices work on USB2/USB3 ports?
Do USB3 devices work in USB2 or USB3 mode on USB3 port?

output of this command will be helpful

system_profiler SPUSBDataType
 
If you used IvyBridge Beta Installer, did you restore back AppleUSBXHCI.kext ? Also any PXHCD.kext would interfere with native support.

Yes, I'm using vanilla IOUSBFamily.kext. No PXHCD installed.

Do USB2 devices work on USB2/USB3 ports?
Not really. Only one port is working. By "working" I mean that I can attach an iPod or external HDD to the USB port, and the operating system recognizes it. The three USB ports that are not working are unable to recogonize external devices other than a mouse or keyboard (no storage devices).

Do USB3 devices work in USB2 or USB3 mode on USB3 port?
I don't have any USB3 device and don't think I will purchase one soon. I would be happy to have full USB2 support. I can do that by removing AppleUSBXHCI.kext, but I though your patch can help me use all ports as USB2 without removing that plugin.

system_profiler SPUSBDataType
I send it a bit later. I'm not home right now.
 
A4Tech is a mouse connected to the USB port and JetFlesh is a flash drive.
This is how my USB ports look after applying your patch.

Code:
USB:


    USB 3.0 SuperSpeed Bus:


      Host Controller Location: Built-in USB
      Host Controller Driver: AppleUSBXHCI
      PCI Device ID: 0x1e31 
      PCI Revision ID: 0x0004 
      PCI Vendor ID: 0x8086 
      Bus Number: 0x14 


    USB 3.0 Hi-Speed Bus:


      Host Controller Location: Built-in USB
      Host Controller Driver: AppleUSBXHCI
      PCI Device ID: 0x1e31 
      PCI Revision ID: 0x0004 
      PCI Vendor ID: 0x8086 
      Bus Number: 0x14 


        USB Optical Mouse:


          Product ID: 0x0006
          Vendor ID: 0x09da  (A-FOUR TECH CO., LTD.)
          Version: 0.01
          Speed: Up to 1.5 Mb/sec
          Manufacturer: A4Tech
          Location ID: 0x14400000 / 1
          Current Available (mA): 500
          Current Required (mA): 100


    USB Hi-Speed Bus:


      Host Controller Location: Built-in USB
      Host Controller Driver: AppleUSBEHCI
      PCI Device ID: 0x1e2d 
      PCI Revision ID: 0x0004 
      PCI Vendor ID: 0x8086 
      Bus Number: 0x1a 


        Hub:


          Product ID: 0x0024
          Vendor ID: 0x8087  (Intel Corporation)
          Version: 0.00
          Speed: Up to 480 Mb/sec
          Location ID: 0x1a100000 / 2
          Current Available (mA): 500
          Current Required (mA): 0


            Mass Storage Device:


              Product ID: 0x6387
              Vendor ID: 0x058f  (Alcor Micro, Corp.)
              Version: 1.00
              Serial Number: 7SC21KD0
              Speed: Up to 480 Mb/sec
              Manufacturer: JetFlash
              Location ID: 0x1a120000 / 4
              Current Available (mA): 500
              Current Required (mA): 100
              Capacity: 8.03 GB (8,032,092,160 bytes)
              Removable Media: Yes
              Detachable Drive: Yes
              BSD Name: disk1
              Partition Map Type: GPT (GUID Partition Table)
              S.M.A.R.T. status: Not Supported
              Volumes:
                disk1s1:
                  Capacity: 209.7 MB (209,715,200 bytes)
                  BSD Name: disk1s1
                  Content: EFI
                Mac OS X Base System:
                  Capacity: 7.69 GB (7,688,118,272 bytes)
                  Available: 2.68 GB (2,677,006,336 bytes)
                  Writable: Yes
                  File System: HFS+
                  BSD Name: disk1s2
                  Mount Point: /Volumes/Mac OS X Base System
                  Content: Apple_HFS
                  Volume UUID: A878FFF4-CE73-3E4D-BEEF-4735382AEAA3


            HP HD Webcam [Fixed]:


              Product ID: 0xb270
              Vendor ID: 0x04f2  (Chicony Electronics Co., Ltd.)
              Version: 52.89
              Speed: Up to 480 Mb/sec
              Manufacturer: Chicony
              Location ID: 0x1a130000 / 3
              Current Available (mA): 500
              Current Required (mA): 500


    USB Hi-Speed Bus:


      Host Controller Location: Built-in USB
      Host Controller Driver: AppleUSBEHCI
      PCI Device ID: 0x1e26 
      PCI Revision ID: 0x0004 
      PCI Vendor ID: 0x8086 
      Bus Number: 0x1d 


        Hub:


          Product ID: 0x0024
          Vendor ID: 0x8087  (Intel Corporation)
          Version: 0.00
          Speed: Up to 480 Mb/sec
          Location ID: 0x1d100000 / 2
          Current Available (mA): 500
          Current Required (mA): 0
 
It looks pretty normal and your IOReg is very similar to mine. I booted with 8.1 definition, works in my case. Someone with access to both processor types could swap them and shed more light.
 
Status
Not open for further replies.
Back
Top