Skip to content

Latest commit

 

History

History
94 lines (65 loc) · 3.15 KB

File metadata and controls

94 lines (65 loc) · 3.15 KB

Experimental FTE0001 support

FTE0001 is a second, legacy FocalTech PS/2 protocol family that is different from the six-byte FLT0101 / FLT0102 / FLT0103 protocol already supported by this project.

Status

Experimental / not yet hardware-validated in this fork.

The implementation is intentionally opt-in and does not participate in normal probing unless the following OpenCore boot argument is present:

focfte=1

Do not use focfte=1 on FLT0101 or FLT0102 systems.

The initial FTE0001 backend is also restricted to a simple single-AUX i8042 topology. It refuses muxed controllers while the protocol is unvalidated so FTE-specific commands cannot be sent across several AUX nubs during probing.

Protocol family

The FTE0001 path is independent from the FLT family and currently implements:

  • product/status identification response 58 00 05;
  • advanced-mode selection through PS/2 sample-rate encoded selectors;
  • short 8-byte reports for up to two contacts;
  • long 16-byte reports for three/four contacts;
  • up to four contacts;
  • hardware left/right button reporting;
  • VoodooInput native multitouch reporting;
  • full protocol reinitialization on wake;
  • runtime IORegistry diagnostics.

The initial logical range is based on the historically observed FTE0001 implementation and may require calibration on additional hardware.

Installation for testing

Use a current DEBUG artifact from GitHub Actions while this backend is experimental. Keep a known-good EFI available before testing.

Use the normal FocalTech OpenCore order:

1. VoodooPS2Controller.kext
2. VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext
3. VoodooPS2FocalTech.kext
4. VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext

Add:

focfte=1

Do not combine this with old VoodooPS2FocalTech.kext, ApplePS2SmartTouchPad, stock VoodooPS2Trackpad/Mouse, or another PS/2 trackpad client that can claim the same ApplePS2MouseDevice.

Diagnostics

After boot:

kmutil showloaded | grep -Ei 'Voodoo|PS2|FocalTech'
ioreg -r -c ApplePS2FTE0001 -lw0
ioreg -r -c ApplePS2MouseDevice -lw0
ioreg -p IOService -w0 | grep -Ei -C 3 'ApplePS2|FTE0001|FocalTech|VoodooInput'

Useful FTE0001 properties include:

FocalTechProtocol = FTE0001
FTE0001Experimental = Yes
FTE0001OptIn = Yes
FTE0001Product0/1/2
FTE0001FingerCount
FocalTechIRQBytes
FocalTechPackets
FocalTechValidPackets
FocalTechInvalidPackets
FocalTechLast0 ... FocalTechLast15

A correctly identified device should report the product bytes:

58 00 05

Provenance and licensing

The historical chilledHamza/VoodooPS2FocalTech project demonstrated FTE0001 support and is an important public technical reference for this protocol family.

Its repository is GPLv3, while this Acidanthera-derived fork is distributed under APSL 2.0. For that reason the FTE0001 backend here is an independent implementation rather than copied source. The historical project and its author are explicitly credited for prior FTE0001 work and protocol knowledge.

See CREDITS.md for the full attribution statement.