shl628 Posted May 11 Author Share Posted May 11 (edited) 1. Regarding the problem of booting stopping when using NBlue @sergANt The screen where the booting has stopped is the same as mine. When I boot with NBlue applied, booting stops at the part where KextLog and AuxiliaryKernelExtensions.kc are loaded. Also, I don't think Lilu is causing the boot freeze issue. AuxiliaryKernelExtensions.kc contains iGPU Kext Drivers, and when loaded, Initialization of the graphics driver begins. In the process, logic to check the currently set CD Clock Frequency is built into the ICL Kext Drivers. If the CD Clock Frequency is set to less than 648 MHz, an Unsupported CD Clock Frequency kernel panic will occur. The important thing here is that Unsupported CD Clock Frequency kernel panic is not visible in the screen log. It just stops booting. Even if I force the CD Clock Frequency to be higher than 648 MHz in BIOS settings using RU.efi, I still need WEG's -igfxcdc boot arg. So, when I check the log by applying -wegdbg boot arg, I clearly used RU.efi to force the CD Clock Frequency in the BIOS settings to be higher than 648 MHz, but looking at the log of WEG's CDC patch module, the current log will be displayed showing that the CD Clock is set to 172.8 MHz. [ 19.927145]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: Called with controller at 0xffffff90600c8000. [ 19.927148]: WhateverGreen igfx: @ CDC: ProbeCDClockFrequency() DInfo: The current core display clock frequency is 172.8 MHz. [ 19.927150]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: The currrent core display clock frequency is not supported. [ 19.927152]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Reference frequency is 38.4 MHz. [ 19.927154]: WhateverGreen igfx: @ CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock frequency will be set to 652.8 MHz. [ 19.927156]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock PLL frequency will be set to 1305600000 Hz. [ 19.928386]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock PLL has been disabled. [ 19.930839]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock has been reprogrammed and PLL has been re-enabled. [ 19.930849]: WhateverGreen igfx: @ CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock frequency is 652.8 MHz now. [ 19.930853]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: The core display clock has been switched to a supported frequency. [ 19.930857]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: Will invoke the original function. [ 19.930861]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: The original function returns 0x4dd1e000. I'm not sure why either... 🥹 Probably, I think it varies from laptop to laptop, with some laptop models setting the CD Clock Frequency to a high default value in the BIOS settings, while others have it set to a low default setting. 2. About DevirtualiseMmio Quirk In the past, I was able to boot even if I turned off the DevirtualiseMmio option. However, if I use RU.efi and set the DVMT Pre-Allocated Memory in BIOS settings to 96MB, 128MB, or 160MB or more than 64MB, macOS does not boot. macOS does not output an error log, does not cause a kernel panic, and suddenly reboots in the early boot process. And, when I changed the DVMT Pre-Allocated Memory to 64MB, there was no rebooting problem and it booted. If I change it to 96MB or more, it suddenly reboots during the early booting process. So, I turned on DevirtualiseMmio in the Booter - Quirks option, and it booted without a reboot problem even if I changed the DVMT Pre-Allocated Memory to 96MB or more. Perhaps, I think, changing the DVMT Pre-Allocated Memory setting causes some changes to the Memory Map (MMIO). Of course, this may vary depending on the laptop manufacturer, model, and firmware. For reference, if DVMT Pre-Allocated Memory is set to 64MB on actual Ice Lake laptops, QE/CI graphics acceleration will be enabled, but mouse cursor glitches will occur. There are cases where the mouse cursor glitch problem was solved by changing the DVMT Pre-Allocated Memory from 64MB to 128MB, 160MB, etc. And, when I changed the DVMT Pre Allocated Memory from 64MB to 160 MB, the "[IGFB][ERROR][DISPLAY] Insufficient stolen memory" log disappeared. Edited May 11 by shl628 Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 here's my settings - Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 27 minutes ago, shl628 said: 1. Regarding the problem of booting stopping when using NBlue @sergANt The screen where the booting has stopped is the same as mine. When I boot with NBlue applied, booting stops at the part where KextLog and AuxiliaryKernelExtensions.kc are loaded. Also, I don't think Lilu is causing the boot freeze issue. AuxiliaryKernelExtensions.kc contains iGPU Kext Drivers, and when loaded, Initialization of the graphics driver begins. In the process, logic to check the currently set CD Clock Frequency is built into the ICL Kext Drivers. If the CD Clock Frequency is set to less than 648 MHz, an Unsupported CD Clock Frequency kernel panic will occur. The important thing here is that Unsupported CD Clock Frequency kernel panic is not visible in the screen log. It just stops booting. Even if I force the CD Clock Frequency to be higher than 648 MHz in BIOS settings using RU.efi, I still need WEG's -igfxcdc boot arg. So, when I check the log by applying -wegdbg boot arg, I clearly used RU.efi to force the CD Clock Frequency in the BIOS settings to be higher than 648 MHz, but looking at the log of WEG's CDC patch module, the current A log will be displayed showing that the CD Clock is set to 172.8 MHz. [ 19.927145]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: Called with controller at 0xffffff90600c8000. [ 19.927148]: WhateverGreen igfx: @ CDC: ProbeCDClockFrequency() DInfo: The current core display clock frequency is 172.8 MHz. [ 19.927150]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: The currrent core display clock frequency is not supported. [ 19.927152]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Reference frequency is 38.4 MHz. [ 19.927154]: WhateverGreen igfx: @ CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock frequency will be set to 652.8 MHz. [ 19.927156]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock PLL frequency will be set to 1305600000 Hz. [ 19.928386]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock PLL has been disabled. [ 19.930839]: WhateverGreen igfx: @ (DBG) CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock has been reprogrammed and PLL has been re-enabled. [ 19.930849]: WhateverGreen igfx: @ CDC: sanitizeCDClockFrequency() DInfo: Core Display Clock frequency is 652.8 MHz now. [ 19.930853]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: The core display clock has been switched to a supported frequency. [ 19.930857]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: Will invoke the original function. [ 19.930861]: WhateverGreen igfx: @ (DBG) CDC: ProbeCDClockFrequency() DInfo: The original function returns 0x4dd1e000. I'm not sure why either... 🥹 Probably, I think it varies from laptop to laptop, with some laptop models setting the CD Clock Frequency to a high default value in the BIOS settings, while others have it set to a low default setting. 2. About DevirtualiseMmio Quirk In the past, I was able to boot even if I turned off the DevirtualiseMmio option. However, if I use RU.efi and set the DVMT Pre-Allocated Memory in BIOS settings to 96MB, 128MB, or 160MB or more than 64MB, macOS does not boot. macOS does not output an error log, does not cause a kernel panic, and suddenly reboots in the early boot process. And, when I changed the DVMT Pre-Allocated Memory to 64MB, there was no rebooting problem and it booted. If I change it to 96MB or more, it suddenly reboots during the early booting process. So, I turned on DevirtualiseMmio in the Booter - Quirks option, and it booted without a reboot problem even if I changed the DVMT Pre-Allocated Memory to 96MB or more. Perhaps, I think, changing the DVMT Pre-Allocated Memory setting causes some changes to the Memory Map (MMIO). Of course, this may vary depending on the laptop manufacturer, model, and firmware. For reference, if DVMT Pre-Allocated Memory is set to 64MB on actual Ice Lake laptops, QE/CI graphics acceleration will be enabled, but mouse cursor glitches will occur. There are cases where the mouse cursor glitch problem was solved by changing the DVMT Pre-Allocated Memory from 64MB to 128MB, 160MB, etc. And, when I changed the DVMT Pre Allocated Memory from 64MB to 160 MB, the "[IGFB][ERROR][DISPLAY] Insufficient stolen memory" log disappeared. i horribly can only go up to 64mb dvmt pre-allocated memory on my laptop and i've never used RU.efi and don't know ANYTHING about using it nor uefi editing whatsoever, so expecting to follow a guide or youtube tutorial on it, not gonna work. Unless someone was to go on a discord call OR facetime call to help walk me through it, im not gonna be able to do so tbh. Link to comment Share on other sites More sharing options...
jalavoui Posted May 11 Share Posted May 11 (edited) i patched the nblue default ig-platform settings and got rid of some of those cd clocks and memory bugs. but i guess won't work for all laptops workaround is try another device-id and ig-platform using opencore device settings best idea is try whatevergreen with some settings for cd clock, etc then i can add some of those patches as default to nblue whatevegreen patches assume ice lake values but linux handles all displays. void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv) { if (DISPLAY_VER(dev_priv) >= 20) { dev_priv->display.funcs.cdclk = &mtl_cdclk_funcs; dev_priv->display.cdclk.table = lnl_cdclk_table; } else if (DISPLAY_VER(dev_priv) >= 14) { dev_priv->display.funcs.cdclk = &mtl_cdclk_funcs; dev_priv->display.cdclk.table = mtl_cdclk_table; } else if (IS_DG2(dev_priv)) { dev_priv->display.funcs.cdclk = &tgl_cdclk_funcs; dev_priv->display.cdclk.table = dg2_cdclk_table; } else if (IS_ALDERLAKE_P(dev_priv)) { /* Wa_22011320316:adl-p[a0] */ if (IS_ALDERLAKE_P(dev_priv) && IS_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0)) { dev_priv->display.cdclk.table = adlp_a_step_cdclk_table; dev_priv->display.funcs.cdclk = &tgl_cdclk_funcs; } else if (IS_RAPTORLAKE_U(dev_priv)) { dev_priv->display.cdclk.table = rplu_cdclk_table; dev_priv->display.funcs.cdclk = &rplu_cdclk_funcs; } else { dev_priv->display.cdclk.table = adlp_cdclk_table; dev_priv->display.funcs.cdclk = &tgl_cdclk_funcs; } } else if (IS_ROCKETLAKE(dev_priv)) { dev_priv->display.funcs.cdclk = &tgl_cdclk_funcs; dev_priv->display.cdclk.table = rkl_cdclk_table; } else if (DISPLAY_VER(dev_priv) >= 12) { dev_priv->display.funcs.cdclk = &tgl_cdclk_funcs; dev_priv->display.cdclk.table = icl_cdclk_table; } else if (IS_JASPERLAKE(dev_priv) || IS_ELKHARTLAKE(dev_priv)) { dev_priv->display.funcs.cdclk = &ehl_cdclk_funcs; dev_priv->display.cdclk.table = icl_cdclk_table; } else if (DISPLAY_VER(dev_priv) >= 11) { dev_priv->display.funcs.cdclk = &icl_cdclk_funcs; dev_priv->display.cdclk.table = icl_cdclk_table; } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) { dev_priv->display.funcs.cdclk = &bxt_cdclk_funcs; if (IS_GEMINILAKE(dev_priv)) dev_priv->display.cdclk.table = glk_cdclk_table; else dev_priv->display.cdclk.table = bxt_cdclk_table; } else if (DISPLAY_VER(dev_priv) == 9) { dev_priv->display.funcs.cdclk = &skl_cdclk_funcs; } else if (IS_BROADWELL(dev_priv)) { dev_priv->display.funcs.cdclk = &bdw_cdclk_funcs; } else if (IS_HASWELL(dev_priv)) { dev_priv->display.funcs.cdclk = &hsw_cdclk_funcs; } else if (IS_CHERRYVIEW(dev_priv)) { dev_priv->display.funcs.cdclk = &chv_cdclk_funcs; } else if (IS_VALLEYVIEW(dev_priv)) { dev_priv->display.funcs.cdclk = &vlv_cdclk_funcs; } else if (IS_SANDYBRIDGE(dev_priv) || IS_IVYBRIDGE(dev_priv)) { dev_priv->display.funcs.cdclk = &fixed_400mhz_cdclk_funcs; } else if (IS_IRONLAKE(dev_priv)) { dev_priv->display.funcs.cdclk = &ilk_cdclk_funcs; } else if (IS_GM45(dev_priv)) { dev_priv->display.funcs.cdclk = &gm45_cdclk_funcs; } else if (IS_G45(dev_priv)) { dev_priv->display.funcs.cdclk = &g33_cdclk_funcs; } else if (IS_I965GM(dev_priv)) { dev_priv->display.funcs.cdclk = &i965gm_cdclk_funcs; } else if (IS_I965G(dev_priv)) { dev_priv->display.funcs.cdclk = &fixed_400mhz_cdclk_funcs; } else if (IS_PINEVIEW(dev_priv)) { dev_priv->display.funcs.cdclk = &pnv_cdclk_funcs; } else if (IS_G33(dev_priv)) { dev_priv->display.funcs.cdclk = &g33_cdclk_funcs; } else if (IS_I945GM(dev_priv)) { dev_priv->display.funcs.cdclk = &i945gm_cdclk_funcs; } else if (IS_I945G(dev_priv)) { dev_priv->display.funcs.cdclk = &fixed_400mhz_cdclk_funcs; } else if (IS_I915GM(dev_priv)) { dev_priv->display.funcs.cdclk = &i915gm_cdclk_funcs; } else if (IS_I915G(dev_priv)) { dev_priv->display.funcs.cdclk = &i915g_cdclk_funcs; } else if (IS_I865G(dev_priv)) { dev_priv->display.funcs.cdclk = &i865g_cdclk_funcs; } else if (IS_I85X(dev_priv)) { dev_priv->display.funcs.cdclk = &i85x_cdclk_funcs; } else if (IS_I845G(dev_priv)) { dev_priv->display.funcs.cdclk = &i845g_cdclk_funcs; } else if (IS_I830(dev_priv)) { dev_priv->display.funcs.cdclk = &i830_cdclk_funcs; } if (drm_WARN(&dev_priv->drm, !dev_priv->display.funcs.cdclk, "Unknown platform. Assuming i830\n")) dev_priv->display.funcs.cdclk = &i830_cdclk_funcs; } this means for some displays it just wont work maybe i just change whatevergreen code so i does this for gen11 static void bxt_get_cdclk(struct drm_i915_private *dev_priv, struct intel_cdclk_config *cdclk_config) { u32 squash_ctl = 0; u32 divider; int div; bxt_de_pll_readout(dev_priv, cdclk_config); if (DISPLAY_VER(dev_priv) >= 12) cdclk_config->bypass = cdclk_config->ref / 2; else if (DISPLAY_VER(dev_priv) >= 11) cdclk_config->bypass = 50000; else cdclk_config->bypass = cdclk_config->ref; if (cdclk_config->vco == 0) { cdclk_config->cdclk = cdclk_config->bypass; goto out; } divider = intel_de_read(dev_priv, CDCLK_CTL) & BXT_CDCLK_CD2X_DIV_SEL_MASK; switch (divider) { case BXT_CDCLK_CD2X_DIV_SEL_1: div = 2; break; case BXT_CDCLK_CD2X_DIV_SEL_1_5: div = 3; break; case BXT_CDCLK_CD2X_DIV_SEL_2: div = 4; break; case BXT_CDCLK_CD2X_DIV_SEL_4: div = 8; break; default: MISSING_CASE(divider); return; } if (HAS_CDCLK_SQUASH(dev_priv)) squash_ctl = intel_de_read(dev_priv, CDCLK_SQUASH_CTL); if (squash_ctl & CDCLK_SQUASH_ENABLE) { u16 waveform; int size; size = REG_FIELD_GET(CDCLK_SQUASH_WINDOW_SIZE_MASK, squash_ctl) + 1; waveform = REG_FIELD_GET(CDCLK_SQUASH_WAVEFORM_MASK, squash_ctl) >> (16 - size); cdclk_config->cdclk = DIV_ROUND_CLOSEST(hweight16(waveform) * cdclk_config->vco, size * div); } else { cdclk_config->cdclk = DIV_ROUND_CLOSEST(cdclk_config->vco, div); } out: /* * Can't read this out :( Let's assume it's * at least what the CDCLK frequency requires. */ cdclk_config->voltage_level = intel_cdclk_calc_voltage_level(dev_priv, cdclk_config->cdclk); } Edited May 11 by jalavoui Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 Just now, jalavoui said: i patched the nblue default ig-platform settings and got rid of some of those cd clocks and memory bugs. but i guess won't work for all laptops workaround is try another device-id and ig-platform using opencore device settings best idea is try whatevergreen with some settings for cd clock, etc right, well, i've checked the whatevergreen faq up and down, none of the device-id and ig-platform settings get it to load properly, literally none. Idk what to try at this point, nor cd clock, nothing. idk what to do. Link to comment Share on other sites More sharing options...
Mastachief Posted May 11 Share Posted May 11 Are you using windows to setup the installer USB for Ventura, that's not the recommended way, in order to ensure file and folder integrity when setting up the USB, It might be better to use the ventura vm floating around out there, then you will be able to use hackintool etc to setup your USB.If you are using windows and the cvad tool to download the ventura recovery, it had issues with 13.6.5 for some people after they attempt to use the hfs recovery file. And support was dropped for that tool as well.Once you are able to boot with the installer fully and it goes all the way to the install gui, you can then back up any important files, then copy those onto the same install USB, also make sure wifi is seen and working in the installer, so that when you use hackintool after it is installed it will be fine, it is also a good idea to get a copy of Firefox beforehand as without metal acceleration you will find using safari difficult, entire pages won't show so you won't even be able to click on the correct screens Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 yeah im using windows 11 to make the USB, i didnt know doin that wasnt a good idea sorry. Link to comment Share on other sites More sharing options...
sergANt Posted May 11 Share Posted May 11 (edited) 15 hours ago, shl628 said: AuxiliaryKernelExtensions.kc contains iGPU Kext Drivers, and when loaded, Initialization of the graphics driver begins. In the process, logic to check the currently set CD Clock Frequency is built into the ICL Kext Drivers. If the CD Clock Frequency is set to less than 648 MHz, an Unsupported CD Clock Frequency kernel panic will occur. The important thing here is that Unsupported CD Clock Frequency kernel panic is not visible in the screen log. It just stops booting. Hi shl628. It looks like that. Today, using the latest NootedBlue, the boot hang with an error related to the CD Clock Frequency. In my BIOS parameters, it is set to 652.8 MHz. jalavoui, with latest NootedBlue.kext the boot hang even if i remove my iGPU id from kext config. 15 hours ago, benmacfreak said: i horribly can only go up to 64mb dvmt pre-allocated memory on my laptop and i've never used RU.efi and don't know ANYTHING about using it nor uefi editing whatsoever, so expecting to follow a guide or youtube tutorial on it, not gonna work. Unless someone was to go on a discord call OR facetime call to help walk me through it, im not gonna be able to do so tbh. Maybe you don`t need to use RU.efi. Try to search in your BIOS indicated params and set it same. If you couldn't find this parameters try to activate all bios settings. For MSI laptops, you need to enter BIOS and press a combination right CTRL + right SHIFT + left ALT + F2 to access to all settings. Perhaps Asus laptops have something similar. If you still need to edit the BIOS, there's a guide. This a procedure guide. If you use it, need search and edit other variables. AT YOUR OWN RISK! Edited May 11 by sergANt Link to comment Share on other sites More sharing options...
Mastachief Posted May 11 Share Posted May 11 The KP is saying that it is related to applesmc, there are some calls that applesmc makes based on the smbios value being used, read the thread from the beginning to get a better understanding, have you tried macbookair9,1 or macbookpro14,1? Using fakesmc could also be an option, however I never got it to work.Your bios settings are showing other values that could be modified, one of your dvmt values should be set to max, there are a few others Link to comment Share on other sites More sharing options...
jalavoui Posted May 11 Share Posted May 11 (edited) added cd clock similiar patch test also with whatevergreen patch (not the same) i think this code only works for icl family displays why? cause of this code void __thiscall AppleIntelFramebufferController::setCDClockFrequency (AppleIntelFramebufferController *this,ulonglong param_1) { byte bVar1; uint uVar2; long lVar3; int iVar4; _DAT_0010b828 = _DAT_0010b828 + 1; hwWriteMailbox(this,7,3,false); if ((long)param_1 < 0x42603000) { if (param_1 == 0x249f0000) { _DAT_0010b838 = _DAT_0010b838 + 1; } else { if (param_1 != 624000000) { if (param_1 != 0x41cdb400) { LAB_00083ef8: _DAT_0010b868 = _DAT_0010b868 + 1; _kprintf("[IGFB][ERROR][%-10s] Invalid CD clock frequency %llu\n","DISPLAY",param_1); goto LAB_00083f17; } _DAT_0010b850 = _DAT_0010b850 + 1; goto LAB_00083ee8; } _DAT_0010b840 = _DAT_0010b840 + 1; } lVar3 = 0; } else { if (param_1 != 0x42603000) { if (param_1 == 0x4d3f6400) { _DAT_0010b860 = _DAT_0010b860 + 1; } else { if (param_1 != 0x4dd1e000) goto LAB_00083ef8; _DAT_0010b858 = _DAT_0010b858 + 1; } LAB_00083f17: lVar3 = 2; goto LAB_00083f1c; } _DAT_0010b848 = _DAT_0010b848 + 1; LAB_00083ee8: lVar3 = 1; } LAB_00083f1c: _DAT_0010b830 = _DAT_0010b830 + 1; bVar1 = (&fPllRatioCdClkPair) [lVar3 * 0xc + (ulong)*(uint *)&(this->m_AppleIntelFramebufferController).field_0xe90 * 0x24]; WriteRegister32(this,0x46070,(uint)bVar1); WriteRegister32(this,0x46070,bVar1 | 0x80000000); iVar4 = 200; do { _DAT_0010b870 = _DAT_0010b870 + 1; uVar2 = ReadRegister32(this,0x46070); if ((uVar2 >> 0x1e & 1) != 0) { _DAT_0010b878 = _DAT_0010b878 + 1; _DAT_0010b890 = _DAT_0010b890 + 1; __os_log_internal(0,PTR___os_log_default_000eb0b0,0, "[IGFB][LOG ][%-10s] CD Clock PLL is locked\n","DISPLAY"); uVar2 = ReadRegister32(this,0x46000); WriteRegister32(this,0x46000, (*(uint *)(&UNK_000b0904 + lVar3 * 0xc + (ulong)*(uint *)&(this->m_AppleIntelFramebufferController). field_0xe90 * 0x24) & 0x7ff) + (uVar2 & 0xff07f800) + 0x380000); *(ulonglong *)&(this->m_AppleIntelFramebufferController).field_0xe80 = param_1; uVar2 = calculateVoltageLevel(); hwWriteMailbox(this,7,uVar2,false); return; } _IODelay(1); iVar4 = iVar4 + -1; } while (iVar4 != 0); _DAT_0010b880 = _DAT_0010b880 + 1; _DAT_0010b888 = _DAT_0010b888 + 1; /* WARNING: Subroutine does not return */ _panic("\"[IGFB][PANIC][%-9s] \" \"CD clock PLL lock failed\\n\" @%s:%d","DISPLAY", "AppleIntelClocks.cpp",0x55); } this means that for unsupported displays more patches will be needed btw i also got a hang with no panic it was caused by a bad function definition inside nblue that caused lilu (or nblue) to hang it was here {"__ZN31AppleIntelFramebufferController14ReadRegister32Em",orapReadRegister32, this->owrapReadRegister32}, should be {"__ZN31AppleIntelFramebufferController14ReadRegister32Em",wrapReadRegister32, this->owrapReadRegister32}, i think i have more of this bugs in nblue to catch there's a patch for ppl who have 4k display laptops if you have one of those don't tell me Edited May 13 by jalavoui 1 Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 1 hour ago, jalavoui said: added cd clock similiar patch test also with whatevergreen patch (not the same) i think this code only works for icl family displays why? cause of this code void __thiscall AppleIntelFramebufferController::setCDClockFrequency (AppleIntelFramebufferController *this,ulonglong param_1) { byte bVar1; uint uVar2; long lVar3; int iVar4; _DAT_0010b828 = _DAT_0010b828 + 1; hwWriteMailbox(this,7,3,false); if ((long)param_1 < 0x42603000) { if (param_1 == 0x249f0000) { _DAT_0010b838 = _DAT_0010b838 + 1; } else { if (param_1 != 624000000) { if (param_1 != 0x41cdb400) { LAB_00083ef8: _DAT_0010b868 = _DAT_0010b868 + 1; _kprintf("[IGFB][ERROR][%-10s] Invalid CD clock frequency %llu\n","DISPLAY",param_1); goto LAB_00083f17; } _DAT_0010b850 = _DAT_0010b850 + 1; goto LAB_00083ee8; } _DAT_0010b840 = _DAT_0010b840 + 1; } lVar3 = 0; } else { if (param_1 != 0x42603000) { if (param_1 == 0x4d3f6400) { _DAT_0010b860 = _DAT_0010b860 + 1; } else { if (param_1 != 0x4dd1e000) goto LAB_00083ef8; _DAT_0010b858 = _DAT_0010b858 + 1; } LAB_00083f17: lVar3 = 2; goto LAB_00083f1c; } _DAT_0010b848 = _DAT_0010b848 + 1; LAB_00083ee8: lVar3 = 1; } LAB_00083f1c: _DAT_0010b830 = _DAT_0010b830 + 1; bVar1 = (&fPllRatioCdClkPair) [lVar3 * 0xc + (ulong)*(uint *)&(this->m_AppleIntelFramebufferController).field_0xe90 * 0x24]; WriteRegister32(this,0x46070,(uint)bVar1); WriteRegister32(this,0x46070,bVar1 | 0x80000000); iVar4 = 200; do { _DAT_0010b870 = _DAT_0010b870 + 1; uVar2 = ReadRegister32(this,0x46070); if ((uVar2 >> 0x1e & 1) != 0) { _DAT_0010b878 = _DAT_0010b878 + 1; _DAT_0010b890 = _DAT_0010b890 + 1; __os_log_internal(0,PTR___os_log_default_000eb0b0,0, "[IGFB][LOG ][%-10s] CD Clock PLL is locked\n","DISPLAY"); uVar2 = ReadRegister32(this,0x46000); WriteRegister32(this,0x46000, (*(uint *)(&UNK_000b0904 + lVar3 * 0xc + (ulong)*(uint *)&(this->m_AppleIntelFramebufferController). field_0xe90 * 0x24) & 0x7ff) + (uVar2 & 0xff07f800) + 0x380000); *(ulonglong *)&(this->m_AppleIntelFramebufferController).field_0xe80 = param_1; uVar2 = calculateVoltageLevel(); hwWriteMailbox(this,7,uVar2,false); return; } _IODelay(1); iVar4 = iVar4 + -1; } while (iVar4 != 0); _DAT_0010b880 = _DAT_0010b880 + 1; _DAT_0010b888 = _DAT_0010b888 + 1; /* WARNING: Subroutine does not return */ _panic("\"[IGFB][PANIC][%-9s] \" \"CD clock PLL lock failed\\n\" @%s:%d","DISPLAY", "AppleIntelClocks.cpp",0x55); } this means that for unsupported displays more patches will be needed NootedBlue.kext.zip 30.28 kB · 3 downloads NootedBlue-master.zip 369.82 kB · 0 downloads btw i also got a hang with no panic it was caused by a bad function definition inside nblue that caused lilu (or nblue) to hang it was here {"__ZN31AppleIntelFramebufferController14ReadRegister32Em",orapReadRegister32, this->owrapReadRegister32}, should be {"__ZN31AppleIntelFramebufferController14ReadRegister32Em",wrapReadRegister32, this->owrapReadRegister32}, i think i have more of this bugs in nblue to catch there's a patch for ppl who have 4k display laptops if you have one of those don't tell me i just tried it on my laptop, booted into 13.6.5, that's all i know rn Link to comment Share on other sites More sharing options...
jalavoui Posted May 11 Share Posted May 11 really ? is it working for you ? go sell it before it crash can you post logs its hard do believe Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 ok here's the ioreg dump, i didnt know how to get other logs tbh. bennji’s MacBook Pro.ioreg Link to comment Share on other sites More sharing options...
jalavoui Posted May 11 Share Posted May 11 (edited) cool now that you can boot try wahtevergreen with some device properties or nblue with no device props there's also a way to disable PEG1 with device properties (this helps a lot as the gpu just vanish from ioreg) add boolean variable disable-gpu=yes info.plist with no edid injection migth work for you like this and maybe boot with -v keepsyms=1 debug=0x100 agdpmod=pikera you have a VoodooGPIOTigerLakeH device hmmm try i2c kext posted above no keyboard ? i dont see tpad device. is xosi patch working ? only if system is unstable change csr-config and security wifi+bluettoth are possible to setup with right kexts that's all i can see for now to get a lot after boot open terminal paste log show --style syslog --predicate 'processID == 0' --last 1h --info --debug > x.log you get a file x.log on home folder i fixed some acpi errors here's my latest EFI.zip for those with displays that attach to framebuffer 0 try swap connector to frame 1 that avoids lcd+power code that prevents display to work todo so 1st check logs. if the display attaches to frame 0 then better swap connectors i have it in nblue reversed order but same logic Edited May 11 by jalavoui 1 Link to comment Share on other sites More sharing options...
benmacfreak Posted May 11 Share Posted May 11 2 minutes ago, jalavoui said: cool now that you can boot try wahtevergreen with some device properties or nblue with no device props i did with nblue and none, i get a hang, and i wasnt sure what device properties to add with whatevergreen. the ones from skl628's config didnt yield any better nor did any of the ones from the whatevergreen faq on github. Link to comment Share on other sites More sharing options...
benmacfreak Posted May 12 Share Posted May 12 (edited) 4 hours ago, jalavoui said: cool now that you can boot try wahtevergreen with some device properties or nblue with no device props there's also a way to disable PEG1 with device properties (this helps a lot as the gpu just vanish from ioreg) add boolean variable disable-gpu=yes info.plist with no edid injection migth work for you like this and maybe boot with -v keepsyms=1 debug=0x100 agdpmod=pikera you have a VoodooGPIOTigerLakeH device hmmm try i2c kext posted above no keyboard ? i dont see tpad device. is xosi patch working ? only if system is unstable change csr-config and security wifi+bluettoth are possible to setup with right kexts that's all i can see for now to get a lot after boot open terminal paste log show --style syslog --predicate 'processID == 0' --last 1h --info --debug > x.log you get a file x.log on home folder i fixed some acpi errors here's my latest EFI.zip 18.55 kB · 3 downloads for those with displays that attach to framebuffer 0 try swap connector to frame 1 that avoids lcd+power code that prevents display to work todo so 1st check logs. if the display attaches to frame 0 then better swap connectors i have it in nblue reversed order but same logic i just tried those device properties, no luck, but i did get past either -v OR the apple logo and it's at a blank screen that's it with nblue. Edited May 12 by benmacfreak nblue Link to comment Share on other sites More sharing options...
jkbuha Posted May 12 Share Posted May 12 (edited) 11 hours ago, jalavoui said: cool now that you can boot try wahtevergreen with some device properties or nblue with no device props there's also a way to disable PEG1 with device properties (this helps a lot as the gpu just vanish from ioreg) add boolean variable disable-gpu=yes info.plist with no edid injection migth work for you like this and maybe boot with -v keepsyms=1 debug=0x100 agdpmod=pikera you have a VoodooGPIOTigerLakeH device hmmm try i2c kext posted above no keyboard ? i dont see tpad device. is xosi patch working ? only if system is unstable change csr-config and security wifi+bluettoth are possible to setup with right kexts that's all i can see for now to get a lot after boot open terminal pasteXPS 9520 Macbook Air ioreg.zip log show --style syslog --predicate 'processID == 0' --last 1h --info --debug > x.log you get a file x.log on home folder i fixed some acpi errors here's my latest EFI.zip 18.55 kB · 7 downloads for those with displays that attach to framebuffer 0 try swap connector to frame 1 that avoids lcd+power code that prevents display to work todo so 1st check logs. if the display attaches to frame 0 then better swap connectors i have it in nblue reversed order but same logic Doesnt boot for my alderlake (0x46a6) unfortunately. With or without injecting platform-id and device-id, the boot process freezes up just before secondary boot, but there's clearly a KP somewhere as I can't ssh/vnc into the machine after that. It boots with the modified (and the unmodified) whatevergreen, but with only 8MB VRAM. XPS 9520 Macbook Air ioreg.zip To make the trackpad work I had to insert 0x51e98086&0xFFFCFFFF into IOPCIMatch class, that makes it work in polling mode, but I need to insert a TPDXX device at some point to recognise the GPIO pin. I'll get round to that when I fix acceleration on the iGPU Edited May 12 by jkbuha additional files Link to comment Share on other sites More sharing options...
benmacfreak Posted May 12 Share Posted May 12 i get the exact same with my iGPU and my trackpad doesn't work at all even if i add my deviceID. 1 Link to comment Share on other sites More sharing options...
jkbuha Posted May 13 Share Posted May 13 On 3/22/2024 at 2:07 PM, Mastachief said: By using the modified whatever green from shl628, the below settings below allow booting to a black screen. you can remote to the machine, the session has the framebuffer working, those images that you see posted near the beginning of this thread are proof. important note, if you change the framebuffer-con1 to framebuffer-con0 in the Device properties while using the below config, you get a KP, however if you change it to con2, con3, there is no change in ioreg, it always attaches to appledisplay on framebuffer@1 the specific property however should be applebacklightdisplay on frambebuffer@0 which doesnt happen. <key>PciRoot(0x0)/Pci(0x2,0x0)</key> <dict> <key>AAPL,GfxYTile</key> <data>01000000</data> <key>AAPL,ig-platform-id</key> <data>0100718A</data> <key>device-id</key> <data>718A0000</data> <key>dpcd-max-link-rate</key> <data>0A000000</data> <key>enable-backlight-registers-fix</key> <data>01000000</data> <key>enable-cdclk-frequency-fix</key> <data>01000000</data> <key>enable-dbuf-early-optimizer</key> <data>01000000</data> <key>enable-dpcd-max-link-rate-fix</key> <data>01000000</data> <key>enable-dvmt-calc-fix</key> <data>01000000</data> <key>force-online</key> <data>01000000</data> <key>framebuffer-con1-alldata</key> <data>020000000000000000000000000000000200000018010000</data> <key>framebuffer-con1-enable</key> <data>01000000</data> <key>framebuffer-fbmem</key> <data>00009000</data> <key>framebuffer-mobile</key> <data>01000000</data> <key>framebuffer-patch-enable</key> <data>01000000</data> <key>framebuffer-stolenmem</key> <data>00003001</data> <key>framebuffer-unifiedmem</key> <data>00000080</data> <key>igfxfw</key> <data>02000000</data> </dict> Just to clarify - this device-properties configuration does not have the same result on an AlderLake machine, at least mine anyway (0x46a6). Injecting these properties but with any device-id results in an (off-screen) KP, most likely because the iGPU tries to load the framebuffer. Whereas with these properties but not injecting any device-id, the second boot happens, without the framebuffer loading (VRAM 8MB). With/without the old SSDT-PNLF has the same effect. Link to comment Share on other sites More sharing options...
jalavoui Posted May 13 Share Posted May 13 (edited) 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 this is how the driver started to work - we check for bugs and patch them but ofc we need logs todo it 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 Edited May 20 by jalavoui Link to comment Share on other sites More sharing options...
benmacfreak Posted May 13 Share Posted May 13 1 hour ago, 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 in /library/logs (no chance) 2) panic and log file in /library/logs 3) nblue/whatevergreen produce AppleIntelICLLPGraphicsFramebuffer logs (get them after a reboot with nblue/whatevergreen disabled if system hangs) this is how the driver started to work - we check for bugs and patch them but ofc we need logs todo it i did get to a blank screen but couldnt ssh/vnc in from another computer as it panics shortly after i hit the blank/black screen. I had this same issue when nootedred was in development. Link to comment Share on other sites More sharing options...
benmacfreak Posted May 14 Share Posted May 14 3 hours ago, 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 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 · 0 downloads NootedBlue-master.zip 370.8 kB · 0 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 ok ill aim to get a log off this kext if it doesn't work.. Link to comment Share on other sites More sharing options...
jalavoui Posted May 14 Share Posted May 14 (edited) 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 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 Edited May 14 by jalavoui Link to comment Share on other sites More sharing options...
benmacfreak Posted May 14 Share Posted May 14 (edited) 8 minutes 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 right im just not sure how we do that. I'm gonna attempt to boot with my wifi and bluetooth off and/or trackpad kexts, and just ethernet, audio, and nblue/whatevergreen. and yeah ill try compiling my dsdt. Edited May 14 by benmacfreak Link to comment Share on other sites More sharing options...
benmacfreak Posted May 14 Share Posted May 14 (edited) 13 minutes 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 if it fails it breaks many things if you manage to fix it show the new ioreg oh i realized im using copied .aml files, i didnt run ssdttime on my laptop, oops, and i just made a copy of my config.plist and cleared them out by hitting delete and took a screenshot without it and uploaded my config when i did it. then put it back Edited May 14 by benmacfreak Link to comment Share on other sites More sharing options...
Recommended Posts