Jump to content

[Guide] Dell XPS 15 L502X (Early 2011) Snow Leopard Install (possibly L702x too)


3030 posts in this topic

Recommended Posts

Default DSDT has no fixes what so ever.. hence you need to have it fixed. Your IOReg shows that you are using VoodooBattery in conjunction with AppleSmartBatteryManager kext, which is two kexts for same thing - it's generally not a good idea at all. Your adapter (ADP0) has no power resources for wake defined, so sleep from LID will (and most likely was already broken) break as it requires _PRW to function properly. If you are using VoodooBattery then you are rolling back AppleACPI kext, or otherwise it wouldn't work.. this is second thing that's generally not advisable, especially keeping in mind that it's AppleACPI kext from 10.6 that you prolly keep rolling back even on 10.9.. nonsense?

 

Your _CST still won't whown (no AICPMVers in IORegistry) which means Apple_SMC_Platform_Plugin will fail to register LCP device and thus your temps will be higher than they could be.

 

Re: HWMonitor, I see no relation to that. I have kozlek's git branch in my SourceTree and I keep compiling and installing new versions a soon as notification about new commits to master branch come up.

 

I already removed the voodoo battery, don't know when I installed it, now I only have apple smart battery kext.

 

 

 

Your adapter (ADP0) has no power resources for wake defined, so sleep from LID will (and most likely was already broken) break as it requires _PRW to function properly.
Your _CST still won't whown (no AICPMVers in IORegistry) which means Apple_SMC_Platform_Plugin will fail to register LCP device and thus your temps will be higher than they could be.

 

I really don't know how to add this, could you point me where to research for it?

I already removed the voodoo battery, don't know when I installed it, now I only have apple smart battery kext.

 

 

I really don't know how to add this, could you point me where to research for it?

Yeah, see.. you've uninstalled voodoo, but AppleACPI kext probably remains rolled back, could you check it's version number? 

For ADP0 you rename it to ADP1 in every occurrence and add _PRW to it like so:

 

            Name (_PRW, Package (0x02)
            {
                0x0A, 
                0x03
            })

AppleACPIPlataform.kext
 

4zhvN.png


 
The ADP0 in my DSDT

                    Device (ADP0)
                    {
                        Name (_HID, "ACPI0003")
                        Method (_PSR, 0, NotSerialized)
                        {
                            If (LEqual (ECON, One))
                            {
                                Notify (\_PR.CPU0, 0x80)
                                Sleep (0x64)
                                Notify (\_PR.CPU0, 0x81)
                            }

                            Return (PWRS)
                        }

                        Method (_PCL, 0, NotSerialized)
                        {
                            Return (_SB)
                        }
                    }

Should I change it to...
 

                    Device (ADP1)
                    {
                         Name (_PRW, Package (0x02)
                         {
                            0x0A, 
                            0x03
                         })
                    }

What do I do with occurrences like these?

                    Method (_Q83, 0, NotSerialized)
                    {
                        P8XH (Zero, 0x83)
                        Acquire (MUT0, 0xFFFF)
                        Store (ACIN, PWRS)
                        Release (MUT0)
                        Notify (ADP0, 0x80)
                        OCNT ()
                    }

Just change "Notify (ADP0, 0x80)" to "Notify (ADP1, 0x80)" ?

Just change "Notify (ADP0, 0x80)" to "Notify (ADP1, 0x80)" ?

No.. you append to it, not replace the entire thing... The rest of the orcurrences you just change ADP0 to ADP1, yes.

 

What you are showing is kext dependencies. not version .. also, I was interested in seeing the version of IOACPIFamily and AppleACPIPlatform kexts.

10.8.5 has IO of version 1.4 and Platform of version 1.8.. if you have anything lower than that you have a rollback installed. By the looks of i386 checkbox checked it's something that comes from 10.7 or lower, because 10.8 doesn't have 32 bit extensions, nor does 10.9.

Accordingly to this, my IOACPI is 1.4 and AppleACPI is 1.3.5, so I guess I need to update it to 1.8. How do I get it? From an install media?

 

 

4zjdv.png

 

 

 

So, this is how my ADP1 should look like?

 

                   Device (ADP1)
                    {
                        Name (_HID, "ACPI0003")
                        Method (_PSR, 0, NotSerialized)
                        {
                            If (LEqual (ECON, One))
                            {
                                Notify (\_PR.CPU0, 0x80)
                                Sleep (0x64)
                                Notify (\_PR.CPU0, 0x81)
                            }
 
                            Return (PWRS)
                        }
                        Name (_PRW, Package (0x02)
             {               
             0x0A,
             0x03
             })
                        Method (_PCL, 0, NotSerialized)
                        {
                            Return (_SB)
                        }
                    }

 

Accordingly to this, my IOACPI is 1.4 and AppleACPI is 1.3.5, so I guess I need to update it to 1.8. How do I get it? From an install media?

 

So, this is how my ADP1 should look like?

It should be at least of version 1.8, because 1.8 is in 10.8.5, in 10.9 it could be higher.. if you have the media around you can surely grab that from there.. But if you are relying on rollbacks only means that DSDT EC RAM registers and _BIF and _BST methods are not patched to support 8-bit register handling, thus your battery icon will be gone and kext will be unable to work.. until you do the edits...

Rollbacks are easy.. but dirty, so you have a price to pay sooner or later.

 

ADP edit is correct now.

It should be at least of version 1.8, because 1.8 is in 10.8.5, in 10.9 it could be higher.. if you have the media around you can surely grab that from there.. But if you are relying on rollbacks only means that DSDT EC RAM registers and _BIF and _BST methods are not patched to support 8-bit register handling, thus your battery icon will be gone and kext will be unable to work.. until you do the edits...

Rollbacks are easy.. but dirty, so you have a price to pay sooner or later.

 

ADP edit is correct now.

 

So I need to grab ACPIPlataform from my install media and install it, then patch _BIF and _BST for it to work?

Yes you do.. 

Add this method (yes, I'm not copying the code, use your hand here :D

http://puu.sh/4zkgj.png

 

Split registers like this: http://puu.sh/4zkkV.png

 

Edit _BIF: http://puu.sh/4zkn1.png

 

Edit _BST: http://puu.sh/4zkok.png

So, things highlighted in purple must be changed, and things highlighted in green must be added, right?

 

What about that _CST thing?

 

 

 

Your _CST still won't whown (no AICPMVers in IORegistry)

Correct.

 

Make sure your HPET is enabled (0xf io ioreg), if it's not your OSYS check fails and you have to add Darwin somewhere.

Clover should take care of _CST when enabling C-state generator, nothing on your side can be done, unless you code PM ACPI tables yourself.

This is my HPET.

 

 

 

  Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (_CID, EisaId ("PNP0C01"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {0}
                        IRQNoFlags ()
                            {8}
                        IRQNoFlags ()
                            {11}
                        IRQNoFlags ()
                            {15}
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            )
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D1))
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPAE)
                            {
                                Return (0x0B)
                            }
                        }

                        Return (Zero)
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            CreateWordField (BUF0, 0x04, HPT0)
                            If (LEqual (HPAS, One))
                            {
                                Store (0xFED01000, HPT0)
                            }

                            If (LEqual (HPAS, 0x02))
                            {
                                Store (0xFED02000, HPT0)
                            }

                            If (LEqual (HPAS, 0x03))
                            {
                                Store (0xFED03000, HPT0)
                            }
                        }

                        Return (BUF0)
                    }
                }

 

 

It seems you are good - 0x2710 is greater than 0x07D1

 

                If (_OSI ("Darwin"))
                {
                    Store (0x2710, OSYS)
                }

I made that manual patches you suggested, but it stil doesn't works.

 

Edit:

 

Maybe I found out the (old) problem. Don't know why, my system doesn't works without NCPUPM, even after I flashed my bios.

 

AICPUPM alone -> KP

AICPUPM + NCPUPM -> OK (no sleep)

NCPUPM alone -> OK (no sleepl)

None of them -> OK (no sleep)

 

Edit 2:

 

I just noticed that my system doesn't even shutdown, it goes through the whole shutdown process, but them it keeps flashing the HD led and never turns off.

I just enabled P-States and this is what I got.

 

With AICPUPM.

P-State error 18 at step 35

Followed by KPs around AICPUPM

 

Without AICPUPM I got something about 'Fall back to old SMC mode', but my system boots up.

What do you mean *with AICPUMP* ? Do you add and remove the kext or you toggle the key in Clover?

Fall back to Old SMC mode is expected and is even seen on real Apple machines.

I mean that I add the kext and the errors occurs, without the kext the only error that occurs is the "fall back".

 

I toggled "GeneratePstates = Yes" in clover.

Then everything you do in terms of PM is pointless, because it can't work without the kext. It's the same thing as having NullCPU installed at all times, it block speedstep and CPU PM completely.

You have to remove any third party ACPI table that is CPU related and DropOEM SSDT tables from BIOS, then use both generators from Clover to enable your speedstep.

This is what I have under ACPI and CPU in my config.plist

<key>ACPI</key>
<dict>
<key>DropOemSSDT</key>
<string>Yes</string>
<key>FixDsdtMask</key>
<string>0x0000</string>
<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>
<key>ResetAddress</key>
<string>0x64</string>
<key>ResetValue</key>
<string>0xFE</string>
</dict>
<key>CPU</key>
<dict>
<key>BusSpeedkHz</key>
<string>99678</string>
</dict>

You don't need reset address and values, Dell has proper length FACP table.

Bus speed is valid for my i3-2350M, who knows whats yours .. it could be different. I recall you had an APCI table called SSDT in your patched folder, what kind of table was it?

Done, no SSDT.aml and both (C and P) generators enabled in clover, AICPUPM installed back, now my system boots up with the kext, but speedstep still doesn't works.

 

About bus speed, should it work if I remove it? Or should I find which value to inform?

Edited by DawTaylor
×
×
  • Create New...