New repository for AppleIntelInfo.kext

I have updated AppleIntelCPUPowerManagementInfo.kext and renamed it to AppleIntelInfo.kext. It is now also much easier to get from my Github repository, and without having to pull/clone RevoBoot.

Intel GPU Register Dumper for OS X

AppleIntelInfo.kext is currently at version 1.0 and includes a new feature which I named: Intel GPU Register Dumper for OS X. This new feature is controlled by another setting in Info.plist (logIntelRegs) and it is set to True by default. The latter may be a problem for people without the IGPU being active/visible but that is something we have to figure out together.

Have a look at Yosemite DP6 with HD4600 to see what it dumps, and it dumps even more now.

Anyway. Now we don’t need to boot into Linux anymore, just to obtain the Intel GPU register data (think: intel_reg_dumper).

Warning

AppleIntelInfo.kext is brand new and may crash!!! In fact I would be surprised if it doesn’t so be prepared.

Bugs

All possible bugs (so called ‘issues’) should be filed at:

https://github.com/Piker-Alpha/AppleIntelInfo/issues

Please do not use my blog for this.

Thank you!

Yosemite DP6 with HD4600

I have very little time to explain what I did, but here is one of the framebuffers that works for me – edit the frame buffers for your setup, follow the links under ‘See also’ for additional information.

Note: 0x0d220003 is just an example – my first Haswell boot was done with 0x0c260000 (see also: Intel HD4600 with full resolution) but I changed it to 0x0a160000 the same day (see _DSM method) but now I let RevoBoot inject 0x04120000.

AAPL,ig-platform-id: 0x0d220003 located @ 296688
———————————————————

00486f0: 0300 220d 0003 0303 0000 0002 0000 3001
0048700: 0000 6000 0000 0060 9914 0000 9914 0000
0048710: 0000 0000 0000 0000 0000 0800 0001 0000
0048720: 3000 0000 0105 0800 0008 0000 0600 0000
0048730: 0204 0a00 0002 0000 8700 0000 ff00 0000
0048740: 0100 0000 4000 0000 0f00 0000 0101 0000
0048750: 0400 0000 0000 0000 0000 0000 0000 0000
0048760: 0000 0000 0000 0000 0000 0000 0e00 0000

AAPL,ig-platform-id = 0300 220d
fStolenMemorySize: 00 00 00 02 = 0x2000000 = 32 MB
fFramebufferMemorySize: 00 00 30 01 = 0x1300000 = 19 MB
fCursorBytes: 00 00 60 00 = 0x600000 = 6291456 / 10 = 629145
VRAM: 00 00 00 60 = 1536 MB
fBacklightFrequency = 9914 00 00 = 5273
fBacklightMax = 9914 0000 = 5273
connector-type: three different connector types are being used here:
0001 0000 = VGA
0008 0000 = HDMI
0002 0000 = DVI

Update

Still not perfect, but this one is getting close:

00486f0: 0300 220d 0003 0403 0000 0002 0000 3001
0048700: 0000 9000 0000 0060 9914 0000 9914 0000
0048710: 0000 0000 0000 0000 0000 0800 0001 0000
0048720: 3000 0000 0105 0800 0008 0000 0600 0000
0048730: 0204 0a00 0002 0000 8700 0000 0306 0900
0048740: 0004 0000 4000 0000 d600 0000 0505 0000
0048750: 0400 0000 0000 0000 0000 0000 0000 0000
0048760: 0000 0000 0000 0000 0000 0000 0e00 0000

HDMI only (1 active frame buffer)

00486f0: 0300 220d 0103 0103 0000 0002 0000 3001
0048700: 0000 9000 0000 0060 9914 0000 9914 0000
0048710: 0000 0000 0000 0000 0105 0a00 0008 0000
0048720: 0600 0000 ff00 0000 0000 0000 0000 0000
0048730: ff00 0000 0000 0000 0000 0000 ff00 0000
0048740: 0000 0000 4000 0000 d600 0000 0505 0000
0048750: 0400 0000 0000 0000 0000 0000 0000 0000
0048760: 0000 0000 0000 0000 0000 0000 0e00 0000

DVI only (1 active frame buffer)

00486f0: 0300 220d 0103 0103 0000 0002 0000 3001
0048700: 0000 9000 0000 0060 9914 0000 9914 0000
0048710: 0000 0000 0000 0000 0204 0a00 0002 0000
0048720: 8700 0000 ff00 0000 0000 0000 0000 0000
0048730: ff00 0000 0000 0000 0000 0000 ff00 0000
0048740: 0000 0000 4000 0000 d600 0000 0505 0000
0048750: 0400 0000 0000 0000 0000 0000 0000 0000
0048760: 0000 0000 0000 0000 0000 0000 0e00 0000

DP only (1 active frame buffer)

00486f0: 0300 220d 0103 0103 0000 0002 0000 3001
0048700: 0000 9000 0000 0060 9914 0000 9914 0000
0048710: 0000 0000 0000 0000 0306 0a00 0004 0000
0048720: 0000 0000 ff00 0000 0000 0000 0000 0000
0048730: ff00 0000 0000 0000 0000 0000 ff00 0000
0048740: 0000 0000 4000 0000 d600 0000 0505 0000
0048750: 0400 0000 0000 0000 0000 0000 0000 0000
0048760: 0000 0000 0000 0000 0000 0000 0e00 0000

That should get you started:

1.) No boot loader changes!
2.) No reboot.
3.) No frame buffer crashes.
4.) Boot with single DVI/HDMI/DP connector possible.
5.) Connects to pipe 0.
6.) APPL,boot-display property (Boolean) set to True.
7.) IOFBNeedsRefresh property (Boolean) set to False.

Yosemite_AppleIntelFramebufferAzul_DP6

Output of my Intel Register Dumper for OS X:

HSW_PWR_WELL_CTL1 : 0xc0000000
HSW_PWR_WELL_CTL2 : 0x40000000
HSW_PWR_WELL_CTL3 : 0x40000000
HSW_PWR_WELL_CTL4 : 0x40000000
HSW_PWR_WELL_CTL5 : 0x0004050f
HSW_PWR_WELL_CTL6 : 0x00000000
PIPE_DDI_FUNC_CTL_A : 0xa1010200 (enabled, DDIC, DVI, 8 bpc, -VSync, +HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_B : 0x00030000 (disabled, no port, HDMI, 8 bpc, +VSync, +HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_C : 0x00030000 (disabled, no port, HDMI, 8 bpc, +VSync, +HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_EDP: 0x00030000 (disabled, no port, HDMI, 8 bpc, +VSync, +HSync, EDP A ON, x1)
DP_TP_CTL_A : 0x00000000
DP_TP_CTL_B : 0x00000000
DP_TP_CTL_C : 0x00000000
DP_TP_CTL_D : 0x00000000
DP_TP_CTL_E : 0x00000000
DP_TP_STATUS_A : 0x00000000
DP_TP_STATUS_B : 0x00000000
DP_TP_STATUS_C : 0x00000000
DP_TP_STATUS_D : 0x00000000
DP_TP_STATUS_E : 0x00000000
DDI_BUF_CTL_A : 0x00000080 (disabled not reversed x1 not detected)
DDI_BUF_CTL_B : 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_C : 0x80000000 (enabled not reversed x1 not detected)
DDI_BUF_CTL_D : 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_E : 0x00000000 (disabled not reversed x1 not detected)
SPLL_CTL : 0x00000000
LCPLL_CTL : 0x44000037
WRPLL_CTL1 : 0xb01e0811
WRPLL_CTL2 : 0x00202418
PORT_CLK_SEL_A : 0xe0000000 (None)
PORT_CLK_SEL_B : 0xe0000000 (None)
PORT_CLK_SEL_C : 0x80000000 (WRPLL 1)
PORT_CLK_SEL_D : 0xe0000000 (None)
PORT_CLK_SEL_E : 0xe0000000 (None)
PIPE_CLK_SEL_A : 0x60000000 (DDIC)
PIPE_CLK_SEL_B : 0x00000000 (None)
PIPE_CLK_SEL_C : 0x00000000 (None)
SFUSE_STRAP : 0x00000007 (display enabled, crt no, lane reversal no, port b yes, port c yes, port d yes)
PIPEASRC : 0x068f0419 (1680, 1050)
DSPACNTR : 0xd8000400 (enabled)
DSPASTRIDE : 0x00001c00 (112)
DSPASURF : 0x10261000
DSPATILEOFF : 0x00000000 (0, 0)
PIPEBSRC : 0x00000000 (1, 1)
DSPBCNTR : 0x00000000 (disabled)
DSPBSTRIDE : 0x00000000 (0)
DSPBSURF : 0x00000000
DSPBTILEOFF : 0x00000000 (0, 0)
PIPECSRC : 0x00000000 (1, 1)
DSPCCNTR : 0x00000000 (disabled)
DSPCSTRIDE : 0x00000000 (0)
DSPCSURF : 0x00000000
DSPCTILEOFF : 0x00000000 (0, 0)
PIPEACONF : 0xc0000000 (enabled, active, pf-pd, rotate 0, 8bpc)
HTOTAL_A : 0x072f068f (1680 active, 1840 total)
HBLANK_A : 0x072f068f (1680 start, 1840 end)
HSYNC_A : 0x06df06bf (1728 start, 1760 end)
VTOTAL_A : 0x04370419 (1050 active, 1080 total)
VBLANK_A : 0x04370419 (1050 start, 1080 end)
VSYNC_A : 0x0422041c (1053 start, 1059 end)
VSYNCSHIFT_A : 0x00000000
PIPEA_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEA_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEA_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEA_LINK_N1 : 0x00000000 (val 0x0 0)
PIPEBCONF : 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_B : 0x00000000 (1 active, 1 total)
HBLANK_B : 0x00000000 (1 start, 1 end)
HSYNC_B : 0x00000000 (1 start, 1 end)
VTOTAL_B : 0x00000000 (1 active, 1 total)
VBLANK_B : 0x00000000 (1 start, 1 end)
VSYNC_B : 0x00000000 (1 start, 1 end)
VSYNCSHIFT_B : 0x00000000
PIPEB_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEB_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEB_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEB_LINK_N1 : 0x00000000 (val 0x0 0)
PIPECCONF : 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_C : 0x00000000 (1 active, 1 total)
HBLANK_C : 0x00000000 (1 start, 1 end)
HSYNC_C : 0x00000000 (1 start, 1 end)
VTOTAL_C : 0x00000000 (1 active, 1 total)
VBLANK_C : 0x00000000 (1 start, 1 end)
VSYNC_C : 0x00000000 (1 start, 1 end)
VSYNCSHIFT_C : 0x00000000
PIPEC_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEC_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEC_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEC_LINK_N1 : 0x00000000 (val 0x0 0)
PIPEEDPCONF : 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_EDP : 0x00000000 (1 active, 1 total)
HBLANK_EDP : 0x00000000 (1 start, 1 end)
HSYNC_EDP : 0x00000000 (1 start, 1 end)
VTOTAL_EDP : 0x00000000 (1 active, 1 total)
VBLANK_EDP : 0x00000000 (1 start, 1 end)
VSYNC_EDP : 0x00000000 (1 start, 1 end)
VSYNCSHIFT_EDP : 0x00000000
PIPEEDP_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEEDP_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEEDP_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEEDP_LINK_N1 : 0x00000000 (val 0x0 0)
PFA_CTL_1 : 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFA_WIN_POS : 0x00000000 (0, 0)
PFA_WIN_SIZE : 0x00000000 (0, 0)
PFB_CTL_1 : 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFB_WIN_POS : 0x00000000 (0, 0)
PFB_WIN_SIZE : 0x00000000 (0, 0)
PFC_CTL_1 : 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFC_WIN_POS : 0x00000000 (0, 0)
PFC_WIN_SIZE : 0x00000000 (0, 0)
TRANS_HTOTAL_A : 0x00000000 (1 active, 1 total)
TRANS_HBLANK_A : 0x00000000 (1 start, 1 end)
TRANS_HSYNC_A : 0x00000000 (1 start, 1 end)
TRANS_VTOTAL_A : 0x00000000 (1 active, 1 total)
TRANS_VBLANK_A : 0x00000000 (1 start, 1 end)
TRANS_VSYNC_A : 0x00000000 (1 start, 1 end)
TRANS_VSYNCSHIFT_A : 0x00000000
TRANSACONF : 0x00000000 (disable, inactive, progressive)
FDI_RXA_MISC : 0x0a200090 (FDI Delay 144)
FDI_RXA_TUSIZE1 : 0x7e000000
FDI_RXA_IIR : 0x00000000
FDI_RXA_IMR : 0x00000fff
BLC_PWM_CPU_CTL2 : 0x60000000 (enable 0, pipe EDP, blinking 0, granularity 128)
BLC_PWM_CPU_CTL : 0x00000000 (cycle 0, freq 0)
BLC_PWM2_CPU_CTL2 : 0x60000000 (enable 0, pipe EDP, blinking 0, granularity 128)
BLC_PWM2_CPU_CTL : 0x00000000 (cycle 0, freq 0)
BLC_MISC_CTL : 0x00000000 (PWM1-PCH PWM2-CPU)
BLC_PWM_PCH_CTL1 : 0x00000000 (enable 0, override 0, inverted polarity 0)
BLC_PWM_PCH_CTL2 : 0x00000000 (freq 0, cycle 0)
UTIL_PIN_CTL : 0x00000000 (enable 0, transcoder A, mode data, data 0 inverted polarity 0)
PCH_PP_STATUS : 0x00000000 (off, not ready, sequencing idle)
PCH_PP_CONTROL : 0x00000000 (blacklight disabled, do not power down on reset, panel off)
PCH_PP_ON_DELAYS : 0x00000000
PCH_PP_OFF_DELAYS : 0x00000000
PCH_PP_DIVISOR : 0x00186906
PIXCLK_GATE : 0x00000000
SDEISR : 0x00400000 (port d:0, port c:1, port b:0, crt:0)
RC6_RESIDENCY_TIME : 0x338a5d5f

See also:
Haswell CPU/iGPU power management with a GA-Z87M-D3H
AppleIntelFramebufferAzul.kext
AppleIntelFramebufferAzul.kext (part II)
AppleIntelFramebufferAzul.kext (part III)

AppleIntelInfo.kext

I want to rename AppleIntelCPUPowerManagementInfo.kext to AppleIntelinfo.kext and give it its own Github repository. That way I can update the source code more easily and add the new Intel Register Dumper tool code. A must have for IGPU only users. The problem is that I do not have the time for it… so is anyone reading this willing to do this for me? Don’t bother. Already done!

You can find the latest public source code in my github repository. Extra bonus points for adding a logfile to stop us from polluting the system.log

Please note that the new kext must run on a Yosemite system so you need the Xcode Beta!

Note: The new Intel Register Dumper for OS X enables you to dump the Intel IGPU registers to /var/log/system.log without having to use Linux! The output may come in handy if you are experiencing a black screen, reboots and other graphics issues with Yosemite. Take a look at my Haswell example below:

CPU_VGACNTRL : 0x8000298E
HSW_PWR_WELL_CTL1 : 0xc0000000
HSW_PWR_WELL_CTL2 : 0x40000000
HSW_PWR_WELL_CTL3 : 0x40000000
HSW_PWR_WELL_CTL4 : 0x40000000
HSW_PWR_WELL_CTL5 : 0x0004050f
HSW_PWR_WELL_CTL6 : 0x00000000
PIPE_DDI_FUNC_CTL_A : 0xb2030006 (enabled, DDID, DP SST, 8 bpc, +VSync, +HSync, EDP A ON, x4)
PIPE_DDI_FUNC_CTL_B : 0x00030000 (disabled, no port, HDMI, 8 bpc, +VSync, +HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_C : 0x00030000 (disabled, no port, HDMI, 8 bpc, +VSync, +HSync, EDP A ON, x1)
PIPE_DDI_FUNC_CTL_EDP: 0x00030000 (disabled, no port, HDMI, 8 bpc, +VSync, +HSync, EDP A ON, x1)
DP_TP_CTL_A : 0x00000000
DP_TP_CTL_B : 0x00000000
DP_TP_CTL_C : 0x00000000
DP_TP_CTL_D : 0x80040300
DP_TP_CTL_E : 0x00000000
DP_TP_STATUS_A : 0x00000000
DP_TP_STATUS_B : 0x00000000
DP_TP_STATUS_C : 0x00000000
DP_TP_STATUS_D : 0x00000000
DP_TP_STATUS_E : 0x00000000
DDI_BUF_CTL_A : 0x00000080 (disabled not reversed x1 not detected)
DDI_BUF_CTL_B : 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_C : 0x00000000 (disabled not reversed x1 not detected)
DDI_BUF_CTL_D : 0x86000006 (enabled not reversed x4 not detected)
DDI_BUF_CTL_E : 0x00000000 (disabled not reversed x1 not detected)
SPLL_CTL : 0x00000000
LCPLL_CTL : 0x44000037
WRPLL_CTL1 : 0x00202418
WRPLL_CTL2 : 0x00202418
PORT_CLK_SEL_A : 0xe0000000 (None)
PORT_CLK_SEL_B : 0xe0000000 (None)
PORT_CLK_SEL_C : 0xe0000000 (None)
PORT_CLK_SEL_D : 0x20000000 (LCPLL 1350)
PORT_CLK_SEL_E : 0xe0000000 (None)
PIPE_CLK_SEL_A : 0x80000000 (DDID)
PIPE_CLK_SEL_B : 0x00000000 (None)
PIPE_CLK_SEL_C : 0x00000000 (None)
SFUSE_STRAP : 0x00000007 (display enabled, crt no, lane reversal no, port b yes, port c yes, port d yes)
PIPEASRC : 0x077f04af (1920, 1200)
DSPACNTR : 0x98000000 (enabled)
DSPASTRIDE : 0x00001e00 (120)
DSPASURF : 0x00000000
DSPATILEOFF : 0x00000000 (0, 0)
PIPEBSRC : 0x00000000 (1, 1)
DSPBCNTR : 0x00000000 (disabled)
DSPBSTRIDE : 0x00000000 (0)
DSPBSURF : 0x00000000
DSPBTILEOFF : 0x00000000 (0, 0)
PIPECSRC : 0x00000000 (1, 1)
DSPCCNTR : 0x00000000 (disabled)
DSPCSTRIDE : 0x00000000 (0)
DSPCSURF : 0x00000000
DSPCTILEOFF : 0x00000000 (0, 0)
PIPEACONF : 0xc0000010 (enabled, active, pf-pd, rotate 0, 8bpc)
HTOTAL_A : 0x081f077f (1920 active, 2080 total)
HBLANK_A : 0x081f077f (1920 start, 2080 end)
HSYNC_A : 0x07cf07af (1968 start, 2000 end)
VTOTAL_A : 0x04d204af (1200 active, 1235 total)
VBLANK_A : 0x04d204af (1200 start, 1235 end)
VSYNC_A : 0x04b804b2 (1203 start, 1209 end)
VSYNCSHIFT_A : 0x00000000
PIPEA_DATA_M1 : 0x7e36c16c (TU 64, val 0x36c16c 3588460)
PIPEA_DATA_N1 : 0x00800000 (val 0x800000 8388608)
PIPEA_LINK_M1 : 0x0004901e (val 0x4901e 299038)
PIPEA_LINK_N1 : 0x00080000 (val 0x80000 524288)
PIPEBCONF : 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_B : 0x00000000 (1 active, 1 total)
HBLANK_B : 0x00000000 (1 start, 1 end)
HSYNC_B : 0x00000000 (1 start, 1 end)
VTOTAL_B : 0x00000000 (1 active, 1 total)
VBLANK_B : 0x00000000 (1 start, 1 end)
VSYNC_B : 0x00000000 (1 start, 1 end)
VSYNCSHIFT_B : 0x00000000
PIPEB_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEB_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEB_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEB_LINK_N1 : 0x00000000 (val 0x0 0)
PIPECCONF : 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_C : 0x00000000 (1 active, 1 total)
HBLANK_C : 0x00000000 (1 start, 1 end)
HSYNC_C : 0x00000000 (1 start, 1 end)
VTOTAL_C : 0x00000000 (1 active, 1 total)
VBLANK_C : 0x00000000 (1 start, 1 end)
VSYNC_C : 0x00000000 (1 start, 1 end)
VSYNCSHIFT_C : 0x00000000
PIPEC_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEC_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEC_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEC_LINK_N1 : 0x00000000 (val 0x0 0)
PIPEEDPCONF : 0x00000000 (disabled, inactive, pf-pd, rotate 0, 8bpc)
HTOTAL_EDP : 0x00000000 (1 active, 1 total)
HBLANK_EDP : 0x00000000 (1 start, 1 end)
HSYNC_EDP : 0x00000000 (1 start, 1 end)
VTOTAL_EDP : 0x00000000 (1 active, 1 total)
VBLANK_EDP : 0x00000000 (1 start, 1 end)
VSYNC_EDP : 0x00000000 (1 start, 1 end)
VSYNCSHIFT_EDP : 0x00000000
PIPEEDP_DATA_M1 : 0x00000000 (TU 1, val 0x0 0)
PIPEEDP_DATA_N1 : 0x00000000 (val 0x0 0)
PIPEEDP_LINK_M1 : 0x00000000 (val 0x0 0)
PIPEEDP_LINK_N1 : 0x00000000 (val 0x0 0)
PFA_CTL_1 : 0x80800000 (enable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel hardcoded,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFA_WIN_POS : 0x00000000 (0, 0)
PFA_WIN_SIZE : 0x078004b0 (1920, 1200)
PFB_CTL_1 : 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFB_WIN_POS : 0x00000000 (0, 0)
PFB_WIN_SIZE : 0x00000000 (0, 0)
PFC_CTL_1 : 0x00000000 (disable, auto_scale yes, auto_scale_cal no, v_filter enable, vadapt disable, mode least, filter_sel programmed,chroma pre-filter disable, vert3tap auto, v_inter_invert field 1)
PFC_WIN_POS : 0x00000000 (0, 0)
PFC_WIN_SIZE : 0x00000000 (0, 0)
TRANS_HTOTAL_A : 0x00000000 (1 active, 1 total)
TRANS_HBLANK_A : 0x00000000 (1 start, 1 end)
TRANS_HSYNC_A : 0x00000000 (1 start, 1 end)
TRANS_VTOTAL_A : 0x00000000 (1 active, 1 total)
TRANS_VBLANK_A : 0x00000000 (1 start, 1 end)
TRANS_VSYNC_A : 0x00000000 (1 start, 1 end)
TRANS_VSYNCSHIFT_A : 0x00000000
TRANSACONF : 0x00000000 (disable, inactive, progressive)
FDI_RXA_MISC : 0x0a200090 (FDI Delay 144)
FDI_RXA_TUSIZE1 : 0x7e000000
FDI_RXA_IIR : 0x00000000
FDI_RXA_IMR : 0x00000fff
BLC_PWM_CPU_CTL2 : 0x60000000 (enable 0, pipe EDP, blinking 0, granularity 128)
BLC_PWM_CPU_CTL : 0x00000000 (cycle 0, freq 0)
BLC_PWM2_CPU_CTL2 : 0x60000000 (enable 0, pipe EDP, blinking 0, granularity 128)
BLC_PWM2_CPU_CTL : 0x00000000 (cycle 0, freq 0)
BLC_MISC_CTL : 0x00000000 (PWM1-PCH PWM2-CPU)
BLC_PWM_PCH_CTL1 : 0x00000000 (enable 0, override 0, inverted polarity 0)
BLC_PWM_PCH_CTL2 : 0x00000000 (freq 0, cycle 0)
UTIL_PIN_CTL : 0x00000000 (enable 0, transcoder A, mode data, data 0 inverted polarity 0)
PCH_PP_STATUS : 0x00000000 (off, not ready, sequencing idle)
PCH_PP_CONTROL : 0x00000000 (blacklight disabled, do not power down on reset, panel off)
PCH_PP_ON_DELAYS : 0x00000000
PCH_PP_OFF_DELAYS : 0x00000000
PCH_PP_DIVISOR : 0x00186906
PIXCLK_GATE : 0x00000000
SDEISR : 0x00800000 (port d:1, port c:0, port b:0, crt:0)
RC6_RESIDENCY_TIME : 0x70b38d42

New repository for AppleIntelFramebufferAzul.sh

I have updated AIFBAzul.sh and renamed it to AppleIntelFramebufferAzul.sh. It is now also much easier to get, from my Github repository instead of my Dropbox.

sudo curl -o ~/AppleIntelFramebufferAzul.sh https://raw.githubusercontent.com/Piker-Alpha/AppleIntelFramebufferAzul.sh/master/AppleIntelFramebufferAzul.sh

That will download the file to your user directory. The next step is to change the file mode (+x) with:

chmod +x ~/AppleIntelFramebufferAzul.sh

Usage

Usage: sudo ~/AppleIntelFramebufferAzul.sh AAPL,ig-platform-id [dump|show|patch|replace|undo|restore] [TARGET_FILE]

Examples

~/AppleIntelFramebufferAzul.sh dump

~/AppleIntelFramebufferAzul.sh 0x0d220003 show

~/AppleIntelFramebufferAzul.sh 0x0d220003 patch

Note: You must modify the data below this line:
0x0d220003) PATCHED_PLATFORM_INFO=”0:
before anything can be patched, of course.

~/AppleIntelFramebufferAzul.sh 0x0d220003 [undo or restore]

Bugs

All possible bugs (so called ‘issues’) should be filed at:

https://github.com/Piker-Alpha/AppleIntelFramebufferAzul.sh/issues

Please do not use my blog for this.

Thank you!

Update

In version 1.6 I added some lines to ask to reboot, which I found handy, and in version 1.7 I also added new code to make the dump option work without Xcode’s nm.

Long mode

Just wondering; why wasn’t the 32-bit Chameleon code ported to 64-bit?

Think about it guys. That would really have made our life easier. Here is one example. Porting the disassembled _lzvn_decode function would have been pretty easy …

I first changed the Makefiles to make it compile the selected build target i.e. i386 or x86_64. For this I also had to copy the i386 directory to x86_64 and then I changed libsaio/libsaio.h like so:

-#include "io_inline.h"
+#include <architecture/i386/pio.h>

This way it includes: /usr/include/architecture/i386/pio.h instead of libsaio.h and now the errors for the x86_64 target in this file are solved.

I also added a new function called _prot_to_long to asm.s and it compiles without errors, but now I have to solve a reboot issue. And yes. I decided to switch from protected mode to long mode so that I can call decode_lzvn() without issues. Theoretically that is, because it isn’t working yet.

p.s. Oops. I clicked on “Update” instead of “Preview Change”. Now you see an incomplete article. Sorry about that. Hang in…

Friendly request…

I have been away for work yesterday and thus I had zero time for hack related stuff. I also have a friendly request. Can someone please e-mail me a patched AppleHDA.kext (8 series) from Yosemite (DP3) that doesn’t work? I need one, because here everything is working. In short. Would love to fix this issue, but I need your help. Oh and don’t forgot to run: ./AppleHDA8Series.sh with -b AppleHDA -b AppleHDAController

Thanks!

Update

Use the vanilla AppleHDA.kext only when you run AppleHDA8series.sh otherwise patching may fail.

AppleHDA8Series.sh v2.9 with Yosemite support

A week ago I blogged about my Haswell HDAU solution for Yosemite but the patch instructions (proof of concept) doesn’t work with Yosemite DP3 (Build 14A283o). Time to finally finish the AppleHDA8Series.sh update and release it. Enter version 2.9

Download

AppleHDA8Series.sh v2.9 is now available for download. Here is a little how-to:

1) curl -o AppleHDA8Series.sh https://raw.githubusercontent.com/Piker-Alpha/AppleHDA8Series.sh/master/AppleHDA8Series.sh

2) chmod +x AppleHDA8Series.sh

3) ./AppleHDA8Series.sh -b AppleHDA -b AppleHDAController

New

AppleHDA8Series.sh now includes a new automatic binary patching feature, to patch the AppleHDAController binary, which should enable HDMI audio.

Bugs

Please report bugs over at: https://github.com/Piker-Alpha/AppleHDA8Series.sh/issues
Not here. Thank you!

Update

Whoops. That didn’t work. Version 3.0 out with a few corrections. Thanks to Toleda for reporting it.

Update 2

You may see the following sound assertion in: /var/log/system.log (DP3)

Sound assertion in AppleHDAController at line 2861

Fixed by changing the connector-type data in the HDMI frame buffer from 0004 0000 to 0008 0000.