Contribute
Register

Opencore: I2C Trackpad not working with SSDT-GPI0

Status
Not open for further replies.
Joined
Jul 17, 2015
Messages
185
Motherboard
HP Pavilion 15 dk0xxx
CPU
i7-9750H
Graphics
UHD 630 + GTX 1650, 1920x1080
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. iOS
Hey guys, I'm trying to move away from SSDT-XOSI to GPI0 because it breaks booting with Windows. Can someone point out what am I missing here?

Please find attach my EFI.
 

Attachments

  • OC.zip
    24.6 MB · Views: 276
Hey guys, I'm trying to move away from SSDT-XOSI to GPI0 because it breaks booting with Windows. Can someone point out what am I missing here?

Please find attach my EFI.
with pinning, your ssdt will need to look a little different and then add in some config.plist's renames

ie on my laptop:

Code:
DefinitionBlock ("", "SSDT", 2, "hack", "ETPD", 0x00000000)
{
    External (_SB_.PCI0.GPI0, DeviceObj)
    External (_SB_.PCI0.I2C1.ETPD, DeviceObj)

    Scope (_SB.PCI0.GPI0)
    {
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            Return (0x0F)
        }
    }

    Scope (_SB.PCI0.I2C1.ETPD)
    {
        Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
        {
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, Exclusive, PullUp, 0x0000,
                    "_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0047
                    }
            })
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, , Exclusive,
                    )
            })
            Return (ConcatenateResTemplate (SBFB, SBFG))
        }
    }
}

and then the renames in config.plist would look like:

Code:
<dict>
                <key>Comment</key>
                <string>_SB.PCI0.I2C1.ETPD._CRS to _SB.PCI0.I2C1.ETPD.XCRS</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                oAp7RFNZTgEApACkCg8UEV9DUlMApIRTQkZCU0JGSQA=
                </data>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>OemTableId</key>
                <data>
                </data>
                <key>Replace</key>
                <data>
                oAp7RFNZTgEApACkCg8UEVhDUlMApIRTQkZCU0JGSQA=
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
                <key>TableLength</key>
                <integer>0</integer>
                <key>TableSignature</key>
                <data>
                RFNEVA==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>GPIO._STA to GPIO.XSTA</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                X1NUQQCgCZNTQlJHAA==
                </data>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>OemTableId</key>
                <data>
                </data>
                <key>Replace</key>
                <data>
                WFNUQQCgCZNTQlJHAA==
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
                <key>TableLength</key>
                <integer>0</integer>
                <key>TableSignature</key>
                <data>
                RFNEVA==
                </data>
            </dict>

obviously this probably won't work on your system as you will need to find the correct paths etc from your DSDT
 
with pinning, your ssdt will need to look a little different and then add in some config.plist's renames
@Feartech So I determined my ACPI ID is "\_SB.PCI0.I2C0.TPAD" i.e. TPAD. My hexadecimal PIN number is 0x4a and my device is "well root pinned" as per the DSDT. According to Step 2e, there should only be following Return statement in _CRS at the end: Return (ConcatenateResTemplate (SBFB, SBFG)) but mine is Return (ConcatenateResTemplate (SBFB, SBFI)).

What should I do next? It is not clear in the guide. Can you please guide? Also I attached my DSDT so you may verify it. Thanks!

The link I followed: https://voodooi2c.github.io/#GPIO Pinning/GPIO Pinning

Also, in your ACPI patch "_SB.PCI0.I2C1.ETPD._CRS to _SB.PCI0.I2C1.ETPD.XCRS", can you please elaborate how you computed the Find and Replace values as I think I need "_SB.PCI0.I2C0.TPAD._CRS to _SB.PCI0.I2C0.TPAD.XCRS"?

Update
Kindly check the attached config.plist and SSDT-GPI0.

Thanks
 

Attachments

  • Screenshot 2021-03-05 at 7.29.30 PM.png
    Screenshot 2021-03-05 at 7.29.30 PM.png
    98.5 KB · Views: 226
  • config.plist
    31.8 KB · Views: 114
  • SSDT-GPI0.aml
    248 bytes · Views: 241
Last edited:
@Feartech So I determined my ACPI ID is "\_SB.PCI0.I2C0.TPAD" i.e. TPAD. My hexadecimal PIN number is 0x4a and my device is "well root pinned" as per the DSDT. According to Step 2e, there should only be following Return statement in _CRS at the end: Return (ConcatenateResTemplate (SBFB, SBFG)) but mine is Return (ConcatenateResTemplate (SBFB, SBFI)).

What should I do next? It is not clear in the guide. Can you please guide? Also I attached my DSDT so you may verify it. Thanks!

The link I followed: https://voodooi2c.github.io/#GPIO Pinning/GPIO Pinning

Also, in your ACPI patch "_SB.PCI0.I2C1.ETPD._CRS to _SB.PCI0.I2C1.ETPD.XCRS", can you please elaborate how you computed the Find and Replace values as I think I need "_SB.PCI0.I2C0.TPAD._CRS to _SB.PCI0.I2C0.TPAD.XCRS"?

Update
Kindly check the attached config.plist and SSDT-GPI0.

Thanks
you can use the echo command to display the find and replace. example is here:
 
you can use the echo command to display the find and replace. example is here:
Okay. I followed the guide and tried to come up with my patching. Unfortunately, it is throwing a kernel panic at boot. Can you please point out what could be wrong here.

I have attached my updated OC folder.
 

Attachments

  • OC.zip
    24.6 MB · Views: 136
Last edited:
Okay. I followed the guide and tried to come up with my patching. Unfortunately, it is throwing a kernel panic at boot. Can you please point out what could be wrong here.

I have attached my updated OC folder.
what kernel panic?
 

Attachments

  • A123988C-87C5-47BF-87F0-9ACC083EF78C.jpeg
    A123988C-87C5-47BF-87F0-9ACC083EF78C.jpeg
    4.2 MB · Views: 148
That does not show a kernel panic.

Your config.plist has several errors :

Online Sanity Checker
Can you please point to some specific issues in the config.plist?

My machine is HP, so DevirtualiseMmio, RebuildAppleMemoryMap and UnblockFsConnect are kept this way.
And apologies for saying a KP. What I want to say is that my applying ACPI patches with SSDT-GPIO.aml I’m stuck at that screen.
This error goes away if I use XOSI route.
Hope its clear now?
 
Status
Not open for further replies.
Back
Top