Jump to content
5 posts in this topic

Recommended Posts

Posted (edited)

The HP EliteBook 850 G7 Laptop with 10th Gen Intel Comet Lake CPU makes an excellent hackbook.  If you look at existing posted EFIs / GitHub repos, you'll see one thing in common to all of them: the HDMI port doesn't work.  This is because the frame buffer is not patched correctly.  You'll notice that hackers have tried to correct the HDMI port behavior with the following incorrect patches:

  • enable-hdmi-dividers-fix - not needed
  • enable-hdmi20 - a whatevergreen arg not implemented for macOS 11+
  • framebuffer-fbmem, framebuffer-stolenmem, framebuffer-unifiedmem: not needed
  • enable-lspcon-support: incorrect for this laptop

 

The secret to a properly patched framebuffer for this hack is thorough experimentation with patching the framebuffer flags documented in this reference.  The logical starting point for framebuffer patching is to assume framebuffer 3E9B0000 or 3EA50009 as recommended here.   My laptop has an Intel i7-10610U CPU which, according to this, has device ids 0x9B41,0x9BCC (neither of which is supported by macOS).  According to this, the supported Comet Lake device-ids are

  • 0x9BC8

  • 0x9BC5

  • 0x9BC4

 

I've chosen to spoof device-id 0x9BC8.

 

After thorough experimentation with framebuffer flags,  the framebuffer flags that enable both the internal display and the external HDMI port are 

working framebuffer flags: <0A0BE300>

After finding the correct framebuffer flags, you could choose to patch the framebuffer flags with DeviceProperty framebuffer-flags = <0A0BE300> or you could choose an existing framebuffer definition that already has the correct framebuffer flags.  The following Comet Lake framebuffer definitions (from here) have the framebuffer flags we need:

 

  • 3EA50004
  • 3EA50005
  • 3EA60005

 

For my hack, I chose to use frame buffer 3EA50005:

Spoiler
ID: 3EA50005, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00E30B0A
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
Model name: Intel Iris Plus Graphics 655
Camellia: CamelliaV3 (3), Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000498 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000003C7 - ConnectorDP
00000800 02000000 98040000
01050900 00040000 C7030000
02040A00 00040000 C7030000

 

Comparing framebuffer 3EA50005 to framebuffer 3EA50009 reveals a problem with framebuffer-con0-flags: the flags should be 0x00000098, but framebuffer 3EA50005 defines framebuffer-con0-flags as 0x00000498, so we need to patch framebuffer-con0-flags for working internal display when using framebuffer 3EA50005.

 

The complete, fully working framebuffer patches for the HP EliteBook 850 G7 are as follows (see attached config.plist):

Spoiler

Screenshot2026-05-05at11_59_58AM.png.6e0e07bd10d4aa6e1ecebce39207f91e.png

 

EDIT: Note that the chosen framebuffer will influence the graphics text displayed in About This Mac

Spoiler

Screenshot2026-05-05at1_27_06PM.png.f13292f1f0a05f664843f09d57e33f82.png

 

EDIT: Note that my framebuffer patches for this laptop allow the laptop to drive an external HDMI display and an external DVI display (via HDMI->DVI adapter).

config.plist.zip

Edited by deeveedee
  • Like 2
Posted (edited)

If you want to use the Comet Lake laptop framebuffer (AAPL,ig-platform-id) recommended by Dortania here (<0900A53E>)

Spoiler
D: 3EA50009, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x00830B0A
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
Model name: Intel HD Graphics CFL CRB
Camellia: CamelliaV3 (3), Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x000001C7 - ConnectorDP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x000001C7 - ConnectorDP
00000800 02000000 98000000
01050900 00040000 C7010000
02040A00 00040000 C7010000

 

 

you'll need to patch framebuffer-flags for working HDMI port as I mentioned in my previous post.  The patched framebuffer-flags adds flags FBEnableDynamicCDCLK and FBUnknownFlag_400000.

framebuffer-flags = <0A0BE300>
Spoiler
Iris Graphics Framebuffers
Framebuffer Flags 0x00E30B0A
1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | + FBAvoidFastLinkTraining
| | | | | | | | | | | | | | | | | | | | | | +-- FBFramebufferCommonMemory
| | | | | | | | | | | | | | | | | | | | | +---- FBFramebufferCompression
| | | | | | | | | | | | | | | | | | | | +------ FBEnableSliceFeatures
| | | | | | | | | | | | | | | | | | | +-------- FBDynamicFBCEnable
| | | | | | | | | | | | | | | | | | +---------- FBUseVideoTurbo
| | | | | | | | | | | | | | | | | +------------ FBForcePowerAlwaysConnected
| | | | | | | | | | | | | | | | +-------------- FBDisableHighBitrateMode2
| | | | | | | | | | | | | | | +---------------- FBBoostPixelFrequencyLimit
| | | | | | | | | | | | | | +------------------ FBLimit4KSourceSize
| | | | | | | | | | | | | +-------------------- FBAlternatePWMIncrement1
| | | | | | | | | | | | +---------------------- FBAlternatePWMIncrement2
| | | | | | | | | | | +------------------------ FBDisableFeatureIPS
| | | | | | | | | | +-------------------------- FBUnknownFlag_2000
| | | | | | | | | +---------------------------- FBAllowConnectorRecover
| | | | | | | | +------------------------------ FBUnknownFlag_8000
| | | | | | | +-------------------------------- FBUnknownFlag_10000
| | | | | | +---------------------------------- FBUnknownFlag_20000
| | | | | +------------------------------------ FBDisableGFMPPFM
| | | | +-------------------------------------- FBUnknownFlag_80000
| | | +---------------------------------------- FBUnknownFlag_100000
| | +------------------------------------------ FBEnableDynamicCDCLK *
| +-------------------------------------------- FBUnknownFlag_400000 *
+---------------------------------------------- FBSupport5KSourceSize

 

 

 

when using the Dortania-recommended framebuffer, the revised DeviceProperties for HP EliteBook 850 G7 with Comet Lake CPU are:

Screenshot2026-05-07at12_08_33PM.png.9e8129105cbb4328c928be2cf241a24f.png

 

Note again that selection of a different framebuffer (AAPL,ig-platform-id) influences the graphics text displayed in About This Mac

Spoiler

Screenshot2026-05-07at12_07_09PM.png.6fa882682626c632e694b6b36187ff94.png

 

The revised DeviceProperties are included in the attached config.plist.

 

EDIT: As with the patches in my previous post, these patches allow the laptop to drive an external HDMI display or an external DVI display (via HDMI->DVI adapter).

config.plist.zip

Edited by deeveedee
  • Like 2
  • 2 weeks later...
Posted (edited)

*** This is a failed experiment. Leaving this post for informational purposes. ***

***************************************************************************

 

I'm experimenting with the alternate CometLake Laptop Framebuffer suggested by Dortania here (00009B3E, recommended for Comet Lake UHD620).  Since, according to Intel specs, my i7-10610U includes a UHD620, Dortania suggests that Framebuffer (AAPL,ig-platform-id) 0x3E9B0000 is a better match for my laptop.

Spoiler
ID: 3E9B0000, STOLEN: 57 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x0000130B
TOTAL STOLEN: 58 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 172 MB, MAX OVERALL: 173 MB (181940224 bytes)
Model name: Intel HD Graphics CFL CRB
Camellia: CamelliaDisabled (0), Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000098 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000187 - ConnectorDP
[2] busId: 0x04, pipe: 10, type: 0x00000400, flags: 0x00000187 - ConnectorDP
00000800 02000000 98000000
01050900 00040000 87010000
02040A00 00040000 87010000

 

I already know that this is not the case, since my laptop works perfectly with AAPL,ig-platform-id 0x3EA50009 (which Dortania recommends for UHD630), but I thought I'd experiment with their recommendation.

 

With Framebuffer 0x3E9B0000, the HDMI port does not work OOB.  Based on the Framebuffer flags that worked with Framebuffer 0x3EA50009 here, we see that Framebuffer flags FBEnableDynamicCDCLK and FBUnknownFlag_400000 need to be set for a working HDMI port.  Applying this same logic to the default Framebuffer flags for Framebuffer 0x3E9B0000 (0x0000130B) results in modified Framebuffer flags 0x0060130B)

Spoiler
0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1  Modified UHD620 FB Flags 0x0060130B (with FBEnableDynamicCDCLK and FBUnknownFlag_400000)
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1  UHD620 Framebuffer Flags 0x0000130B (Framebuffer 3E9B0000)
1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0  UHD630 Framebuffer Flags 0x00830B0A (Framebuffer 3EA50009)
1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0  Iris   Framebuffer Flags 0x00E30B0A
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | +- FBAvoidFastLinkTraining
| | | | | | | | | | | | | | | | | | | | | | +--- FBFramebufferCommonMemory
| | | | | | | | | | | | | | | | | | | | | +----- FBFramebufferCompression
| | | | | | | | | | | | | | | | | | | | +------- FBEnableSliceFeatures
| | | | | | | | | | | | | | | | | | | +--------- FBDynamicFBCEnable
| | | | | | | | | | | | | | | | | | +----------- FBUseVideoTurbo
| | | | | | | | | | | | | | | | | +------------- FBForcePowerAlwaysConnected
| | | | | | | | | | | | | | | | +--------------- FBDisableHighBitrateMode2
| | | | | | | | | | | | | | | +----------------- FBBoostPixelFrequencyLimit
| | | | | | | | | | | | | | +------------------- FBLimit4KSourceSize
| | | | | | | | | | | | | +--------------------- FBAlternatePWMIncrement1
| | | | | | | | | | | | +----------------------- FBAlternatePWMIncrement2
| | | | | | | | | | | +------------------------- FBDisableFeatureIPS
| | | | | | | | | | +--------------------------- FBUnknownFlag_2000
| | | | | | | | | +----------------------------- FBAllowConnectorRecover
| | | | | | | | +------------------------------- FBUnknownFlag_8000
| | | | | | | +--------------------------------- FBUnknownFlag_10000
| | | | | | +----------------------------------- FBUnknownFlag_20000
| | | | | +------------------------------------- FBDisableGFMPPFM
| | | | +--------------------------------------- FBUnknownFlag_80000
| | | +----------------------------------------- FBUnknownFlag_100000
| | +------------------------------------------- FBEnableDynamicCDCLK *
| +--------------------------------------------- FBUnknownFlag_400000 *
+----------------------------------------------- FBSupport5KSourceSize

 

In this reference, Dortania recommends device-id 0x3E9B ("A UHD 620 in a Comet Lake CPU requires device-id=9B3E0000").  Again, I know this isn't the case and a Comet Lake device-id works just fine, but I'll use the Dortania recommendation for my experiment.  The modified DeviceProperties that comply with Dortania's Comet Lake UHD 620 recommendations include the following changes to my original DeviceProperties:

  • device-id: <9B3E0000>
  • AAPL,ig-platform-id: <00009B3E>
  • Framebuffer-flags: <0B136000>

 

EDIT: 

My brief testing with these revised values indicates that the HDMI port does not work properly in all cases.  When booting with the HDMI display connected, the internal display does not work.  I'll change the framebuffer flags to be those found working for the previous cases: <0A0BE300> and continue testing.

 

EDIT2: I am not finding that this configuration is working properly when the HDMI display is connected.  For now, the best framebuffer patching options for the HP EliteBook 850 G7 with Comet Lake CPU are those posted earlier in this thread, namely:

  • Use Iris framebuffer 3EA50005 and patch con0 flags
  • Use UHD 630 framebuffer 3EA50009 and patch framebuffer flags
Edited by deeveedee
  • 3 weeks later...
Posted (edited)

See here for experiment with Whatevergreen boot-arg igfxfw=2.

 

based on this experimentation, I do not believe that the i7-10610U CPU has a UHD620 iGPU as is claimed by much of the published hackintosh documentation for this CometLake CPU.

Edited by deeveedee
×
×
  • Create New...