Jump to content

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


Trucker MK
 Share

38 posts in this topic

Recommended Posts

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.

 

Hey Trucker, thanks for helping out with this.  My original EDID as shown in Windows and DarwinDumper is:

0x00	 00 FF FF FF FF FF FF 00 0D AF 20 17 00 00 00 00	
0x10	 02 15 01 03 80 26 15 78 0A D8 95 A3 55 4D 9D 27	
0x20	 0F 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01	
0x30	 01 01 01 01 01 01 88 3B 80 36 71 38 3B 40 5D 3E	
0x40	 6A 00 7E D7 10 00 00 18 00 00 00 FE 00 4E 31 37	
0x50	 33 48 47 45 2D 4C 31 31 0A 20 00 00 00 FE 00 43	
0x60	 4D 4F 0A 20 20 20 20 20 20 20 20 20 00 00 00 FE	
0x70	 00 4E 31 37 33 48 47 45 2D 4C 31 31 0A 20 00 DC

I am using a Macbook Air profile with AppleBacklightDisplay override in FixEDID to generate this profile.  After changing the first byte of basic params, I end up with the following:

Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   06 10 f2 9c 00 00 00 00 1a 15
version:         01 04
basic params:    90 26 15 78 0a
chroma info:     ef 05 97 57 54 92 27 22 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    88 3b 80 36 71 38 3b 40 5d 3e 6a 00 7e d7 10 00 00 18
descriptor 2:    00 00 00 fc 00 43 6f 6c 6f 72 20 4c 43 44 0a 20 20 20
descriptor 3:    00 00 00 fe 00 43 4d 4f 0a 20 20 20 20 20 20 20 20 20
descriptor 4:    00 00 00 fe 00 4e 31 37 33 48 47 45 2d 4c 31 31 0a 20
extensions:      00
checksum:        f4
Link to comment
Share on other sites

00FFFFFFFFFFFF00061014A0000000000A160104902615780A6FB1A7554C9E250C505400000001010101010101010101010101010101883B803671383B405D3E6A007ED710000018000000FC00436F6C6F72204C43440A202020000000FE00434D4F0A202020202020202020000000FE004E3137334847452D4C31310A2000DC
If you want, try this one is for MacBook Pro.

Edit. I tried MacBook Air and its not working, with the right and wrong senseid. So give this a try. You only need to fix the broken checksum.

  • Like 1
Link to comment
Share on other sites

00FFFFFFFFFFFF00061014A0000000000A160104902615780A6FB1A7554C9E250C505400000001010101010101010101010101010101883B803671383B405D3E6A007ED710000018000000FC00436F6C6F72204C43440A202020000000FE00434D4F0A202020202020202020000000FE004E3137334847452D4C31310A2000DC
If you want, try this one is for MacBook Pro.

Edit. I tried MacBook Air and its not working, with the right and wrong senseid. So give this a try. You only need to fix the broken checksum.

 

 

Thanks, I gave it a try using custom EDID in Clover with the updated checksum, but still no luck.  All I end up is with a black screen with no backlight.  Neither AppleDisplay nor AppleBackLightDisplay show up in IOReg so it's as though the display is not detected at all.  I've tried multiple different EDIDs for different models and cannot get it to inject and pickup the display.  If I put the original EDID in the custom EDID field, I do get the garbled output.  I just don't understand why I cannot inject an EDID that otherwise works in DisplayMergeNub.kext?

 

The other thing I was trying to figure out is that I used Clover's PNLF injection for brightness.  When I do this, the brightness slider appears in the display pref pane but the video output is garbled.  The brightness slider does work as I can see brightness adjusting upon moving it.  Looking at IOReg, it appears that when PNLF patch is injected, it forces the EDID back to the original value which is what causes the weird output in the first place.  I notice this same behavior whether I inject the PNLF via Clover or directly in the DSDT.  Any idea why the PNLF would override the EDID in DisplayMergeNub.kext to the original EDID?

Link to comment
Share on other sites

Trucker - Can you post what your config.plist looks like and what version of Clover you are using?  Also are you injecting your VBIOS using Clover?

 

The reason I ask is that during my testing yesterday, Clover's debug.log shows the following line "EdidDiscovered size=128" but I never see the actual EDID itself in the log.  I believe I should see the custom EDID in the debug log if it is being applied by Clover, correct?  So could I possibly have a configuration problem or something wrong with the formatting of the EDID? 

Link to comment
Share on other sites

Trucker - Can you post what your config.plist looks like and what version of Clover you are using?  Also are you injecting your VBIOS using Clover?

 

I've attached my config.plist and yes, i use Clover o inject the custom EDID. config.plist.zip

 

 

The reason I ask is that during my testing yesterday, Clover's debug.log shows the following line "EdidDiscovered size=128" but I never see the actual EDID itself in the log.  I believe I should see the custom EDID in the debug log if it is being applied by Clover, correct?  So could I possibly have a configuration problem or something wrong with the formatting of the EDID? 

 

In my case it was picking up the custom EDID but it didn't inject it until i used wrong senseid for LVDS. Try this, when you create the DisplayMergeNUB.kext with FixEDID, it also creates a Display Override folder/file on your Desktop, copy it to /System/Library/Displays/Overrides/ and try injecting the EDID again with Clover. Use the same EDID in Clover and in the Display Override file. When you are making the kext your Display must be recognized, this way you get the correct address, ProductID and VendorID of the display. When done, use the custom EDID i made for you in Clover and in the override folder. If it's not working, try with wrong senseid and try every framebuffer without patching it.

 

  • Like 1
Link to comment
Share on other sites

Hey, could you test VGA output? As far as I remember you wanted to get it working)

I would wait with all the experiments till Yosemite is released. Some things might start working, some things might stop working :)

Link to comment
Share on other sites

I've attached my config.plist and yes, i use Clover o inject the custom EDID. attachicon.gifconfig.plist.zip

 

 

 

In my case it was picking up the custom EDID but it didn't inject it until i used wrong senseid for LVDS. Try this, when you create the DisplayMergeNUB.kext with FixEDID, it also creates a Display Override folder/file on your Desktop, copy it to /System/Library/Displays/Overrides/ and try injecting the EDID again with Clover. Use the same EDID in Clover and in the Display Override file. When you are making the kext your Display must be recognized, this way you get the correct address, ProductID and VendorID of the display. When done, use the custom EDID i made for you in Clover and in the override folder. If it's not working, try with wrong senseid and try every framebuffer without patching it.

 

OK, so after looking at this for a week, I isolated my problem to a bad checksum in the EDID.  I had tried a number of EDIDs in Clover's custom EDID field and what I found was that my original EDID and your EDID were the only ones that would be recognized in IOReg.  Obviously your EDID didn't match my LVDS so it would give a quick flash and then just a black screen with backlight.  My original EDID gave the garbled output.  I went back to the modified Macbook Air EDID I posted above and injected it using DisplayMergeNub.kext.  I got normal output on the display and then ran DarwinDumper.  Sure enough, it detected the bad checksum in the EDID.

 

It threw me off though because the bad checksum didn't appear to be causing any problems using DisplayMergeNub.kext so I had no reason to think it was incorrect nor would it cause any problem in Clover's custom EDID field.  My original mistake was that I was messing around with the FixEDID app to generate a new EDID for AppleBacklightDisplay but apparently forgot to fix the checksum  :surprised: DisplayMergeNub.kext apparently did not care and worked despite this error.

 

So I have the Macbook Air modified EDID working using Clover's custom EDID injection and deleted DisplayMergeNub.kext.  Also, I resolved the original issue I was attempting to resolve by injecting the PNLF patch with Clover, giving me brightness control in the display pref pane  :yes:  No changes to my modified Pondweed framebuffer were needed.

 

The moral of this story is that the checksum must be correct for Clover's custom EDID injection to work.  I confirmed this by taking your original EDID which I knew was being detected in IOReg and changed the checksum to a bogus one, and it gave the same result as my Macbook Air EDID with its wrong checksum...a black screen with no backlight and no detection in IOReg.

 

Thanks again for your help Trucker.  

Link to comment
Share on other sites

Some strange result. When VGA "wakes up" after sleep, in IORegistry Display connects to HDMI port and port number property changes to 2(that is VGA hotplugID).

No activity to VGA port at all in IORegistry.

Link to comment
Share on other sites

I would wait with all the experiments till Yosemite is released. Some things might start working, some things might stop working :)

I just installed DP2 and the only issue so far is USB 3.0. Everything else seems to be ok.

P.S

I don't like the new Dock and some things in the new look.

Link to comment
Share on other sites

  • 1 month later...

Hi Trucker! Do you still active?

I'm disperated! I've read your first post and finaly with wrong senseID I can inject EDID via Clover.

Anyway, I cant get rid out of gradients! This thing drives me crazy! For 10 entiries days I cant solve my LVDS problem!

Please, take a look at my data and give an advice, where am I wrong?

bios dump 1

 

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1028 SubsystemID: 0x057b

IOBaseAddress: 0x0000

Filename: C42904A1.117

BIOS Bootup Message:

Wimbledon XT A01 MXM GDDR5 300e/150m 0.9V A1

 

PCI ID: 1002:6800

Connector at index 0

Type [@offset 45840]: (null) (-1055027892)

Encoder [@offset 45844]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 45976]: 0x93, OSX senseid: 0x4

Connector at index 1

Type [@offset 45850]: (null) (-1055027892)

Encoder [@offset 45854]: INTERNAL_UNIPHY (0x1e)

i2cid [@offset 46003]: 0x94, OSX senseid: 0x5

Connector at index 2

Type [@offset 45860]: DisplayPort (10)

Encoder [@offset 45864]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 46030]: 0x91, OSX senseid: 0x2

Connector at index 3

Type [@offset 45870]: HDMI-A (11)

Encoder [@offset 45874]: INTERNAL_UNIPHY1 (0x20)

i2cid [@offset 46057]: 0x90, OSX senseid: 0x1

Connector at index 4

Type [@offset 45880]: HDMI-A (11)

Encoder [@offset 45884]: INTERNAL_UNIPHY2 (0x21)

i2cid [@offset 46084]: 0x92, OSX senseid: 0x3

Connector at index 5

Type [@offset 45890]: VGA (1)

Encoder [@offset 45894]: INTERNAL_KLDSCP_DAC1 (0x15)

i2cid [@offset 46111]: 0x97, OSX senseid: 0x8

 

 

 

bios dump 2

 

 

Subsystem Vendor ID: 1028

Subsystem ID: 57b

Object Header Structure Size: 435

Connector Object Table Offset: 52

Router Object Table Offset: 0

Encoder Object Table Offset: 13f

Display Path Table Offset: 12

Connector Object Id [22] which is [(unknown)]

encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true

Connector Object Id [22] which is [(unknown)]

encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

Connector Object Id [19] which is [DISPLAY_PORT]

encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true

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 [12] which is [HDMI_TYPE_A]

encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] 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

 

 

 

Buri FB vs. mine

 

 

02000000000100002905010010000505

00040000040300000009020011020101

00040000040300000009030021030202

00080000040200000001040012040303

 

02000000400000000901000010000002

00080000040200000001020012040303

00040000040300000009030011020406

00040000040300000009040021030505

 

 

If I dont inject EDID I have black screen. In config.plist just putting InjectEDID=Yes I have gradients...

This is the EDID I've extracted with DarwinDumper

 

 

Extracted contents:

header: 00 ff ff ff ff ff ff 00

serial number: 0d af 20 17 00 00 00 00 02 15

version: 01 04

basic params: 90 26 15 78 02

chroma info: ed 95 a3 54 4c 9c 26 0f 50 54

established: 00 00 00

standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01

descriptor 1: e1 36 80 ae 70 38 26 40 34 23 36 00 7e d7 10 00 00 1a

descriptor 2: 1d 24 80 a0 70 38 1f 40 30 20 35 00 7e d7 10 00 00 1a

descriptor 3: 00 00 00 fe 00 48 43 39 47 4b 80 31 37 33 48 47 45 0a

descriptor 4: 00 00 00 00 00 00 41 31 9e 00 00 00 00 02 01 0a 20 20

extensions: 00

checksum: f3

 

 

Modifying it like in your guide here:

http://www.insanelymac.com/forum/topic/277042-amd-radeon-hd-6650m-graphics-enabler-dsdt-hdmi-audio-acer-aspire-7750g-2674g50mnkk-gradients-fixed/

I cant inject because of wrong checksum...or better, I can inject but have black screen.

If injected EDID generated by FixEDID nothing changes, same gradients...

Archive.zip

Thank you!

Link to comment
Share on other sites

  • 4 months later...

I too have the same Graphics 6470M. I am currently on 10.10 with clover and I have used every method to try and enable graphics, and all fail. 


 


redsock bios


 


HP / IEC Clash SEYMOUR XT DDR3 64Mx16 512MB                                 


 


Subsystem Vendor ID: 103c


       Subsystem ID: 161e


Object Header Structure Size: 332


Connector Object Table Offset: 48


Router Object Table Offset: 0


Encoder Object Table Offset: f3


Display Path Table Offset: 12


 


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 [19] which is [DISPLAY_PORT]


encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false


 


Connector Object Id [19] which is [DISPLAY_PORT]


encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true


 


Connector Object Id [19] which is [DISPLAY_PORT]


encoder obj id [0x21] which is [iNTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] 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


 


 


Radeon


 


ATOM BIOS Rom: 


SubsystemVendorID: 0x103c SubsystemID: 0x161e


IOBaseAddress: 0x4000


Filename: BR41330.001 


BIOS Bootup Message: 


HP / IEC Clash SEYMOUR XT DDR3 64Mx16 512MB                                 


 


PCI ID: 1002:6760


Connector at index 0


Type [@offset 45046]: LVDS (7)


Encoder [@offset 45050]: INTERNAL_UNIPHY (0x1e)


i2cid [@offset 45156]: 0x90, OSX senseid: 0x1


Connector at index 1


Type [@offset 45056]: DisplayPort (10)


Encoder [@offset 45060]: INTERNAL_UNIPHY1 (0x20)


i2cid [@offset 45179]: 0x93, OSX senseid: 0x4


Connector at index 2


Type [@offset 45066]: DisplayPort (10)


Encoder [@offset 45070]: INTERNAL_UNIPHY1 (0x20)


i2cid [@offset 45206]: 0x91, OSX senseid: 0x2


Connector at index 3


Type [@offset 45076]: DisplayPort (10)


Encoder [@offset 45080]: INTERNAL_UNIPHY2 (0x21)


i2cid [@offset 45233]: 0x92, OSX senseid: 0x3


Connector at index 4


Type [@offset 45086]: VGA (1)


Encoder [@offset 45090]: INTERNAL_KLDSCP_DAC1 (0x15)


i2cid [@offset 45260]: 0x97, OSX senseid: 0x8


 


I followed this guide http://www.insanelym...ver-injection/ 


and combining both, I came up with this


 


Device   Txmit   encoder   hotplugID  senseID


 


LVDS     10       00             01              01


Dport     11       02             02              04


Dport      21      03             03              02


Dport     12       04             04              03


VGA       00      10              05              08  


 


here i tried modifying the Frame buffer Elodea


Original


0000000    02  00  00  00  00  01  00  00  09  01  00  00  12  04  03  03

0000010    00  04  00  00  04  03  00  00  00  01  00  00  10  00  05  05

0000020    00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  01

0000030    00  04  00  00  00  01  00  00  00  09  10  00  21  03  02  02

0000040    00  04  00  00  00  01  00  00  00  09  10  00  22  05  04  04

0000050

 

Modified


 02  00  00  00  00  01  00  00  09  01  00  00  10  00  00  01


 00  04  00  00  04  03  00  00  00  01  00  00  11  02  01  04


 00  04  00  00  04  03  00  00  00  01  00  00  21  03  02  02


 00  04  00  00  00  01  00  00  00  09  10  00  12  04  03  03


 10  00  00  00  10  00  00  00  00  01  00  00  00  10  04  08


 


Result: Black Screen


 


I tried also with Hydrilla and Ipomoea all resulted in black screen. I was able to put it to sleep by closing the lid *while still black screened with Iopmoea and Pithecia.


 


At this point, I don't know what else to do. I tried Chameleon and i was able to achieve a whopping 4MB of video instead of the 3MB; however with Chameleon AMD 6470M is not recognized, but I was able to get my screen resulotion 1366 X 768. Looked great, but was laggy due to the 4MB video.


 


could you look at this trucker?


 


is the problem because the first connector is at connector index 0 instead of 1?


Link to comment
Share on other sites

 Share

×
×
  • Create New...