Jump to content
Mariusz

DSDT for D430/D420

Recommended Posts

WARNING: This dsdt is far from perfect and not finished

This topic is for all D430 and D420 users. The reason why D420 is mentioned second is because the DSDT file was tested for D430, but from my analysis (from ACPI perspective) the only difference between those two is lack of IRDA in D430, beside that DSDT is identical.

 

This DSDT file is based on latest A09 Bios DSDT dump.

 

What is included:

- DTGP Method

- HPET fix

- RTC fix

- IOATAFamily fix

- GMA950 fix and injection

- Clamshell sleep / brightness dim

- Fix for all errors, warnings and remarks

 

Not yet included:

- Cosmetic Apple Audio injection

- SDCard reader injection

 

Additional info:

FOR PROPER RESUME FROM SLEEP - start with Default BIOS settings + add system password

NOTE: If you use Media Base all the time, the system password in BIOS is not needed.

dsdt.aml.zip

Share this post


Link to post
Share on other sites

Works like a charm, i have updated RC4 with it and verified it on both D420 and D430's.. good work..

 

Can you add the cosmetic things also ?

Share this post


Link to post
Share on other sites

Today I encounter a huge problem. My system became sluggish. It breaks every 1secs. I don't know why it happens. I cleanup all system but no result.

Next step. I install other HDD and install Windows XP on it. With Windows I got Everest report and RW-everything report. Also I got native acpi tables.

Returning to MacOSX I found that the bug is dissapeared. Why? It seems Windows made cleanup of CMOS, flashes, hardware registers that is not accessible from OSX.

Now I want to say that this native DSDT is differ from one uploaded by Mariusz and not only in corrected fields.

Look:

W

                Subtract (Local0, 0x0007EC00, Local1)
               CR_0 (One, 0x00100000, Local1)
               Add (Local1, 0x00100000, Local1)
               CR_0 (One, Local1, 0x0007EC00)
               Store (SMMB (), Local0)
               CR_0 (One, Local0, 0x00100000)
               Add (Local1, 0x0007EC00, Local1)

M

                Subtract (Local0, 0x000A3800, Local1)
               CR_0 (One, 0x00100000, Local1)
               Add (Local1, 0x00100000, Local1)
               CR_0 (One, Local1, 0x000A3800)
               Store (SMMB (), Local0)
               CR_0 (One, Local0, 0x00100000)
               Add (Local1, 0x000A3800, Local1)

 

It may occured because of different BIOSes, or different memories, of other hardware differencies.

ALWAYS it is better to use your own DSDT then took similar one from another computer.

 

After some correction and testing I'll upload my version.

Share this post


Link to post
Share on other sites

It may occured because of different BIOSes, or different memories, of other hardware differencies.

ALWAYS it is better to use your own DSDT then took similar one from another computer.

Interesting find and I do agree about using ones own DSDT. I guess D420's solo do differ, what bios ver you have there?. Please apply your vanilla DSDT dump to this topic. Thanks

Share this post


Link to post
Share on other sites

Interesting find and I do agree about using ones own DSDT. I guess D420's solo do differ, what bios ver you have there?. Please apply your vanilla DSDT dump to this topic. Thanks

 

Here is DSDT+SSDT as is from Windows.

VanillaACPItables.zip

 

I don't remember exactly, my BIOS is A09?

 

Here is my corrections

dsdt.dsl-D420-v14022011.zip

The problems are follow

1. If I set IRQ11 to HPET the comp can't sleep, it immediatly wakes. If I do not set IRQ11 then comp sleeps but not wakes and USB report errors at startup.

2. SDreader and LAN BCM5752 have the same IRQ18 (set by _PRT methods at PCIBridges). That's why SD is not work.

But if I set another IRQ for LAN (16,17) then system do not start at all. I saw Windows set IRQ7 for LAN. Why not OSX?

 

I also notice different UDMA settings for IDE0 devices

                    If (Arg1)
                   {
                       If (LEqual (Arg2, 0x02))
                       {
                           Return (0x3C) //0x1E)
                       }
                       Else
                       {
                           Return (0x5A) //0x2D)
                       }
                   }

And now my HDD is faster. ohmy.gif

 

 

 

Share this post


Link to post
Share on other sites

wow..maybe dell was on drugs when they made the dsdt... lol. thats pretty bad... maybe it was intended for windows 98, or windows me? how does linux allocate irq's on the machine?

Share this post


Link to post
Share on other sites

The problems are follow

1. If I set IRQ11 to HPET the comp can't sleep, it immediatly wakes. If I do not set IRQ11 then comp sleeps but not wakes and USB report errors at startup.

2. SDreader and LAN BCM5752 have the same IRQ18 (set by _PRT methods at PCIBridges). That's why SD is not work.

But if I set another IRQ for LAN (16,17) then system do not start at all. I saw Windows set IRQ7 for LAN. Why not OSX?

 

- The USB problem can be solved by adding IRQ15. (I use 0,8,11,15 in HPET)

- As it is to "immediately wakes from sleep" I have observed the same using your boot loader - that is why I use AnVAL5.1.4 (it's in dropbox). I haven't had time to investigate it.

Question: Do You use bios sys password and have you disabled hibernation?

Share this post


Link to post
Share on other sites

- The USB problem can be solved by adding IRQ15. (I use 0,8,11,15 in HPET)

- As it is to "immediately wakes from sleep" I have observed the same using your boot loader - that is why I use AnVAL5.1.4 (it's in dropbox). I haven't had time to investigate it.

Question: Do You use bios sys password and have you disabled hibernation?

No, I do not use bios password. And I disable hibernation.

sudo pmset -a hibernatemode 0

 

Concerning bootloader. With my version you got another system UUID so why other system defaults.

I have no final solution yet. Sleep may depends also on PS2 drivers that are not perfect yet.

 

 

Mariusz, how do you think, is it possible to assign IRQ7 to SDCardreader? Else it conflict with LAN and doesn't work.

Share this post


Link to post
Share on other sites

No, I do not use bios password. And I disable hibernation.

sudo pmset -a hibernatemode 0

 

Concerning bootloader. With my version you got another system UUID so why other system defaults.

I have no final solution yet. Sleep may depends also on PS2 drivers that are not perfect yet.

 

 

Mariusz, how do you think, is it possible to assign IRQ7 to SDCardreader? Else it conflict with LAN and doesn't work.

To be honest I was trying different approach. To totally get ridge of LAN from dsdt to actually see if the sdcard reader is working. And to my dissapointmrnt I can tell that this was another dead end :(

The card size and type is recognized and that's about it, filesystem is not mountable ( typical IO errors, etc.).

About assigning IRQ 7: I guess we will have to try.

Share this post


Link to post
Share on other sites

Still no success with SD reader. I am busy only with it. I decided to completely rewrite the driver and it takes the time.

 

No any success with reassigning IRQ. System just not started in any combination except native.

Share this post


Link to post
Share on other sites

×
×
  • Create New...