Jump to content
InsanelyMac Forum
  • Announcements

    • Allan

      Solution to create a topic or post.   04/24/2018

      Hello guys. The majority of you are having issues to create a topic or post here. This are a problem with our current theme InsanelyMac.  Now the theme will be the Default IPS. Sorry for any inconvenience.
Trucker MK

AMD Radeon HD 6650M, The Last Piece Of The Puzzle - EDID Injection with Clover or DSDT (The mistery of the "wrong" LVDS SenseID)

Recommended Posts

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:

post-423012-0-08581000-1402671527_thumb.jpg

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.

Share this post


Link to post
Share on other sites
Advertisement

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.

Share this post


Link to post
Share on other sites

Beats me. EDID injection with Clover or DSDT obviously makes a difference, at least in the case of AMD Radon HD 6650M.

Share this post


Link to post
Share on other sites

I've also noticed, that "wrong" senseid values cause positive effects)

 

 

ATOM BIOS Rom:
SubsystemVendorID: 0x1179 SubsystemID: 0xfd12
IOBaseAddress: 0x4000
Filename: BR36889.001
BIOS Bootup Message:
Toshiba Berlin10G PARK M2 XT DDR3 64Mx16 256/512MB

PCI ID: 1002:68e0
Connector at index 0
Type [@offset 45508]: LVDS (7)
Encoder [@offset 45512]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45582]: 0x96, OSX senseid: 0x7
Connector at index 1
Type [@offset 45518]: HDMI-A (11)
Encoder [@offset 45522]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45605]: 0x90, OSX senseid: 0x1
Connector at index 2
Type [@offset 45528]: VGA (1)
Encoder [@offset 45532]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45632]: 0x93, OSX senseid: 0x4

Toshiba 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)

Share this post


Link to post
Share on other sites

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 LVDS

0008 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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites
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)

Share this post


Link to post
Share on other sites
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

post-964902-0-45702600-1402687119_thumb.png

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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..

Share this post


Link to post
Share on other sites

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???

Share this post


Link to post
Share on other sites

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. 

Share this post


Link to post
Share on other sites

Now I really got it why EDID is not being injected with senseid 0x3, I just managed to do it :D 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?

Share this post


Link to post
Share on other sites

@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

Share this post


Link to post
Share on other sites

Can you test another framebuffer and see if there are any changes?

Original:

02000000000100000901000012040303000400000406000000710000110201010004000004060000007100002103020200040000040600000071000022050404

Patched:

02000000400000000901000010000307000800000002000000710000110201010004000004060000007100002103020210000000100000000071000000000404

This is Alouatta framebuffer, use AtiPorts=3

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.



  • Posts

    • Try this folder: EFI_24042018.zip If you're booting to the installer, while in clover menu, go to options > graphics injector and change ig-platform-id to 0x12345678
    • both, because as i have seen you don't have FakeSMC plugin's,  but you still need some things in config.plist 
    • Test this https://www.dropbox.com/s/j800jusbzh370ox/Ace - EFI.zip?dl=0 Let me know how it goes.
    • Would this help solve my low scores on my machine or just my video laggy issues?
    • Hello artur_pt,   What changes did you make and also I have a new DSDT that I have uploaded (V0.2), maybe we can work with that?   Thanks, Q Hello Allan, Below is the link to my EFI Folder and i ran another debug tool created by "black.dragon74",  but i have attached the output from that tool as it also takes the copy of my IOREG. Please note that, this download is considered "V0.2" because I have used my own DSDT that i have managed to patch with the fixes below:   - Asus G75VW Battery Patch (supposed to work on Asus Q550LF) - SMBUS Fix - Fix _WAK Arg0 V2 - Fix Mutex - Fix Parseop - Added EMIyDinEsH Patch for AsusFN keys. -Add IMEI -Add MCHC   With the above fixes, I have keyboard backlight working along with the fn+F3, fn+F4 working to increase/reduce keyboard backlight. Also the battery meter now works if i unplug the laptop. But if i plug it back in then that change is not registered and the battery meter doesnt update in the menu bar. The battery is meter does not show unti li do not unplug the laptop so i am assuming DSDT needs more fixing. No screen brightness/slider and DGPU still seems active(powered on).   Also the SSDT-DGPU you provided, i renamed it to SSDT.aml and dropped it in the same folder with my DSDT.aml, is this right? because now when i boot, i can still see the Nvidia card from my "system report" and systems temps are high 60 celcius so im assuming its not working?   https://drive.google.com/open?id=1GsUReWE5cmWyN7ClyZkkNmsynUBTk6pK   Thank you all
×