Jump to content

Intel HD 4600 QE/CI Yosemite


wusa
 Share

482 posts in this topic

Recommended Posts

Okay, sorry re. last posting.

 

Please see attached for the two different dump scenarios with HDMI connection, where HDMI is primary/Secondary.

 

Many thanks for your help Pike.

 

PS Let me know if the other two scenarios will help (i.e. booting from DP with DP set as primary/secondary).

2 Dumps.zip

Link to comment
Share on other sites

Ok so I had a look tonight. Good news, but let me start by telling you that I normally have to boot with a VGA monitor connected. This since some version of Mavericks (forgot which one it was) and this just to get by a reboot before it shows the desktop. Now I can remove the VGA connector in both 10.9.4 and 10.10 after adding this to boot.c:

 

outb(0x3c4, 1);

unsigned char sr1 = inb(0x3c5);

outw(0x3c5, ((sr1 | (1<<5)) << 8));

 

Note that I still need to use the AppleIntelFramebufferAzul binary of DP2, but only because I haven't patched the one of DP4 yet. Tomorrow I will have another look and see if I can finish it.

  • Like 2
Link to comment
Share on other sites

From what I've heard, the public beta is the exact same version as DP4. Didn't confirm it though.

In my Hackintosh for Asus Z87 Deluxe-Dual desktop and Asus G750JZ laptop it seems no difference between them.

Both are working for desktop Intel HD4600, but no QE/CI for mobile Intel HD4600 yet.

Link to comment
Share on other sites

Pike R. Alpha, is there any good news with the Intel HD Graphics 4600 (Mobile Version with ID 0x04168086) ?

I'm afraid not. I did port setBootPipe() from DP2 to DP4 but that didn't help. It works alright, but the problem is still there so I am going to wait for the next developer preview (no time at this moment) in the hope that something will change.

Link to comment
Share on other sites

I'm afraid not. I did port setBootPipe() from DP2 to DP4 but that didn't help. It works alright, but the problem is still there so I am going to wait for the next developer preview (no time at this moment) in the hope that something will change.

WIll that though potentially help me with my less complex issue of changing graphic port priorities? If so, is it a boot loader patch rather than an Azul binary patch - I can't really see myself patching Clover but if there is a simple binary patch to the Azul kext then I could just put that patch into the Clover config.plist.

Thanks anyway for your help Pike - as always I much appreciate your efforts.

Link to comment
Share on other sites

WIll that though potentially help me with my less complex issue of changing graphic port priorities? If so, is it a boot loader patch rather than an Azul binary patch - I can't really see myself patching Clover but if there is a simple binary patch to the Azul kext then I could just put that patch into the Clover config.plist.

Thanks anyway for your help Pike - as always I much appreciate your efforts.

The patch is rather long – I replaced function setBootPipe() – and it still is doesn't work. Not for the issue with your hardware, not for the issue I am having with my hardware – though I don't expect Apple to revert the frame buffer code to that of DP2 so I will keep having a stab at it. Be it on a low priority for now.

 

@Allsop,

 

There is no new chipset (no series 9) in the latest MacBookPro11.N Only the CPU is being updated.

Link to comment
Share on other sites

Oh absolutely. You will of course have to inject your device_id, since that is not part of the Info.plist, but it should work some time in the near future. I just need to figure out what "mmio" should be set to. After that any writable register should be at our disposal.

#define PIPE_DDI_FUNC_CTL_A 0x60400
#define PIPE_DDI_FUNC_CTL_B 0x61400
#define PIPE_DDI_FUNC_CTL_C 0x62400
#define PIPE_DDI_FUNC_CTL_EDP 0x6F400

uint32_t mmio = 0xf0000000; // Needs to be initialised correctly for your setup!

printf("PIPE_DDI_FUNC_CTL_A   : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_A)));
printf("PIPE_DDI_FUNC_CTL_B   : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_));
printf("PIPE_DDI_FUNC_CTL_C   : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_C)));
printf("PIPE_DDI_FUNC_CTL_EDP : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_EDP)));

I added this snippet to RevoBoot and got the same values as the intel_reg_dumper command line tool gave me so let the fun begin :-)

 

WARNING: YOU CAN BLOW UP YOUR CPU IF YOU DO SOMETHING WRONG !!!

Link to comment
Share on other sites

Oh absolutely. You will of course have to inject your device_id, since that is not part of the Info.plist, but it should work some time in the near future. I just need to figure out what "mmio" should be set to. After that any writable register should be at our disposal.

#define PIPE_DDI_FUNC_CTL_A 0x60400
#define PIPE_DDI_FUNC_CTL_B 0x61400
#define PIPE_DDI_FUNC_CTL_C 0x62400
#define PIPE_DDI_FUNC_CTL_EDP 0x6F400

uint32_t mmio = 0xf0000000; // Needs to be initialised correctly for your setup!

printf("PIPE_DDI_FUNC_CTL_A   : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_A)));
printf("PIPE_DDI_FUNC_CTL_B   : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_));
printf("PIPE_DDI_FUNC_CTL_C   : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_C)));
printf("PIPE_DDI_FUNC_CTL_EDP : 0x%X\n", *(volatile uint32_t *)((volatile char*)(mmio + PIPE_DDI_FUNC_CTL_EDP)));

I added this snippet to RevoBoot and got the same values as the intel_reg_dumper command line tool gave me so let the fun begin :-)

 

WARNING: YOU CAN BLOW UP YOUR CPU IF YOU DO SOMETHING WRONG !!!

So, Pike R. Alpha, is there any way to apply this patch in Clover ? And btw, is there a way to determine the correct mmio ?

Link to comment
Share on other sites

So, Pike R. Alpha, is there any way to apply this patch in Clover ? And btw, is there a way to determine the correct mmio ?

No patch for Clover yet. Might not even be needed. And yes. I am using this:

outl(0xcf8, 0x80001010);
inl(0xcfc); // (bits 38:29 = mmio)

At least now we can read all registers, which by the way helped me to understand what the AppleIntelFramebufferAzul binary is doing. I'm not there yet, but I am getting close.

 

Also. Rebooting at startup may be stopped by removing the -s -v arguments. It may not bring you to the desktop, but it stopped the reboot here.

Link to comment
Share on other sites

 Share

×
×
  • Create New...