Contribute
Register

VoodooI2C Help and Support

Status
Not open for further replies.
@1Revenger1 Thank you. Do I need the debug version of VoodooI2C to check the log?

Edit: I am able to get the log with "sudo dmesg | grep Voodoo" now. Basically, I have to disable the kexts in OC and put the VoodooI2C kexts on the desktop, cd into the directory, and then rebuild the permissions. SIP has to be disabled, and I have to authorize the kexts to be loaded in System Preferences.app> Security & Privacy. It works on macOS Monterey. The commands I used are the following:
Code:
cd ~/Desktop
sudo chown -R root:wheel VoodooI2C*
sudo chmod -R 755 VoodooI2C*
sudo kextload -v VoodooI2C*
sudo dmesg | grep Voodoo
 
Last edited:
@sqlsec Could you check whether your screenpad is in polling mode? My trackpad (ELAN1406, ETPD) shows these:
Code:
[   49.864579]: VoodooI2CDeviceNub::ETPD Found valid resources from _CRS method
[   49.864658]: VoodooI2CDeviceNub::ETPD Returned index 0x0 from _DSM or XDSM method is not supported
[   49.864666]: VoodooI2CDeviceNub::ETPD Could not retrieve resources from _DSM or XDSM method
[   49.864678]: VoodooI2CDeviceNub::ETPD Found valid GPIO interrupts
[   49.864839]: VoodooI2CDeviceNub::ETPD Got GPIO Controller! VoodooGPIOCannonLakeH
[  50.366579]: VoodooGPIOCannonLakeH::Failed getting hardware pin for GPIO pin 279VoodooI2CHIDDevice::ELAN1406 Warning: Could not get interrupt event source, using polling instead
 
@sqlsec Could you check whether your screenpad is in polling mode? My trackpad (ELAN1406, ETPD) shows these:
Code:
[   49.864579]: VoodooI2CDeviceNub::ETPD Found valid resources from _CRS method
[   49.864658]: VoodooI2CDeviceNub::ETPD Returned index 0x0 from _DSM or XDSM method is not supported
[   49.864666]: VoodooI2CDeviceNub::ETPD Could not retrieve resources from _DSM or XDSM method
[   49.864678]: VoodooI2CDeviceNub::ETPD Found valid GPIO interrupts
[   49.864839]: VoodooI2CDeviceNub::ETPD Got GPIO Controller! VoodooGPIOCannonLakeH
[  50.366579]: VoodooGPIOCannonLakeH::Failed getting hardware pin for GPIO pin 279VoodooI2CHIDDevice::ELAN1406 Warning: Could not get interrupt event source, using polling instead
this is my GDX1515 dmesg log
INI:
[   44.313108]: VoodooI2CControllerDriver::pci8086,2e9 Found I2C device: GDX1515
[   44.313178]: VoodooI2CDeviceNub::ETPD Found valid resources from _CRS method
[   44.313182]: VoodooI2CControllerDriver::pci8086,2e8 Got bus configuration values
[   44.313231]: VoodooI2CDeviceNub::ETPD Returned index 0x0 from _DSM or XDSM method is not supported
[   44.313235]: VoodooI2CDeviceNub::ETPD Could not retrieve resources from _DSM or XDSM method
[   44.313244]: VoodooI2CDeviceNub::ETPD Found valid GPIO interrupts
[   44.313344]: VoodooI2CControllerDriver::pci8086,2e8 Publishing device nubs
[   44.313347]: VoodooI2CDeviceNub::ETPD Got GPIO Controller! VoodooGPIOCannonLakeLP
[   44.816012]: VoodooI2CHIDDevice:0x100000738 start
[   44.919729]: VoodooI2CHIDDevice::GDX1515 Device initiated reset accomplished
[   45.050029]: VoodooI2CHIDDevice:0x100000738 creating interfaces
[   45.051068]: VoodooI2CHIDDevice:0x100000738 Matching has vendor DeviceUsagePage : ff0c bundleIdentifier com.apple.AppleUserHIDDrivers ioclass AppleUserHIDEventService but transport and vendorID is missing
[   45.053582]: VoodooI2CPrecisionTouchpadHIDEventDriver:0x10000073d start
[   45.059693]: open by VoodooI2CPrecisionTouchpadHIDEventDriver 0x10000073d (0x0)
[   45.059739]: VoodooI2CPrecisionTouchpadHIDEventDriver::GDX1515 Putting device into Precision Touchpad Mode
 
@sqlsec Thank you. It looks like yours is working in GPIO mode. If @sqlsec's GDX1515 and 10510U are in GPIO mode, @gvkt, I assume maybe the problem is not on GDX1515 but the GPIO PIN number with our CPU? Maybe we have to use another equation to calculate for our 10750H and 10980HK? Maybe we can split the work through trail and error; I'm bringing @atrslb in, hoping we could split the work (0x0 to maybe 0x130) into three parts to find the right GPIO pin lol.
 
Last edited:
The problem is in the BIOS firmware. I have verified with Linux that the APIC interrupt 0x5F is firing for the trackpad. In Linux you can see this interrupt tied to pin 74. Have run Linux with noapic to force GPIO but no GPIO interrupts come in on the pin because the firmware seems to be bypassing GPIO subsystem for the interrupt and/or it is not setting the GPIO interrupt status bit which is not required for APIC. Note that both Voodoo and Linux without mods prevent 74 from being used for interrupts at all as it is owned by APIC for this very reason.

So, it seems like a different BIOS issue than a chip or pinning issue. The only hope might be that there is a DSDT patch that will fix it for our machines.

I still would like to know how @sqlsec arrived at his pin number.

If @sqlsec can run a live linux CD or USB on his machine, he can also help us see the difference doing

cat /proc/interrupts

and

mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/pinctrl/<controller id>/pins

after booting.
 
@gvkt Would it be possible to change this setting via BIOS menu options? I discovered these hidden BIOS menu options in my UX582 before:
- Force unlock on all GPIO pads
- Kernel Debug Serial Port
- Touch Pad Interrupt Mode
- Touch Panel Interrupt Mode

It's in section 1.4 Setup the Hidden BIOS Settings: https://www.tonymacx86.com/threads/...uo-15-oled-ux582-opencore.315661/post-2274269

However, your BIOS may have different addresses. I use ifrextract to check the hidden BIOS options.

Update: This is from VoodooI2V Gitter chat:
Frtsnts10 Jan 17 16:24
hi, can anyone help me ? i have Legion y530 i5 laptop and now running big sur 11.1 and my touchpad is i2c hid (checked on device manager). and before i made this message, i tried @chilledHamza 's efi i found from google, and i tried to copy the ssdt-tpd0(which is for touchpad), but after restart, it can read my touchpad but it moved not smooth.
now i tried to remove 3 kext (AppleHPM.kext, AppleIntelLpssI2C.kext and AppleIntelLpssI2CController.kext) from S/L/E to check if it works. but it didn't. so now i just have installed voodooi2c and voodooi2chid but still my touchpad cannot readable. i can attach my efi folder if needed. please help me, thanks.

Hamza Jan 17 20:30
@Frtsnts10 Attach problem reporting archive (VoodooI2C logs, IOReg, ACPI and OC)
For Y530/Y7000 you need to set Force unlock on all GPIO pads to Enabled in BIOS (Advanced Menu), Use SSDT-TPD0 to inject SSCN and FMCN values. After these two steps Trackpad should work with VoodooI2C + VoodooI2CHID (latest v2.6.3)
 
Last edited:
Interesting. You could try changing those values especially the first one as a hidden setting using offsets. Pin 74 is locked full. IF (and a big IF) the problem is with Voodoo not being able to configure the pin correctly to get interrupts because it is set wrongly by the BIOS, then unlocking if possible MIGHT make Voodoo be able to set it up for providing interrupts. A very long shot though.

The other options won't matter. The touchpad is already in GPIO mode which I checked in Linux.

I am done fighting this BIOS for GPIO pinning and will live with polling.

I will leave debug versions of the two Voodoo kexts here (includes my patch to enable multi-touch and also proceeds to use the pin even if the ownership is set to APIC). It has more debug output than the release versions to get a positive proof of GPIO interrupts working when the trackpad is used and to detect where it fails. Use it if you wish only for debugging, not for anything else as it will introduce some delays in processing.
 

Attachments

  • VoodooTP_debug_kexts.zip
    208.9 KB · Views: 49
Hello,
I am trying to set up VoodooI2C on a HP EliteBook 830 G5 (Kaby Lake). I use OC 7,5 and I have just set it up with Monterey 12,1. It seems that 95% is working. However this zoom function on the trackpad would be a really great thing to get to work. After reading endless pages how to go about it I still get kernel panic just as the machine starts up.

To start with I can not see the connection of GPI0 as of this guide https://dortania.github.io/Getting-...ps/trackpad-methods/manual.html#checking-gpi0

But my DSDT says I have the function. Am not sure how to go about this problem. As I said I have been working on this laptop for some days now, so there might be some errors that I am not aware off. Since am not an expert its not so easy with laptops. The SSDT-GPI0 is a little edited to mirror what I see in the DSDT.

Any suggestions is greatly appreciated

I2C.png
 

Attachments

  • DSDT.aml
    137.4 KB · Views: 53
Last edited:
Hello,
I am trying to set up VoodooI2C on a HP EliteBook 830 G5 (Kaby Lake). I use OC 7,5 and I have just set it up with Monterey 12,1. It seems that 95% is working. However this zoom function on the trackpad would be a really great thing to get to work. After reading endless pages how to go about it I still get kernel panic just as the machine starts up.

To start with I can not see the connection of GPI0 as of this guide https://dortania.github.io/Getting-...ps/trackpad-methods/manual.html#checking-gpi0

But my DSDT says I have the function. Am not sure how to go about this problem. As I said I have been working on this laptop for some days now, so there might be some errors that I am not aware off. Since am not an expert its not so easy with laptops. The SSDT-GPI0 is a little edited to mirror what I see in the DSDT.

Any suggestions is greatly appreciated

View attachment 539777
you haven't installed the VoodooI2C kexts

also make sure you have working battery status
 
you haven't installed the VoodooI2C kexts

also make sure you have working battery status
Thanks for answer. I know, no kext yet because then I can't boot at all. The guide says I need to have a connection in IOREG at GPI0 first ,but I can not make that work yet. Maybe I have made some misstake with the SSDT-GPI0-test file in the APCI folder? But as I look at my DSDT I can't see what. For now, even if the SSDT´s are not fine-tuned things seems to work with battery etc.

That means I can't boot with the kexts Voodoo2C-2.6.5. How can I continue you think?
 

Attachments

  • Battery etc..png
    Battery etc..png
    108.2 KB · Views: 49
  • IOREG-GPI0.png
    IOREG-GPI0.png
    95.9 KB · Views: 51
  • EFI.zip
    25 MB · Views: 63
  • DSDT.aml.zip
    52.5 KB · Views: 50
Status
Not open for further replies.
Back
Top