Jump to content

ATI Mobility Radeon HD 4650 can't find LVDS senseline


datwsui
 Share

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?

Link to comment
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.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

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?

Link to comment
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)
}

 

 

  • Like 1
Link to comment
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"?

Link to comment
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.

  • Like 1
Link to comment
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)
}

Link to comment
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?

  • Like 1
Link to comment
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

Link to comment
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 */
}
}

  • Like 1
Link to comment
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.

Link to comment
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)
	    }		   
    }

 

 

  • Like 1
Link to comment
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?

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
Share on other sites

  • 6 months later...
 Share

×
×
  • Create New...