Contribute
Register

Intel HD Graphics 5500 - Need some help

Status
Not open for further replies.
Joined
Apr 8, 2015
Messages
59
Motherboard
OS X 10.10.3
CPU
i7-4790K
Graphics
GTX970
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
Hardware Configurations: i5-5200U with Intel HD Graphics 5500.
According to the kernel panic log, I figured out that the panic reason is "assertion failed minStolenSize <= fStolenMemorySize".
So basically if we can pass this assertion, kernel panic will not happen and in theory framebuffer drivers will be loaded and our graphics cards will be happy. And actually it do work in this way.

I tried to read the disassemble code and patch the AppleIntelBDWGraphicsFramebuffer binary on Wednesday to pass the assertion and I succeeded, but IN A WRONG WAY, which led to that nothing shows up on the screen but a pointer. (It seems that I accidentally change the StolenFBMem to 0. (not sure))

According to the latest IOReg and verbose boot logs, Intel framebuffer drivers are loaded, the graphics card was recognized properly, the internal screen was detected correctly, the screen resolution seems right.
BDWFBLoaded.jpg
Snip20150410_1.png
Snip20150410_2.png
(We used FakeID, hence the model in ioreg above shows Intel Iris Graphics 6100)

So currently we get stuck here. I am not familiar with disassemble code and reverse engineering.
It will be great if someone can figure out which part of code is corresponding to the FBMemory assertion and patch it.

Here is a quicklook of partial disassemble code of AppleIntelBDWGraphicsFramebuffer binary.
And I guess offset 0x01a02c 0x01a02e OR 0x01a081 0x01a087 may be related to the FBMemory assertion.
Snip20150410_3.png

For the framebuffer data, you can check those in my blog.
http://www.firewolf.science/2015/04...from-appleintelbdwgraphicsframebuffer-binary/

Latest IOReg from this laptop: View attachment withBDWGraphicsPeter’s MacBook Pro(1).ioreg

Any suggestion will be great.
Thanks in advance:)
 
I have the exactly same problem. Looking for help.
 
That assertion only happens when the framebuffer configuration used is incorrect.
You should not be disabling it as it could cause problems later on in OS X, the check is there for good reason.

The BIOS DVMT memory size needs to match the selected framebuffer configuration.
 
That assertion only happens when the framebuffer configuration used is incorrect.
You should not be disabling it as it could cause problems later on in OS X, the check is there for good reason.

The BIOS DVMT memory size needs to match the selected framebuffer configuration.

We tried to change DVMT pre-allocated memory size to 64MB even 96MB, but we now got garbled screen with correct screen resolution and QE/CI. :(
We already tried several ig-platform-ids such as 0x16160000 0x16160002 x0162b0002, etc.

According to the BIOS setup dump, the current Active LFP is eDP Port-A, and DVMT maximum memory is 256MB.

I also tried to modify the port priority and port position in framebuffer, but still garbled.

Snip20150412_3.png

Snip20150412_5.png

Snip20150412_6.png

And here is a copy of ioreg.
View attachment stillgarbledPeter’s MacBook Pro(1).ioreg.zip

Do you have any suggestions? Thanks in advance.:)
 
We tried to change DVMT pre-allocated memory size to 64MB even 96MB, but we now got garbled screen with correct screen resolution and QE/CI. :(
We already tried several ig-platform-ids such as 0x16160000 0x16160002 x0162b0002, etc.

According to the BIOS setup dump, the current Active LFP is eDP Port-A, and DVMT maximum memory is 256MB.

I also tried to modify the port priority and port position in framebuffer, but still garbled.

View attachment 133838

View attachment 133839

View attachment 133840

And here is a copy of ioreg.
View attachment 133841

Do you have any suggestions? Thanks in advance.:)

In what way is it "garbled"?
 
In what way is it "garbled"?

C00E80AE279011321F3D574DB1D42718.jpeg

like this.

Through a VNC viewer, the screen looks fine.

HD5K5_3.jpg

Snip20150412_7.jpg

The internal screen is 15.5 inch which is correct, but not built in.
We tried to inject EDID via FixEDID but DisplayMergeNub.kext will not be loaded.
 

Try injecting unpatched EDID via CustomEDID.

Also, could be brightness issue. No idea if the Haswell brightness code works with Broadwell, but you could try.

And then there is ig-platform-id... The Macs use LVDS. You should check in Windows (Intel graphics panel) to see what your laptop uses.

Also carefully checking that the BIOS configuration matches the framebuffer is probably a good idea.

Seems like 0x16260006 ig-platform-id would be the likely candidate, provided the display is LVDS.

Positive thing is you're making progress...
 
Try injecting unpatched EDID via CustomEDID.

Also, could be brightness issue. No idea if the Haswell brightness code works with Broadwell, but you could try.

And then there is ig-platform-id... The Macs use LVDS. You should check in Windows (Intel graphics panel) to see what your laptop uses.

Also carefully checking that the BIOS configuration matches the framebuffer is probably a good idea.

Seems like 0x16260006 ig-platform-id would be the likely candidate, provided the display is LVDS.

Positive thing is you're making progress...

Thanks for replying. I will check the port in intel graphics panel and try to use CustomEDID.

Also carefully checking that the BIOS configuration matches the framebuffer is probably a good idea.

Do you mean we should let the DVMT pre-allocated memory match the framebuffer?

Apple's broadwell framebuffer driver defines two BIOS-allocated memory values: 16MB and 34MB (the one Apple uses on MacBook Air and Retina MacBook Pro).

16MB is impossible because (1) the minimum DVMT pre-allocated memory in BIOS settings is 32MB. (2) 16MB will not pass the assertion that minStolenSize <= fStolenMemorySize because kernel panic happened when we set the DVMT = 32MB in BIOS.

I forgot to say that I also changed the BIOS-allocated memory in framebuffer to 64MB in order to match DVMT = 64MB in BIOS. But still "garbled".
 
Thanks for replying. I will check the port in intel graphics panel and try to use CustomEDID.



Do you mean we should let the DVMT pre-allocated memory match the framebuffer?

Apple's broadwell framebuffer driver defines two BIOS-allocated memory values: 16MB and 34MB (the one Apple uses on MacBook Air and Retina MacBook Pro).

16MB is impossible because (1) the minimum DVMT pre-allocated memory in BIOS settings is 32MB. (2) 16MB will not pass the assertion that minStolenSize <= fStolenMemorySize because kernel panic happened when we set the DVMT = 32MB in BIOS.

I forgot to say that I also changed the BIOS-allocated memory in framebuffer to 64MB in order to match DVMT = 64MB in BIOS. But still "garbled".

The framebuffer must match the settings in BIOS. Sometimes that means patching the framebuffer (with config.plist patches).
 
The framebuffer must match the settings in BIOS. Sometimes that means patching the framebuffer (with config.plist patches).

Hi Rehabman,

It is edp connection confirmed in Windows. Yea we did change the fb size to match the bios dvmt size. And now I have both Good news and bad news.

Good news is that we somehow fixed the garbled screen. Basically we switched the screen resolution in system setting, and then it fixed everything! The we can switch the resolution back to default level no more garbled screen. Also full qe/ci enabled.

However, the fix seems to be temporary. After Every restart I have to do the same step.

Even worse than that, now my computer freezes randomly. It appears many people encounter the freeze problem without clear solution.

I can't think anything useful now and really would like to hear your suggestion.

Thanks.
 
Status
Not open for further replies.
Back
Top