Jump to content

[80% Solved] Iris Xe iGPU on Tiger Lake successfully loaded ICLLP Frambuffer and VRAM also recognizes 1536MB! + However, some issues.


shl628
736 posts in this topic

Recommended Posts

this bug is related to connectors bus,etc settings

 

 kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DISPLAY   ] FB1: newOnline: 1, fOnline: 1
kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DISPLAY   ] FB1: edid != fEDID
kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][DISPLAY   ] FB1: Invalid port type

 

last line maybe audio related but

the FB1: edid != fEDID is caused by bad config ?

 

i hate connectors patches but maybe someone used todo it in whatevergreen wanna teach us ?

Link to comment
Share on other sites

Posted (edited)

On Dortiana's Github guide page, look for the Patching Bus IDs page, however the patch shown is not with IceLake, I am going to use the icelake framebuffer below as an example though.

ID: 8A510002, STOLEN: 64 MB, FBMEM: 0 bytes, VRAM: 1536 MB, Flags: 0x0000E304
TOTAL STOLEN: 193 MB?, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 193 MB, MAX OVERALL: 194 MB (203960320 bytes)
Model name: Intel Iris Plus Graphics
Camellia: CamelliaV3 (3), Freq: 0 Hz, FreqMax: 0 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 0, type: 0x00000002, flags: 0x00000018 - ConnectorLVDS
[2] busId: 0x09, pipe: 1, type: 0x00000400, flags: 0x000002C1 - ConnectorDP
[3] busId: 0x0A, pipe: 1, type: 0x00000400, flags: 0x000002C1 - ConnectorDP
00000000 00000000 00000000 00000000 02000000 18000000
02000000 09000000 01000000 01000000 00040000 C1020000
03000000 0A000000 01000000 01000000 00040000 C1020000

 

Les analyze the first line for use with the alldata method;

[0] busId: 0x00, pipe: 0, type: 0x00000002, flags: 0x00000018 - ConnectorLVDS  00000000 00000000 00000000 00000000 02000000 18000000 

I have a few notes below, if you put the original values into a table to break down what they are saying using "00000000 00000000 00000000 00000000 02000000 18000000"

 

Bit

 

Name

 

Value

 

Bit 1

Port

0

Bit 2

Bus ID[SM1] 

0

Bit 3-4

Pipe Number

0000

Bit 5-8

Connector Type

02000000

Bit 9-12

Flags

18000000


 [SM1] BusID is a unique value and cannot be used by multiple entries

 

This is the portion that will be used in setting up the framebuffer for a specific connector, see below for the ioreg that is currently shown when i boot currently using the whenvergreen attached.

 

image.png.2a0dd2d615edd7fc2c168c7ae81b313f.png

 

For the GPU the "display0' is being seen under AppleIntelFramebuffer@1 instead of AppleIntelFramebuffer@0, when jala did the changes, he was able to get this change done using nblue, but there were issues.

 

image.thumb.png.1199519aaad9bdb983cb5aa5234fe22f.png

 

The method was to setup the framebuffer-con0-XXXX settings that are needed using the alldata method

 

image.thumb.png.105b2160bfab626212a55c51107823ec.png

 

Do note that there are three (3) framebuffers  however it is numbered 0, 1, 2, 3 , example AppleIntelFramebuffer@0, AppleIntelFramebuffer@1, AppleIntelFramebuffer@2. You have to then disable framebuffer-con0-alldata and framebuffer-con2-alldata and framebuffer-con3-alldata, by zeroing the bus id on those specific indexes, example for AppleIntelFramebuffer@2 below;

03000000 00000000 01000000 01000000 00040000 C1020000

You should also then do the same for framebuffer-con0-alldata and framebuffer-con3-alldata

 

image.thumb.png.2f5a542e1d30e609e18256f75ae4c5d8.png

 

you will then have the framebuffers in your device properties section for the IGPU,

 

the index explanation

 

Port: Port is Index number, its usually 0 only for the internal GPU

Bus ID: Bus ID is the bus that the device is attached to

Pipe Number: Dont know, read the info that comes up when you hover over the value while using hackintool

 

image.png.4a592cdc540a470f69c715cc92c96a6f.png

 

Connector Type: a value that is generated based on the ticked options in hackintool under the patch tab and the connectors sub menu, a list taken from Dortiana is below.

<02 00 00 00>        LVDS and eDP      - Laptop displays
<10 00 00 00>        VGA               - Unsupported in 10.8 and newer
<00 04 00 00>        DisplayPort       - USB-C display-out are DP internally
<01 00 00 00>        DUMMY             - Used when there is no physical port
<00 08 00 00>        HDMI
<80 00 00 00>        S-Video
<04 00 00 00>        DVI (Dual Link)
<00 02 00 00>        DVI (Single Link)

image.png

Edited by Mastachief
Link to comment
Share on other sites

14 hours ago, jalavoui said:

you mean the AppleIntelICLLPGraphicsFramebuffer logs ? i think you can only do it if we manage to figure why your system doesn't like nblue/whateverred

btw did u managed to get tpda show in ioregistry ?

maybe u forgot to apply xosi rename patch?

the device needs tobe alive in ioreg so it can load a kext

 

try to fix this 1st cause i think yu have some bad configs messing things

try open dsdt.aml in macial and compile maybe u have bugs

 

i wasted some time on this + the SSDT-XOSI.aml till it finally worked

image.thumb.png.c9f469d1a04645a3c8816f77599c7d8d.png

if it fails it breaks many things

 

if you manage to fix it show the new ioreg

btw how do we remove serial number from ioreg ? i forgot

i tried the latest nblue version, still panics on kext log. no better than before sadly.

Link to comment
Share on other sites

Posted (edited)

Mastachief

 

do you think you can arrange a better connector patch ?

with current patches we get framebuffer 1 so it uses bus 2 and port id 9 ????

i know that swaping connector 2 to 0 will make the display attach to framebuffer zero

but this brings panic on shutdown,etc

can you try some combos and check if framebuffer 1 works but with correct edid detection ?

or idk if you have another idea

 

on whatevergreen there's a connecotr patch injected in device settings

in nblue you got to edit and build the kext

image.png.e77e6b4e8f4d570078d046ff366de82d.png

Edited by jalavoui
Link to comment
Share on other sites

Posted (edited)

For the explanation regarding the bus and port see the following based on the example i used in my previous post this is for PlatformID: 0x8A510002. you can get more ports under the Platform ID: 0x8A710001 I'll put the test results on the post after this one.

 

framebuffer-con0-alldata - AppleIntelFramebuffer@0 - Index 1 - Port 0 - not connected

framebuffer-con1-alldata - AppleIntelFramebuffer@1 - Index 2 - Port 2 - this is where Display0 is currently connected, however it should on labeled as "AppleBacklightDisplay"

framebuffer-con2-alldata - AppleIntelFramebuffer@2 - Index 3 - Port - not connected (if you use a type c to displayport connector, it may have interesting results...)

framebuffer-con3-alldata - AppleIntelFramebuffer@3 - not connected, doesnt even show up in ioreg usually

 

If you click on the value beneath the connectors section for our config you will see that the Port is 00, this is where i get confused. It should be 1 or something else since its on edp so its being recognized as a type of displayport panel

 

Screenshot2024-05-14at8_48_35AM.thumb.png.c749fc0fe42dc865388c9276438b85e3.png

 

Below is the hackintool screen from my optiplex 3070 mff desktop, the port is listed as being 0x06, we need others to report that the value is consistent.

 

image.thumb.png.001b00c0e0fd959d2a4b74bdecb2808a.png

 

 

 

 

 

Edited by Mastachief
Link to comment
Share on other sites

Posted (edited)

true this is hard to config

i hacked the conencotrs a bit in nblue and ofc i got this kp

 

panic(cpu 2 caller 0xffffff7f97de12e9): "[IGFB][PANIC][DISPLAY  ] " "FB0: Failed to allocate display resources for built-in display\n" @AppleIntelController.cpp:3499
Panicked task 0xffffff8b80e938b8: 155 threads: pid 0: kernel_task
Backtrace (CPU 2), panicked thread: 0xffffff904cf03b30, Frame : Return Address
0xffffffa0c3b67990 : 0xffffff8002a6fc7d mach_kernel : _handle_debugger_trap + 0x4ad
0xffffffa0c3b679e0 : 0xffffff8002bc4294 mach_kernel : _kdp_i386_trap + 0x114
0xffffffa0c3b67a20 : 0xffffff8002bb3da7 mach_kernel : _kernel_trap + 0x3b7
0xffffffa0c3b67a70 : 0xffffff8002a10971 mach_kernel : _return_from_trap + 0xc1
0xffffffa0c3b67a90 : 0xffffff8002a6ff5d mach_kernel : _DebuggerTrapWithState + 0x5d
0xffffffa0c3b67b80 : 0xffffff8002a6f607 mach_kernel : _panic_trap_to_debugger + 0x1a7
0xffffffa0c3b67be0 : 0xffffff80031dad7b mach_kernel : _panic + 0x84
0xffffffa0c3b67cd0 : 0xffffff7f97de12e9 com.apple.driver.AppleIntelICLLPGraphicsFramebuffer : __ZN31AppleIntelFramebufferController16setupBootDisplayEv.cold.2
0xffffffa0c3b67ce0 : 0xffffff7f97d824e5 com.apple.driver.AppleIntelICLLPGraphicsFramebuffer : __ZN31AppleIntelFramebufferController16setupBootDisplayEv + 0x3a9
0xffffffa0c3b67d30 : 0xffffff7f97d7e4c5 com.apple.driver.AppleIntelICLLPGraphicsFramebuffer : __ZN31AppleIntelFramebufferController5startEP9IOService + 0xf8d
0xffffffa0c3b67da0 : 0xffffff80030e79d1 mach_kernel : __ZN9IOService14startCandidateEPS_ + 0xd1
0xffffffa0c3b67e00 : 0xffffff80030e754a mach_kernel : __ZN9IOService15probeCandidatesEP12OSOrderedSet + 0xdba
0xffffffa0c3b67ec0 : 0xffffff80030e65ff mach_kernel : __ZN9IOService14doServiceMatchEj + 0x3af
0xffffffa0c3b67f20 : 0xffffff80030e978a mach_kernel : __ZN15_IOConfigThread4mainEPvi + 0x15a
0xffffffa0c3b67fa0 : 0xffffff8002a1019e mach_kernel : _call_continuation + 0x2e
      Kernel Extensions in backtrace:
         com.apple.driver.AppleIntelICLLPGraphicsFramebuffer(20.0.7)[B1B4B3FD-BDA2-37A0-851C-D64F64FA6EB0]@0xffffff7f97d34000->0xffffff7f97e1efff
            dependency: com.apple.AppleGraphicsDeviceControl(7.1.19)[87B91A0F-9829-39C3-8DBF-4581A2EE681A]@0xffffff7f97704000->0xffffff7f97707fff
            dependency: com.apple.iokit.IOACPIFamily(1.4)[D342E754-A422-3F44-BFFB-DEE93F6723BC]@0xffffff8005045000->0xffffff8005046fff
            dependency: com.apple.iokit.IOAcceleratorFamily2(475.40.6)[5CEA519D-44FC-30EB-8622-2394570EBDD4]@0xffffff7f98620000->0xffffff7f9868afff
            dependency: com.apple.iokit.IOGraphicsFamily(597)[718E01CF-8B05-3042-88F4-DE3441395D00]@0xffffff7f987c1000->0xffffff7f987effff
            dependency: com.apple.iokit.IOPCIFamily(2.9)[A4741D9F-2EAF-36E6-9023-084BA29EE1FE]@0xffffff80054b5000->0xffffff80054e6fff
            dependency: com.apple.iokit.IOReportFamily(47)[491DDA55-D371-3A28-9A77-C28DB013D8AE]@0xffffff80054f7000->0xffffff80054f9fff

Process name corresponding to current thread (0xffffff904cf03b30): kernel_task
Boot args: debug=0x100 keepsyms=1 

so in theory a patch in function setupBootDisplay() might help fix bad configs

problem is i have no idea howto do it

so better we keep default config for now

 

btw heres a panic file from panic folder as sample

Kernel-2024-05-14-165143.panic

Edited by jalavoui
Link to comment
Share on other sites

Posted (edited)

Okay here is the result of using the following config using the attached whenvergreen. im using my EDID in the config below, so modify to yours if needs be. its now being listed under index 0 instead of 2 in hackintool. Now it connects to display0 under framebuffer@0. You can also use AAPL,ig-platform-id 00008A52 and device-id 8A530000 as well to achieve the result if you want, you can also see the previous log.

 

Boot args: -v keepsyms=1 debug=0x100 -wegdbg igfxfw=2 -liludbg

 

Sonoma 14.4.1

 

<key>AAPL,GfxYTile</key>
				<data>AQAAAA==</data>
				<key>AAPL,ig-platform-id</key>
				<data>AABSig==</data>
				<key>AAPL,slot-name</key>
				<string>Internal@0,2,0</string>
				<key>AAPL00,override-no-connect</key>
				<data>AP///////wAw5HycAAAAAAAfAQSVIhNgA2+xp1VMniUMUFQAAAABAQEBAQEBAQEBAQEBAQEBLjaAoHA4H0AwIDUAWMIQAAAaHySAoHA4H0AwIDUAWMIQAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAMOv8KPH0SFCR9AAAAAEY=</data>
				<key>complete-modeset</key>
				<data>AQAAAA==</data>
				<key>device-id</key>
				<data>U4oAAA==</data>
				<key>device_type</key>
				<string>VGA compatible controller</string>
				<key>disable-agdc</key>
				<data>AQAAAA==</data>
				<key>dpcd-max-link-rate</key>
				<data>CgAAAA==</data>
				<key>enable-cdclk-frequency-fix</key>
				<data>AQAAAA==</data>
				<key>enable-dbuf-early-optimizer</key>
				<data>AQAAAA==</data>
				<key>enable-dpcd-max-link-rate-fix</key>
				<data>AQAAAA==</data>
				<key>enable-dvmt-calc-fix</key>
				<data>AQAAAA==</data>
				<key>force-online</key>
				<data>AQAAAA==</data>
				<key>framebuffer-con0-alldata</key>
				<data>AAAAAAAAAAAAAAAAAAAAAAIAAAAYAAAA</data>
				<key>framebuffer-con0-enable</key>
				<data>AQAAAA==</data>
				<key>framebuffer-con1-alldata</key>
				<data>AgAAAAAAAAABAAAAAQAAAAAEAADBAgAA</data>
				<key>framebuffer-con1-enable</key>
				<data>AQAAAA==</data>
				<key>framebuffer-con2-alldata</key>
				<data>AwAAAAoAAAABAAAAAQAAAAAEAADBAgAA</data>
				<key>framebuffer-con2-enable</key>
				<data>AQAAAA==</data>
				<key>framebuffer-patch-enable</key>
				<data>AQAAAA==</data>
				<key>framebuffer-unifiedmem</key>
				<data>AAAAgA==</data>
				<key>model</key>
				<string>Intel Iris Xe Graphics</string>

this is the same as:

 

image.thumb.png.bad5454ac645369933101dde9db8a107.png

 

Which translates to:

 

image.thumb.png.176cd65b33e1bf4a06faba1019fab406.png

 

if I run the following command in terminal /System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a

 

I get the following result:

Big@MacBook-Pro ~ % /System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a 
AGDCDiagnose Version: 8.1.9 (AGDC node count: 2)
### Start: GPUWrangler #######################################################
Stats: GPUCAdded:0 GpuAdded:1 Eject:0/f0/fd0/c0 Remove:0/t0 Un:0

gpu 0xe913 flags 0xb2000010 (IG,published,quiet,pubSched,pubArmed) vid.did=8086.8a53 b:d:f=0:2:0 
gpu 0xe913        pci 0x100000321 IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/IGPU@2
gpu 0xe913       agdc 0x1000004d2     /AppleIntelFramebufferController/IntelFBClientControl
gpu 0xe913       gpuc 0x000000000 
gpu 0xe913 agdpclient 0x000000000 
gpu 0xe913      accel 0x000000000 
gpu 0xe913     fb0:-1 0x1000004b3     /AppleIntelFramebuffer@0
gpu 0xe913     fb1:-1 0x1000004b4     /AppleIntelFramebuffer@1
gpu 0xe913     fb2:-1 0x1000004b5     /AppleIntelFramebuffer@2

### End: GPUWrangler (took 0.004 sec) ########################################

### Start: EFIDisplayInfo ####################################################
Not present
Dumping EFI data for GPU Path IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/IGPU@2
### End: EFIDisplayInfo (took 0.003 sec) #####################################

### Start: Mux ###############################################################
### End: Mux (took 0.000 sec) ################################################

### Start: Ports #############################################################
### Start: AGDC[1] 0x100000483 ###############################################
IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)
### End: AGDC[1] 0x100000483 (took 0.001 sec) ################################

### Start: AGDC[2] 0x1000004d2 ###############################################
IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 3, Ports: 0x7e mst:0x7c ddc:0 aux:0x7c, Streams: dp:0 dvi:0 mst:2 max:3
Framebuffers:
* 0: Address:  1.0 Stream: Enabled  Group: 0   Online   Assoc'd                    
  1: Address:  0.0 Stream: Not Associated Group: 0                                       
  2: Address:  0.0 Stream: Not Associated Group: 0                                       
Port Capabilities:
* 1: None
  2: AUX, MST
  3: AUX, MST
  4: AUX, MST
  5: AUX, MST
  6: AUX, MST
Connections:
* 1: 
  2: 
  3: 
  4: 
  5: 
  6: 
## EDID Dump Port 1 - Start ## 
// EDID Dump: device, 128 bytes, OK
uint8_t EDID_LGD_30e4_71e[] = {
  /* 000: */  0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 
  /* 008: */  0x30, 0xe4, 0x1e, 0x07, 0x00, 0x00, 0x00, 0x00, 
  /* 010: */  0x00, 0x1f, 0x01, 0x04, 0x95, 0x22, 0x13, 0x78, 
  /* 018: */  0x03, 0xb3, 0x85, 0x99, 0x5e, 0x5b, 0x8c, 0x26, 
  /* 020: */  0x1b, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 
  /* 028: */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
  /* 030: */  0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2e, 0x36, 
  /* 038: */  0x80, 0xa0, 0x70, 0x38, 0x1f, 0x40, 0x30, 0x20, 
  /* 040: */  0x35, 0x00, 0x58, 0xc2, 0x10, 0x00, 0x00, 0x1a, 
  /* 048: */  0x1f, 0x24, 0x80, 0xa0, 0x70, 0x38, 0x1f, 0x40, 
  /* 050: */  0x30, 0x20, 0x35, 0x00, 0x58, 0xc2, 0x10, 0x00, 
  /* 058: */  0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  /* 060: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  /* 068: */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 
  /* 070: */  0x00, 0x0c, 0x3a, 0xff, 0x0a, 0x3c, 0x7d, 0x12, 
  /* 078: */  0x14, 0x24, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x01
};
## EDID Dump Port 1 - End ## 
### End: AGDC[2] 0x1000004d2 (took 0.458 sec) ################################

### End: Ports (took 0.458 sec) ##############################################

### Start: Metrics ###########################################################
Display Metric Tool Version: 1.2 
Display Metric Plugin Version: 1.2 AGDC Version: 8.1.9
Dumping Metric Logs: currentlog(1) logsize(32768) numberlogs(819)
Total lines: 2 
2024-05-14 14:17:11.875674-0500:               kAGDCPluginMetricsPowerOff(411e) GPU:0xe913 Port: 0 Will
### End: Metrics (took 0.001 sec) ############################################

### Start: displaypolicyd ####################################################
running 169 sec (started Tue May 14 14:17:09 2024, now Tue May 14 14:19:58 2024)
boardID: Mac-5F9802EFE386AA28
featureMask: 0
platformFlags: 0
extraSupportFlags: 0
wranglerFlags: 0x44
gpu[0]: index=0 state=0x5 (Published) events=() dispPolicyState=0x6 (WaitingForAGDP) dispPolicyLaunchIndex=-1
gpu 0xe913 flags 0xb2000010 (IG,published,quiet,pubSched,pubArmed)
gpu 0xe913        pci 0x100000321 IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/IGPU@2
gpu 0xe913       agdc 0x1000004d2     /AppleIntelFramebufferController/IntelFBClientControl
gpu 0xe913       gpuc 0x000000000 
gpu 0xe913 agdpclient 0x000000000 
gpu 0xe913      accel 0x000000000 
gpu 0xe913     fb0:-1 0x1000004b3     /AppleIntelFramebuffer@0
gpu 0xe913     fb1:-1 0x1000004b4     /AppleIntelFramebuffer@1
gpu 0xe913     fb2:-1 0x1000004b5     /AppleIntelFramebuffer@2
Version: 8.1.9, Max: 512, counter: 13, calendar sync: 0x6186ed934d0a5/0xb1cbaf
GTRACEDATASTREAM traceData = {
    { 0x67547261, 0x63654461, 0x74614475, 0x6d700000, 0x102, 512, 13, 8, 1, 9, 0, 56, 1715714229850277, 11652015 },
    {
        { 11603316365, 0x0, 392, 38, 0, 0, 0x0, 0x0, 0x0 },
        { 13569842836, 0x0, 744, 88, 56, 0, 0x0, 0x4, 0x0 },
        { 13716189171, 0x0, 522, 72, 73, 0, 0x1, 0xe913, 0x0 },
        { 13716323080, 0x0, 70, 71, 73, 0, 0x20001, 0xe913, 0x0 },
        { 18032770978, 0x0, 522, 72, 73, 0, 0x1, 0xe913, 0x0 },
        { 18032923007, 0x0, 70, 71, 73, 0, 0x50002, 0xe913, 0x0 },
        { 18033103227, 0x0, 81, 77, 73, 0, 0x60000, 0xe913, 0x0 },
        { 48420370691, 0x0, 663, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 48438912140, 0x0, 663, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 49286990388, 0x0, 663, 84, 84, 0, 0x11, 0x1, 0x0 },
        { 49352426347, 0x0, 663, 84, 84, 0, 0x1, 0x1, 0x0 },
        { 57266712649, 0x0, 663, 84, 84, 0, 0x11, 0x1, 0x0 },
        { 62281474230, 0x0, 663, 84, 84, 0, 0x1, 0x1, 0x0 },
    }
};
### End: displaypolicyd (took 0.002 sec) #####################################

### Start: Devices ###########################################################
### Start: AGDC[1] 0x100000483 ###############################################
IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)
### End: AGDC[1] 0x100000483 (took 0.000 sec) ################################

### Start: AGDC[2] 0x1000004d2 ###############################################
IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
### End: AGDC[2] 0x1000004d2 (took 0.000 sec) ################################

### End: Devices (took 0.001 sec) ############################################

### Start: mpxdiagnose #######################################################
### End: mpxdiagnose (took 0.011 sec) ########################################

AGDCDiagnose completed in 0.460048 seconds

Other notable errors

 

2024-05-14 11:59:48.511372-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][GTPM_SLICESWITCH] : Invalid fRingTables, check if AGPM driver is loaded\

 

2024-05-14 12:00:04.732063-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][AUX       ] readAUX for address 0x600 failed with error 0xe00002d6\
2024-05-14 12:00:04.732065-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][POWER     ] Failed to set DP power state in 10s\
2024-05-14 12:00:04.751558-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DISPLAY   ] FB0: Online info for DDI = 0, PortType = 0\
2024-05-14 12:00:04.751592-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DISPLAY   ] FB0: fIsHDMI = 0, fEnableAudio = 0, newOnline = 1, fOnline = 1, fMaxPixelClock = 720000000\
2024-05-14 12:00:04.751599-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DISPLAY   ] FB0: newOnline: 1, fOnline: 1\
2024-05-14 12:00:04.751604-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DISPLAY   ] FB0: edid != fEDID\
2024-05-14 12:00:04.751609-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][VRR       ] FB0: Indicate VRR Support in TimingRange\
2024-05-14 12:00:04.751623-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][DISPLAY   ] FB0: Invalid port type\
2024-05-14 12:00:04.752078-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][AGDC      ] AGDC Callback is not yet registered!!\

 

2024-05-14 12:00:09.591266-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][DISPLAY   ] Not able to get the current timing info\

 

2024-05-14 12:00:10.155672-0500  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][ERROR][DISPLAY   ] Display Pipe Underrun occurred on pipe(s) A\

 

 

 

 

 

 

 

 

boot.log

 

WhateverGreen.kext.zip

Edited by Mastachief
Added missing kext
Link to comment
Share on other sites

Posted (edited)

ok so with whatevergreen enabled it shows 7mb vram but it does show intel iris xe graphics in about this mac and system info and my 9a68 device id but no kext loaded though. and i have wifi, bluetooth, and sound working also. BUT no trackpad but my keyboard works. i did try the device properties shown above but they didnt do any better than nblue sadly, same hang and/or panic.

Edited by benmacfreak
Link to comment
Share on other sites

Does anyone know how to change the values below: the hackintool kext method does not work:

big@MacBook-Pro ~ % ioreg -l -x -w0 | grep DisplayProductID
    | |   | | |       "DisplayProductID" = 0x9c7c
big@MacBook-Pro ~ % ioreg -l -x -w0 | grep DisplayVendorID
    | |   | | |       "DisplayVendorID" = 0x30e4

Does anyone know how to change these values on boot? using whenvergreen or otherwise?

 

image.thumb.png.a0599564234873f747d2cb1749ab5e1d.png

 

I wanna get applebacklightdisplay instead of appledisplay under display0.

 

image.thumb.png.7fd3a03ec3bc7a902ed149703f47e314.png

Link to comment
Share on other sites

Posted (edited)

device props in oc maybe as data type

00 00 7c 9c

 

the edid injection is interesting. it breaks the i2c connection (maybe can be patched)

can you try with other ig-platforms. with the ig-platforms defaults you get diferent setups for port count, memory etc

with framebuffer zero do you get a kernel panic on restart/shutdfown ?

for backlight you need pnlf + some patches that i think whatevergreen can do.i avoid this cause of power issues but give it a try

i publish a whatevergreen with edid injection capabilities that allow force usage of applebacklight class 

but as no tigerlake code

gonna copy it and add the code

here it is - i removed old patches and kept sonoma patch

 

 

in the plist you will find a default override of appledisplay to applebacklight display

just fix the display product/vendor id in the plist

other nblue patches can be added to anyone willing to test them

 

Capturadeecra2024-05-14as23_01_39.png.2434629ee674cd05710e4e0d7336770f.png

 

can you check if

CD Clock PLL is locked\

seen in logs is a bios setting ?

 

this is related to ig-platform settings

[IGFB][ERROR][GTPM_SLICESWITCH] : Invalid fRingTables, check if AGPM driver is loaded

hacked in nblue with simulator properties injection

 

funny thing is although you completely break aux code the display still works

 

benmacfreak

i tested tpad with other xosi values made with ssdttime and it doesnt work. maybe this is the problem

Edited by jalavoui
Link to comment
Share on other sites

Posted (edited)

right

idk if you wanna do this for wahtevergreen but you can avoid that kp with this calls from nblue

{"__ZN21AppleIntelFramebuffer18prepareToEnterWakeEv",prepareToEnterWake},

{"__ZN21AppleIntelFramebuffer17prepareToExitWakeEv",prepareToEnterWake},

this logic disables those functions. there's 1 call for shutdown

 

problem with backlight is (i think) they just wont work for us without many patches

i'm trying to ignore camelia code and patch hwSetPanelPower() but so far no results

 

for ghidra study kext i use kexts from Kernel_Debug_Kit_13.6.5_build_22G621.dmg cause they decompile very well

then for real patches i use decompkernelcache (not tested on sonoma) cause KDK bytes aren't the same as cache kexts

i'm not on sonoma yet cause i know it bring new bugs. better focus on ventura for patching 

 

i think i delete from nblue but i remenber

uint8
AppleIntelFramebufferController::hwShutdown
          (AppleIntelFramebufferController *this,AppleIntelFramebuffer *param_1)

can be ignored and making it return 0 will avoid the panic

 

i dont remenber if prepareToEnter/exitSleep need tobe disabled (but code is still in nblue)

Edited by jalavoui
Link to comment
Share on other sites

Thabks for the advice, your thoughts are the same as mine, let's continue with the original aim of this thread.

Since we are a little along with the framebuffer, backlight is not a priority in terms of bugs QE/CI is. Once you turn up or down brightness before booting using opencore, the brightness level is maintained.

I'll take a look at nblue, to get an idea regarding the shutdown, I can only use ghidra as official ida is $$$.

Link to comment
Share on other sites

Posted (edited)
7 hours ago, jalavoui said:

device props in oc maybe as data type

00 00 7c 9c

 

the edid injection is interesting. it breaks the i2c connection (maybe can be patched)

can you try with other ig-platforms. with the ig-platforms defaults you get diferent setups for port count, memory etc

with framebuffer zero do you get a kernel panic on restart/shutdfown ?

for backlight you need pnlf + some patches that i think whatevergreen can do.i avoid this cause of power issues but give it a try

i publish a whatevergreen with edid injection capabilities that allow force usage of applebacklight class 

but as no tigerlake code

gonna copy it and add the code

here it is - i removed old patches and kept sonoma patch

 

WhateverGreen.kext.zip 281.48 kB · 2 downloads WhateverGreen-master.zip 1.91 MB · 0 downloads

in the plist you will find a default override of appledisplay to applebacklight display

just fix the display product/vendor id in the plist

other nblue patches can be added to anyone willing to test them

 

Capturadeecra2024-05-14as23_01_39.png.2434629ee674cd05710e4e0d7336770f.png

 

can you check if

CD Clock PLL is locked\

seen in logs is a bios setting ?

 

this is related to ig-platform settings

[IGFB][ERROR][GTPM_SLICESWITCH] : Invalid fRingTables, check if AGPM driver is loaded

hacked in nblue with simulator properties injection

 

funny thing is although you completely break aux code the display still works

 

benmacfreak

i tested tpad with other xosi values made with ssdttime and it doesnt work. maybe this is the problem

right idk anything about dsdt and ssdt editing, so idk how to edit said files. I am still trying to figure out what deviceproperties to put in for my IGPU, i tried almost all of the ones you all used, no luck, same with the common ones on the github. no change. just added my laptop's deviceID to nblue i got a panic doing that, idk if it helps but here's a screenshot of said panic. it was added to the icl framebuffer line, that's how i was able to get this panic.

 

IMG_0292.jpg

NootedBlue.kext.zip

Edited by benmacfreak
panic assertion from my iphone 14 pro
Link to comment
Share on other sites

Posted (edited)

Hi guys

Let me share my experience so far :). My laptop (model in sugnature) has working wifi, bluetooth, sound, kbd backlid and function keys. I can't seem to get my touchpad to work (neither polling nor GPI0). I'm not sure how to patch dsdt so any help is appreciated. I have framebuffer enabled with nblue (thx @jalavoui) though there's a cursor glitch.image.thumb.png.4ade62d337b0b70dcb9efcd438e98174.png

dsdt.aml IOService.zip HWID.txt

Edited by cecobald
Link to comment
Share on other sites

Posted (edited)

I am able to boot with applebacklightdisplay using the latest kext, ill keep using it for now, did you remove the other settings that could be set under IOProviderMergeProperties, or should i manually add the keys, and should i used a modified EDID, or the original id\f i do so, seeking a few recommendations, otherwise ill have to test it.

 

I was also able to press sleep and it not power off the display, prefer it this wy for now, otherwise i would have to keep restarting when the screen goes black after a sleep. I'm going to use the MacBookAir9,1 SMBios as that's the only set of displays with 16:9 ratio.

 

image.png.bbfd6c1e6ac119ae60b0c870aa93504f.png

 

I didnt see any item called "CD Clock PLL" i searched for clock in my "Section_PE32_image_Setup_Setup IFR.txt"

 

However i did see an item called ICC PLL shutdown, since this is a setting to enable this shutdown, ill try to see what happens when i disable it. According to the web, for "ICC PLL Shutdown" 

 

"This option controls the programming of the ICC PLL shutdown flow. When enabled, this ICC PM register will be programmed on every non-Sx boot."

 

 * ICC Configuration
        * Use Watchdog Timer for ICC
        Enable Watchdog Timer operation for ICCIf enabled,Watchdog Timer will be started after ICC related changed
        This timer detects platform instability caused by wrong clock settingsTurn off unused PCI/PCIe clocks
            - Disabled:all clocks turned on
            - Enabled:clocks for empty PCI/PCIe slots will be turned off to save power Platform must be powered off for changes to take effect
                
        * Lock ICC registers
            All registers: all ICC registers will be locked
            Static only - only static ICC registers will be locked

 

image.png.e277fd4fe3df9e7e870807b6b9ee7dec.png

 

 

Edited by Mastachief
Link to comment
Share on other sites

Posted (edited)

benmacfreak

you need to inject a apple device id and a valid ig-platform not your card id... (nblue as a default apple device-id and ig-platform)

you and cecobald have the same bug - no tpad device in ioreg. try other config for xosi. that's how i made my device show up in ioreg

then try the i2c kext i've made few posts back

here's a working ioreg

Capturadeecra2024-05-15as17_53_58.png.9ef3a5338fc96ae253ecf8d918201eda.png

 

Mastachief

you can inject any new properties for your display as wish. maybe from hacintool ? goal is use other edid properties if needed

the CD Clock PLL idk you can try bios change and them check framebuffer logs

your sleep "fix" is interesting. i'll check it

is this sleep fix a result of

[IGFB][ERROR][AUX       ] readAUX for address 0x600 failed with error 0xe00002d6

??

Edited by jalavoui
Link to comment
Share on other sites

16 hours ago, jalavoui said:

 

i'm not on sonoma yet cause i know it bring new bugs. better focus on ventura for patching 

 

What kext from Sonoma do you want to get?

Link to comment
Share on other sites

Posted (edited)

none slice i hate sonoma bugs i'll stay on ventura for now

 

found the linux match for apple code

 

AppleIntelFramebufferController::probeBootPipe
          (AppleIntelFramebufferController *this,bool *param_1,DDI *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  long *plVar6;
  
  _DAT_00101820 = _DAT_00101820 + 1;
  uVar1 = ReadRegister32(this,0x6f400);
  uVar2 = ReadRegister32(this,0x60400);
  uVar3 = ReadRegister32(this,0x61400);
  uVar4 = ReadRegister32(this,0x62400);
/* Per-pipe DDI Function Control */
#define _TRANS_DDI_FUNC_CTL_A		0x60400
#define _TRANS_DDI_FUNC_CTL_B		0x61400
#define _TRANS_DDI_FUNC_CTL_C		0x62400
#define _TRANS_DDI_FUNC_CTL_D		0x63400
#define _TRANS_DDI_FUNC_CTL_EDP		0x6F400
#define _TRANS_DDI_FUNC_CTL_DSI0	0x6b400
#define _TRANS_DDI_FUNC_CTL_DSI1	0x6bc00
#define TRANS_DDI_FUNC_CTL(tran) _MMIO_TRANS2(tran, _TRANS_DDI_FUNC_CTL_A)

then apple code does some check for case _TRANS_DDI_FUNC_CTL_EDP

that i think we dont have

Edited by jalavoui
Link to comment
Share on other sites

Posted (edited)

When sifting through the most recent log, the only instance of "aux" is in one line

 

It appears the aux CH issue went away, im not seeing on the second boot using igplatform: 00008A52, device id: 538A0000

 

(AppleIntelICLLPGraphicsFramebuffer) [IGFB][LOG  ][DPCD      ] Does NOT require AUX CH handshake?: 0\

 

Screenshot2024-05-15at3_08_18PM.thumb.png.425dd9161134430a47651ca30a01c465.png

 

boot3.log

 

I do see TRANS_DDI_FUNC_CTL_EDP in my linux logs, what are the checks?

 

regdump.txt

 

image.png.fcc6241cd512f41a6d3847c8c32e9de9.png

 

Edited by Mastachief
Link to comment
Share on other sites

Posted (edited)

those are active linux registers. they show we dont use edp connection

the aux errors was some log you posted using whatevergreen with injected display properties

Edited by jalavoui
Link to comment
Share on other sites

6 hours ago, jalavoui said:

benmacfreak

you need to inject a apple device id and a valid ig-platform not your card id... (nblue as a default apple device-id and ig-platform)

you and cecobald have the same bug - no tpad device in ioreg. try other config for xosi. that's how i made my device show up in ioreg

then try the i2c kext i've made few posts back

here's a working ioreg

Capturadeecra2024-05-15as17_53_58.png.9ef3a5338fc96ae253ecf8d918201eda.png

 

Mastachief

you can inject any new properties for your display as wish. maybe from hacintool ? goal is use other edid properties if needed

the CD Clock PLL idk you can try bios change and them check framebuffer logs

your sleep "fix" is interesting. i'll check it

is this sleep fix a result of

[IGFB][ERROR][AUX       ] readAUX for address 0x600 failed with error 0xe00002d6

??

i couldnt find the i2c kext i looked back, didn't see it. and i dont know any apple deviceID and ig-platfom IDs to use.

Link to comment
Share on other sites

Posted (edited)

SO with the platform id 00008A52 and the device-id 528A0000, the below is observed, i also added the entire section to whenvergreen of the below IOProperties with my EDID modifed by the Fixedid app, as a result the display is now shown as internal. However colors are off no matter what i try, i figure it can be correct by using a different DisplayProductID and DisplayVendorID.

 

boot6.log

 

			<key>IOProviderMergeProperties</key>
			<dict>
				<key>DisplayProductID</key>
				<integer>40178</integer>
				<key>DisplayVendorID</key>
				<integer>1552</integer>
				<key>IOClass</key>
				<string>AppleBacklightDisplay</string>
				<key>IODisplayConnectFlags</key>
				<data>AAgAAA==</data>
				<key>IODisplayEDID</key>
				<data>AP///////wAGEPKcAAAAABoVAQSVGg54Au8Fl1dUkiciUFQAAAABAQEBAQEBAQEBAQEBAQEBLjaAoHA4H0AwIDUAWMIQAAAaHySAoHA4H0AwIDUAWMIQAAAaAAAA/ABDb2xvciBMQ0QKICAgAAAA/QA4TB5TEQAKICAgICAgAIY=</data>
				<key>IODisplayGUID</key>
				<integer>436849163854938112</integer>
				<key>IODisplayPrefsKey</key>
				<string>IOService:/AppleACPIPlatformExpert/PC00@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-610-9cf2</string>
			</dict>

IOREG

 

Screenshot2024-05-16at10_15_33AM.thumb.png.cccbccf2570e2ab1acea422d1ba06675.png

 

Hackintool

 

Screenshot2024-05-16at10_22_44AM.thumb.png.0fd3f28e77bcf040eaa9c2e34a2fdc73.png

 

System Preferences > Displays

 

Screenshot2024-05-16at10_15_51AM.thumb.png.eeeece588804e7da4a4f64995f7d57eb.png

 

VRAM at 2048

 

Screenshot2024-05-16at10_15_01AM.thumb.png.b35dd040caf6b92777b4ae71b2fbd88c.png

 

 

 

 

 

 

 

Edited by Mastachief
Link to comment
Share on other sites

Posted (edited)

you're right if i choose a imac display i get the correct resolution and colors (doesnt depend on smbios)

the ig-platform best fit should have 4 pipes as in linux (not important for framebuffer mode)

the error

[IGFB][ERROR][DISPLAY   ] proAudioWorkLoadCallback called for wrong platform\

is patched in nblue (for ventura)

 

i think this whatevergreen injection

image.thumb.png.72ad8f5e8a1d9765bc2169ba55fe6340.png

might break aux but also "fixs" enter sleep

but this is display specific. is this what Mastachief found by accident ?

 

also in whatevergreen in the display injection the overwrite class can be deleted or set back to AppleDisplay if need

this might be best idea cause i dont see apple code work in AppleBacklightDisplay for our displays without some eavy patches

 

this is not the same as number of connectors but pipes (as in linux)

the icl code seems to use 3 and tgl 4

maybe doesnt matter cause laptop seems tobe atatched to pipe A

atm idc for hdmi connection

 

better focus on what matters:

- driver config parameters

- enable interrupts so acelearator start loading and disable wrong ones

Edited by jalavoui
Link to comment
Share on other sites

On 5/13/2024 at 9:52 PM, jalavoui said:

for those unsuported displays only way to find out is check nblue/whatevergreen/kernel logs

the icl logs start with this line

 kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) PlatformID found: 8a5c0002 (or other id if using device/ig-platform injection)

 

 

so options are:

1 ) system hangs and no panic log  (no chance)

2) panic and log file in  /Library/Logs/DiagnosticReports

3) nblue/whatevergreen produce AppleIntelICLLPGraphicsFramebuffer logs (get them after a reboot with nblue/whatevergreen disabled if system hangs)

 

open terminal paste

log show --style syslog --predicate 'processID == 0' --last 1h --info --debug  > x.log

then filter for AppleIntelICLLPGraphicsFramebuffer

 

Capturadeecra2024-05-14as01_14_08.thumb.png.23f587a4bea6fd99c2ac69255289ca2f.png

 

this is how the driver started to work - we check for bugs and patch them but ofc we need logs todo it

 

NootedBlue.kext.zip 30.25 kB · 8 downloads NootedBlue-master.zip 370.8 kB · 2 downloads

 

panic log files are stored in /Library/Logs/DiagnosticReports

don't post panic screenshots they help very little

panic file as functions and address calls that we use to patch bugs

 

Will have some downtime this weekend to test this properly, in the meantime however just a quick feedback.

 

Setting the device-id to anything other than its native value (0x46a6) will result in a hang/crash (presumably because the framebuffer is attempting to load) however there are no panic logs in /Library/Logs/DiagnosticReports and no trace of ICLLP in the log file...

 

Link to comment
Share on other sites

×
×
  • Create New...