Jump to content
XLR

LPC patch for 10.8.5-10.9?

Recommended Posts

Just replace "device-id" by "compatible".


Example:


instead of

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0xb9, 0x27, 0x00, 0x00\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

use

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "compatible", \n
           Buffer (0x0D)\n
           {\n
               "pci8086,27b9"\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Just replace "device-id" by "compatible".

 

Good advice :)


An old Core 2 ICH9 Notebook LPC patch for DSDT does not work anymore since 10.8.5 and Maverick.

 

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0x16, 0x29, 0x00, 0x00\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

 


I used suggestion by RehabMan on AppleLPC.kext not loading after 10.8.5 update causing wrong temp readings


For novice users, I explain a bit why and what I did. I searched for "device-id" is and added appropriate changes. I added before "device-id" line additional line "name", "pci8086,????", where ???? was appropriate device id. For example 0x16, 0x29, 0x00, 0x00 gives 2916, so the name line is "name", "pci8086,2916". Also I removed package size from line Package (0x02) that compiler can add these values by-self.


Change is needed as since 10.8.5 IOkit matches PCI devices for drivers using IONameMatch.

 

                Method (_DSM, 4, NotSerialized)
               {
                   Store (Package ()
                       {
                           "name", "pci8086,2916",
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x16, 0x29, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

 

Compiled the DSDT and replaced. Removed kexts caches:

 

sudo rm -rf /System/Library/Caches/com.apple.kext.caches

 

And rebooted. Voila :)

 

kextstat | grep LPC

   95    0 0xffffff7f82341000 0x3000     0x3000     com.apple.driver.AppleLPC (1.7.0) <75 11 5 4 3>

Link to comment
Share on other sites

I guess if you inject both properties it should work on all versions

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x04)\n
       {\n
           "device-id", \n
           Buffer (0x04)\n
           {\n
               0xb9, 0x27, 0x00, 0x00\n
           }, \n
           "compatible", \n
           Buffer (0x0D)\n
           {\n
               "pci8086,27b9"\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

Been messing with one of my systems today trying to get AppleLPC.kext to load in Mavericks (DELL M6400) , and couldn't get it load using any of these patches with my systems LPC device ID (2917,8086) but eventually found that by patching my dsdt using an ID that actually exists in the IONameMatch of the 10.9 AppleLPC.kext itself, then it would load (Currently I am using 2916, 8086).


However, I don't like the fact that it didn't actually point to the correct ID of the LPC device in my system, so I am not a fan of this method.


UPDATE: I've made use of an injector kext which now properly loads the new AppleLPC.kext using my correct device ID, and (after applying EHCI and USB fixes to my DSDT) have verified that sleep is working perfectly! :)


Here is the patch that I used in my DSDT with the correct device ID for my LPC device (note that in my system, the LPCB device is actually named ISAB - the default naming of the LPC device for Dell/Intel boards?):

 

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x04)\n
       {\n
           "device-id",\n
           Buffer (0x04)\n
           {\n
                0x17, 0x29, 0x86, 0x80\n
           },\n
           "name",\n
           "pci8086,2917"\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

 

Attached is the injector kext that I used, and contains the following device IDs for identifying LPC (you may also add your own device ID to the info.plist within this kext):

 

  <string>pci8086,25a1</string>
			<string>pci8086,2640</string>
			<string>pci8086,2641</string>
			<string>pci8086,2642</string>
			<string>pci8086,27b0</string>
			<string>pci8086,27b8</string>
			<string>pci8086,27bc</string>
			<string>pci8086,27bd</string>
			<string>pci8086,2810</string>
			<string>pci8086,2812</string>
			<string>pci8086,2814</string>
			<string>pci8086,2910</string>
			<string>pci8086,2911</string>
			<string>pci8086,2912</string>
			<string>pci8086,2914</string>
			<string>pci8086,2917</string>
			<string>pci8086,2918</string>
			<string>pci8086,2919</string>
			<string>pci8086,3a10</string>
			<string>pci8086,3a14</string>
			<string>pci8086,3a16</string>
			<string>pci8086,3a1a</string>
			<string>pci8086,3a1e</string>
			<string>pci8086,3b04</string>
			<string>pci8086,3b06</string>
			<string>pci8086,3b08</string>
			<string>pci8086,3b0d</string>

 

Enjoy!

AppleLPCInjector.kext.zip

Link to comment
Share on other sites

You don't need to inject the actual ID of your LPC device in DSDT, it's already that.


The idea of injecting a different (compatible) ID in DSDT is to get AppleLPC loaded without patching it or using an injector kext.


If you use the injector kext you can leave DSDT as it is.

Donation with Paypal | Mercado Livre | Premium and Donators Users | Installation GUIDE

Donation with BTC 33HeGCuCSh4tUBqdYkQqKpSDa1E7WeAJQ3

Donation with PicPay @danielnmaldonado

Donated? Send me PM with files or use DSDT Patch Requests

Link to comment
Share on other sites

thank you so much,my AppleLPC load by this one

into method label _DSM parent_adr 0x001F0000 remove_entry;
into device name_adr 0x001F0000 insert
begin
Method (_DSM, 4, NotSerialized)\n
{\n
   Store (Package (0x02)\n
       {\n
           "compatible", \n
           Buffer (0x0D)\n
           {\n
               "pci8086,27b9"\n
           }\n
       }, Local0)\n
   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n
   Return (Local0)\n
}
end

INTEL E8400 - DFI DK P45 T2RS PLUS - Ram - 4 GB - ALC885 - INNO3D GTX260 GOLD - ML 10.8.3/ Lion 10.7.5/WIN7 x64/Ubuntu 13.04

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...
The popup will be closed in 15 seconds...