Contribute
Register

VoodooI2C Help and Support

Joined
Mar 8, 2015
Messages
70
Motherboard
MSI Z370m Mortar; ASUS Zenbook Pro UX535LI
CPU
i5-9600k; i7-10750H
Graphics
UHD 630
Mac
  1. iMac
  2. MacBook Pro
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.
 
Joined
Sep 24, 2012
Messages
175
Motherboard
ASUS ZenBook Pro Duo 15 UX582
CPU
i9-10980HK
Graphics
UHD 630 + RTX 3070
@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:
Joined
Mar 8, 2015
Messages
70
Motherboard
MSI Z370m Mortar; ASUS Zenbook Pro UX535LI
CPU
i5-9600k; i7-10750H
Graphics
UHD 630
Mac
  1. iMac
  2. MacBook Pro
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: 33
Joined
Sep 20, 2011
Messages
105
Motherboard
Gigabyte Z370M D3H
CPU
i5-8600K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
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: 36
Last edited:

Feartech

Moderator
Joined
Aug 3, 2013
Messages
27,537
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
  1. iMac
Mobile Phone
  1. iOS
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
 
Joined
Sep 20, 2011
Messages
105
Motherboard
Gigabyte Z370M D3H
CPU
i5-8600K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
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: 41
  • IOREG-GPI0.png
    IOREG-GPI0.png
    95.9 KB · Views: 41
  • EFI.zip
    25 MB · Views: 40
  • DSDT.aml.zip
    52.5 KB · Views: 36
Joined
Mar 8, 2015
Messages
70
Motherboard
MSI Z370m Mortar; ASUS Zenbook Pro UX535LI
CPU
i5-9600k; i7-10750H
Graphics
UHD 630
Mac
  1. iMac
  2. MacBook Pro
The GPIO controller to attach to your GPI0 is in VoodooI2C.kext. So, without it you are not going to get anything attaching. You need to solve why it is not booting with Voodoo kexts. Do a verbose boot and see where it hangs or if you get any messages. Do the same without the kexts and see where it diverges. Make sure your config.plist is getting updated correctly after adding or removing kexts.

Also try with just VoodooI2C.kext and not any of the Voodoo plugins. The trackpad won‘t work but you might get error messages from VoodooI2C. To see the messages, add debugenhancer.kext and if it boots, you can do ‘sudo dmesg | grep Voodoo’.

It is not clear from your original post if the trackpad is working without the Voodoo kexts but with no multi-touch or it is not working at all.
 
Joined
Sep 20, 2011
Messages
105
Motherboard
Gigabyte Z370M D3H
CPU
i5-8600K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
The GPIO controller to attach to your GPI0 is in VoodooI2C.kext. So, without it you are not going to get anything attaching. You need to solve why it is not booting with Voodoo kexts. Do a verbose boot and see where it hangs or if you get any messages. Do the same without the kexts and see where it diverges. Make sure your config.plist is getting updated correctly after adding or removing kexts.

Also try with just VoodooI2C.kext and not any of the Voodoo plugins. The trackpad won‘t work but you might get error messages from VoodooI2C. To see the messages, add debugenhancer.kext and if it boots, you can do ‘sudo dmesg | grep Voodoo’.

It is not clear from your original post if the trackpad is working without the Voodoo kexts but with no multi-touch or it is not working at all.
Hi thanks for reply. I use VoodooPS2Controller.kext and with that trackpad and keyboard works good. As soon as I ad VoodooI2C.kext I get kernel panic direct at boot. But thanks a lot you gave me an idé. I disabled VoodooPS2 totally and booted with VoodooI2C+I2CHID kext and guess, it booted, and I could now see that GPI0 was connected!
Then I went the other way around and found that I could enable all, but the VoodooPS2inputkext (then there is the kernel panic).
It is good I found out that, but I2C gives no gestures or zoom possibilities yet. I feel totally stupid now, what do I miss? (I update between restarts, that I don't miss :))

Edit: I start with reading the manual again
 

Attachments

  • GPI0 working!.png
    GPI0 working!.png
    108.2 KB · Views: 60
  • Voodoo boots ok.png
    Voodoo boots ok.png
    1.6 MB · Views: 55
Last edited:

Feartech

Moderator
Joined
Aug 3, 2013
Messages
27,537
Motherboard
Asus N752VX-OpenCore
CPU
i7-6700HQ / HM170
Graphics
HD 530 1920 x 1080
Mac
  1. iMac
Mobile Phone
  1. iOS
Hi thanks for reply. I use VoodooPS2Controller.kext and with that trackpad and keyboard works good. As soon as I ad VoodooI2C.kext I get kernel panic direct at boot. But thanks a lot you gave me an idé. I disabled VoodooPS2 totally and booted with VoodooI2C+I2CHID kext and guess, it booted, and I could now see that GPI0 was connected!
Then I went the other way around and found that I could enable all, but the VoodooPS2inputkext (then there is the kernel panic).
It is good I found out that, but I2C gives no gestures or zoom possibilities yet. I feel totally stupid now, what do I miss? (I update between restarts, that I don't miss :))
if VoodooPS2Controller.kext works for your trackpad then you do not need VoodooI2C.kext?
 
Joined
Sep 20, 2011
Messages
105
Motherboard
Gigabyte Z370M D3H
CPU
i5-8600K
Graphics
RX 580
Mac
  1. iMac
  2. MacBook Pro
Mobile Phone
  1. iOS
if VoodooPS2Controller.kext works for your trackpad then you do not need VoodooI2C.kext?
No, but am just curious to see if I can get the gestures and zoom function working. For my eyes it is quite nice on a small screen like that, and it works in windows...this laptop is just on the wrong side of having windows 11 also, but still quite nice. But you are right its not 100% necessary.
 
Top