- Joined
- Dec 21, 2017
- Messages
- 5
- Motherboard
- Fujitsu AH42/U
- CPU
- Intel Celeron 3205u
- Graphics
- Intel Graphics GT1
Hello,
And before you will start to say it is impossible to get GT1 graphics to work or it is not supported by Apple, I would like to share here some of my research.
We will talk only about 0x16068086 this one I have with my 3205u processor.
Let start from the beginning. We will briefly go through AppleIntelBDWGraphicsFramebuffer and see what is inside:
As for GT1 we have two options:
or
ig-platforms-ids are:
0x16060000
0x16060002
So in principle Apple DOES support GT1 graphics on Framebuffer level. Well, of course there is some kind of limitations which will not allow to use it native. Take a look at following code:
It will try to initialize for sure, however the next check on initialization will cut us off, because only mentioned ones are natively supported:
Ok, so we done here. As for now, we know GT1 is always been there and the question is how to trigger it.
It took me a while to play around with with clover configs, patching kexts and changing DVMT in a bios before I got some results.
So for a config part following conditions should be met:
1. Indeed DVMT Pre-Allocated should be set to 64MB or 96MB not sure about 128MB
2. ig-platform-id supposed to be 0x16060000
And lets have a run:
So framebuffer is perfectly initialized.
Unfortunately it seems that I'm missing something, because right after it tries to launch Window Server and getting crash stucking with flashing (reloading) screen and printing those two lines:
IOConsoleUsers: time(0) 0->0, lin 0, llk 1,
IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0
It seems like a small part left to get QE/CI working, but due to complete luck of knowledge how to configure clover, dsdt I need some help/advice on topic.
I would like to keep this topic opened for people who will try to do some research on getting their GT1 one's working. It can be helpful.
And before you will start to say it is impossible to get GT1 graphics to work or it is not supported by Apple, I would like to share here some of my research.
We will talk only about 0x16068086 this one I have with my 3205u processor.
Let start from the beginning. We will briefly go through AppleIntelBDWGraphicsFramebuffer and see what is inside:
As for GT1 we have two options:
Code:
0000 0616 0003 0303 0000 0001 0000 F000 // 16MB BIOS-allocated memory, 15MB frame buffer memory
0000 0040 9914 0000 9914 0000 0000 0000 // 1024 VRAM
0000 0000 0000 0000 0000 0800 0200 0000 // LVDS connector
3002 0000 0105 0900 0400 0000 0400 0000 // eDP connector
0204 0900 0008 0000 8200 0000 FF00 0000 // HDMI Connector
0100 0000 4000 0000 060B 0000 0000 0800 // Unused VGA Connector
0000 0000 0500 0000 0000 0000 0400 0000
or
Code:
0200 0616 0103 0303 0000 2002 0000 5001 // 34MB BIOS-allocated memory, 21MB frame buffer memory
0000 0060 6C05 0000 6C05 0000 0000 0000 // 1536MB VRAM
0000 0000 0000 0000 0000 0800 0200 0000 // LVDS connector
3002 0000 0105 0900 0004 0000 0705 0000 // DisplayPort connector
0204 0A00 0004 0000 0705 0000 FF00 0000 // DisplayPort connector
0100 0000 4000 0000 024B 0000 0505 0600 // Disabled / unused VGA connector
0200 0000 0400 0000 80DF 1710 0000 0000
ig-platforms-ids are:
0x16060000
0x16060002
So in principle Apple DOES support GT1 graphics on Framebuffer level. Well, of course there is some kind of limitations which will not allow to use it native. Take a look at following code:
PHP:
deviceId = *((_DWORD *)v2 + 1394);
if ( deviceId <= 0x161E8085 )
{
if ( deviceId == 0x16068086 || deviceId == 0x160E8086 || deviceId == 0x16168086 )
goto LABEL_63;
LABEL_67:
++qword_84698;
goto initialization;
}
if ( deviceId > 0x16268085 )
{
if ( deviceId == 0x16268086 || deviceId == 0x162B8086 )
goto LABEL_66;
goto LABEL_67;
}
if ( deviceId == 0x161E8086 )
{
LABEL_63:
++qword_84660;
*((_BYTE *)v2 + 9468) = 0;
goto initialization;
}
if ( deviceId != 371359878 )
goto LABEL_67;
LABEL_66:
++qword_84680;
*((_BYTE *)v2 + 9468) = 1;
initialization:
It will try to initialize for sure, however the next check on initialization will cut us off, because only mentioned ones are natively supported:
PHP:
deviceId_1 = *((_DWORD *)v2 + 1394);
if ( deviceId_1 > 0x161E8085 )
{
if ( deviceId_1 > 0x16268085 )
{
if ( deviceId_1 == 0x16268086 )
{
++qword_846E8;
++qword_84988;
v43 = "Intel HD Graphics 6000";
goto LABEL_98;
}
if ( deviceId_1 != 0x162B8086 )
goto LABEL_97;
goto LABEL_93;
}
if ( deviceId_1 == 0x161E8086 )
goto LABEL_94;
if ( deviceId_1 != 0x16228086 )
goto LABEL_97;
goto LABEL_95;
}
if ( deviceId_1 > 0x16128085 )
{
if ( deviceId_1 != 0x16128086 )
{
if ( deviceId_1 == 0x16168086 )
goto LABEL_93;
LABEL_97:
++qword_84718;
++qword_84988;
v43 = "Requires Marketing Name!";
goto LABEL_98;
}
LABEL_95:
++qword_84708;
++qword_84988;
v43 = "Intel Iris Pro Graphics 6200";
goto LABEL_98;
}
if ( deviceId_1 == 0x16068086 )
{
LABEL_93:
++qword_846F0;
++qword_84988;
v43 = "Intel Iris Graphics 6100";
goto LABEL_98;
}
if ( deviceId_1 != 0x160E8086 )
goto LABEL_97;
LABEL_94:
++qword_846D8;
++qword_84988;
v43 = "Intel HD Graphics 5300";
Ok, so we done here. As for now, we know GT1 is always been there and the question is how to trigger it.
It took me a while to play around with with clover configs, patching kexts and changing DVMT in a bios before I got some results.
So for a config part following conditions should be met:
1. Indeed DVMT Pre-Allocated should be set to 64MB or 96MB not sure about 128MB
2. ig-platform-id supposed to be 0x16060000
And lets have a run:
So framebuffer is perfectly initialized.
Unfortunately it seems that I'm missing something, because right after it tries to launch Window Server and getting crash stucking with flashing (reloading) screen and printing those two lines:
IOConsoleUsers: time(0) 0->0, lin 0, llk 1,
IOConsoleUsers: gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0
It seems like a small part left to get QE/CI working, but due to complete luck of knowledge how to configure clover, dsdt I need some help/advice on topic.
I would like to keep this topic opened for people who will try to do some research on getting their GT1 one's working. It can be helpful.