Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Sign in to follow this  
datwsui

ATI Mobility Radeon HD 4650 can't find LVDS senseline

21 posts in this topic

Recommended Posts

I have a Sony VGN-FW490 laptop with ATI Mobility Radeon HD 4650. When I decode video bios rom, I can't find senseline for LVDS. How can I get senseID for LVDS then? Any help will be appreciated.

Here is my video rom:

ATOM BIOS Rom:
SubsystemVendorID: 0x104d SubsystemID: 0x9035
IOBaseAddress: 0xd000
Filename: BR32701.001
BIOS Bootup Message:
Sony_M763_M96M2LP_gDDR3 M96 GDDR3 128bit 450e/600m						
PCI ID: 1002:9480
Connector at index 0
Type [@offset 45890]: LVDS (7)
Encoder [@offset 45894]: INTERNAL_UNIPHY2 (0x21)
Connector at index 1
Type [@offset 45900]: VGA (1)
Encoder [@offset 45904]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45971]: 0x90, OSX senseid: 0x1
Connector at index 2
Type [@offset 45910]: HDMI-A (11)
Encoder [@offset 45914]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45994]: 0x94, OSX senseid: 0x5

 

Any one can help me with this?

Share this post


Link to post
Share on other sites

I have Sony VGN laptop too. Sony don't connect LVDS to I2C bus, therefore in video bios rom no senseid for LVDS. You can used any free value senseid in ConnectorInfo LVDS record. But in this case video driver can't read EDID of LVDS panel. I solved this problem by adding EDID of LVDS to DSDT in _DSM method of video card device key "AAPL00,override-no-connect".

 

P.S. Sorry for my bad English.

Share this post


Link to post
Share on other sites

I have Sony VGN laptop too. Sony don't connect LVDS to I2C bus, therefore in video bios rom no senseid for LVDS. You can used any free value senseid in ConnectorInfo LVDS record. But in this case video driver can't read EDID of LVDS panel. I solved this problem by adding EDID of LVDS to DSDT in _DSM method of video card device key "AAPL00,override-no-connect".

 

P.S. Sorry for my bad English.

Could u show me how did u do? Where exactly should I insert EDID? Would u mind paste ur code?

Share this post


Link to post
Share on other sites

Could u show me how did u do? Where exactly should I insert EDID? Would u mind paste ur code?

My DSDT video card section

Perhaps will work without "AAPL00,EDID", "@0,EDID", "@0,override-no-edid" keys.

But video card started working only when I added "AAPL00,override-no-connect" key.

 

 

Device (PEGP)
{
Name (_ADR, 0x00010000)
Device (GFX0)
{
OperationRegion (ATFX, PCI_Config, Zero, 0x10)
Field (ATFX, AnyAcc, NoLock, Preserve)
{
ATID, 16
}
Name (_ADR, Zero)
OperationRegion (AVFX, PCI_Config, Zero, 0x10)
Field (AVFX, AnyAcc, NoLock, Preserve)
{
AVID, 16
}
Method (_STA, 0, NotSerialized)
{
Return (0x0F)
}
Method (_DSM, 4, NotSerialized)
{
Store(Package (0x48)
{
"@0,compatible",
Buffer (0x0B)
{
"ATY,Gliff"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,name",
Buffer (0x0B)
{
"ATY,Gliff"
},
"@0,VRAM,memsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
"@0,display-type",
Buffer (0x08)
{
"LCD1234"
},
"@0,AAPL,boot-display",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x00
},
"@1,AAPL,boot-display",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"@0,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"@0,built-in",
Buffer (One)
{
0x01
},
"@1,compatible",
Buffer (0x0B)
{
"ATY,Gliff"
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x0B)
{
"ATY,Gliff"
},
"@1,VRAM,memsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
"@1,display-type",
Buffer (0x04)
{
"CRT"
},
"device_type",
Buffer (0x12)
{
"ATY,GliffParent"
},
"device-id",
Buffer (0x04)
{
0x90, 0x94, 0x00, 0x00
},
"vendor-id",
Buffer (0x04)
{
0x02, 0x10, 0x00, 0x00
},
"AAPL,aux-power-connected",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,HasPanel",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,Haslid",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,slot-name",
Buffer (0x07)
{
"Slot-1"
},
"ATY,PlatformInfo",
Buffer (0x80)
{
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
},
"ATY,EFIOrientation",
Buffer (0x02)
{
0x02, 0x00
},
"ATY,RefCLK",
Buffer (0x04)
{
0x8c, 0x0a, 0x00, 0x00
},
"ATY,RefClock",
Buffer (0x04)
{
0x8c, 0x0a, 0x00, 0x00
},
"ATY,MCLK",
Buffer (0x04)
{
0x60, 0xea, 0x00, 0x00
},
"ATY,SCLK",
Buffer (0x04)
{
0xc8, 0xaf, 0x00, 0x00
},
"ATY,memsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
"AAPL00,EDID",
Buffer (0x80)
{
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x4D, 0xD9, 0xFA, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x12, 0x01, 0x03, 0x80, 0x32, 0x1C, 0x78, 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40, 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x81, 0x40,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCC, 0x39, 0x80, 0x10, 0x71, 0x38, 0x2D, 0x40, 0x5C, 0x50,
0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
},
"AAPL00,override-no-connect",
Buffer (0x80)
{
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x4D, 0xD9, 0xFA, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x12, 0x01, 0x03, 0x80, 0x32, 0x1C, 0x78, 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40, 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x81, 0x40,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCC, 0x39, 0x80, 0x10, 0x71, 0x38, 0x2D, 0x40, 0x5C, 0x50,
0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
},
"@0,EDID",
Buffer (0x80)
{
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x4D, 0xD9, 0xFA, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x12, 0x01, 0x03, 0x80, 0x32, 0x1C, 0x78, 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40, 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x81, 0x40,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCC, 0x39, 0x80, 0x10, 0x71, 0x38, 0x2D, 0x40, 0x5C, 0x50,
0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
},
"@0,override-no-edid",
Buffer (0x80)
{
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x4D, 0xD9, 0xFA, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x12, 0x01, 0x03, 0x80, 0x32, 0x1C, 0x78, 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40, 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x81, 0x40,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xCC, 0x39, 0x80, 0x10, 0x71, 0x38, 0x2D, 0x40, 0x5C, 0x50,
0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
},
"VRAM,memsize",
Buffer (0x04)
{
0x00, 0x00, 0x00, 0x40
},
"model",
Buffer (0x23)
{
"ATI Mobility Radeon HD 4650"
},
"ATY,bin_image",
Buffer (0xFC00)
{
/* 0000 */ 0x55, 0xAA, 0x7E, 0xE9, 0x15, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x49, 0x42,
/* the part of ATI Bios image is cut off */
/* FBE0 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* FBF0 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

 

 

Share this post


Link to post
Share on other sites

My DSDT video card section

Perhaps will work without "AAPL00,EDID", "@0,EDID", "@0,override-no-edid" keys.

But video card started working only when I added "AAPL00,override-no-connect" key.

First of all, thank u for ur sharing. Unfortunately, I got a bunch of problem here.

 

1. In my dsdt.aml, which has been patched by Patcher02Beta5, Device(GFX0) is not included in Device(PEGP). So in my case, in which device I should add method _DSM?

 

2. In method _DSM, how many parameters I should change to my specific values, such as device-id, vender-id, "ATY, platformInfo"?

Share this post


Link to post
Share on other sites

First of all, thank u for ur sharing. Unfortunately, I got a bunch of problem here.

 

1. In my dsdt.aml, which has been patched by Patcher02Beta5, Device(GFX0) is not included in Device(PEGP). So in my case, in which device I should add method _DSM?

 

2. In method _DSM, how many parameters I should change to my specific values, such as device-id, vender-id, "ATY, platformInfo"?

 

1. Laptop as a rule have two video cards integrated and discrete. Discrete video card device must be included in Device(PEGP). In you case probably named Device(VGA).

2. You may used same values of parameters in your DSDT. You only need change "ATY,bin_image" paste your ATI Atom BIOS in hex code it easy to make by rom_dsdt_converter program and maybe change "ATY,memsize" if your video memory size not equal 1Gb. device-id, vender-id not critical IMHO but may used your native values 0x80, 0x94, 0x00, 0x00 and 0x02, 0x10, 0x00, 0x00, respectively.

Also you need add in /System/Library/Extensions/ATI4600Controller.kext/Contents/Info.plist file 0x94801002 value to "IOPCIMatch" key. And patch /System/Library/Extensions/ATI4600Controller.kext/Contents/MacOS/ATI4600Controller file by your custom personalities how do this describe here.

Also may need use dsdt dual link patch if your LVDS panel have Pixel Clock >165MHz. Pixel Clock can be found in EDID (56th and 55th bytes) in my case it is 0x39CC=14796 in MHz is 147,96MHz.

And finaly used key GraphicsEnabler=No in your Chimera bootloader and don't use ATY_Init.kext and like other kexts.

Share this post


Link to post
Share on other sites

1. Laptop as a rule have two video cards integrated and discrete. Discrete video card device must be included in Device(PEGP). In you case probably named Device(VGA).

I would like to tnank you thousands of times, SergeySW, it works!!! However, the display color is chaos. :( As below is my _DSM method, I changed all memsize to 512M or should I? BTW, my pixel clock seems to be less than 90MHz and I has updated to LIon 10.7.5, so ATI4600Controller is 10.7.5 version. Would the new version kext be the problem?

Method (_DSM, 4, NotSerialized)
{
Store(Package (0x48)
{
 "@0,compatible",
 Buffer (0x0B)
 {
	 "ATY,Gliff"
 },
 "@0,device_type",
 Buffer (0x08)
 {
	 "display"
 },
 "@0,name",
 Buffer (0x0B)
 {
	 "ATY,Gliff"
 },
 "@0,VRAM,memsize",
 Buffer (0x04)
 {
	 0x00, 0x00, 0x00, 0x20
 },
 "@0,display-type",
 Buffer (0x08)
 {
	 "LCD1234"
 },
 "@0,AAPL,boot-display",
 Buffer (0x04)
 {
	 0x00, 0x00, 0x00, 0x00
 },
 "@1,AAPL,boot-display",
 Buffer (0x04)
 {
	 0x01, 0x00, 0x00, 0x00
 },
 "@0,backlight-control",
 Buffer (0x04)
 {
	 0x01, 0x00, 0x00, 0x00
 },
 "@0,built-in",
 Buffer (One)
 {
	 0x01
 },
 "@1,compatible",
 Buffer (0x0B)
 {
	 "ATY,Gliff"
 },
 "@1,device_type",
 Buffer (0x08)
 {
	 "display"
 },
 "@1,name",
 Buffer (0x0B)
 {
	 "ATY,Gliff"
 },
 "@1,VRAM,memsize",
 Buffer (0x04)
 {
	 0x00, 0x00, 0x00, 0x20
 },
 "@1,display-type",
 Buffer (0x04)
 {
	 "CRT"
 },
 "device_type",
 Buffer (0x12)
 {
	 "ATY,GliffParent"
 },
 "device-id",
 Buffer (0x04)
 {
	 0x80, 0x94, 0x00, 0x00
 },
 "vendor-id",
 Buffer (0x04)
 {
	 0x02, 0x10, 0x00, 0x00
 },
 "AAPL,aux-power-connected",
 Buffer (0x04)
 {
	 0x01, 0x00, 0x00, 0x00
 },
 "AAPL,backlight-control",
 Buffer (0x04)
 {
	 0x01, 0x00, 0x00, 0x00
 },
 "AAPL,HasPanel",
 Buffer (0x04)
 {
	 0x01, 0x00, 0x00, 0x00
 },
 "AAPL,Haslid",
 Buffer (0x04)
 {
	 0x01, 0x00, 0x00, 0x00
 },
 "AAPL,slot-name",
 Buffer (0x07)
 {
	 "Slot-1"
 },
 "ATY,PlatformInfo",
 Buffer (0x80)
 {
	 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 },
 "ATY,EFIOrientation",
 Buffer (0x02)
 {
	 0x02, 0x00
 },
 "ATY,RefCLK",
 Buffer (0x04)
 {
	 0x8c, 0x0a, 0x00, 0x00
 },
 "ATY,RefClock",
 Buffer (0x04)
 {
	 0x8c, 0x0a, 0x00, 0x00
 },
 "ATY,MCLK",
 Buffer (0x04)
 {
	 0x60, 0xea, 0x00, 0x00
 },
 "ATY,SCLK",
 Buffer (0x04)
 {
	 0xc8, 0xaf, 0x00, 0x00
 },
 "ATY,memsize",
 Buffer (0x04)
 {
	 0x00, 0x00, 0x00, 0x20
 },
 "AAPL00,EDID",
 Buffer (0x80)
 {
	 /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
	 /* 0008 */ 0x4D, 0xD9, 0xFA, 0x06, 0x00, 0x00, 0x00, 0x00,
	 /* 0010 */ 0x00, 0x12, 0x01, 0x03, 0x80, 0x2A, 0x17, 0x78,
	 /* 0018 */ 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
	 /* 0020 */ 0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40,
	 /* 0028 */ 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x01, 0x01,
	 /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xEC, 0x22,
	 /* 0038 */ 0x40, 0x20, 0x60, 0x84, 0x0D, 0x30, 0x08, 0x10,
	 /* 0040 */ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0048 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
	 /* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
	 /* 0060 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
	 /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35
 },
 "AAPL00,override-no-connect",
 Buffer (0x80)
 {
	 /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
	 /* 0008 */ 0x4D, 0xD9, 0xFA, 0x06, 0x00, 0x00, 0x00, 0x00,
	 /* 0010 */ 0x00, 0x12, 0x01, 0x03, 0x80, 0x2A, 0x17, 0x78,
	 /* 0018 */ 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
	 /* 0020 */ 0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40,
	 /* 0028 */ 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x01, 0x01,
	 /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xEC, 0x22,
	 /* 0038 */ 0x40, 0x20, 0x60, 0x84, 0x0D, 0x30, 0x08, 0x10,
	 /* 0040 */ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0048 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
	 /* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
	 /* 0060 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
	 /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35
 },
 "@0,EDID",
 Buffer (0x80)
 {
	 /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
	 /* 0008 */ 0x4D, 0xD9, 0xFA, 0x06, 0x00, 0x00, 0x00, 0x00,
	 /* 0010 */ 0x00, 0x12, 0x01, 0x03, 0x80, 0x2A, 0x17, 0x78,
	 /* 0018 */ 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
	 /* 0020 */ 0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40,
	 /* 0028 */ 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x01, 0x01,
	 /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xEC, 0x22,
	 /* 0038 */ 0x40, 0x20, 0x60, 0x84, 0x0D, 0x30, 0x08, 0x10,
	 /* 0040 */ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0048 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
	 /* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
	 /* 0060 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
	 /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35
 },
 "@0,override-no-edid",
 Buffer (0x80)
 {
	 /* 0000 */ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
	 /* 0008 */ 0x4D, 0xD9, 0xFA, 0x06, 0x00, 0x00, 0x00, 0x00,
	 /* 0010 */ 0x00, 0x12, 0x01, 0x03, 0x80, 0x2A, 0x17, 0x78,
	 /* 0018 */ 0xF2, 0xCE, 0x50, 0xA3, 0x57, 0x4C, 0x99, 0x26,
	 /* 0020 */ 0x0F, 0x50, 0x54, 0x21, 0x08, 0x00, 0x31, 0x40,
	 /* 0028 */ 0x45, 0x40, 0x61, 0x40, 0x71, 0x40, 0x01, 0x01,
	 /* 0030 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xEC, 0x22,
	 /* 0038 */ 0x40, 0x20, 0x60, 0x84, 0x0D, 0x30, 0x08, 0x10,
	 /* 0040 */ 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0048 */ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
	 /* 0050 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0058 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
	 /* 0060 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0068 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
	 /* 0070 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	 /* 0078 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35
 },
 "VRAM,memsize",
 Buffer (0x04)
 {
	 0x00, 0x00, 0x00, 0x20
 },
 "model",
 Buffer (0x23)
 {
	 "ATI Mobility Radeon HD 4650"
 },
 "ATY,bin_image",
 Buffer (0xFC00)
 {
	 /* 0000 */ 0x55,0xAA,0x7E,0xE9,0x15,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/* 0010 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x00,0x49,0x42,
/* cut off code */
/* FBE0 */ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
/* FBF0 */ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
 }
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Share this post


Link to post
Share on other sites

However, the display color is chaos. :( As below is my _DSM method, I changed all memsize to 512M or should I? BTW, my pixel clock seems to be less than 90MHz and I has updated to LIon 10.7.5, so ATI4600Controller is 10.7.5 version. Would the new version kext be the problem?

I have tested on Lion 10.7.4 as yet and all works well.

Memsize have right value for 512M.

Can you post screenshot?

Share this post


Link to post
Share on other sites

I have tested on Lion 10.7.4 as yet and all works well.

Memsize have right value for 512M.

Can you post screenshot?

when i took screen shot in lion and view the png in windows, the screen appeared to be normal, just like this:

post-1071966-0-85168700-1348579522_thumb.png

so i took pic by camera to show the chaos:

post-1071966-0-61628900-1348579548_thumb.jpg

BTW, I used personlity of Shrike

Share this post


Link to post
Share on other sites

BTW, I used personlity of Shrike

If you used personlity of Shrike and patched ATI4600Controller.kext only for Shrike framebuffer, then you must replace strings "ATY,Gliff" and "ATY,GliffParent" to "ATY,Shrike" and "ATY,ShrikeParent" in your DSDT video card section. Most likely this is reason of your "chaos of colors", because by default Gliff framebuffer have UNIPHY2_DualLink transmitter and DIG2( B ) encoder and in your case should be UNIPHY2_LinkA transmitter and DIG1(A) encoder.

And also to make native brightness slider work, you need to add PNLF device in your DSDT:

Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
}

And under video card device, there are other devices (usually LCD, CRT, TV...). Look for the device that has those methods (_BCM, _BCQ and _BCL) and then put Name (_HID, EisaId ("LCD1234")).

Like this:

Device (LCD)
{
Name (_HID, EisaId ("LCD1234"))
Name (_ADR, 0x0110)
Method (_BCL, 0, NotSerialized)
{
/* cut off code */
}
Method (_BCM, 1, NotSerialized)
{
/* cut off code */
}
Method (_BQC, 0, NotSerialized)
{
/* cut off code */
}
}

Share this post


Link to post
Share on other sites

If you used personlity of Shrike and patched ATI4600Controller.kext only for Shrike framebuffer, then you must replace strings "ATY,Gliff" and "ATY,GliffParent" to "ATY,Shrike" and "ATY,ShrikeParent" in your DSDT video card section. Most likely this is reason of your "chaos of colors", because by default Gliff framebuffer have UNIPHY2_DualLink transmitter and DIG2( B ) encoder and in your case should be UNIPHY2_LinkA transmitter and DIG1(A) encoder.

And also to make native brightness slider work, you need to add PNLF device in your DSDT:

Added all code u provided & changed Gliff to Shrike in dsdt, can't even get Ati4600Contoller.kext loaded! :wallbash:

Then I tried personality of Gliff, still got chaos:(

Silly question, where should I insert Device(PNLF)? I put it just before Device(PWRB) according to some search results.

Share this post


Link to post
Share on other sites

Added all code u provided & changed Gliff to Shrike in dsdt, can't even get Ati4600Contoller.kext loaded! :wallbash:

Then I tried personality of Gliff, still got chaos:(

Silly question, where should I insert Device(PNLF)? I put it just before Device(PWRB) according to some search results.

Can you show ConnectorInfo for your personality?

How you find offset of binary file Ati4600Contoller?

For example, in my case perl script show offsets for x86 architecture by default and for x64 with "-x" key.

I added Device(PNLF) into Scope (_SB ).

Full code of this device:

Assumed path for LCD device is _SB->PCI0->PEGP->VGA->LCD and LCD device have _BCL, _BCM, _DOS methods.

 

 

    Device (PNLF)
    {
	    Name (_HID, EisaId ("APP0002"))
	    Name (_CID, "backlight")
	    Name (_UID, 0x0A)
	    Name (_STA, 0x0B)
	    Method (_BCL, 0, NotSerialized)
	    {
               Return (^^PCI0.PEGP.VGA.LCD._BCL ())
	    }
	    Method (_BCM, 1, NotSerialized)
	    {
		    ^^PCI0.PEGP.GFX0.LCD._BCM(Arg0)
	    }
	    Method (_BQC, 0, NotSerialized)
	    {
		    Return (^^PCI0.PEGP.GFX0.LCD._BQC ())
	    }
	    Method (_DOS, 1, NotSerialized)
	    {
		    ^^PCI0.PEGP.GFX0._DOS (Arg0)
	    }		   
    }

 

 

Share this post


Link to post
Share on other sites

Can you show ConnectorInfo for your personality?

How you find offset of binary file Ati4600Contoller?

For example, in my case perl script show offsets for x86 architecture by default and for x64 with "-x" key.

I added Device(PNLF) into Scope (_SB ).

Full code of this device:

Assumed path for LCD device is _SB->PCI0->PEGP->VGA->LCD and LCD device have _BCL, _BCM, _DOS methods.

Thank you for your patience, bro.

My connectorinfo:

 

Sony_M763_M96M2LP_gDDR3 M96 GDDR3 128bit 450e/600m						 
Subsystem Vendor ID: 104d
   Subsystem ID: 9035
Object Header Structure Size: 193
Connector Object Table Offset: 32
Router Object Table Offset: 0
Encoder Object Table Offset: 93
Display Path Table Offset: 10
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 [5] which is [VGA]
encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] 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

 

As below is my own personality used to patch Ati4600Controller:

 

LVDS: 02 00 00 00 40 00 00 00 09 01 00 00 12 04 00 00

HDMI: 00 08 00 00 00 02 00 00 00 71 00 00 10 00 01 05

VGA: 10 00 00 00 10 00 00 00 00 01 00 00 00 10 02 01

I use HexEdit to find & replace.

 

Regarding the Device(PNLF), I'm still confused. When we insert Device(PNLF), not only

Name (_HID, EisaId ("APP0002"))

Name (_CID, "backlight")

Name (_UID, 0x0A)

Name (_STA, 0x0B)

should be included, but also methods that device LCD have, in my case, which are _DSS, _BQC, _BCM, _BCL.

Is this what you mean?

Share this post


Link to post
Share on other sites

datwsui, sorry for my bad English. Probably my explanations it is impossible to understand

Try this personality for LVDS:

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

I think not correct used value 0 for SenseID (maybe I'm wrong) and your case encoder value must be equal 0 in spite of atom bios parser result.

 

Regarding the Device(PNLF).

I added Device(PNLF) into Scope (_SB ).

Code see above in my post.

LCD Device must be located into Scope(_SB )->Device(PCI0)->Device(PEGP)->Device(VGA)

And Device(LCD) must have _BCL, _BCM, _DOS methods.

Share this post


Link to post
Share on other sites

tried LVDS:

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

not working, chaos it is

When you use HexEdit to find & replace, you must change ConnectorInfo record in two places for each framebuffers, first place for x86 architecture cpu and second for x64 architecture cpu.

Share this post


Link to post
Share on other sites

Any changes in org.chameleon.Boot.plist? In addition, what version do you use for chameleon?

Fremebuffers? I only patched 2 places in /S/L/E/ATI4600Controller.kext/Contents/MacOS/ATI4600Controller. Did I miss other files?

Share this post


Link to post
Share on other sites

Any changes in org.chameleon.Boot.plist? In addition, what version do you use for chameleon?

Fremebuffers? I only patched 2 places in /S/L/E/ATI4600Controller.kext/Contents/MacOS/ATI4600Controller. Did I miss other files?

Correct, only 2 places in /S/L/E/ATI4600Controller.kext/Contents/MacOS/ATI4600Controller file not other files need.

I used bootloader chimera 1.10.0.

About your chaos of colors maybe this method will help you.

 

P.S. Forgot to tell after patched kext file you must restore permissions of files on your mac partition of hdd by disk utility program.

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

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×