Contribute
Register

Asus Zenbook Pro UX501VW (Skylake i7-6700HQ, GTX 960M)

Status
Not open for further replies.
I have already installed OS X, i send alla EFi with origin
 

Attachments

  • Archivio.zip
    3.3 MB · Views: 254
I have already installed OS X...

And what are you trying to accomplish/fix at this point?

Please fix your profile before your next reply.

ACPI is not patched correctly. Based on ACPI/origin, you should have in ACPI/patched:
DSDT.aml
SSDT.aml (from ssdtPRgen.sh)
SSDT-0.aml
SSDT-1.aml
SSDT-2.aml
SSDT-3.aml
SSDT-4.aml
SSDT-12.aml
SSDT-13.aml
 
I'm trying to solve the battery problems, power and audio.
 
What SMBIOS settings do you use for this laptop?
 
What SMBIOS settings do you use for this laptop?

Your profile has no hardware details.


Please provide complete details in your profile/signature
(Profile/Settings link in upper right corner of this site)

Mobo: manufacturer/model + bootloader(Clover/Chameleon/Chimera)
CPU: detailed CPU model + motherboard chipset
Graphics: all graphics devices + laptop internal screen resolution

For example, typical Ivy laptop:
Mobo: HP ProBook 4540s (Clover)
CPU: i5-3320m/HM76
Graphics: HD4000, 1366x768

Use CPU-Z on Windows to find CPU (Core iX-xxx) and motherboard chipset (HMxx), and graphics capabilities. For a laptop, these details are important and affect critical installation procedures.

Note: When specifying your bootloader, if using Clover legacy, please be sure to specify "Clover legacy"). Specifying "Clover" will be assumed as "Clover UEFI"
 
VoodooI2C (PCI) works!! Thank you jhax01

Turns out I have 2 I2C controllers:

Code:
 [ System devices / Intel(R) Serial IO I2C Host Controller - A160 ]

    Device Properties:
      Driver Description         Intel(R) Serial IO I2C Host Controller - A160
      Hardware ID                 PCI\VEN_8086&DEV_A160&SUBSYS_10801043&REV_31
      Location Information     PCI bus 0, device 21, function 0
      PCI Device                   Intel Sunrise Point PCH - LPSS: I2C Controller 0


  [ System devices / Intel(R) Serial IO I2C Host Controller - A161 ]

    Device Properties:
      Driver Description         Intel(R) Serial IO I2C Host Controller - A161
      Hardware ID                 PCI\VEN_8086&DEV_A161&SUBSYS_10801043&REV_31
      Location Information      PCI bus 0, device 21, function 1
      PCI Device                    Intel Sunrise Point PCH - LPSS: I2C Controller 1


device a160 on I2C0 and device a161 on I2C1

The dsdt gave me the clues which one is the correct one:

Code:
  Scope (_SB.PCI0.I2C1)
    {
        Device (ETPD)
        {
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, _Y34, Exclusive,
                    )
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
                {
                    0x0000005F,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C1.ETPD._Y34._ADR, BADR)  // _ADR: Address
            Name (_ADR, One)  // _ADR: Address
            Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
            {
                If (ELAN)
                {
                    Store (0x15, BADR)
                    Return ("ELAN1000")
                }

                If (FOLT)
                {
                    Store (0x15, BADR)
                    Return ("FTE1001")
                }

                Return ("ELAN1000")
            }

            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_UID, One)  // _UID: Unique ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_S3W, 0, NotSerialized)  // _S3W: S3 Device Wake State
            {
                If (LEqual (S0ID, Zero))
                {
                    Return (0x03)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */))
                {
                    If (LEqual (Arg2, Zero))
                    {
                        If (LEqual (Arg1, One))
                        {
                            Return (Buffer (One)
                            {
                                 0x03                                     
                            })
                        }
                        Else
                        {
                            Return (Buffer (One)
                            {
                                 0x00                                     
                            })
                        }
                    }

                    If (LEqual (Arg2, One))
                    {
                        Return (One)
                    }
                }
                Else
                {
                    Return (Buffer (One)
                    {
                         0x00                                     
                    })
                }
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (LEqual (TPIF, Zero))
                {
                    Return (Zero)
                }

                If (And (DSYN, One))
                {
                    Return (Zero)
                }

                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Return (ConcatenateResTemplate (SBFB, SBFI))
            }
        }
    }

The above code section made it obvious that my ELAN1000 trackpad is Device (ETPD) under I2C1. So I have to use device a161

As suggested, I went into VoodooI2CHIDDevice::initHIDDevice and increased the timeout from 10 to 100ms. Furthermore, in Device (ETPD), I changed Method XDSM to Method _DSM

I now have I2C trackpad fonctionality.

bkgqxBM.png

cUH1Bm8.png
Can u write a dsdt patch guide for this i2c touchpad , ty!
 
@jhax01 I have a different Asus laptop (N551VW) with pretty much exactly the same specs (I7-6700HQ, GTX 960M) and this touchpad method doesn't seem to work for me at all... my DSDT looks exactly the same as above, my IOReg does as well, My touchpad is also the ELAN1000 located on I2C1 with a161 I changed the timeout to 100ms and the device from 9d60 to a161 but when I load the kext I always get "Unknown synopsys component type: 0xffffffff" any clues?
@jhax01 I have a different Asus laptop (N551VW) with pretty much exactly the same specs (I7-6700HQ, GTX 960M) and this touchpad method doesn't seem to work for me at all... my DSDT looks exactly the same as above, my IOReg does as well, My touchpad is also the ELAN1000 located on I2C1 with a161 I changed the timeout to 100ms and the device from 9d60 to a161 but when I load the kext I always get "Unknown synopsys component type: 0xffffffff" any clues?
Did u find out? Let me know plz
 
Oh God. Great find. It appears that your assumption is correct. My I2C bus seems to be PCI enumerated. This VoodooI2CPCI project is closer to working on my laptop.

The readme even specifically mentions support for the "ELAN1000 trackpad (Skylake laptops, e.g. ASUS UX305CA), pci8086,9d60 - Skylake era".

Except that for my Asus Zenbook UX501VW, my I2C controller is pci8086,a160 - not 9d60

After making the device change in the VoodooI2C IONameMatch, IORegistry shows that VoodooI2C loads, but the trackpad is not working. The trackpad setting in System Preferences still tells me "no trackpad found"

yQeLFCx.png
Can you share how you can make the trackpad to work? I have Asus A456UR, Skylake and it's also using I2C ELAN1000 Trackpad, but I'm not sure if it's ACPI or PCI. How do I differ this. Thank you
 
Can you share how you can make the trackpad to work? I have Asus A456UR, Skylake and it's also using I2C ELAN1000 Trackpad, but I'm not sure if it's ACPI or PCI. How do I differ this. Thank you
do the dsdt path which ben said, and install the voodooi2c.kext , reboot,
 
Status
Not open for further replies.
Back
Top