DSDT: trick retail drivers by changing "device-id" (e.g USB)
Started by zhell, May 26 2009 02:00 PM
365 replies to this topic
#321
Posted 04 April 2010 - 09:25 PM
Any chance of you NOt quoting the whole of the first post again artimess ??
#322
Posted 04 April 2010 - 10:04 PM
#323
Posted 10 April 2010 - 06:26 PM
I tried the device-ID USB fix detailed at the beginning of this thread, but it had no effect. It looks like the changes to the DSDT are not doing anything. The device IDs reported are the same with or without the DSDT. My DSDT.aml and lspci.txt files are located here: http://www.mediafire.com/?naildek0ymi Any help would be greatly appreciated.
#324
Posted 14 April 2010 - 12:34 PM
For all of you with nonfunctional USB and FireWire:
try to delete AppleHPET.kext from S/L/E (backup first!)
Worked for me on 10.6.2 and on 10.6.3 as well.
try to delete AppleHPET.kext from S/L/E (backup first!)
Worked for me on 10.6.2 and on 10.6.3 as well.
#325
Posted 14 April 2010 - 02:21 PM
I don't have a problem with USB, just wake from sleep. Will removing AppleHPET fix this?
My understanding is that wake from sleep is a problem with the ICH9 and that's why this thread was created. I just want to know why I don't see the ICH10 in the profiler when I know the DSDT has been loaded. (Confirmed by extracting after adding to /Extra.)
My understanding is that wake from sleep is a problem with the ICH9 and that's why this thread was created. I just want to know why I don't see the ICH10 in the profiler when I know the DSDT has been loaded. (Confirmed by extracting after adding to /Extra.)
#326
Posted 14 April 2010 - 02:41 PM
#327
Posted 15 April 2010 - 07:15 AM
Hi,
I have the same problem and am still searching for a solution on this. MacKonsti - did you made any progress here?
thomlx
MacKonsti, on Dec 4 2009, 05:58 PM, said:
Hey kidamnesiac, you are lucky! I still get nothing (a blank line) in System Profiler with the two SATA devices I have, despite adding a Method in the device (IDE1) with address 0x001F0002 (that's how my DSDT reports the device).
My board has controller id 0x27C0 which is ICH7. This id is present in AppleIntelPIIXATA.kext too (Info.plist) but it's still not detected.
So please tell us, what code you've included and where?
Many thanks.
My board has controller id 0x27C0 which is ICH7. This id is present in AppleIntelPIIXATA.kext too (Info.plist) but it's still not detected.
So please tell us, what code you've included and where?
Device (SATA) // Intel 82801GB/GR/GH (ICH7 Family) SATA IDE Controller
{
Name (_ADR, 0x001F0002)
OperationRegion (PCI, PCI_Config, 0x40, 0x20)
Field (PCI, DWordAcc, NoLock, Preserve)
{
blah-blah
}
[b] // Added method for AppleIntelPIIXATA.kext detection
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0xC0, 0x27, 0x00, 0x00 // Needed device ID is [27C0]
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}[/b]
Device (PRIM)
{
(code continues here...)
Many thanks.
I have the same problem and am still searching for a solution on this. MacKonsti - did you made any progress here?
thomlx
#328
Posted 15 April 2010 - 08:03 AM
thomlx, on Apr 15 2010, 10:15 AM, said:
Hi,
I have the same problem and am still searching for a solution on this. MacKonsti - did you made any progress here?
thomlx
I have the same problem and am still searching for a solution on this. MacKonsti - did you made any progress here?
thomlx
I have managed to fix -more or less- everything else on my mobo, not this one!
Even injected modes/names in DSDT (like e.g. graphics card) but it's not read, anywhere. Changed from MacPro3,1 to MacPro4,1.plist and my system hung (KP) so back to MacPro3,1. I thought it could be the computer description that would help...
I can't figure out where the heck System Profiler reads the SATA controller name/model!
Anyone who care to give a hint?!?
#329
Posted 15 April 2010 - 09:31 AM
Hi,
I bet that it has something to do with the model identifier. It just comes to my mind that the Mac Mini based on the Intel Chipset (Model Identifier Macmini2,1 -> see also http://www.everymac....2.0-specs.html) and also the old white MacBook (with CoreDuo) has the same ICH built in like in our boards while the MacPro Models have ICH10 (to my knowledge). Maybe it would be worth a try to set Macmini2,1 in the boot.plist - Unfortunately I am at work currently and can not check right now if this might help...
BTW: My graphics card is displayed correctly via System Profiler - it is only the ICH7 SATA which is missing.
thomlx
I bet that it has something to do with the model identifier. It just comes to my mind that the Mac Mini based on the Intel Chipset (Model Identifier Macmini2,1 -> see also http://www.everymac....2.0-specs.html) and also the old white MacBook (with CoreDuo) has the same ICH built in like in our boards while the MacPro Models have ICH10 (to my knowledge). Maybe it would be worth a try to set Macmini2,1 in the boot.plist - Unfortunately I am at work currently and can not check right now if this might help...
BTW: My graphics card is displayed correctly via System Profiler - it is only the ICH7 SATA which is missing.
thomlx
#330
Posted 17 April 2010 - 12:39 PM
#331
Posted 19 April 2010 - 11:27 AM
Hi,
my sleep works fine (thanks for this guide). Instead the safe sleep doesn't work.
my snow goes to normal sleep even if I set hibernate mode to 1 (only hibernate), and the strange thing is that the hard disk should load a little time to write the ram status into sleepimage file, but it doesn't happens to me. so I have a sleepimage file that is probably fake and the system fails to wake up (after reboot I get "incorrect image signature").
anyone can help me? i don't understand why the system does not write the sleepimage file before going to sleep.
thanks
my sleep works fine (thanks for this guide). Instead the safe sleep doesn't work.
my snow goes to normal sleep even if I set hibernate mode to 1 (only hibernate), and the strange thing is that the hard disk should load a little time to write the ram status into sleepimage file, but it doesn't happens to me. so I have a sleepimage file that is probably fake and the system fails to wake up (after reboot I get "incorrect image signature").
anyone can help me? i don't understand why the system does not write the sleepimage file before going to sleep.
thanks
#332
Posted 22 April 2010 - 12:52 PM
#333
Posted 08 May 2010 - 10:51 PM
I'm having troubling applying this same concept to patching my ICH8-based laptop. The relevant output from lspci is:
Using the same convention as the first post, this is cross referenced as follows:
I changed my DSDT code to the following:
I have the DTGP Method defined earlier in my DSDT. But, there is no effect on sleep! If I let the laptop go into "sleep" on its own, it only has "display sleep" and will waken upon keyboard or mouse. If I manually sleep through the Apple menu, it goes into some form of pseudosleep, but doesn't wake up, having to be powered off and then on. I'm not sure if its real sleep that it goes into, because this is a laptop that, at least on Windows, has a logo that is lit when on, and off when sleeping or powered down. That logo remains lit even with manual sleep. Can anyone give me any ideas?
I saw this other post about applying a similar fix for ICH8, but it wouldn't compile for me.
00:1a.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 [8086:2834] (rev 03) 00:1a.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 [8086:2835] (rev 03) 00:1a.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 [8086:283a] (rev 03) 00:1d.0 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 [8086:2830] (rev 03) 00:1d.1 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 [8086:2831] (rev 03) 00:1d.2 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 [8086:2832] (rev 03) 00:1d.7 USB Controller [0c03]: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 [8086:2836] (rev 03)
Using the same convention as the first post, this is cross referenced as follows:
USB 1: 1D 2830 USB 2: 1D, 1: 2831 USB 3: 1D, 2: 2832 USB 4: 1A: 2834 USB 5: 1A,1: 2835 EHCI 1: 1D, 7: 2836 EHCI 2: 1A, 7: 283a
I changed my DSDT code to the following:
Device (USB1)
{
Name (_ADR, 0x001D0000)
OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
Field (U1CS, DWordAcc, NoLock, Preserve)
{
U1EN, 2
}
Name (_PRW, Package (0x02)
{
0x03,
0x03
})
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
Store (0x03, U1EN)
}
Else
{
Store (Zero, U1EN)
}
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x34, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (USB2)
{
Name (_ADR, 0x001D0001)
OperationRegion (U2CS, PCI_Config, 0xC4, 0x04)
Field (U2CS, DWordAcc, NoLock, Preserve)
{
U2EN, 2
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x35, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (USB3)
{
Name (_ADR, 0x001D0002)
OperationRegion (U3CS, PCI_Config, 0xC4, 0x04)
Field (U3CS, DWordAcc, NoLock, Preserve)
{
U3EN, 2
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x36, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (USB4)
{
Name (_ADR, 0x001A0000)
OperationRegion (U4CS, PCI_Config, 0xC4, 0x04)
Field (U4CS, DWordAcc, NoLock, Preserve)
{
U4EN, 2
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x37, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (USB5)
{
Name (_ADR, 0x001A0001)
OperationRegion (U5CS, PCI_Config, 0xC4, 0x04)
Field (U5CS, DWordAcc, NoLock, Preserve)
{
U5EN, 2
}
Name (_PRW, Package (0x02)
{
0x05,
0x03
})
Method (_PSW, 1, NotSerialized)
{
If (Arg0)
{
Store (0x03, U5EN)
}
Else
{
Store (Zero, U5EN)
}
}
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x38, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (EHC1)
{
Name (_ADR, 0x001D0007)
OperationRegion (U7CS, PCI_Config, 0x54, 0x04)
Field (U7CS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}
Device (HUB7)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}
Device (PRT2)
{
Name (_ADR, 0x02)
}
Device (PRT3)
{
Name (_ADR, 0x03)
}
Device (PRT4)
{
Name (_ADR, 0x04)
}
Device (PRT5)
{
Name (_ADR, 0x05)
}
Device (PRT6)
{
Name (_ADR, 0x06)
}
}
Name (_PRW, Package (0x02)
{
0x0D,
0x03
})
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x39, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (EHC2)
{
Name (_ADR, 0x001A0007)
OperationRegion (UFCS, PCI_Config, 0x54, 0x04)
Field (UFCS, DWordAcc, NoLock, Preserve)
{
, 15,
PMES, 1
}
Device (HUB7)
{
Name (_ADR, Zero)
Device (PRT1)
{
Name (_ADR, One)
}
Device (PRT2)
{
Name (_ADR, 0x02)
}
Device (PRT3)
{
Name (_ADR, 0x03)
}
Device (PRT4)
{
Name (_ADR, 0x04)
}
}
Name (_PRW, Package (0x02)
{
0x0D,
0x03
})
Method (_S3D, 0, NotSerialized)
{
Return (0x02)
}
Method (_S4D, 0, NotSerialized)
{
Return (0x02)
}
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"device-id",
Buffer (0x04)
{
0x39, 0x3A, 0x00, 0x00
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
I have the DTGP Method defined earlier in my DSDT. But, there is no effect on sleep! If I let the laptop go into "sleep" on its own, it only has "display sleep" and will waken upon keyboard or mouse. If I manually sleep through the Apple menu, it goes into some form of pseudosleep, but doesn't wake up, having to be powered off and then on. I'm not sure if its real sleep that it goes into, because this is a laptop that, at least on Windows, has a logo that is lit when on, and off when sleeping or powered down. That logo remains lit even with manual sleep. Can anyone give me any ideas?
I saw this other post about applying a similar fix for ICH8, but it wouldn't compile for me.
#334
Posted 13 May 2010 - 02:58 PM
Jonas_S mate, for every Device (USBxx) you should insert (via DTGP) the corresponding device-id. Namely, for ICH8 devices that you posted:
You're also missing another piece of code for each EHCI controller 1 & 2 (as I did in my DSDT). This is the code inserted in one of the EHCI controllers:
USB1 - UHCI Controller #1 = "device-id" 0x30, 0x28, 0x00, 0x00 USB2 - UHCI Controller #2 = "device-id" 0x31, 0x28, 0x00, 0x00 USB3 - UHCI Controller #3 = "device-id" 0x32, 0x28, 0x00, 0x00 USB4 - UHCI Controller #4 = "device-id" 0x34, 0x28, 0x00, 0x00 USB5 - UHCI Controller #5 = "device-id" 0x35, 0x28, 0x00, 0x00 EHC1 - EHCI Controller #1 = "device-id" 0x36, 0x28, 0x00, 0x00 EHC2 - EHCI Controller #2 = "device-id" 0x3A, 0x28, 0x00, 0x00...and not the IDs you've inserted in your code. They are wrong...
You're also missing another piece of code for each EHCI controller 1 & 2 (as I did in my DSDT). This is the code inserted in one of the EHCI controllers:
Method (_DSM, 4, NotSerialized) // Added method for native ACPI support
{
Store (Package (0x06) {
"AAPL,clock-id",
Buffer (0x01) {One},
"device_type",
Buffer (0x05) {"EHCI"},
"device-id",
Buffer (0x04) {0x36, 0x28, 0x00, 0x00} // Device ID for ICH8 is [2836]
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
#335
Posted 17 May 2010 - 01:02 AM
MacKonsti, on May 13 2010, 03:58 PM, said:
You're also missing another piece of code for each EHCI controller 1 & 2 (as I did in my DSDT). This is the code inserted in one of the EHCI controllers:
Method (_DSM, 4, NotSerialized) // Added method for native ACPI support
{
Store (Package (0x06) {
"AAPL,clock-id",
Buffer (0x01) {One},
"device_type",
Buffer (0x05) {"EHCI"},
"device-id",
Buffer (0x04) {0x36, 0x28, 0x00, 0x00} // Device ID for ICH8 is [2836]
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
MacKonsti, thanks for the reply man. Adding that last bit of code causes a bunch of compile errors:
649: If (\_SB.PCI0.EHC2.PMES)
Error 4064 - Object does not exist ^ (\_SB.PCI0.EHC2.PMES)
651: Store (0x01, \_SB.PCI0.EHC2.PMES)
Error 4064 - Object does not exist ^ (\_SB.PCI0.EHC2.PMES)
652: Notify (\_SB.PCI0.EHC2, 0x02)
Error 4064 - Object does not exist ^ (\_SB.PCI0.EHC2)
6365: Device (EHC2)
Error 4096 - syntax error, unexpected PARSEOP_DEVICE, expecting '{' ^
7497: Notify (\_SB.PCI0.EHC2, 0x00)
Error 4064 - Object does not exist ^ (\_SB.PCI0.EHC2)
Any ideas? I've attached my dsdt without the additional EHCI code if you can take a look....
Thanks!
Attached Files
#336
Posted 17 May 2010 - 01:08 PM
Hi Jonas_S,
Your dsdt wouldn't compile. You should fix the errors first before proceed to add any additional code in your dsdt.
Sorry, my mistake. Your dsdt compiled successfully with iasl for ACPI rev 4.
Your dsdt wouldn't compile. You should fix the errors first before proceed to add any additional code in your dsdt.
Sorry, my mistake. Your dsdt compiled successfully with iasl for ACPI rev 4.
#337
Posted 17 May 2010 - 08:23 PM
kizwan, on May 17 2010, 01:08 PM, said:
Hi Jonas_S,
Your dsdt wouldn't compile. You should fix the errors first before proceed to add any additional code in your dsdt.
Sorry, my mistake. Your dsdt compiled successfully with iasl for ACPI rev 4.
Your dsdt wouldn't compile. You should fix the errors first before proceed to add any additional code in your dsdt.
Sorry, my mistake. Your dsdt compiled successfully with iasl for ACPI rev 4.
Thanks for checking... It does indeed compile correctly without the additional EHCI code. I've attached both DSDTs: one without the EHCI code that does compile correctly, and the other with the EHCI code that gives all the errors. I hope someone better at this than me can help sort it out!
Thanks again!
Attached Files
#338
Posted 17 May 2010 - 09:38 PM
Jonas_S, on May 18 2010, 04:23 AM, said:
Thanks for checking... It does indeed compile correctly without the additional EHCI code. I've attached both DSDTs: one without the EHCI code that does compile correctly, and the other with the EHCI code that gives all the errors. I hope someone better at this than me can help sort it out!
Thanks again!
Thanks again!
#339
Posted 18 May 2010 - 02:34 PM
kizwan, on May 17 2010, 10:38 PM, said:
Your problem is, there is already "Method (_DSM...." exist in EHC1 & EHC2 devices. iasl can't compile it because there is duplicate entry of "Method (_DSM..." in EHC1 & EHC2 devices.. Make sure there is only one "Method (_DSM..." exist.
Attached Files
#340
Posted 18 May 2010 - 08:19 PM
Jonas_S, on May 18 2010, 10:34 PM, said:
Dammit... did that, still have compilation errors. See revised code attached.
2 user(s) are reading this topic
0 members, 2 guests, 0 anonymous users



Sign In
Create Account









