FireWolf Pl.

A Place of Freedom

@FireWolf4 years ago

04/24
15:54
OS X

[Unofficial] ssdtPRGen.sh v15.7 beta3 with Broadwell CPUs support

Note: This is NOT an official release of Pike’s ssdtPRGen.sh.

After reading Pike’s codes, I manually injected new Board-IDs and Broadwell CPUs data.

So now you can use ssdtPRGen.sh to create a custom CpuPm SSDT and make power management work properly.

(i.e. X86Platform.kext and X86PlatformShim.kext will be loaded; IOPPF: XCPM Mode can be found in Console.app.)

The following Broadwell CPUs are now supported by v15.7 beta3:

Read More →

[Unofficial] ssdtPRGen.sh v15.7 beta3 with Broadwell CPUs support

@FireWolf4 years ago

04/16
19:08
OS X

[GUIDE] Intel HD Graphics 5500 on OS X Yosemite 10.10.3

After several weeks’ work with @lisai9093, now it’s time to post a guide. 😀

GUIDE: Intel HD Graphics 5500 on OS X Yosemite 10.10.3

 Snip20150416_7

Update Logs:

V1.2 @ 2015.06.07

Layout changes due to new themes.

minimum DVMT pre-allocated memory changes to (>=) 64MB

V1.1 @ 2015.04.24

Successful cases and related guides added.

More FAQ added.

V1.0 @ 2015.04.16

initial release

Successful cases so far:

Lenovo Thinkpad Carbon X1 3rd Gen:

Intel i7-5600U with Intel HD Graphics 5500 + 1080P internal display from jcsnider.

Dell XPS 13 Touch 2015:

Intel i7-5500U with Intel HD Graphics 5500 + 3200×1800 internal display (IOKit patch needed to unlock pixel clock frequency) from frizinko.

Dell inspiration 7548:

Intel i5-5200U with Intel HD Graphics 5500 + 1080P internal display from lisai9093.

Dell inspiration 7348/7352:

Intel i5-5200U/i7-5500U with Intel HD Graphics 5500 + 1080P internal display from Frankie.

Hmm, still no response from Intel HD Graphics 5300……

Read More →

[GUIDE] Intel HD Graphics 5500 on OS X Yosemite 10.10.3

@FireWolf4 years ago

04/11
00:26
OS X

Framebuffer data extracted from AppleIntelBDWGraphicsFramebuffer binary

I manually extracted partial raw frame buffer data from Apple’s latest AppleIntelBDWGraphicsFramebuffer binary.

Some hardware ids are still unknown, as Intel only released a few CPU models.

I will try to post every frame buffer data if I have time.

Supported IDs from AppleIntelBDWGraphicsFramebuffer.kext/Contents/Info.plist
0x0BD18086: Intel Broadwell HD Graphics HAS GT1
0x0BD28086: Intel Broadwell HD Graphics HAS GT2
0x0BD38086: Intel Broadwell HD Graphics HAS GT3
0x16068086: Intel HD Graphics
0x160e8086: Intel HD Graphics
0x16168086: Intel HD Graphics 5500
0x161e8086: Intel HD Graphics 5300
0x16268086: Intel HD Graphics 6000
0x16228086: Intel Iris Pro Graphics 6200
0x16128086: Intel HD Graphics 5600
0x162b8086: Intel Iris Graphics 6100
Supported IDs from AppleIntelBDWGraphics.kext/Contents/Info.plist
0x0BD18086: Intel Broadwell HD Graphics HAS GT1
0x0BD28086: Intel Broadwell HD Graphics HAS GT2
0x0BD38086: Intel Broadwell HD Graphics HAS GT3
0x16028086: Intel HD Graphics
0x16068086: Intel HD Graphics
0x160B8086: No data
0x160A8086: No data
0x160D8086: No data
0x160E8086: No data
0x16128086: Intel HD Graphics 5600
0x16168086: Intel HD Graphics 5500
0x161B8086: No data
0x161A8086: No data
0x161D8086: No data
0x161E8086: Intel HD Graphics 5300
0x16228086: Intel Iris Pro Graphics 6200
0x16268086: Intel HD Graphics 6000
0x162B8086: Intel Iris Graphics 6100
0x162A8086: Intel Iris Pro Graphics 6300P
0x162D8086: Intel Iris Pro Graphics 6300P
0x162E8086: No data
0x16328086: No data
0x16368086: No data
0x163B8086: No data
0x163A8086: No data
0x163D8086: No data
0x163E8086: No data
All ig-platform-ids from AppleIntelBDWGraphicsFramebuffer binary

(Reference: Pike R. Alpha’s blog, original post: https://pikeralpha.wordpress.com/2015/03/13/new-ionvmefamily-kext/)

[ 1] : 0x16060000 – Broadwell GT1 (Intel HD Graphics)
[ 2] : 0x160e0000 – Broadwell GT1 (Intel HD Graphics)
[ 3] : 0x16160000 – Broadwell GT2 (Intel HD Graphics 5500)
[ 4] : 0x161e0000 – Broadwell GT2 (MacBook) (Intel HD Graphics 5300)
[ 5] : 0x16260000 – Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)
[ 6] : 0x162b0000 – Broadwell GT3 (MacBook Pro) (Intel Iris Graphics 6100)
[ 7] : 0x16220000 – Broadwell GT3 (Intel Iris Pro Graphics 6200)
[ 8] : 0x160e0001 – Broadwell GT1 (Intel HD Graphics)
[ 9] : 0x161e0001 – Broadwell GT2 (MacBook) (Intel HD Graphics 5300)
[10] : 0x16060002 – Broadwell GT1 (Intel HD Graphics)
[11] : 0x16160002 – Broadwell GT2 (Intel HD Graphics 5500)
[12] : 0x16260002 – Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)
[13] : 0x16220002 – Broadwell GT3 (Intel Iris Pro Graphics 6200)
[14] : 0x162b0002 – Broadwell GT3 (MacBook Pro) (Intel Iris Graphics 6100)
[15] : 0x16120003 – Broadwell GT2 (Intel HD Graphics 5600)
[16] : 0x162b0004 – Broadwell GT3 (MacBook Pro) (Intel Iris Graphics 6100)
[17] : 0x16260004 – Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)
[18] : 0x16260005 – Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)
[19] : 0x16260006 – Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)
Ports definitions:

0x01000000 = VGA connector
0x02000000 = LVDS connector
0x04000000 = eDP connector
0x00020000 = DVI connector
0x00040000 = DisplayPort connector
0x00080000 = HDMI connector

So here are ig-platform-ids corresponding to Broadwell-U and Core M series.
Intel HD Graphics 5300 (Device ID: 0x8086161e)
CPUs: Core-M 5Y10/5Y10a/5Y10c/5Y31/5Y51/5Y70/5Y71
ig-platform-id = 0x161e0000
 0000 1e16 0003 0303 0000 0001 0000 f000 // 16MB BIOS-allocated memory, 15MB frame buffer memory
 0000 0040 9914 0000 9914 0000 0000 0000 // 1024MB 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 1607 0000 0000 0800 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x161e0001
 0100 1e16 0102 0202 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 0710 0000|= DisplayPort connector
 ff00 0000 0100 0000 4000 0000|0000 0000 = Disabled / unused VGA connector
 0000 0000 0000 0000 0204 0000 0000 0000
 0200 0000 0300 0000 00ef 1c0d 0000 0000
Intel HD Graphics 5500 (Device ID: 0x80861616)
CPUs: i3-5005U/i3-5010U/i3-5015U/i3-5020U/i5-5200U/i5-5300U/i7-5500U/i7-5600U
ig-platform-id = 0x16160000
 0000 1616 0003 0303 0000 0001 0000 f000 // 16MB BIOS-allocated memory, 15MB frame buffer memory
 0000 0040 9914 0000 9914 0000 0000 0000 // 1024MB 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 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x16160002
 0200 1616 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
Intel HD Graphics 6000 (Device ID: 0x80861626)
CPUs: i5-5250U/i5-5350U/i7-5550U/i7-5650U
ig-platform-id = 0x16260004
 0400 2616 0003 0303 0000 2002 0000 5001 // 34MB BIOS-allocated memory, 21MB frame buffer memory
 0000 0060 9914 0000 9914 0000 0000 0000 // 1536MB VRAM
 0000 0000 0000 0000 0000 0800 0200 0000 = LVDS connector
 1100 0000 0105 0900 0004 0000 0705 0000 = DisplayPort connector
 0204 0a00 0004 0000 0705 0000 ff00 0000 = DisplayPort connector
 0100 0000 4000 0000 560b 0000 0505 0500 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x16260005
 0500 2616 0103 0303 0000 2002 0000 5001 // 34MB BIOS-allocated memory, 21MB frame buffer memory
 0000 0060 d90a 0000 d90a 0000 0000 0000 // 1536MB VRAM
 0000 0000 0000 0000 0000 0800 0200 0000 = LVDS connector
 3000 0000 0105 0b00 0004 0000 0705 0000 = DisplayPort connector
 0204 0b00 0004 0000 0705 0000 ff00 0000 = DisplayPort connector
 0100 0000 4000 0000 0f0b 0000 0101 0500 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x16260006 (MacBookAir7,2)
0600 2616 0103 0303 0000 2002 0000 5001 // 34MB BIOS-allocated memory, 21MB frame buffer memory
0000 0060 d90a 0000 d90a 0000 0000 0000 // 1536MB VRAM
0000 0000 0000 0000 0000 0800 0200 0000 = LVDS connector
3000 0000 0105 0b00 0004 0000 0705 0000 = DisplayPort connector
0204 0b00 0004 0000 0705 0000 ff00 0000 = DisplayPort connector
0100 0000 4000 0000 0f0b 0000 0101 0500 = Disabled / unused VGA connector
0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x16260002
 0200 2616 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 0a4b 0000 0505 0600 = Disabled / unused VGA connector
 0200 0000 0400 0000 80df 1710 0000 0000
ig-platform-id = 0x16260000
 0000 2616 0003 0303 0000 0001 0000 f000 // 16MB BIOS-allocated memory, 15MB frame buffer memory
 0000 0040 9914 0000 9914 0000 0000 0000 // 1024MB 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 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
Intel Iris Graphics 6100 (Device ID: 0x8086162b)
CPUs: i3-5157U/i5-5257U/i5-5287U/i7-5557U
ig-platform-id = 0x162b0002 ;; MacBookPro12,1
 0200 2b16 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 0a4b 0000 0505 0600 = Disabled / unused VGA connector
 0200 0000 0400 0000 80df 1710 0000 0000
ig-platform-id = 0x162b0000
 0000 2b16 0003 0303 0000 0001 0000 f000 // 16MB BIOS-allocated memory, 15MB frame buffer memory
 0000 0040 9914 0000 9914 0000 0000 0000 // 1536MB 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 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x162b0004
 0400 2b16 0003 0303 0000 2002 0000 5001 // 34MB BIOS-allocated memory, 21MB frame buffer memory
 0000 0060 9914 0000 9914 0000 0000 0000 // 1536MB VRAM
 0000 0000 0000 0000 0000 0800 0200 0000 = LVDS connector
 1100 0000 0105 0900 0004 0000 0705 0000 = DisplayPort connector
 0204 0a00 0004 0000 0705 0000 ff00 0000 = DisplayPort connector
 0100 0000 4000 0000 560b 0000 0505 0500 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
Intel Iris Pro Graphics 6200: 0x80861622 (Reference: PCI Database)
CPUs: Unknown
ig-platform-id = 0x16220000
 0000 2216 0003 0303 0000 0001 0000 f000 // 16MB BIOS-allocated memory, 15MB frame buffer memory
 0000 0040 9914 0000 9914 0000 0000 0000 // 1024MB 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 0e11 0000 0000 0800 = Disabled / unused VGA connector
 0000 0000 0500 0000 0000 0000 0400 0000
ig-platform-id = 0x16220002
 0200 2216 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 0a4b 0000 0505 0600 = Disabled / unused VGA connector
 0200 0000 0400 0000 80df 1710 0000 0000

Framebuffer data extracted from AppleIntelBDWGraphicsFramebuffer binary

@FireWolf4 years ago

04/5
19:28
OS X

Installation Notes: Hackintosh on a new laptop with Intel Broadwell processor [Intel HD Graphics 5500 working but not perfect]

Update 4 @ 2015.04.18 21:30 PM PDT

A full detailed guide on how to make Intel HD Graphics 5500 work is now available.
Please check https://www.firewolf.science/2015/04/guide-intel-hd-graphics-5500-on-os-x-yosemite-10-10-3/

Update 3 @ 2015.04.14 19:20 AM PDT

We somehow fixed the garbled screen issue on Monday simply by enabling Legacy Support in BIOS.
However, now comes a new issue that GPU will randomly stops working. (Kind of like Nvidia Fermi Freeze, but different.)
I have a new hypothesis and will test it later.

Update 2 @ 2015.04.12 01:50 AM PDT

Excited!!! My friend @lisai9093 and I succeeded!!!
We figured out a new and proper way/patch to pass the assertion. And no more kernel panic, no more “black screen”.
But garbled and not built-in internal screen so far. (maybe due to the DVMT in BIOS settings is 32MB; the current conclusion is that we need figure out how to unlock AMI Aptio V UEFI BIOS to access all hidden menus. So we can change DVMT pre-allocated memory size (to 64MB or more) and in theory fix the garbled screen.)
Anyway, Intel HD Graphics 5500 was recognized by OS X, and the screen resolution is correct as usual. Intel Broadwell’s framebuffer drivers were loaded properly with full QE/CI.
I also started new threads (to seek for help) on both insanelymac and tonymacx86 forum two days ago. But I haven’t updated the information in those posts. I will update those threads as soon as I have time.
http://www.insanelymac.com/forum/topic/305597-intel-hd-graphics-5500-need-some-help/
http://www.tonymacx86.com/yosemite-laptop-support/161591-intel-hd-graphics-5500-need-some-help.html

Snip20150412_3Snip20150412_4

Update @ 2015.04.10

First of all, thanks for following this post.

Well, to be honest, I need some help now, cuz I am not familiar with reverse engineering. I also plan to start a topic on insanelymac or/and tonymacx86 forum (seek for help.).

According to the kernel panic log, it is “assertion failed minStolenSize <= fStolenMemorySize” that caused kernel panic.

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.

On Wednesday midnight, I read the disassemble code of AppleIntelBDWGraphicsFramebuffer binary and tried to patch it to pass the assertion.

And to my surprise, it worked. lisai9093 used my patched drivers and successfully pass the assertion. (i.e. no more kernel panic)

However, the screen just shows nothing but a mouse pointer. According to lisai9093, the movement of mouse is very smooth. The screen resolution is correct and there is no distortion.

We tried to change ig-platform-id, checked the pixel clock frequency, even changed the port, but still “black screen”.

On Thursday, I started to doubt whether I patched the binary in a right way, and the answer is definitely “NO, I WAS WRONG.”

Indeed, my patch passed the assertion, but in a wrong way. To be more specific, it seems that I accidentally changed the stolenMemory constant to 0. (not sure) (I should modify the function part to let the assertion always return true but not change the constant.)

So that’s why lisai9093’s screen showed nothing, because there is no stolen memory for the integrated graphics card to show something.

But according to his latest ioreg, we can make sure that the graphics card really works, as the framebuffer driver was loaded properly; screen resolution is correct; the internal screen was recognized correctly, the graphics card was recognized successfully (We used FakeID, hence the model in ioreg below shows Intel Iris Graphics 6100) And the verbose boot logs also prove this. [IGPU] xxxxxx showing below. (Graphics Accelerator is running and working fine.)

BDWFBLoadedSnip20150410_1Snip20150410_2Again, I am not familiar with disassemble and reverse engineering. (This is way beyond my current knowledge.)

So we need someone who is familiar with disassemble code and figure out which part of code is corresponding to the FBMemory assertion.

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

Last but not least, I added a new post about the framebuffer data from AppleIntelBDWGraphicsFramebuffer binary on my blog.

If you are interested in that, please have a look. 🙂

https://www.firewolf.science/2015/04/framebuffer-data-extracted-from-appleintelbdwgraphicsframebuffer-binary/


 

Recently, I worked with @lisai9093 on his new Dell Inspiron 7548 laptop with Intel’s Broadwell processor. The detailed hardware configurations are as follows.

Processor: Intel Core i5-5200U @ 2.20GHz TBF: 2.70GHz
RAM: 8GB 1600MHz
Graphics Card: Intel HD Graphics 5500 (0x80861616)
Sound Card: ALC3234 (= ALC255) (AppleHDA.kext)
Wireless: BCM94352Z (NGFF) (DSDT+FakePCIID.kext)
Screen Resolution: 1920×1080
Current OS X Version: 10.10.3 Final Version (14D131)
Current Bootloader: Clover rev3193

So far, the sound card, wireless card and battery percentage are working fine. Broadwell’s i5-5200U cannot be recognized properly (Showing Unknown in About This Mac) before injecting CPU Type by Clover. ACPI_SMC_PlatformPlugin.kext will be loaded and CPU power management cannot work properly before creating a custom CpuPm SSDT. Intel’s new integrated graphics card is problematic. Kernel panic will happen once AppleIntelBDWGraphicsFramebuffer.kext is loaded. (i.e. ig-platform-id is injected.)

For the installation part, we first used 10.10.2 (14C109) installer with enabling Haswell-E patch (KernelHaswellE) in Clover to skip the kernel check, then upgraded to 10.10.3 Beta 5, 6, 7. By injecting CPUType = 0x0606 in Clover, i5-5200U can be recognized as “Intel Core i5” with correct frequency in “About This Mac”.

BDWUAboutThisMac

After reading Pike’s ssdtPRGen.sh (v15.6), I generated a custom CpuPm SSDT by injecting new Board-IDs and information of Broadwell CPUs in his code. Now X86PlatformPlugin.kext and X86PlatformShim.kext can be loaded properly and “IOPPF: XCPM Mode” apprears in the console. However, “XCPM: P-state tables mismatch” also appears in the console due to the inappropriate SMBios(?)(not sure).

BDWCPUPM

 

Previous: (Before placing custom SSDT.aml)

Snip20150408_1

After:

BDWX86

For the graphics card, just panic if ig-platform-id is injected. We still keep trying.

FYI, here are some information related to Intel’s new integrated graphics cards.

Intel HD Graphics 5300: 0x8086161E

Intel HD Graphics 5500: 0x80861616

Intel HD Graphics 6000: 0x80861626 (MacBook Air ig-platform-id = 0x16260006)

Intel Iris Graphics 6100: 0x8086162b (MacBook Pro ig-platform-id = 0x162b0002)

Intel Iris Pro Graphics 6200: 0x80861622???

Well, this is just a quick note. As Apple released two betas this week, I guess b7 will be the final one.

Special thanks to Pike R Alpha for his amazing ssdtPRGen script.

Installation Notes: Hackintosh on a new laptop with Intel Broadwell processor [Intel HD Graphics 5500 working but not perfect]