Jump to content

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


shl628
739 posts in this topic

Recommended Posts

7 minutes ago, Mastachief said:

Use GPU-Z on windows to figure out what your GPU id and model, and edit your post and put it there instead of creating a new post.

im doing school atm ill do that on my end soon

Link to comment
Share on other sites

2 hours ago, Mastachief said:

Use GPU-Z on windows to figure out whats your Intel GPU id and model, and edit your post and put it there instead of creating a new post.

 

Verify you are using "XE" Architecture based on the following list. --> https://dgpu-docs.intel.com/devices/hardware-table.html

 

XE-HPG, Xe-HPC & Xe-LPG and others will definitely never have a chance as those are Intel ARC etc

image.png.3bf89d01c05fa280c4179ac5806f5f29.png

Would this be compatible? I still haven't got macOS to boot BTW

  • Like 1
Link to comment
Share on other sites

We have no way to advise of what will work or won't right now as the driver is in development, if you don't have 11th gen, it's best to test and let us know what the result on your computer is, but you won't have acceleration. No ETA, best to test using ventura.

  • Like 1
Link to comment
Share on other sites

Hey!

Today, I decided to try NootedBlue with a clean install of Ventura. Is it normal to be stuck on "IOKit Daemon," as shown in the picture? It’s been like this for a while (just booting the installer) and it just went from 2 lines of "IOKit Daemon" to 4 while I was writing this.

Also, Mastachief, would you like me to share my config.plist?

Edit - new photo

 

px320240907_123622286.jpg

Now it's moving, but I think it's in some kind of error loop: px320240907_131112143.thumb.jpg.f5998f33c851c1985ecf04bb51fb7829.jpg

Edited by ArtikDiamond
Link to comment
Share on other sites

8 hours ago, ArtikDiamond said:

Now it's moving, but I think it's in some kind of error loop:

Do you know what could it be? Do you need my plist or EFI?

Link to comment
Share on other sites

Visual check BNinja definitions for the functions

 

image.png.17019a646ca57c87407d01d6fc18df25.png

 

wtf is this ?

c++filt friendly?

 

anyway can you build your kext for AppleIntelBaseController also ?

 

i bet hwSetupDSBMemory() is a mem allocation but with which parameters and offsets?

 

you sure u wanna make hwSetupDSBMemory() return 1? it will skip this code part

image.png.cc2bcafcb125c204f350ece1dc220615.png

 

btw can you also add

extern "C" void gpu_accumulate_time();

extern "C" void gpu_describe();

for AppleIntelTGLGraphics.kext missing symbols?

 

i got a link error so i added this

extern "C" char *__null_terminated strnstr(const char *__null_terminated s, const char *__null_terminated find, size_t slen) __stateful_pure;

gonna recheck if still need

 

anyway tks for writting a few lines of code

i do hope others follow

 

Visual you forgot to fix symbols in your kext. it won't load cause of

 

image.png

don't be lazy and create a class !

 

this is the theory i was looking for related to offsets

in this code the offset is 0x9b0 - it is a similiar readregister function of same class we are interested

image.png.20e10a8eb5bc5487513bedb091331ed7.png

so for hookcase we need to use same offset for it to work

fine for some functions but hard to find for others

 

but researching older code (AppleIntelCFLGraphicsFramebuffer) what we need might be close to this (my theory)

image.png.3205f2566b3b71f7ad90c0f32f76f636.png

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

3 minutes ago, jalavoui said:

Visual check BNinja definitions for the functions

 

did. that kext is my attempt to fix your code. don't know what the DSB thing is supposed to do. found an implementation of probePortMode but it's probably too complicated to implement in this environment, have fun with that.

1 hour ago, jalavoui said:

you sure u wanna make hwSetupDSBMemory() return 1? it will skip this code part

image.png.cc2bcafcb125c204f350ece1dc220615.png

Whoops, misread != for ==.

1 hour ago, jalavoui said:

Visual you forgot to fix symbols in your kext. it won't load cause of

 

image.png

don't be lazy and create a class !

What do you mean? Oh....

  • Like 1
Link to comment
Share on other sites

1 hour ago, jalavoui said:

btw can you also add

extern "C" void gpu_accumulate_time();

extern "C" void gpu_describe();

for AppleIntelTGLGraphics.kext missing symbols?

I see this symbol referenced in other kexts as well as standard macOS builds, so it's not actually missing.

1 hour ago, jalavoui said:

anyway tks for writting a few lines of code

Not just that. I was reverse engineering for a few hours to come up with that.

  • Like 1
Link to comment
Share on other sites

i declared this to get the correct export symbol name

extern "C"  unsigned int AppleIntelBaseController::ReadRegister32(unsigned long a)

and ofc this is not what is need. i need the extra void* parameter

can you share your header declaration. i dont get this...

 

anyway your kext won't load cause of _start symbol.

just grab them all to /L/E and fix permissions

when you load it you will see the error

image.png.82bb21c7230d37d81f83285cd074314e.png

 

oh and the write function must not return a value. check your code

image.png.82d2812c619dcc3c6b2110310e04a388.png

 

i'm trying to inplement the validation seen in icl code so

if ((*(byte *)(*(long *)&(this->m_AppleIntelFramebufferController).field_0xcf0 + 0xb2) & 1) != 0) icl code translates to

 

    if ((*(*(arg1 + 0xd40) + 0xfa) & 1) != 0) tgl offsets

 

then there are some range check that maybe easier to ignore and just return zero (nha those validations for range might help avoid crashes)

 

and finally there's a size check that is made against an offset 

if (param_1 < *(int *)&(this->m_AppleIntelFramebufferController).field_0xc30 - 4) { (this is icl code)

so the tgl offset will be...

if (zx.q(*(arg1 + 0x60) - 4) u<= arg3) maybe here for tgl

 

btw apple code as a bug in here (i think the check must be 0x60)-8 as its a 64bits reading acording to old icl code

 

image.png.5c5a098921cc3aa8239daf4218e97a0f.png

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

gonna check your code meanwhile i wrote this for new tgl

extern "C"  unsigned int AppleIntelBaseController::ReadRegister32(void volatile* a, unsigned long b)
{
    long *plVar1;
    uint32_t uVar2;
    
    if ((*(int *)(*(long *)((long *)a + 0xd40) + 0xfa) & 1) != 0)
    {
      if (0x1fff < b) {
        if (b < 0x40000) {
        }
        else {
          if (b < 0x1c0000 || 0x23ffff < b)
          goto LAB_00047bfb;
        }
        return 0;
      }
    }
  LAB_00047bfb:
    if (b < *(int *)((long *)a + 0x60) - 4)
      uVar2 = *(uint32_t *)((long)a + b);
    else {
      uVar2 = 0;

return uVar2;

 

that was smart you got the rmio address

uint64_t rmmio = getMember<uint64_t>(this, 0x9B0)

 

very nice !

 

ok test results

 

image.png.45a02ccf8348543eaceae6d38445f440.png

 

gonna try on real hardware now

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

So which hookcase should we use?

For S/L/E should I use the in internal tglgraphic kexts? I can always test with the seal broken on Sonoma.

I still don't know where iglogs go when we have igloglevel=8

  • Like 1
Link to comment
Share on other sites

maybe. can you believe i have to rewrite hookcase because i was geting symbol conflicts with icl framebufer kext. well nvm here's a panic from production version

image.thumb.png.048c2541841d1f253320f3948f273507.png

 

the current patches i have are all for internal version atm

 

here's the "compatible" hookcase

 

 

 

but yeah S/L/E will be needed i'm thiking on bundles loading, etc

wonder if other users are testing this. maybe alder lake wih device and ig-platform injection?

this are nblue defaults that match existing tgl osinfo structure

static uint8_t "AAPL,ig-platform-id[] = {0x00, 0x00, 0x49, 0x9A};

static uint8_t device-id[] = {0x49, 0x9A,0x00,0x00};

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

29 minutes ago, jalavoui said:

maybe. can you believe i have to rewrite hookcase because i was geting symbol conflicts with icl framebufer kext. well nvm here's a panic from production version

image.thumb.png.048c2541841d1f253320f3948f273507.png

 

the current patches i have are all for internal version atm

 

here's the "compatible" hookcase

 

HookCase.kext.zip 69.67 kB · 0 downloads HookCase-master.zip 185.48 kB · 0 downloads

 

but yeah S/L/E will be needed i'm thiking on bundles loading, etc

wonder if other users are testing this. maybe alder lake wih device and ig-platform injection?

this are nblue defaults that match existing tgl osinfo structure

static uint8_t "AAPL,ig-platform-id[] = {0x00, 0x00, 0x49, 0x9A};

static uint8_t device-id[] = {0x49, 0x9A,0x00,0x00};

i have a 9A68 device ID jala, just downloaded the HookCase posted 8 mins ago. Will let you know how it goes.

Link to comment
Share on other sites

×
×
  • Create New...