Jump to content

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


shl628
735 posts in this topic

Recommended Posts

Posted (edited)

@jalavoui 

By any chance, can I modify the code as follows and also add the GPU Sku Bypass patch?
I took the Sku Bypass binary patch from NBlue, added, modified, built, and applied the patch for kextIntelICL, but booting stopped.

void IGFX::ForceCompleteModeset::processFramebufferKext(KernelPatcher &patcher, size_t index, mach_vm_address_t address, size_t size) {	
	// AppleIntelFramebufferController::hwSetMode skip hwRegsNeedUpdate
	static const uint8_t f2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0x74, 0x3D};
	static const uint8_t r2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0xEB, 0x3D};
	
	// GPU Sku Bypass Bad Hack in IntelAccelerator::getGPUInfo
	static const uint8_t f[] = {
		0x41, 0x8B, 0x84, 0x24, 0x88, 0x11, 0x00, 0x00, 0x41, 0x8B, 0x8C, 0x24, 0x90, 0x11, 0x00, 0x00, 0x41, 0x89, 0x8C, 0x24, 0xCC, 0x12, 0x00, 0x00, 0x41, 0x89, 0x84, 0x24, 0xD0, 0x12, 0x00, 0x00, 0x83, 0xF9, 0x02, 0x74, 0x4D,
	};
	static const uint8_t r[] = {
		0x41, 0x8B, 0x84, 0x24, 0x88, 0x11, 0x00, 0x00, 0x41, 0x8B, 0x8C, 0x24, 0x90, 0x11, 0x00, 0x00, 0x41, 0x89, 0x8C, 0x24, 0xCC, 0x12, 0x00, 0x00, 0x41, 0x89, 0x84, 0x24, 0xD0, 0x12, 0x00, 0x00, 0x83, 0xF9, 0x02, 0xEB, 0x56,
	};

	KernelPatcher::LookupPatch patch { &kextIntelICLLPFb, f2, r2, sizeof(f2), 1 };
	patcher.applyLookupPatch(&patch);
	KernelPatcher::LookupPatch patch2 { &kextIntelICL, f, r, sizeof(f), 1 };
	patcher.applyLookupPatch(&patch2);
}

 

I tried applying the Sku Bypass v2 patch instead of the bad hack, but it still stops booting.
The current macOS version is macOS Ventura 13.6.5 (22G621).

 

+ The patched WhateverGreen.kext has been uploaded to GitHub.

Releases · lshbluesky/WhateverGreen (github.com)

Edited by shl628
  • Like 1
Link to comment
Share on other sites

not in that function that's for framebuffer

 

maybe inside here ?

 

bool IGFX::processKext(KernelPatcher &patcher, size_t index, mach_vm_address_t address, size_t size) {

auto cpuGeneration = BaseDeviceInfo::get().cpuGeneration;

 

if (currentGraphics && currentGraphics->loadIndex == index) {

if (disableIGTelemetry) {

auto symTelemetry = patcher.solveSymbol(index, "__ZN18IGTelemetryManager16prepareTelemetryEj");

 

you board seems with right configs. maybe try some patches on catalina ? 

 

i just added some code to whatevergreen

no sonoma patches atm! unless someone get the bytes for: AppleIntelFramebufferController::hwSetMode skip hwRegsNeedUpdate

 

// ventura

static const uint8_t f2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0x74, 0x3D};

static const uint8_t r2[] = {0xE8, 0x31, 0xE5, 0xFF, 0xFF, 0x84, 0xC0, 0xEB, 0x3D};

//catalina

static const uint8_t f3[]= {0xe8, 0x38, 0xe7, 0xff, 0xff, 0x84, 0xc0, 0x74, 0x3d};

static const uint8_t r3[]= {0xe8, 0x38, 0xe7, 0xff, 0xff, 0x84, 0xc0, 0xeb, 0x3d};

 

omg i'm so lazy todo a masked patch...

Edited by jalavoui
Link to comment
Share on other sites

Just tested, booting on Ventura 13.6.5 works well, the Framebuffer is enabled,

 

you can also use for device properties instead of 0100718A, 718A0000 combo;

 

AAPL,ig-platform-id    0200518A

device-id                      538A0000

 

additionally if you use the ifgxfw=2 flag, the fb-mem patch gets applied, I got memory to 3072, best to stay at 2048 though.

 

 

Any Idea why the Patched WhateverGreen doesnt load on Sonoma atm? still get a Black Screen, Im testing theSonoma installer now, but the opencore log doesnt load onto the USB to give any clues, only other way is to load using -igfxvesa, then do tests after enabled remote management. Additionally there are major changes between 14.4 and 14.4.1 and you would have to disable the security policy to even get it to boot.

 

Misc -> Security -> SecureBoot Model, change to Disabled

UEFI -> Quirks, DisableSecurityPolicy - Set to Enabled

 

Edited by Mastachief
Link to comment
Share on other sites

static int icl_pcode_read_mem_global_info(struct drm_i915_private *dev_priv)
{
	struct dram_info *dram_info = &dev_priv->dram_info;
	u32 val = 0;
	int ret;

	ret = snb_pcode_read(&dev_priv->uncore, ICL_PCODE_MEM_SUBSYSYSTEM_INFO |
			     ICL_PCODE_MEM_SS_READ_GLOBAL_INFO, &val, NULL);
	if (ret)
		return ret;

	if (GRAPHICS_VER(dev_priv) == 12) {
		switch (val & 0xf) {
		case 0:
			dram_info->type = INTEL_DRAM_DDR4;
			break;
		case 1:
			dram_info->type = INTEL_DRAM_DDR5;
			break;
		case 2:
			dram_info->type = INTEL_DRAM_LPDDR5;
			break;
		case 3:
			dram_info->type = INTEL_DRAM_LPDDR4;
			break;
		case 4:
			dram_info->type = INTEL_DRAM_DDR3;
			break;
		case 5:
			dram_info->type = INTEL_DRAM_LPDDR3;
			break;
		default:
			MISSING_CASE(val & 0xf);
			return -EINVAL;
		}
	} else {
		switch (val & 0xf) {
		case 0:
			dram_info->type = INTEL_DRAM_DDR4;
			break;
		case 1:
			dram_info->type = INTEL_DRAM_DDR3;
			break;
		case 2:
			dram_info->type = INTEL_DRAM_LPDDR3;
			break;
		case 3:
			dram_info->type = INTEL_DRAM_LPDDR4;
			break;
		default:
			MISSING_CASE(val & 0xf);
			return -EINVAL;
		}
	}

	dram_info->num_channels = (val & 0xf0) >> 4;
	dram_info->num_qgv_points = (val & 0xf00) >> 8;
	dram_info->num_psf_gv_points = (val & 0x3000) >> 12;

	return 0;
}
  local_38 = *(long *)PTR____stack_chk_guard_000cf0a0;
  _DAT_000e53d0 = _DAT_000e53d0 + 1;
  uVar4 = 0;
  uVar2 = hwReadMailboxWithSubCommand(this,0xd,0,0);
  uVar9 = (uint)uVar2;
  uVar15 = (uVar9 & 0xf00) >> 8;
  if ((uVar2 & 0xf00) == 0) {
    uVar4 = uVar9 >> 4 & 0xf;
  }
  else {
    _DAT_000e53e0 = _DAT_000e53e0 + 1;
    uVar16 = (uVar2 & 0xffffffff) >> 4;
    uVar13 = (uint)uVar16 & 0xf;
    if ((uVar16 & 0xf) != 0) {
      _DAT_000e53d8 = _DAT_000e53d8 + 1;
      _DAT_000e1438 = _DAT_000e1438 + 1;
      uVar16 = 0;
      __os_log_internal(0,PTR___os_log_default_000cf0a8,0,
                        "[IGFB][LOG  ][%-10s] Value read from Mailbox for MEM_SS_INFO = 0x%llx\n",
                        "DISPLAY",uVar2);
      _DAT_000e1438 = _DAT_000e1438 + 1;
      __os_log_internal(0,PTR___os_log_default_000cf0a8,0,"[IGFB][LOG  ][%-10s] RAM = 0x%x\n",
                        "DISPLAY",uVar9 & 0xf);
      _DAT_000e1438 = _DAT_000e1438 + 1;
      __os_log_internal(0,PTR___os_log_default_000cf0a8,0,
                        "[IGFB][LOG  ][%-10s] Populated Channels = 0x%x\n","DISPLAY",uVar13);
      _DAT_000e1438 = _DAT_000e1438 + 1;
      __os_log_internal(0,PTR___os_log_default_000cf0a8,0,
                        "[IGFB][LOG  ][%-10s] Number of GV points = 0x%x\n","DISPLAY",uVar15);

 

	if (DISPLAY_VER(i915) >= 14)
		ret = xelpdp_get_dram_info(i915);
	else if (GRAPHICS_VER(i915) >= 12)
		ret = gen12_get_dram_info(i915);
	else if (GRAPHICS_VER(i915) >= 11)
		ret = gen11_get_dram_info(i915);
	else if (IS_GEN9_LP(i915))
		ret = bxt_get_dram_info(i915);
	else
		ret = skl_get_dram_info(i915);
	if (ret)
		return;

	drm_dbg_kms(&i915->drm, "DRAM channels: %u\n", dram_info->num_channels);

is this a dual channel memory problem ?

 

from logs if value is 0x143 then mem= 0x143 and 0xf = 0x3 = INTEL_DRAM_LPDDR4

so i have 0x120 and 0xf = 0x0 = INTEL_DRAM_DDR4

 

adding the device with opencore changes the driver loading

with no injection no crashes but also seem no interrupts

 

this code is close to linux gen9_read_clock_frequency()

need to be changed for gen11

 

    _IOLog(fmt);
    _kprintf(fmt);
    uVar13 = uVar4 >> 3 & 7;
    dVar8 = 24000000;
    if (uVar13 < 4) {
      dVar8 = (&DWORD_000af470)[uVar13];
    }
    uVar13 = dVar8 >> (~(byte)(uVar4 >> 1) & 3);
    _g_timestampFreqPerDenominator = (ulong)(uVar13 >> 5) / 0xc35;

 

_DWORD DWORD_000af470[4] =
{ 24000000, 19200000, 38400000, 25000000 };

 

guess all code from IntelAccelerator::getGPUInfo(void) is wrong for tiger lake

Edited by jalavoui
Link to comment
Share on other sites

Posted (edited)

@jalavoui

Using jalavoui's second modified WhateverGreen.kext on page 4 of the current Topic, the GPU Sku Bypass patch was successfully applied and booting was completed.
And, the situation was the same as when using the NBlue.

 

If igfxfw=2 boot arg is not applied, Unexpected context status buffer entry kernel panic occurs.

If igfxfw=2 boot arg is applied, graphics acceleration is attempted, but an error log related to firmware loading is output, and booting is completed.

[   20.316475]: [IGPU] Begin Gfx firmware load process
[   20.316479]: [IGPU] Begin Gfx firmware load process
[   20.316480]: [IGPU]    ForceWake Multithread = 0x30002
[   20.316483]: [IGPU]    ForceWake Multithread = 0x30002
[   20.316485]: [IGPU]    CONFIG0 (0xD00)       = 0x80000014
[   20.316490]: [IGPU]    CONFIG0 (0xD00)       = 0x80000014
[   20.316503]: [IGPU]    GT_THREAD_STATUS      = 0x40030000
[   20.316510]: [IGPU]    GT_THREAD_STATUS      = 0x40030000
[   20.316510]: [IGPU]    Doing retry #0
[   20.316512]: [IGPU]    Doing retry #0
[   20.407329]: [AGPM][INFO ][CONTROLLER  ][createAGPMClass         ] gpuDict IGPU
[   20.407334]: [AGPM][INFO ][CONTROLLER  ][createAGPMClass         ] build gpuDict by GPU IGPU.
[   20.456976]: HE2N_Key Does Not Exist, use kSMCPStatesIGPU for Internal GPU
[   20.456978]: HE2N_Key Does Not Exist, use kSMCPStatesIGPU for Internal GPU
[   20.457043]: [AGPM][INFO ][CONTROLLER  ][start                   ] GPU = IGPU Initialized, Control ID 16
[   22.088655]: [IGPU] Graphics Firmware Version: 0.0.0.0
[   22.088661]: [IGPU] Graphics Firmware Version: 0.0.0.0
[   22.088722]: [IGPU] Failed to load graphics firmware binary, STATUS = 0x840000EC
[   22.088726]: [IGPU] Failed to load graphics firmware binary, STATUS = 0x840000EC
[   22.088792]: [IGPU] Failed to initialize graphics firmware.
[   22.088794]: [IGPU] Failed to initialize graphics firmware.
[   22.088804]: [IGPU] Failed to start graphics engine
[   22.088805]: [IGPU] Failed to start graphics engine
[   22.088810]: [IGPU] Request to send Host -> Gfx firmware message when the firmware channel is not active!
[   22.088812]: [IGPU] Request to send Host -> Gfx firmware message when the firmware channel is not active!
[   22.088813]: [IGPU] Failed to send wait-for-idle request to firmware
[   22.088814]: [IGPU] Failed to send wait-for-idle request to firmware

 

- boot-args : -v keepsyms=1 debug=0x100 dc6config=0 -noDC9 -wegdbg -allow3d igfxfw=2
- macOS Version : macOS Ventura 13.6.5 (22G621)

 

I am attaching the log.

Dmesg Logs (IGPU, WEG).txt

x.log

Edited by shl628
Link to comment
Share on other sites

what happen if you do same thing using nblue using -allow3d ?

can you test with injected clover device and with no injected device

 

todo: fix gpuinfo() so driver can do something usefull

Edited by jalavoui
  • Like 1
Link to comment
Share on other sites

Posted (edited)
18 minutes ago, jalavoui said:

what happen if you do same thing using nblue using -allow3d ?

can you test with injected clover device and with no injected device

 

When I remove all iGPU Properties and boot with the most recently modified and uploaded NBlue, booting stops.
I think it's causing an Unsupported CD Clock Frequency kernel panic.
It seems like the kernel panic log is just not visible on the screen.

 

image.thumb.jpeg.6589e8bad1953fe8e90c20c30e3bb896.jpeg

Edited by shl628
Link to comment
Share on other sites

this seems not to match

 

struct PACKED FramebufferICLLP {}

 

with

 

struct PACKED prefs_ICLLP {  
  uint64_t gpuid = 0x8A700001LL;
  uint64_t *name = (__int64)"Intel HD Graphics ICL RVP BigSur";
  uint8_t  fMobile;
  uint8_t  fPipeCount;
  uint8_t  fPortCount;
  uint8_t  fFBMemoryCount;
  uint64_t 14BBA41C = 0x4000000LL;
  uint32_t 14BBA424 = 0x60000000;
  uint64_t connecors[90];
  uint32_t 14BBA4B8 = 107268;
  uint32_t unk1 = 0;
  uint64_t *gComboPhyDPTable;
  uint32_t unk2 = 0;
  uint64_t *gComboPhyDPTable;
  uint32_t unk3 = 0;
  uint64_t *gComboPhyHDMITable;
  uint32_t 14BBA4F0 = 7;
  uint64_t 14BBA4F8 = 0x400000003LL;
  uint64_t 14BBA500 = 270000000LL;
  uint64_t 14BBA508 = 0LL;
  uint64_t 14BBA510 = 0x800000002LL;
  uint32_t 14BBA518 = 8;
  uint8_t 14BBA51C = 0;
};

 

i just add the code for a specific ig-platform and patched some parameters

it works altough not enough to unlock the acelerator

Edited by jalavoui
Link to comment
Share on other sites

the decompkernelcache code is still a bit bugged but maybe it helps.

can you try get the patched bytes for screen fix and see if it works on sonoma ?

 

my guess this is the spot. but i think this as changed for latest sonoma

patch is easy change 74 5c to eb 5c

 

Capturadeecr2024-04-20s13_49_33.png.e1f6973a16fadb4278a99b57df40418d.png

 

Capturadeecr2024-04-20s13_49_20.png.102bde5cc5184c35a4a56fe14b0e9848.png

 

Edited by jalavoui
Link to comment
Share on other sites

this is the correct path for internal display, i mean it should always attach to framebuffer zero

done by patching connectors order. you can copy con 1 to con 0 and zero all other values after con 0

 

Capturadeecra2024-04-25as14_27_43.png.9901a0ea36155cd662f656f9f4c2cc32.png

 

 

 

this is the ready to patch source with a default custom igplatform injection. dont add device parameters if you wanna use it

issue is with wrong parameters bus id, etc the lcd power call causes a kp

so if you can find those values i think working power call will allow sleep/wake to work

also with correct values maybe the interupts start to work and the acelerator fires up

 

i recommend taking decompkernelcache and put the binary in ghidra for debugging and get correct bytes to patch

this is "default" i'm using

connectors patch come from DAT_000b0f9c (kern_gen11.cpp)

  _DAT_00163de0 = 0x8a5c0002;
  _DAT_00163de4 = 0;
  _DAT_00163de8 = "Intel Iris Plus Graphics";
  DAT_00163df0 = 1;
  DAT_00163df1 = 3;
  DAT_00163df2 = 3;
  DAT_00163df3 = 3;
  _DAT_00163df4 = 0x4000000;
  _DAT_00163df8 = 0;
  _DAT_00163dfc = 0x60000000;
  func_0xffffffffeb5b90ea(&DAT_00163e00,&DAT_000b0f9c,0x90);
  _DAT_00163e90 = 0xe304;
  _DAT_00163e98 = 0;
  _DAT_00163ea0 = &gComboPhyDPTable;
  _DAT_00163ea8 = 0;
  _DAT_00163eb0 = &gComboPhyDPTable;
  _DAT_00163eb8 = 0;
  _DAT_00163ec0 = &gComboPhyHDMITable;
  _DAT_00163ec8 = 7;
  _DAT_00163ed0 = 3;
  _DAT_00163ed4 = 4;
  _DAT_00163ed8 = 270000000;
  _DAT_00163edc = 0;
  _DAT_00163ee0 = 0;
  _DAT_00163ee4 = 0;
  _DAT_00163ee8 = 2;
  _DAT_00163eec = 8;
  _DAT_00163ef0 = 6;
  DAT_00163ef4 = 0;
  _DAT_00163ef8 = 0x8a520002;
  _DAT_00163efc = 1;

image.png.e24ff8cd12ea73b2932e72d506c83dcf.png

 

done in ventura 13.6.6

 

 

this offets exist in code like AppleIntelFramebufferController::hwSetPanelPower() but guess not for tiger lake family

#define PCH_PP_STATUS  _MMIO(0xc7200)
#define PCH_PP_CONTROL _MMIO(0xc7204)
#define PCH_PP_ON_DELAYS _MMIO(0xc7208)
#define PCH_PP_OFF_DELAYS _MMIO(0xc720c)
#define PCH_PP_DIVISOR _MMIO(0xc7210)

unsigned long intel_gvt_get_device_type(struct intel_gvt *gvt)
{
	struct drm_i915_private *i915 = gvt->gt->i915;

	if (IS_BROADWELL(i915))
		return D_BDW;
	else if (IS_SKYLAKE(i915))
		return D_SKL;
	else if (IS_KABYLAKE(i915))
		return D_KBL;
	else if (IS_BROXTON(i915))
		return D_BXT;
	else if (IS_COFFEELAKE(i915) || IS_COMETLAKE(i915))
		return D_CFL;

	return 0;
}

well now i got why this displays can't work and a hack is need

 

update:

this panic is easy to avoid

added 1 connector only for testing

 

 

Edited by jalavoui
  • Like 1
Link to comment
Share on other sites

there's one detail

 

2024-04-25 23:41:40.982826+0100  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][INFO ][POWER     ] FB0: power state transition Wake --> Doze
2024-04-25 23:41:40.982847+0100  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][INFO ][POWER     ] FB0: Power state transition completed
2024-04-25 23:41:43.254170+0100  localhost kernel[0]: (AppleIntelICLLPGraphicsFramebuffer) [IGFB][INFO ][POWER     ] FB0: power state transition Doze --> Wake

 

i cant test this with a external usb disk but i think i got it

did a fast test before entering true sleep and the display recovered

if i allow a full sleep ofc it hangs cause i'm on a external usb

 

not sure if this hacks still needed from hacintool

image.png.16e2afa1a8e4b208b0ed8d7cf784ad55.png

 

 

 

 

not much todo for oc i just add the whatevergrren flag (when i load it)

 

opencore.zip

 

btw this 3GB video memory is also a nblue patch for testing

 

Capturadeecra2024-04-26as00_01_32.png.83e0d08dfd456d65512c6f1ceea3c5e0.png

Edited by jalavoui
  • Like 1
Link to comment
Share on other sites

Posted (edited)

@jalavoui

I am attempting to apply the additions and modifications to jalavoui's most recently uploaded NBlue source code to WhateverGreen.

I added 5 RouteRequests for ICLLP Framebuffer, and added the code content and prototype definitions of 5 related methods to kern_igfx.cpp and kern_igfx.hpp.

	KernelPatcher::RouteRequest request("__ZN31AppleIntelFramebufferController15hwSetPanelPowerEj", hwSetPanelPower);
	patcher.routeMultiple(index, &request, 1, address, size);
	
	KernelPatcher::RouteRequest request2("__ZN21AppleIntelFramebuffer17prepareToExitWakeEv", prepareToExitWake);
	patcher.routeMultiple(index, &request2, 1, address, size);
	
	KernelPatcher::RouteRequest request3("__ZN21AppleIntelFramebuffer14disableDisplayEb", disableDisplay, odisableDisplay);
	patcher.routeMultiple(index, &request3, 1, address, size);
	
	KernelPatcher::RouteRequest request4("__ZN21AppleIntelFramebuffer18setPanelPowerStateEb", setPanelPowerState, osetPanelPowerState);
	patcher.routeMultiple(index, &request4, 1, address, size);
	
	KernelPatcher::RouteRequest request5("__ZN31AppleIntelFramebufferController10LightUpEDPEP21AppleIntelFramebufferP21AppleIntelDisplayPathPK29IODetailedTimingInformationV2", LightUpEDP, oLightUpEDP);
	patcher.routeMultiple(index, &request5, 1, address, size);

However, a non-static related error occurs for data members whose names have an o in front of them.

 

image.thumb.png.16873825cfdda614131b79518ac5689b.png

 

If I add the static keyword in front of mach_vm_address_t in kern_igfx.hpp, the error disappears, but is it okay to solve it this way?

I'm attaching my modified WhateverGreen source code.

WhateverGreen.zip

Edited by shl628
Link to comment
Share on other sites

funny thing. here's the fix

image.png.89edc3d9819e19360d70a7fbd6e5efb6.png

 

but whatevergreen also uses this fuctions elsewhere so you need to search its not used elsewhere

 

another common bug (that i a always do) is the correct function types

 

uint8_t IGFX::hwSetPanelPower(void *that,uint8_t param_1)

 

this might be wrong and correct call is (this is just a sample)

 

bool IGFX::hwSetPanelPower(void *that,uint32_t param_1)

 

when this mistake is done you can expect the code to crash

 

following backlight code raises a question:

/**

* intel_dmc_load_program() - write the firmware from memory to register.

* @i915: i915 drm device.

*

* DMC firmware is read from a .bin file and kept in internal memory one time.

* Everytime display comes back from low power state this function is called to

* copy the firmware from internal memory to registers.

*/

void intel_dmc_load_program(struct drm_i915_private *i915)

 

is this used by apple ?

do we really need this ?

Edited by jalavoui
  • Like 1
Link to comment
Share on other sites

forcing display class works

 

Capturadeecra2024-04-27as12_23_41.png.e54c372f937dc0ea3254de8cfb2fa03b.png

 

just change display id inside info.plist

 

image.png.afb7e78235507f6af04fe5d9fe10d54b.png

 

other parameters canbe set with hacintool or betterdisplay apps

 

 

 

enabling backlight at this stage only bring more issues

i reverted the code to avoid it

with the laptop display not attached to framebuffer zero less power issues

better focus on the function that allows sleep recover.

 

 

 

 

done !

Edited by jalavoui
Link to comment
Share on other sites

hey all,

 

so i tried the nblue kext attached here, my laptop has device id 8A968086, i dont know if it can work via nblue, but according to lspci -nn that's what my device id is. It IS tigerlake im using ventura 13.6.5 and i tried adding my device ID to the info.plist it shows as intel iris xe graphics but only 7mb vram and it's not accelerated, i dont know why.

Link to comment
Share on other sites

The correct name for your GPUID might be 9A68, which is Intel® UHD Graphics on the XE Architecture, the GPUID used for the tests so far by shl and jala appear to be the 9A49 variant which is Intel® Iris® Xe Graphics on the XE Architecture, I am unsure if the nblue binary is hardcoded with 9A49 or if its just pure instructions with the info.plist as a config.

 

See the list of GPU ID's here -> https://dgpu-docs.intel.com/devices/hardware-table.html, 8A96 is not on it.

 

Its always a good idea to test if its possible by modifying the info.plist.

Link to comment
Share on other sites

3 minutes ago, Mastachief said:

The correct name for your GPUID might be 9A68, which is Intel® UHD Graphics on the XE Architecture, the GPUID used for the tests so far by shl and jala appear to be the 9A49 variant which is Intel® Iris® Xe Graphics on the XE Architecture, I am unsure if the nblue binary is hardcoded with 9A49 or if its just pure instructions with the info.plist as a config.

 

See the list of GPU ID's here -> https://dgpu-docs.intel.com/devices/hardware-table.html, 8A96 is not on it.

 

Its always a good idea to test if its possible by modifying the info.plist.

right i did add e.g. 0x9A688086 in the kext info.plist, but it still didnt work, still 7mb vram in system info.

Link to comment
Share on other sites

in think just editing this part with other id will work (You can also add id to Gen7). if no injection using device properties of opencore the ig-platform and device id defaults will be static uint8_t builtin2[] = {0x02, 0x00, 0x5c, 0x8A};

image.thumb.png.9d53c3affad6d35896ecf0a976487dcc.png

 

 

 

i just made changes to i2c code

 

Capturadeecra2024-04-29as23_55_29.png.a00fda68e3485d7269ed2a148f4534cc.png

 

new boot settings - no more gpio disabler with -vi2c-force-polling

Capturadeecra2024-04-29as23_57_05.png.efbfa6504be5c5088e171da5031dd36e.png

 

and yes tpad works (i just add a id to VoodooI2CPCILakeController info.plist

 

this is a bit hard to build but here it is

 

 

 

tested on ventura

 

benmacfreak

You need someone with same hardware to help you. when i started i got panics and so many errors

just to make the laptop boot takes lot of work

i only can help on specific nblue questions.

 

Mastachief

idk if you have xcode but maybe you wanna get ghidra and change the connectors patch ?

i found out that not having the display on framebuffer zero avoids lots of errors related with backlight code

 

btw does anyone have this working on a non usb disk? idk if sleep patch works

 

updated i2c with tigerl_h id

added missing binarys

todo: check if linux as some special code for pci init

 

 

 

Edited by jalavoui
  • Thanks 1
Link to comment
Share on other sites

36 minutes ago, jalavoui said:

i just made changes to i2c code

 

Capturadeecra2024-04-29as23_55_29.png.a00fda68e3485d7269ed2a148f4534cc.png

 

new boot settings - no more gpio disabler

Capturadeecra2024-04-29as23_57_05.png.efbfa6504be5c5088e171da5031dd36e.png

 

and yes tpad works

 

hate to ask jalavoui is there a chance and/or way to enable the 9A688086 gpuid? just wondering, im on a tiger lake trackpad elan based also so i was seeing if you can help me with my laptop perhaps please? thanks

 

ok, well, i have macOS 13.6.5 on my 512gb nvme drive rn, all works excpet the iGPU trackpad and audio, i have the latest nblue revision installed it does pick up as intel iris xe graphics but not using my laptops gpuID and idk what to put in the config.plist for the device properties to make nblue work possibly

Edited by benmacfreak
Link to comment
Share on other sites

maybe you got luck with tpad

test with the i2c kexts i just posted

 

check where tpad should be with ioreg

mine is here

Capturadeecra2024-04-30as00_59_30.thumb.png.74149809ccaa0302c964d521c623ff8a.png

 

maybe you need to edit i2c kext for the class tobe loaded

 

Capturadeecra2024-04-30as00_58_30.thumb.png.87e5d695c2c4f98c3a4f883d1909c7a9.png

 

about nblue

just add your card id to the nblue info.plist and pray

with luck no need to inject device properties

or try whatevergreen posted here

Edited by jalavoui
Link to comment
Share on other sites

ill try it as is and see what happens, if not ill look into it further, but yeah for the iGPU im rn booted into arch linux and it shows my device id is 8A968086, i did try adding it to nooted blue info.plist and it didn't show up accelerated, i did reset nvram maybe twice. No fix. I was consdering trying a device property for it but like i say idk what to put for that in my config.plist the only device property is for the audio. 

Link to comment
Share on other sites

×
×
  • Create New...