Jump to content

ACPI (DSDT) Patcher for BIOS and AML


koalala
 Share

845 posts in this topic

Recommended Posts

There's nothing wrong with your .net or ACPI patcher installation, beta 5 doesn't want to patch your BIOS on my PC either. It even causes ACPI patcher to crash. You'll have to wait for koalala to appear and hope he'll release one more beta..

 

---

 

I'm trying to get the GFX patch in the ACPI patcher to work.

My video card is in the second PCI Express slot (because the first PCIe slot is a x1 slot). IORegistryExplorer doesn't have any PEX entries.

The video card is listed under Display@0 and the other info there is P0P2@1 - PCI0@0/POP2@10000

I've got full QE/CI on the video card with all vanilla 10.5.6 kexts and the 9800GTX device property string from OSX86Tools.

Patching as P0P2 with dual DVI doesn't work for me, it creates the DSDT.aml, I drop it at the root, remove the device properties from boot.plist, reboot, and it boots up with no QE/CI.

 

The attached dsdt.dsl is the one I'm using now (P5Q-E BIOS 1901). I hope someone will take a look at it and let me know how to add my video card.

And, if I'm lucky, if there's anything that can be added to help fix sleep and shutdown.

It has the default fixes, MUTE, Local0 and, carefully hand-edited, the integrated Marvell 88E8056 as EN0 fully working, thanks to krazubu.

 

post-188427-1237432928_thumb.png

P5Q_E_LSPCI.txt

dsdt.dsl.zip

Link to comment
Share on other sites

There's nothing wrong with your .net or ACPI patcher installation, beta 5 doesn't want to patch your BIOS on my PC either. It even causes ACPI patcher to crash. You'll have to wait for koalala to appear and hope he'll release one more beta..

 

THANK you for trying that for me! I'm glad to know that I wasn't doing something wrong. :)

Link to comment
Share on other sites

I was curious..you're welcome. If you read through the whole thread...like I just did (my brain is mush)...you'll notice that AMI BIOS has been notoriously problematic from the start.

 

If anyone is interested in the Marvell 88E8056 part of the DSDT posted above, this is what it looks like (all credit goes to krazubu and cparm).

If I'm understanding this correctly, koalala's patcher can't do this on its own with the BIOS from the P5Q-E because its DSDT table is missing the entire GIGE section.

Device (P0P9)
{
Name (_ADR, 0x001C0005)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}

Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR09)
}

Return (PR09)
}

Device (GIGE)
{
Name (_ADR, 0x00)
OperationRegion (GPIO, SystemIO, 0x0800, 0x06)
Field (GPIO, ByteAcc, NoLock, Preserve)
{
GO01, 8,
GO02, 8,
GO03, 8,
GO04, 8,
GO05, 8,
GP9_, 1
} 
Name (_PRW, Package (0x02)
{
0x09,
0x03
})
Method (EWOL, 1, NotSerialized)
{
If (LEqual (Arg0, 0x01))
{
Or (GP9, 0x01, GP9)
}
Else
{
And (GP9, 0x00, GP9)
}

If (LEqual (Arg0, GP9))
{
Return (0x00)
}
Else
{
Return (0x01)
}
}
}
}
Device (GBEC)
{
Name (_ADR, 0x00190000)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0D, 0x04))
}
}

Link to comment
Share on other sites

Did you add any specific patch for the NVidia shutdown issue? Because using a DSDT patched with this tool, the computer now powers down properly, which it never did before... awesome!

 

Please add more descriptions inside the tool itself, e.g., what does "PEGP" mean, when should I use GIGE, how do I find out about ALC888-0 vs. -2, etc. Just add some more text or tooltips please.

Link to comment
Share on other sites

Part of the answers to your questions can be found in the first post and around the thread.

I know from experience that reading a full 25 page thread is not good for your health so here's what I've gathered so far:

 

The GIGE patch only works on AWARD BIOS - use LAN0 fix for AMI BIOS.

(that doesn't mean that you can't use GIGE in your DSDT if you have AMI bios - it means that you can't use Koalala's patcher to add it).

Also I saw something about GIGE only being useful if your network is running with unpatched (aka Vanilla) kernel extensions already.

 

TMFix is Time Machine fix, AFAIK all it does is set your LAN as internal, Time Machine and Maya won't work if the OS doesn't find an 'internal' Network adapter at EN0. In other words, TMFix does exactly the same thing that adding a LAN device property string in com.apple.boot.plist does.

 

Off topic: Since RC2 of the Chameleon bootloader, you can also achieve the same thing with by setting BuiltInEthernet=y in /Extra/com.apple.Boot.plist.

 

PEGP is a mysterious option that adds some extra stuff ("creates a device") in your DSDT when inserting the data for your video card.

It's needed on some motherboards, on others the patch works without it. So try both and see what happens.

 

Off topic: If you're patching HDA audio in the DSDT in order to replace HDAEnabler.kext, or inserting device IDs, the PEGP method must be present.

 

If you have AMI BIOS, don't be surprised if nothing works! But please leave feedback for koalala.

 

If you have patched LAN and video and are using EFI device-property strings for Video and/or LAN in com.apple.Boot.plist, don't forget to remove them before booting with your patched DSDT.aml.

 

Koalala has stated that there is nothing in the patcher that specifically targets restart/shutdown issues.

I've seen posts by people saying that using DSDT.aml broke their shutdown. I know it didn't fix mine!

So consider yourself lucky if it somehow fixed yours.

Link to comment
Share on other sites

Part of the answers to your questions can be found in the first post and around the thread.

I know from experience that reading a full 25 page thread is not good for your health so here's what I've gathered so far:

 

GIGE only works on AWARD BIOS - use LAN0 fix for AMI BIOS.

Also I saw something about GIGE only being useful if your network is running with unpatched (aka Vanilla) kernel extensions already.

TMFix is Time Machine fix, AFAIK all it does is set your LAN as internal, Time Machine won't work if the OS doesn't find an 'internal' Network adapter at EN0. In other words, TMFix does exactly the same thing that adding a LAN device property string in com.apple.boot.plist does.

PEGP is a mysterious option that adds some extra stuff ("creates a device") in your DSDT when inserting the data for your video card.

It's needed on some motherboards, on others the patch works without it. So try both and see what happens.

 

If you have AMI BIOS, don't be surprised if nothing works! But please leave feedback for koalala.

 

If you have EFI device-property strings already for Video and/or LAN in com.apple.boot.plist, don't forget to remove them before booting with your patched DSDT.aml.

 

Koalala has stated that there is nothing in the patcher that specifically targets restart/shutdown issues.

I've seen posts by people saying that using DSDT.aml broke their shutdown. I know it didn't fix mine!

So consider yourself lucky that it somehow fixed yours.

 

 

Bro, i have add the dtgp loader code and a generic Nvidia injection code to your DSDT, please check the NVCAPS before compile to match the ones working for you.

The code has a generic name for the video card, if you plan to change to yours, you will have to recalculate the "buffer" on that entry to avoid compiling error. :(

dsdt_Beer.zip

Link to comment
Share on other sites

Thanks! :dance_24:

 

But there is trouble in paradise as usual.

 

Buffer size is the number of characters + one, is that right?

 

So, if I'm doing this right, for example "nVidia GeForce 9800 GTX/GTX+" is 28+1 = 0x1D.

 

But how do I calculate the buffer size for the NVCAP entry? I can't figure it out.

 

I want to change the 0x01 in yours to 0x00 (not sure if it's really necessary though).

 

Either way I can't get it to work (I left the NVCAP since I don't know how to calculate the buffer size) then I gave up trying to change the values and just compiled yours and that didn't work either.

 

NV50 driver gets loaded but no QE/CI and system profiler just says 'display' under the model name, 32MB VRAM and other wrong stuff.

 

I deleted the device property string in com.apple.boot.plist, did the editing in Xcode and compiled to .aml under Windows with koalala's ACPI Patcher (which didn't give any compiling errors so I must have done something right).

I've attached my modified dsl..

dsdt.dsl.zip

Link to comment
Share on other sites

Thanks! :dance_24:

 

But there is trouble in paradise as usual.

 

Buffer size is the number of characters + one, is that right?

 

So, if I'm doing this right, for example "nVidia GeForce 9800 GTX/GTX+" is 28+1 = 0x1D.

 

But how do I calculate the buffer size for the NVCAP entry? I can't figure it out.

 

I want to change the 0x01 in yours to 0x00 (not sure if it's really necessary though).

 

Either way I can't get it to work (I left the NVCAP since I don't know how to calculate the buffer size) then I gave up trying to change the values and just compiled yours and that didn't work either.

 

NV50 driver gets loaded but no QE/CI and system profiler just says 'display' under the model name, 32MB VRAM and other wrong stuff.

 

I deleted the device property string in com.apple.boot.plist, did the editing in Xcode and compiled to .aml under Windows with koalala's ACPI Patcher (which didn't give any compiling errors so I must have done something right).

I've attached my modified dsl..

 

If you change the value on the Nvcaps you don´t have to change the buffer.... you have to change it if you "add" extra values to it, but not when you modify.

 

Anyway... i will check if 9xxx models will need extra values on DSDT injection code.

Link to comment
Share on other sites

Yep, got it, I just found one for a 6800 GT with the same 0x01 changed to 0x00 hiding in this thread already, which also has 0x18 as checksum.

 

Thanks for checking.

 

Some info - I don't know if it's useful or not:

 

9800GTX/GTX+ works with vanilla kexts in 10.5.6 but is labelled "9800 GTX DDL" in System Profiler. OpenGL Extensions Viewer recognizes it correctly and shows "GeForce 9800GTX/GTX+ OpenGL engine". My device property string is the one that's built in to OSX86Tools for the card, if you want to look at it.

 

I've attached an ioreg dump of the P0P2 tree.

ioreg.txt

Link to comment
Share on other sites

Yep, got it, I just found one for a 6800 GT with the same 0x01 changed to 0x00 hiding in this thread already, which also has 0x18 as checksum.

 

Thanks for checking.

 

Some info - I don't know if it's useful or not:

 

9800GTX/GTX+ works with vanilla kexts in 10.5.6 but is labelled "9800 GTX DDL" in System Profiler. OpenGL Extensions Viewer recognizes it correctly and shows "GeForce 9800GTX/GTX+ OpenGL engine". My device property string is the one that's built in to OSX86Tools for the card, if you want to look at it.

 

I've attached an ioreg dump of the P0P2 tree.

ioreg.txt

 

I have changed code on your _wak and checked the EFI string against the video DSDT code, let´s see what happends now... :)

DSDT_BEER_2.zip

Link to comment
Share on other sites

No love! It does the same thing with your new DSDT.aml. Here's what it looks like in system profiler.

post-188427-1237572976_thumb.png

 

Your modifications in DSDT place the video card in PCI-E slot 1.

Actually the video card is in the second PCI-E slot on the board - but it's the first PCI-E 16-lane slot (System Profiler agrees :) )

Does it make any difference?

Don't know if it's useful but DMI info from ASUS Probe says the card is on "Bus Number 2, Device 20 Function 4".

 

P5Q-E layout from the manual:

post-188427-1237573015_thumb.png

 

Some notes.

Before rebooting with my old DSDT and boot.plist back in, I tried sleep. The behaviour was different - it used to put the monitor in standby and appear to be frozen, but with the video not working (and your additional _WAK fix from DSDT still in memory) all it did was make the mouse pointer disappear until I moved the mouse again!

Shutdown was different too, instead of turning my monitor off it appeared to be frozen on "it's now safe to turn off your computer".

I guess this happened because the video card wasn't fully running.

Sleep/Shutdown issues maybe caused by ACPI and/or SMBIOS compatibility issues...

 

Thanks for sticking with me Pere, glad to learn more about this.

Link to comment
Share on other sites

I mentioned a while back that I was trying to get my Radeon HD 3870 X2 to work using this method. I had said that the hardware location for it was PCE2 and that I didn't have any PEX or P0P entries in my IOReg. Is it just because the program doesn't have this option that is why it isn't working? I have tried using PCI0, PCI2, PEX2, etc. and none have worked. This is the same situation for my ethernet which is on PCE9. If it requires adding this option into the next beta of the patcher, I'd really appreciate it if it could be done.

 

Thanks.

Link to comment
Share on other sites

I mentioned a while back that I was trying to get my Radeon HD 3870 X2 to work using this method. I had said that the hardware location for it was PCE2 and that I didn't have any PEX or P0P entries in my IOReg. Is it just because the program doesn't have this option that is why it isn't working? I have tried using PCI0, PCI2, PEX2, etc. and none have worked. This is the same situation for my ethernet which is on PCE9. If it requires adding this option into the next beta of the patcher, I'd really appreciate it if it could be done.

 

Thanks.

This is an editable combo box, you can write PCE in the box and it will work.

Link to comment
Share on other sites

KOALALA

Sorry for English! The problem is that my board GA-P35T-DQ6 works normally only with version 0.1.8 and other versions of the problem of exit from sleep and when the mark ALC889a, I can not make a sound! What should I do? If there is a solution, help!

Link to comment
Share on other sites

Ok, so I get it to show GFX0 under the PCE2 section of IORegistryExplorer, but it doesn't seem to be loading the framebuffer. Without the framebuffer, I only get a garbled screen (same thing as when I don't use the efi string). Any ideas?

Link to comment
Share on other sites

@koalala

Sorry for my poor English.

Thanks for your great work.

I use dsdt.aml,not patcthing BIOS.

I have those problems with dsdt:

1) Sleep is OK. But Don't wake up by keyboard or mouse,instead of pressing powerbutton.

2) I have a Firewire PCI card with Ti chip.

Before Sleep,my 1394 PCI card doesn't work. "No FireWire ports can be detected." shown in System Profiler.

But it does come back after wakeup. "Warning: Unable to list FireWire devices." shown in System Profiler.

post-92376-1238017088_thumb.png

post-92376-1238017142_thumb.png

3) "Log Out" works normally Before Sleep.

But it takes a long time (about 5 mins) for Log Out GUI shown after wakeup.

 

Without dsdt Everything is working fine.

 

Below is my fixed DSDT.dsl

fixdsdt.dsl.zip

Link to comment
Share on other sites

hey, sorry for n00b question, but is there a support for certain motherboards or the limitation is manufacturer of the bios module(ami,award), i'm asking cos i have asus p5l-mx and wondering would it fix my poweroff problem with gf9400gt.i'm already using a dsdt.aml but didn't update it after installing gf9400gt in my PC. you think it would make any difference?

thanks in advance

Link to comment
Share on other sites

There are no special options for selected motherboards in the patcher.

 

The patcher works with AMI and AWARD bios files. Success rate is highest on AWARD BIOS.

 

If patching is unsuccessful when working directly with an AMI BIOS file, you can use MMTools and WinHex to extract the DSDT table manually, and then use that with ACPI Patcher. You need a Windows PC or virtual machine with Windows.

If you follow this tutorial until step 12 and all goes well you should end up with a patchable DSDT table:

http://www.insanelymac.com/forum/index.php...st&p=804822

 

Being an ASUS, your board should have AMI BIOS.

 

There could be any number of reasons for your shutdown problem and patching DSDT is a shot in the dark.

 

Try it and see.

Link to comment
Share on other sites

thanks for the answer. my shutdown problem is directly related to my gf9400gt as i know, because before installig it i worked allright(using gma950) and after putting it in i lost shutdown ability. i read here and there that is a common problem with nvidia graphics. so i will test it over the weekend to see.

i'll post my reslults later(if there will be any, thou;D)

Link to comment
Share on other sites

ok, wanted to give it a try on my xp laptop and none of the versions work correctly. the version 2b5 gives error on extracting and can't finish. version 2b4 gives and error when compiling aml however. any suggestions?

 

 

EDIT:

ok i managed to get patched dsdt.aml. i applied standard fixes: hpet,decrypt and rtc, wanted to remove the appledecrypt.kext and i got a kernel panic on boot just before loading the GUI

Link to comment
Share on other sites

 Share

×
×
  • Create New...