lersy / Dell-7577-Hackintosh-macos-Opencore

Efi folder to boot macOS Catalina on Dell Inspiron 7577 Gaming Laptop
37 stars 4 forks source link

How to set up VoodooI2C #20

Closed wadimw closed 3 years ago

wadimw commented 3 years ago

Hi,

Could You please elaborate on how did You configure trackpad with VoodooI2C? I had it set up previously on Clover using XOSI and TPD1.XCRS SSDTs, but Dortania's guide says to avoid XOSI (also Your solutions seems way cleaner to me). I'm interested in the process of understanding it and setting it up like You did, not just copying over Your files.

I already have GPI0 enabled by

If (_OSI ("Darwin"))
        {
            GPEN = One
            SBRG = One
        }

I2C1 device is visible in IORegExplorer and VoodooI2CPCIController is attached to it, but there is no TPD1 device visible there. What to do?

Thanks.

wadimw commented 3 years ago

OK I figured this on my own. For the curious:

Followed https://github.com/jsassu20/OpenCore-HotPatching-Guide/tree/master/10-1-OCI2C-TPXX%20Patch%20Method and lersy/Dell-7577-Hackintosh-macos-Opencore to create a second Touchpad ACPI device and disable the first one.

First copied over whole TPD1 device from my disassembled DSDT and renamed it to TPXX. Then - because original _STA method returns 0x0F only when SDS1 equals 0x07, added SDS1 = Zero next to GPEN and SBRG enables. Then patched TPXX._STA to return 0x0F on _OSI(Darwin), _INI to not rely on SDS1 anymore (also disabled OSYS<Win8 check and final Return (Zero) - though with the latter I don't actually know why), finally implemented old patches: SBFG pin set to 0x1B (APIC 0x33 > Sunrise Point GPP_B3_IRQ > B3: 27 (0x1B)) and _CRS to always Concatenate SBSB, SBFG. All of that didn't work until I removed SBRG = One – without it GPI0 still works fine and the touchpad finally works as well.

lersy commented 3 years ago

Hey wadimw,

Glad you configured it as your suits. Are you back to hackintoshing?

wadimw commented 3 years ago

I need to check a couple of things on Big Sur so I decided it's a good opportunity to give the famous OpenCore a shot ;) Will post it on my repo once it's ready if You want to compare.

While we're at it, any reason for manually implementing SSCN and FMCN? I saw somewhere that VoodooI2C can inject it automatically and it seems to be working for me.

lersy commented 3 years ago

Since my DSDT does not have sscn and fmcn values in it, I implemented them manually. That code was extracted from a generator but I don't recall it name now because it was more than a year ago now I created that ssdt.

daliansky oc little repo was what I got something you can check it out as well. The one you shared is a translated one of it, but does not contain latest tips and tricks. bing translator was enough for me to understand general ideas.

as far as I know, you are good at patching igpu. How do you make hdmi work? Can you elaborate it to me? I have no chance to try it by myself so I can add them depending on the knowledge you provide.

I will check it when you make, we can share knowledge to have more polished efi. I have no problems with Big Sur on my side yet to enable sleep properly I had to disable wake on lan in bios with offset it has.

wadimw commented 3 years ago

I wonder if it wouldn't be better to leave it up to VoodooI2C if it does that anyway so as to keep ACPI modifications to a minimum, but in the end that's probably a matter of preference.

Thanks for the tip, I've seen mentions about him here and there but it never occurred to me to look for his repo or anything, looks interesting.

As for the iGPU patching, that was probably the last thing I didn't actually understand in my Clover Catalina hack. Nonetheless: