Jump to content

[Help] Not regconized injected EDID after edit framebuffer


lenamdn
 Share

11 posts in this topic

Recommended Posts

Before I edit framebuffer. I was injected an EDID of my screen. Mavericks still regconize it (althought so, resolution is still 1024x768).

After I edit framebuffer. Sometimes my computer can boot successfull and I get a messing up screen (but have good resolution 1366x768, and it regonize my card). Sometimes it won't boot.

 

-When it boot successfull. I got this kind of screen.

i8fx.jpg

And my "Internal LCD ..." disappear, only have default "Display"

 

- When booting isn't successfull, I notice that after "Waiting for DSMOS...." it not have "DSMOS has arrived" or "VM...on". Normally It must have at least one in that two sentence. And it will stuck at the end of the boot progress.

 

- This is my Shrike FrameBuffer from my AMD4600Controller.

02  00  00  00  00  01  00  00  09  01  00  00  12  04  00  02

01  00  00  00  10  00  00  00  00  01  00  00  00  10  01  01

00  08  00  00  00  02  00  00  00  01  00  00  10  00  02  06

 

- This is the original Shrike FrameBuffer

02  00  00  00  40  00  00  00  09  01  00  00  02  01  00  03

02  00  00  00  00  01  00  00  09  01  00  00  20  01  02  02

00  04  00  00  04  03  00  00  00  01  00  00  10  00  01  01

 

- This is what I export from my card (I used Redsock and Radeon).

Connector Object Id [5] which is [VGA]
encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Connector Object Id [14] which is [LVDS]
encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false

Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false



Connector at index 0
Type [@offset 45056]: VGA (1)
Encoder [@offset 45060]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45118]: 0x90, OSX senseid: 0x1
Connector at index 1
Type [@offset 45066]: LVDS (7)
Encoder [@offset 45070]: INTERNAL_UNIPHY2 (0x21)
i2cid [@offset 45141]: 0x11, OSX senseid: 0x2
Connector at index 2
Type [@offset 45076]: HDMI-A (11)
Encoder [@offset 45080]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45164]: 0x95, OSX senseid: 0x6

-I didn't patch any DSDT

-My Boot.plist only have GraphicsEnabler=Yes

-My ATI card: Radeon Mobility HD 4500M/5100M 512MB

ID: 1002-9553

-----------------------------------------------------------------------------

Update1: 

- After I change my LVDS Transmitter from 0x12 to 0x02, it regconize my card correctly. Name and memory was recognized exactly.

So this's my framebuffer now

 

01  00  00  00  10  00  00  00  00  01  00  00  00  10  01  01

02  00  00  00  40  00  00  00  09  01  00  00  02  01  02  02

00  08  00  00  00  02  00  00  00  01  00  00  00  00  03  06

Can anyone help me. What should I do now?

Link to comment
Share on other sites

y tried this way

 

10  00  00  00  10  00  00  00  00  01  00  00  00  10  00  01

 

02  00  00  00  00  01  00  00  09  01  00  00  12  04  01  02

 

00  08  00  00  00  02  00  00  00  01  00  00  10  00  02  06

01 00  00  00  10  00  00  00  00  01  00  00  00  10  01  01 /is 10 for vga if it work with this card....

 

10  00  00  00  10  00  00  00  00  01  00  00  00  00  00  01

02  00  00  00  00  01  00  00  09  01  00  00  20  01  01  02  this was working before editing anything

00  08  00  00  00  02  00  00  00  01  00  00  10  00  02  06

Link to comment
Share on other sites

I found the solution :)). Because I injected the EDID before I patch framebuffer, so that EDID 's kind of wrong. Hence I inject it again with patched framebuffer, and it was regconized :)). 

Althought it recognized my force EDID. But screen still messed up like before.

 

 

01 00  00  00  10  00  00  00  00  01  00  00  00  10  01  01 /is 10 for vga if it work with this card....

 

10  00  00  00  10  00  00  00  00  01  00  00  00  00  00  01

02  00  00  00  00  01  00  00  09  01  00  00  20  01  01  02  this was working before editing anything

00  08  00  00  00  02  00  00  00  01  00  00  10  00  02  06

I'll try it, and report later.  :)

Link to comment
Share on other sites

 

02  00  00  00  00  01  00  00  09  01  00  00  20  01  01  02 

When I use it, I got black screen, then red, green, blue... 

Seem like the problem is transmitter value. 

When I use this 12 or 02. It show messing up screen.

 

02  00  00  00  40  00  00  00  09  01  00  00  12  01  02  02

 

 

02  00  00  00  40  00  00  00  09  01  00  00  02  01  02  02

Link to comment
Share on other sites

When I use it, I got black screen, then red, green, blue... 

Seem like the problem is transmitter value. 

When I use this 12 or 02. It show messing up screen.

Do you inject EDID through DisplayOverride file?

Link to comment
Share on other sites

Yes. I inject EDID throudh DisplayOverride file? 
In my case, 

"DisplayProductID" = 5188
"DisplayVendorID" = 3503
IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPCI2PCIBridge/VGA@0/ATY,Shrike@0/ATY_Shrike/display0/AppleDisplay-daf-1444"
 
So I put EDID in DisplayVendor-daf/ DisplayProductID-1444
This is the info i take from MonInfo from window.

 

Monitor
  Manufacturer............. Chi Mei
  Plug and Play ID......... CMO1444
  Data string.............. N140B6-L02
  Serial number............ n/a
  Manufacture date......... 2008 ISO week 41
  Filter driver............ None
  -------------------------
  EDID revision............ 1.3
  Input signal type........ Digital
  Color bit depth.......... Undefined
  Display type............. RGB color
  Screen size.............. 310 x 170 mm (13.9 in)
  Power management......... Not supported
  Extension blocs.......... None
  -------------------------
  DDC/CI................... Not supported
 
Color characteristics
  Default color space...... Non-sRGB
  Display gamma............ 2.20
  Red chromaticity......... Rx 0.617 - Ry 0.344
  Green chromaticity....... Gx 0.327 - Gy 0.587
  Blue chromaticity........ Bx 0.160 - By 0.085
  White point (default).... Wx 0.313 - Wy 0.329
  Additional descriptors... None
 
Timing characteristics
  Range limits............. Not available
  GTF standard............. Not supported
  Additional descriptors... None
  Preferred timing......... Yes
  Native/preferred timing.. 1366x768p at 60Hz (16:9)
    Modeline............... "1366x768" 75.440 1366 1397 1462 1560 768 772 784 806 -hsync -vsync
 
Standard timings supported
 
Report information
  Date generated........... 1/24/2014
  Software revision........ 2.70.0.989
  Data source.............. Real-time 0x0021
  Operating system......... 6.1.7601.2.Service Pack 1
 
Raw data
  00FFFFFFFFFFFF000DAF44140000000029120103801F11780A0D359E58539629
  15505400000001010101010101010101010101010101781D56C2500026301F41
  4C0035AE10000018000000FE004E31343042362D4C30320A2020000000FE0043
  4D4F0A202020202020202020000000FE004E31343042362D4C30320A20200061

 

 

And this is my DisplayProductID-1444 file.
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

	<key>DisplayProductID</key>

	<integer>5188</integer>
	
	<key>DisplayProductName</key>
	<string>Internal LCD Forced EDID</string>

	<key>DisplayVendorID</key>
	
	<integer>3503</integer>
	<key>IODisplayEDID</key>
	
	<data>
	AP///////wANr0QUAAAAACkSAQOAHxF4Cg01nlhTlikVUFQAAAABAQEBAQEBAQEBAQEB

	AQEBeB1WwlAAJjAfQUwANa4QAAAYAAAA/gBOMTQwQjYtTDAyCiAgAAAA/gBDTU8KICAg

	ICAgICAgAAAA/gBOMTQwQjYtTDAyCiAgAGE=

	</data>

</dict>

</plist>

I tried all value of Transmitter and Encode and my card only accept transmitter: 02 or 12.   encode: 01

Link to comment
Share on other sites

 

Yes. I inject EDID throudh DisplayOverride file? 

In my case, 

"DisplayProductID" = 5188
"DisplayVendorID" = 3503
IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPCI2PCIBridge/VGA@0/ATY,Shrike@0/ATY_Shrike/display0/AppleDisplay-daf-1444"
 
So I put EDID in DisplayVendor-daf/ DisplayProductID-1444
This is the info i take from MonInfo from window.

 

And this is my DisplayProductID-1444 file.
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

	<key>DisplayProductID</key>

	<integer>5188</integer>
	
	<key>DisplayProductName</key>
	<string>Internal LCD Forced EDID</string>

	<key>DisplayVendorID</key>
	
	<integer>3503</integer>
	<key>IODisplayEDID</key>
	
	<data>
	AP///////wANr0QUAAAAACkSAQOAHxF4Cg01nlhTlikVUFQAAAABAQEBAQEBAQEBAQEB

	AQEBeB1WwlAAJjAfQUwANa4QAAAYAAAA/gBOMTQwQjYtTDAyCiAgAAAA/gBDTU8KICAg

	ICAgICAgAAAA/gBOMTQwQjYtTDAyCiAgAGE=

	</data>

</dict>

</plist>

I tried all value of Transmitter and Encode and my card only accept transmitter: 02 or 12.   encode: 01

 

That's wrong. You should delete what you've done and inject EDID through DSDT or clover bootloader. For me injecting EDID with DisplayOverride file caused problems with framebuffer. In particular, my correct framebuffer worked not properly. 

Link to comment
Share on other sites

:(. I'm using chameleon. So how can i change it to clover? Or can you show me how to inject EDID through DSDT?

It's better to use Clover. But if you want to inject EDID through DSDT with Chameleon, here you are..

Method (_DSM, 4, NotSerialized)
                {
                    Store (Package ()
                        {
                            "AAPL00,override-no-connect",
                            Buffer (0x80)
                            {
                                /* 0000 */    0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
                                /* 0008 */    0x30, 0xE4, 0x01, 0xCF, 0x00, 0x00, 0x00, 0x00,
                                /* 0010 */    0x00, 0x12, 0x01, 0x03, 0x80, 0x22, 0x13, 0x78,
                                /* 0018 */    0x0A, 0xAB, 0xB5, 0x9F, 0x59, 0x54, 0x96, 0x26,
                                /* 0020 */    0x16, 0x50, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01,
                                /* 0028 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
                                /* 0030 */    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x3E, 0x1C,
                                /* 0038 */    0x56, 0xA0, 0x50, 0x00, 0x16, 0x30, 0x30, 0x20,
                                /* 0040 */    0x35, 0x00, 0x58, 0xC2, 0x10, 0x00, 0x00, 0x19,
                                /* 0048 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0050 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                /* 0058 */    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x4C,
                                /* 0060 */    0x47, 0x20, 0x44, 0x69, 0x73, 0x70, 0x6C, 0x61,
                                /* 0068 */    0x79, 0x0A, 0x20, 0x20, 0x00, 0x00, 0x00, 0xFC,
                                /* 0070 */    0x00, 0x4C, 0x50, 0x31, 0x35, 0x36, 0x57, 0x48,
                                /* 0078 */    0x32, 0x2D, 0x54, 0x4C, 0x45, 0x31, 0x00, 0xDC
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

Obviously, you should replace Buffer values with your EDID

Link to comment
Share on other sites

 Share

×
×
  • Create New...