Contribute
Register

<< Solved >> Help with HP Spectre x360 and 10.14.5, UHD 620 Issues

Status
Not open for further replies.
Joined
May 5, 2012
Messages
12
Motherboard
HP Spectre x360 (13-ap0023dx)
CPU
i7-8565U
Graphics
UHD 620
Mac
  1. MacBook Pro
Classic Mac
  1. Power Mac
Mobile Phone
  1. iOS
Solution: https://www.tonymacx86.com/threads/...nd-10-14-5-uhd-620-issues.277776/post-1965632

I've been trying my best to get 10.14.5 to work on my HP Spectre x360, but I'm running into issues with the Intel GPU (i7-8565U/UHD 620/Whiskey Lake) and I'm at my wits end at this point. I've gotten macOS to boot successfully and the keyboard and touchscreen working.
I've been following this guide as it also pertains to a Whiskey Lake CPU/GPU: https://www.tonymacx86.com/threads/guide-acer-swift-5-sf514-53t-whiskey-lake-macos10-14-5.277618/

However I'm only able to get the system to boot into macOS when I set an invalid ig-platform-id, or when I don't set any Device Properties in Clover for WhateverGreen to use. When I try to set any Framebuffer patches from that guide I was following or Hackintool, the system stops at gIOScreenLockState 3, the screen gets brighter and stops there. I've tried tweaking things in the Clover config many times and only ever get that far.

Additionally, I've also been trying to get the touchpad to work, its a Synaptics touchpad connected with I2C. I got the touchscreen to work with VoodooI2C as I was able to make a good guess at what GPIO pin ELAN uses, but cannot find anything on what GPIO pin Synaptics uses and the common pins do not work.

I've attached my Clover folder, IOReg, and some other diagnostic data requested in the FAQ. Any idea what is going wrong?
 

Attachments

  • CLOVER.zip
    3.1 MB · Views: 262
  • IOReg.zip
    544 KB · Views: 240
Last edited:
I've tried updating my Framebuffer patch with the config from https://www.tonymacx86.com/threads/...565u-intel-uhd-620.277104/page-2#post-1964182 the only difference is that the verbose output seems to have more messages about AGDP/IGPU and still stops at gIOScreenLockState 3.

Additionally I was able to use https://www.tonymacx86.com/threads/...etting-dvmt-in-insydeh20-bios-laptops.165104/ to determine the BIOS was already set for 64MB DVMT.

I was also able to get the correct pinning for the I2C devices, however the Synaptics touchpad on this laptop uses F12 so it isn't supported, and upon closer observation of logs it seems the ELAN touchscreen was just running in polling mode, not interrupt.
 

Attachments

  • CLOVER.zip
    3.1 MB · Views: 189
  • boot.jpeg
    boot.jpeg
    3.6 MB · Views: 250
I've tried updating my Framebuffer patch with the config from https://www.tonymacx86.com/threads/...565u-intel-uhd-620.277104/page-2#post-1964182 the only difference is that the verbose output seems to have more messages about AGDP/IGPU and still stops at gIOScreenLockState 3.

Additionally I was able to use https://www.tonymacx86.com/threads/...etting-dvmt-in-insydeh20-bios-laptops.165104/ to determine the BIOS was already set for 64MB DVMT.

I was also able to get the correct pinning for the I2C devices, however the Synaptics touchpad on this laptop uses F12 so it isn't supported, and upon closer observation of logs it seems the ELAN touchscreen was just running in polling mode, not interrupt.
I would look into @jaymonkey guide for hp spectre x360. although it may be different system, id assume the concept will be the same. also what resolution are you trying to reach? do you have latest Lilu and Whatevergreen installed to L/E? do you use -cdfon bootflag? you may also need lilucpu=9. you also MAY need to set Device/properties in config.plist to patch Framebuffer if trying to achieve 4k resolution. good luck
 
I would look into @jaymonkey guide for hp spectre x360. although it may be different system, id assume the concept will be the same. also what resolution are you trying to reach? do you have latest Lilu and Whatevergreen installed to L/E? do you use -cdfon bootflag? you may also need lilucpu=9. you also MAY need to set Device/properties in config.plist to patch Framebuffer if trying to achieve 4k resolution. good luck

Lilu and WhateverGreen are up to to date and installed to L/E, should I remove them from kexts/Other as well or is setting Inject to Detect in Clover good enough?
I've been using -cdfon and lilucpu=9 on and off I wasn't sure if they were needed, with both active it still gets stuck at the same line.
And it is a 4K screen which I was beginning to think may be an issue, do you know of anything specific needed in the Framebuffer patching in Device/Properties for 4K laptop displays? I've been using Hackintool and followed https://www.tonymacx86.com/threads/...ching-guide-hdmi-black-screen-problem.269149/ but I'm not sure I'm setting the correct options.

Also were you referring to @jaymonkey's guide for I2C: https://www.tonymacx86.com/threads/...2c-touchscreen-and-pen-working-in-osx.246052/ or a different guide?
 

Attachments

  • Hackintool-Connectors.png
    Hackintool-Connectors.png
    544.1 KB · Views: 234
  • Hackintool-Patch.png
    Hackintool-Patch.png
    617.3 KB · Views: 286
my mistake, shouldn't have said "Guide" by @jaymonkey but postings and comments about hp spectre by @jaymonkey. sorry for that, now, I'm not sure if you have set Device/Properties for the uhd620 in config.plist but it should look similar to this:

Also, setting this patch in config.plist will also boost Vram to 2048mb (2GB) which is also Needed/recommended for users with 4k screen. set device properties in config.plist and update with results. delete duplicate kext from EFi/clover/kexts/other. rebuild cache and fix permissions. reboot. if that worked great. if not, try this as well, I needed this to get 4k res corrected; https://github.com/syscl/Enable-HiDPI-OSX
 

Attachments

  • Screen Shot 2019-06-02 at 9.44.49 PM.png
    Screen Shot 2019-06-02 at 9.44.49 PM.png
    502.1 KB · Views: 252
  • Screen Shot 2019-06-02 at 9.45.08 PM.png
    Screen Shot 2019-06-02 at 9.45.08 PM.png
    511 KB · Views: 270
Last edited:
I just looked into this, the display is connected with eDP not LVDS. Is there something different I would need to patch in the Connectors tab or would I need to look into a custom EDID?
 
the steps I given you does not involve using the tool. you only have to set the properties in config.plist using CC. I believe it doesn't matter if using edp or lvds as I THINK they both are in relation to DisplayPort (don't quote me on that). I do NOT have custom edid, I think Lilu and Whatevergreen cover that. you only need to set correct properties to patch Framebuffer. I did NOT use the tool. also, check in your bios and make sure DVMT is set to at least 64mb and try using bootflag dart=0
 
Seems like the divide by zero problem to me. Try the latest Whatevergreen and the -igfxmlr boot flag if you haven’t already.
 
I followed https://www.tonymacx86.com/threads/...ve-kernel-panic-due-to-divide-by-zero.261687/ to apply the fix for the divide by zero issue, added -igfxmlr as a boot flag and now I get one of two outputs in the screenshots below. Either stopping at gIOScreenLockState 3 or stopping at one of the [AGPM Controller] lines.

Also the Device ID of the UHD 620 in this laptop is 3EA0, and I'm spoofing it as 3EA5 in the Devices/Properties WhateverGreen patches. Is that the correct thing to do or should I be using something like 3E9B?
 

Attachments

  • boot-1.jpeg
    boot-1.jpeg
    3.3 MB · Views: 195
  • boot-2.jpeg
    boot-2.jpeg
    3.2 MB · Views: 216
  • Clover-DeviceProperties-1.png
    Clover-DeviceProperties-1.png
    651.9 KB · Views: 202
  • Clover-DeviceProperties-2.png
    Clover-DeviceProperties-2.png
    649.6 KB · Views: 208
  • CLOVER.zip
    3.1 MB · Views: 178
I just updated VoodooI2C, VoodooI2CHID, and VoodooI2CSynaptics to the latest version and applied this DSDT patch following the GPIO pinning guide https://voodooi2c.github.io/#GPIO Pinning/GPIO Pinning and have full functionality of the touchscreen and trackpad.

For reference, the trackpad is SYNA327E and the touchscreen is ELAN2514.

Code:
Scope (_SB.PCI0.I2C0)
    {
        Name (I2CN, Zero)
        Name (I2CX, Zero)
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (SDS0, I2CN)
            Store (Zero, I2CX)
        }

        Device (TPL0)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x004C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C0",
                    0x00, ResourceConsumer, _Y38, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x00B0
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, _Y39)
                {
                    0x00000000,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C0.TPL0._Y38._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.PCI0.I2C0.TPL0._Y38._SPE, SPED)  // _SPE: Speed
            CreateDWordField (SBFI, \_SB.PCI0.I2C0.TPL0._Y39._INT, INT2)  // _INT: Interrupts
            CreateWordField (SBFG, 0x17, INT1)
            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                If (LLess (OSYS, 0x07DC))
                {
                    SRXO (GPLI, One)
                }

                Store (GNUM (GPLI), INT1)
                Store (INUM (GPLI), INT2)
                If (LEqual (SDM1, Zero))
                {
                    SHPO (GPLI, One)
                }

                Store ("ELAN2514", _HID)
                Store (One, HID2)
                Store (0x10, BADR)
                Store (0x00061A80, SPED)
                Return (Zero)
            }

            Name (_HID, "XXXX0000")  // _HID: Hardware ID
            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                If (LEqual (Arg0, TP7G))
                {
                    Return (TP7D (Arg0, Arg1, Arg2, Arg3, SBFB, SBFG))
                }

                Return (Buffer (One)
                {
                     0x00                                         
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }

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

    Scope (_SB.PCI0.I2C1)
    {
        Name (I2CN, Zero)
        Name (I2CX, Zero)
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (SDS1, I2CN)
            Store (One, I2CX)
            If (CondRefOf (\_SB.PCI0.I2C1.INC1))
            {
                INC1 ()
            }
        }

        Device (TPD0)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x002C, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "\\_SB.PCI0.I2C1",
                    0x00, ResourceConsumer, _Y3A, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0053
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, ExclusiveAndWake, ,, _Y3B)
                {
                    0x00000000,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C1.TPD0._Y3A._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.PCI0.I2C1.TPD0._Y3A._SPE, SPED)  // _SPE: Speed
            CreateWordField (SBFG, 0x17, INT1)
            CreateDWordField (SBFI, \_SB.PCI0.I2C1.TPD0._Y3B._INT, INT2)  // _INT: Interrupts
            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                If (LLess (OSYS, 0x07DC))
                {
                    SRXO (GPDI, One)
                }

                Store (GNUM (GPDI), INT1)
                Store (INUM (GPDI), INT2)
                If (LEqual (SDM2, Zero))
                {
                    SHPO (GPDI, One)
                }

                Store ("SYNA327E", _HID)
                Store (0x20, HID2)
                Store (0x00061A80, SPED)
                Return (Zero)
            }

            Name (_HID, "MSFT1234")  // _HID: Hardware ID
            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                If (LEqual (Arg0, TP7G))
                {
                    Return (TP7D (Arg0, Arg1, Arg2, Arg3, SBFB, SBFG))
                }

                Return (Buffer (One)
                {
                     0x00                                         
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                Return (ConcatenateResTemplate (SBFB, SBFG))
            }
        }
    }
 
Status
Not open for further replies.
Back
Top