Jump to content

DSDT Latitude E7450


acquarius.13

Recommended Posts

  • Replies 58
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Dear @Jake Lo and @viking1304,

major contributors to this topic.

I appreciated so much your big effort in understanding what's wrong in my DSDT but I feel I make you waste a lot of precious time.

The original intent of this topic was to check if I were able to patch a "known" DSDT by my own, in order to make a step further and try to patch another system.

Unfortunately, I have much more to know and to study. 

Since Jake has patched and made an efficient guide for the E7450 with HD 5500, I think I will follow the next updates about this powerful machine but now we can even stop with this topic, if you agree. 

I'm still available as "beta tester" if you need an user with this kind of machine to see how your patches and hacks work on another machine. 

I hope you can understand the general intent of this post, even if english is not my mother tongue.

 

Thank you so much guys! 

 

I will wait for a stable guide for the next step..Mojave!

 

Cheers,

Marco

Link to comment
Share on other sites

@Jake Lo I finally managed to properly apply USB3 _PRW 0x6D (instant wake) hotpatch alternative.

 

SSDT-GPRW.dsl and SSDT-UPRW.dsl are basically same. Only difference is that one replaces GPRW method and other replaces UPRW method. That's was clear from the beginning, but I overlooked some very important things.

 

Static patch actually have 4 parts. First part is related to patching of _PRW calls and other 3 parts are related to injection of some Apple USB properties into EHC1, EHC2 and XHC. Hotpatch alternative to those 3 parts are SSDT-EH01.dsl, SSDT-EH02.dsl and SSDT-XHC.dsl.


So, we need those 4 files in patched folder: SSDT-GPRW.amlSSDT-EH01.amlSSDT-EH02.aml and SSDT-XHC.aml.

 

SSDT-EH01.aml and SSDT-EH02.aml needs two additional patches in Clover - change EHC1 to EH01 and change EHC2 to EH02. That's easy part.

 

Critical and a little tricky part is replacing GPRW with XPRW method. Tricky part (at lest when you do it for the first time) is that we need to change method itself, but not calls to the method. This part is BIOS dependent, so it's not universal and needs to be found.

 

DSDT should be decompiled with -l option in oder to get mixed view.

$ iasl -l DSDT.aml

You need to find GPRW method. In A20 BIOS that I installed tonight, this looks like this

        Method (GPRW, 2, NotSerialized)
        {
            PRWP [Zero] = Arg0
            Local0 = 
  B728: 14 40 06 47 50 52 57 02 70 68 88 50 52 57 50 00  // [email protected].
  B738: 00 70                                            // .p

Method calls stats with 0x14, so we need to replace 14400647 505257 with 14400658 505257 in Clover.

 

If I open MaciASL from Launcpad it will open system DSDT. If I search for XPRW, it is changes just in one place, where it should be changed.

    Scope (\)
    {
        Name (PICM, Zero)
        Name (PRWP, Package (0x02)
        {
            Zero, 
            Zero
        })
        Method (XPRW, 2, NotSerialized)
        {
            Store (Arg0, Index (PRWP, Zero))
            Store (ShiftLeft (SS1, One), Local0)
            Or (Local0, ShiftLeft (SS2, 0x02), Local0)
            Or (Local0, ShiftLeft (SS3, 0x03), Local0)
            Or (Local0, ShiftLeft (SS4, 0x04), Local0)
            If (And (ShiftLeft (One, Arg1), Local0))
            {
                Store (Arg1, Index (PRWP, One))
            }
            Else
            {
                ShiftRight (Local0, One, Local0)
                FindSetLeftBit (Local0, Index (PRWP, One))
            }

            Return (PRWP)
        }
    }

Sleep now works even when I am on power adapter, not only when I am on battery. Same as with static patch version.

 

Link to comment
Share on other sites

Sure, no problem, but you need to be aware that some things in my Clover folder are system dependent. I have E7450 with nVidia and I have A20 BIOS (released two days ago). What is your system? I do not see that info.

 

In patched folder I have those AML files:

SSDT-PNLF.aml is same as the one that you already have - needed for Intel brightness control

SSDT-GPRW.aml, SSDT-EH01.aml, SSDT-EH02.aml and SSDT-XHC.aml - those 4 are needed to fix instant wake issues

SSDT-DDGPU.aml is needed only on model with nVidia - this patch will disable nVidia 

SSDT-DDGPU is not same as in Rehabman's repo. This one is for RP05, not for PEG0.

 

I am using WhateverGreen with 32MB framebuffer patch (the one from WG Intel FAQ). This one fully replace IntelGraphicsDVMTFixup. Since I have 16GB of RAM, I am also using patch to increase VRAM to 2560MB.

 

Patch in config that is required in order to replace GPRW with XPRW method (for wake issues) is dependent on A20 version of E7450 BIOS for nVidia model.

 

I am using AppleBacklightFixup.kext, so I do not need to patch com.apple.driver.AppleBacklight in config. 

 

I am using Legacy_Sierra_QMI.kext that I made. It's for DW5809e LTE.

 

I am using MacBookAir7,2, but I consider switching to MacBookPro12,1 SMBIOS.

 

Everything else is same as it would be for any other similar laptop.

 

Since I need to replace my serials with new generated ones before send,  send me your origin and I will also fix wake patch to match your DSDT, so you do not have to do that yourself.

 

EDIT:

 

Almost forgot. I am also using USBPorts.kext created with FBPatcher. This one is for MacBookAir7,2 and will not work on any other SMBIOS. For MacBookPro12,1, new kext should be created. If your ports are different than mine, you might also need to create this kext again.

 

You need to add USBInjectAll.kext before using FBPatcher, but USBInjectAll.kext SHOULD BE REMOVED before using generated kext.

 

Do not use Clover USB port patches. FakePCIID_XHCIMux.kext is not needed with USBPorts.kext.

 

Do not combine those kexts in any way, this only can make your life a living Hell.

Link to comment
Share on other sites

I had a copy of A19 origin folder from your model, so I checked DSDT and it turns out that required patch for XPRW should be same as mine.

 

I removed SSDT-DDGPU.aml, since you do not have nVidia. I also removed Legacy_Sierra_QMI.kext and all sensors kexts. You can add any of those later if you need them.

 

This should work just fine, but if it turns out that you have any problem related to USB ports, remove USBPorts.kext from kexts/Other folder. 

 

Even iMessage and FaceTime should work if your account is not one of those that require genuine MLB/ROM.

 

Only thing that really require your attention is your Wi-Fi. I am using external TP link USB Wi-Fi device, so I do not have kext for Broadcom Wi-Fi. You need to add those yourself.

 

BT kexts are there and those works fine.

 

Let me know if it works for you.

 

CLOVER E7450.zip

 

btw. when you are replying to the last post in any thread, do not quote that whole message. That will just make reading harder, not easier as you probably wanted.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...