Trucker MK Posted June 13, 2014 Share Posted June 13, 2014 Those who followed my old thread about the AMD Radeon HD 6650M here already know that until now we were not able to inject custom EDID with Clover or with DSDT injection (needed for the gradients fix) . A while ago i finally solved the Gradients issue with the help from freeuser16 by using Andy Vandijck's FixEDID and DisplayMergeNUB.kext to inject custom EDID but I always wondered what could be the problem and why Clover/DSDT EDID injection is not working for the 6650M. Few day ago i started to play around again with diferrent Transmitter, Encoder and SenseID values using Clover, of course using Custom EDID injection. Until now i always used Ipomoea or Pondweed patched framebuffer: 02000000400000000901000010000003 00080000000200000001000011020101 10000000100000000001000000000205 based on the decoded VBIOS with radeon_bios_decoder PCI ID: 1002:6741 Connector at index 0 Type [@offset 44838]: LVDS (7) Encoder [@offset 44842]: INTERNAL_UNIPHY (0x1e) i2cid [@offset 44912]: 0x92, OSX senseid: 0x3 Connector at index 1 Type [@offset 44848]: HDMI-A (11) Encoder [@offset 44852]: INTERNAL_UNIPHY1 (0x20) i2cid [@offset 44935]: 0x90, OSX senseid: 0x1 Connector at index 2 Type [@offset 44858]: VGA (1) Encoder [@offset 44862]: INTERNAL_KLDSCP_DAC1 (0x15) i2cid [@offset 44962]: 0x94, OSX senseid: 0x5 and redsock_bios decoder: Connector Object Id [14] which is [LVDS] encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false Connector Object Id [12] which is [HDMI_TYPE_A] encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false Connector Object Id [5] which is [VGA] encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false This time i decided to test few other framebuffers with the same patched framebuffer values i used for Ipomoea and Pondweed. I made the changes in Clover's config.plist (this time i used Cattail) , rebooted (without DisplayMergeNUB.kext) and no suprise at all, when using transmitter/encoder 10/00 and EDID is not injected, i get this: I decided to go with Fanwort next but this time completly by accident/mistake i somehow used SenseID 0x5 instead of 0x3 (as you can see in the decoded VBIOS, LVDS uses SenseID 0x3), and guess what, finally the custom EDID was injected by Clover and everything was perfect. I opened the config.plist and i saw that i used wrong SenseID for LVDS but it was working perfect. To keep it short, out of curiousity i tried every framebuffer from the AMD6000Controller.kext with default values, and guess what, Cattail (4) @ 0x167920 LVDS, DP, DP, DP 02000000400000002905000000000005 00040000040300000001000011020101 00040000000100000009100021030202 00040000000100000009100012040303 and Fanwort (4) @ 0x1679f0 LVDS, DP, DP, DP 02000000400000002905000000000004 00040000040300000001000011020101 00040000000100000009100021030202 00040000000100000009100012040303 both work with wrong LVDS SenseID and custom EDID is injected. The next thing i tried, it was using "wrong" SenseID in Ipomoea (i tried with 0x2, 0x4, 0x6, 0x7 and 0x8 - EDID is injected with all off these, except of course with 0x3, which is in the VBIOS. Why? I have no idea. Today i tried to inject the EDID with DSTD and it also works with this framebuffer: (SenseID 0x4 and probably others, 0x2, 0x5, 0x6, 0x7, 0x8) 02000000400000000901000010000004 00080000000200000001000011020101 10000000100000000001000000000205 and this in your DSDT in Device (PEGP). This is my custom EDID, i have the 17" Display, DisplayProductID 0x289 and DisplayVendorID 0x30e4 "AAPL00,override-no-connect", Buffer (0x80) { /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, /* 0008 */ 0x06, 0x10, 0x14, 0xA0, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x0A, 0x16, 0x01, 0x04, 0x90, 0x26, 0x15, 0x78, /* 0018 */ 0x0A, 0x6F, 0xB1, 0xA7, 0x55, 0x4C, 0x9E, 0x25, /* 0020 */ 0x0C, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, /* 0028 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2F, 0x26, /* 0038 */ 0x40, 0xB8, 0x60, 0x84, 0x0C, 0x30, 0x30, 0x30, /* 0040 */ 0x23, 0x00, 0x7E, 0xD7, 0x10, 0x00, 0x00, 0x19, /* 0048 */ 0x00, 0x00, 0x00, 0xFC, 0x00, 0x43, 0x6F, 0x6C, /* 0050 */ 0x6F, 0x72, 0x20, 0x4C, 0x43, 0x44, 0x0A, 0x20, /* 0058 */ 0x20, 0x20, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, /* 0060 */ 0x00, 0x00, 0x4C, 0x47, 0x44, 0x69, 0x73, 0x70, /* 0068 */ 0x6C, 0x61, 0x79, 0x0A, 0x00, 0x00, 0x00, 0xFE, /* 0070 */ 0x00, 0x4C, 0x50, 0x31, 0x37, 0x33, 0x57, 0x44, /* 0078 */ 0x31, 0x2D, 0x54, 0x4C, 0x41, 0x33, 0x00, 0x66 }, custom EDID for Clover 00FFFFFFFFFFFF00061014A0000000000A160104902615780A6FB1A7554C9E250C5054000000010101010101010101010101010101012F2640B860840C30303023007ED710000019000000FC00436F6C6F72204C43440A202020000000FE000000004C47446973706C61790A000000FE004C503137335744312D544C41330066 This could also work for others who have the gradients issue. I need someone (maybe you Basss) who uses Clover to test this with VGA, Plug in - Plug Out was not detected properly until now, but maybe with this SenseID we will have some changes. 1 Link to comment Share on other sites More sharing options...
freeuser16 Posted June 13, 2014 Share Posted June 13, 2014 Does sleep work with "wrong" senseid? I think framebuffer patch has some effect on it. Link to comment Share on other sites More sharing options...
Trucker MK Posted June 13, 2014 Author Share Posted June 13, 2014 It sleeps like a baby. Computer Sleep/Wake, Display Sleep/Wake EDIT 1. I just double checked, It works with this patched Fanwort framebuffer: Original 02000000400000002905000000000005000400000403000000010000110201010004000000010000000910002103020200040000000100000009100012040303 Patched 02000000400000000901000010000004000800000002000000010000110201011000000010000000000100000010020500000000000000000000000000000300 I will try with patched Ipomoea in a bit, because i am using Fanwort at the moment. EDIT 2. Yep, it works. 1 Link to comment Share on other sites More sharing options...
passmaster16 Posted June 13, 2014 Share Posted June 13, 2014 This is odd, so does the senseid really not mean anything then? I thought the senseid had to match what was in the vbios. Link to comment Share on other sites More sharing options...
Trucker MK Posted June 13, 2014 Author Share Posted June 13, 2014 Beats me. EDID injection with Clover or DSDT obviously makes a difference, at least in the case of AMD Radon HD 6650M. Link to comment Share on other sites More sharing options...
passmaster16 Posted June 13, 2014 Share Posted June 13, 2014 This weekend I'll see if I can reproduce the behavior with 7650M. Link to comment Share on other sites More sharing options...
mmon Posted June 13, 2014 Share Posted June 13, 2014 I've also noticed, that "wrong" senseid values cause positive effects) ATOM BIOS Rom:SubsystemVendorID: 0x1179 SubsystemID: 0xfd12IOBaseAddress: 0x4000Filename: BR36889.001BIOS Bootup Message:Toshiba Berlin10G PARK M2 XT DDR3 64Mx16 256/512MBPCI ID: 1002:68e0Connector at index 0Type [@offset 45508]: LVDS (7)Encoder [@offset 45512]: INTERNAL_UNIPHY (0x1e)i2cid [@offset 45582]: 0x96, OSX senseid: 0x7Connector at index 1Type [@offset 45518]: HDMI-A (11)Encoder [@offset 45522]: INTERNAL_UNIPHY1 (0x20)i2cid [@offset 45605]: 0x90, OSX senseid: 0x1Connector at index 2Type [@offset 45528]: VGA (1)Encoder [@offset 45532]: INTERNAL_KLDSCP_DAC1 (0x15)i2cid [@offset 45632]: 0x93, OSX senseid: 0x4Toshiba Berlin10G PARK M2 XT DDR3 64Mx16 256/512MB On my 5470m if I set senseid to 0x04 for vga output - vga doesn't work at all if I set for instance 0x03 - it works, but system doesn't react on unplugging vga (always have a mirror display) Link to comment Share on other sites More sharing options...
Trucker MK Posted June 13, 2014 Author Share Posted June 13, 2014 Try different senseid for LVDS with 0x4 or 0x3 for VGA Link to comment Share on other sites More sharing options...
mmon Posted June 13, 2014 Share Posted June 13, 2014 Try different senseid for LVDS with 0x4 or 0x3 for VGA LVDS and HDMI works flawlessly with values from vbios report. 0200 0000 4000 0000 0901 0000 1000 0007 LVDS0008 0000 0002 0000 0071 0000 1102 0101 HDMI 1000 0000 1000 0000 0000 0000 0010 0204 VGA VGA doesn't work with "proper" 0x04 and works with any other value Link to comment Share on other sites More sharing options...
Trucker MK Posted June 13, 2014 Author Share Posted June 13, 2014 I understand, but maybe using different senseid for LVDS will fix your VGA with 0x4 or some other, doesn't hurt to try, it's easy with Clover. Edit. By fix your VGA i mean, fix the plugging in and out detection and not able to use as extended desktop, just mirror. Link to comment Share on other sites More sharing options...
mmon Posted June 13, 2014 Share Posted June 13, 2014 I changed senseid for LVDS from 0x7 to 0x5, nothing happened to vga I think that senseid is not the main issue. Who knows what are working values for other properties of personality(features, controlflags..) for vga? Link to comment Share on other sites More sharing options...
Trucker MK Posted June 13, 2014 Author Share Posted June 13, 2014 1000 0000 1000 0000 0000 0000 0000 0204 Try this with senseid which is working for you. With this framebuffer for VGA i can use it as extended desktop/mirror display only if i connect it when i power on my laptop. If my laptop is already running it can't detect it. When i disconnect the VGA,i can still see it in System Preferences/Displays. When i connect it back it's detected. (It behaved like this before, i haven't test it now with the "wrong" senseid) Link to comment Share on other sites More sharing options...
mmon Posted June 13, 2014 Share Posted June 13, 2014 1000 0000 1000 0000 0000 0000 0000 0204 Try this with senseid which is working for you. With this framebuffer for VGA i can use it as extended desktop/mirror display only if i connect it when i power on my laptop. If my laptop is already running it can't detect it. When i disconnect the VGA,i can still see it in System Preferences/Displays. When i connect it back it's detected. (It behaved like this before, i haven't test it now with the "wrong" senseid) Cool. VGA works fine if I boot with plugged cable. Both LVDS and VGA are working. Nice) What I've noticed. All two boots were with plugged VGA cable on cold boot. Firstly I booted with 1000 0000 1000 0000 0000 0000 0010 0204 - I saw some artifacts on my vga screen. Image was distorted and littly shifted with 1366x768 resolution(like on lvds?). Secondly I booted with 1000 0000 1000 0000 0000 0000 0000 0204 and all is perfect) But there is no plug/unplug detection( I've also disabled PatchVBIOS option in clover for any case I think, that we are missing some value in features property. For HDMI plug/unplug detection we should set 0x71 in features. Will try the same trick in vga personality) UPD: Not sure if 0x71 in features causes this but... VGA turns on if I put Laptop in sleep, plug vga and wake. Doesn't matter if you boot with plugged cable or not. There is no system response but it just works. And if you unplug cable and make sleep/wake laptop again, vga monitor "became disconnected" and disappear from active displays Link to comment Share on other sites More sharing options...
Trucker MK Posted June 13, 2014 Author Share Posted June 13, 2014 Cool, that's definitely better. I'm sure I tried the sleep-wake trick but it didn't worked. We are getting there, I wish I had a VGA monitor with me to test it Try different HotPlugID. Link to comment Share on other sites More sharing options...
freeuser16 Posted June 13, 2014 Share Posted June 13, 2014 Does it show a VGA monitor in the menu bar? I'm not sure if it should, it never did for me since Lion and for HDMI monitors it does.. Link to comment Share on other sites More sharing options...
passmaster16 Posted June 14, 2014 Share Posted June 14, 2014 It appears that no matter what I do, I cannot successfully inject the EDID using clover. Even if I take a known working EDID that's being used in DisplayMergeNub.kext and add to the Clover custom EDID field, I either end up with a completely black screen or a black screen with backlight. When it's just a black screen, its not recognized at all in ioreg, when it's a black screen + backlight, it is recognized as AppleDisplay. This is on a Radeon HD 7650M. Dual link is set to 1 in the Clover configuration. Any other ideas why this wouldn't work??? Link to comment Share on other sites More sharing options...
mmon Posted June 14, 2014 Share Posted June 14, 2014 It appears that no matter what I do, I cannot successfully inject the EDID using clover. Even if I take a known working EDID that's being used in DisplayMergeNub.kext and add to the Clover custom EDID field, I either end up with a completely black screen or a black screen with backlight. When it's just a black screen, its not recognized at all in ioreg, when it's a black screen + backlight, it is recognized as AppleDisplay. This is on a Radeon HD 7650M. Dual link is set to 1 in the Clover configuration. Any other ideas why this wouldn't work??? Try with duallink 0 Does it show a VGA monitor in the menu bar? I'm not sure if it should, it never did for me since Lion and for HDMI monitors it does.. Nope, there is no menu bar option like for HDMI, system only shows that monitor is connected in active displays menu. Link to comment Share on other sites More sharing options...
Trucker MK Posted June 14, 2014 Author Share Posted June 14, 2014 Now I really got it why EDID is not being injected with senseid 0x3, I just managed to do it Tomorrow I will have a VGA monitor to run some tests and I will update my OP if there are changes, my guess is there are gonna be. If anyone with 6650M wants to test it today, let me know. (You need to have VGA and HDMI) @mmon Which framebuffer you are patching? Link to comment Share on other sites More sharing options...
mmon Posted June 14, 2014 Share Posted June 14, 2014 @mmon Which framebuffer you are patching? Hoolock Some tests features bits 00FF in VGA personality doesn't make a difference features bits FF00 - system doesn't boot at all Link to comment Share on other sites More sharing options...
Trucker MK Posted June 14, 2014 Author Share Posted June 14, 2014 Can you test another framebuffer and see if there are any changes? Original: 02000000000100000901000012040303000400000406000000710000110201010004000004060000007100002103020200040000040600000071000022050404 Patched: 02000000400000000901000010000307000800000002000000710000110201010004000004060000007100002103020210000000100000000071000000000404 This is Alouatta framebuffer, use AtiPorts=3 Link to comment Share on other sites More sharing options...
mmon Posted June 14, 2014 Share Posted June 14, 2014 Laptop is busy in work now, I'll test it later Link to comment Share on other sites More sharing options...
Trucker MK Posted June 14, 2014 Author Share Posted June 14, 2014 No problem at all. Link to comment Share on other sites More sharing options...
Trucker MK Posted June 15, 2014 Author Share Posted June 15, 2014 It appears that no matter what I do, I cannot successfully inject the EDID using clover. Even if I take a known working EDID that's being used in DisplayMergeNub.kext and add to the Clover custom EDID field, I either end up with a completely black screen or a black screen with backlight. When it's just a black screen, its not recognized at all in ioreg, when it's a black screen + backlight, it is recognized as AppleDisplay. This is on a Radeon HD 7650M. Dual link is set to 1 in the Clover configuration. Any other ideas why this wouldn't work??? The reason why EDID injection works and it works also with "wrong" senseid for me is because in my custom EDID i am using Descriptor Name from MacBook Pro, i just figured this out (my display was recognized as DisplayProductID 0x0a14 and DisplayVendorID 0x610). I tried with my original Descriptor Name and it's not working. Post your original and custom EDID, i will help you. 1 Link to comment Share on other sites More sharing options...
mmon Posted June 15, 2014 Share Posted June 15, 2014 Does sleep work with "wrong" senseid? I think framebuffer patch has some effect on it. Hey, could you test VGA output? As far as I remember you wanted to get it working) Link to comment Share on other sites More sharing options...
Trucker MK Posted June 15, 2014 Author Share Posted June 15, 2014 You don't have to, i am getting a VGA monitor today, I'll test it. Link to comment Share on other sites More sharing options...
Recommended Posts