Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


bcc9
 Share

775 posts in this topic

Recommended Posts

Could someone shed some light for me. My display gets all fuzzy after wake from sleep. This only happens during sleep. Before sleep i have full qe/ci and the display is fine. Do anyone have any idea? My card is ATI 4530, device id 1002 9553. Shrike frame buffer.

 

i have your problem in my hakintash system with GE the only thing that can fix it is using ATY_Init.kext instead of GE

Link to comment
Share on other sites

i have your problem in my hakintash system with GE the only thing that can fix it is using ATY_Init.kext instead of GE

 

The problem is ATY_Init.kext just doesn't work. I use it and then no ATI kext loaded, no QE/CI.

In verbose mode I find something like this:

 

ATY_Init: Starting

ATY_Init: Card 0x9553 was posted

ATY_Init: quiting for card 0x9553

 

I guess it doesn't regconize my card, even though I change the key ATY, DeviceID to 5395 or 9553 or just don't change. My card is ATI Mobility Radeon HD 4570.

 

Could you please modify and upload the kext for me? In case I did it wrong.

Thanks

Link to comment
Share on other sites

I have a problem with my card. It's a Mobility HD4650 in an HP Pavilion DV7-2160eg laptop

 

I have inserted the dual-link patch in dsdt and patched Shrike to: 02 00 00 00 04 00 00 00 09 01 00 00 12 02 00 07

 

I'm running OS X 10.6.8 with legacy kernel.

 

Even though card gets recognized correctly and the dual-link patch is in place I still get blacklit screen on LVDS

Link to comment
Share on other sites

I have Sony VAIO EB (1366x768) with HD5650m. Installed 10.7.1.

If I am using AtiConfig=Eulemur internal monitor working (EDID + change res. first time by VNC). But HDMI doesn't work.

If booting without AtiConfig (RadeonFramebuffer), HDMI working, but internal monitor not.

 

Default Eulemur:

0400 0000 1400 0000 0001 0000 0102 0104 
0008 0000 0002 0000 0071 0000 1204 0402
1000 0000 1000 0000 0000 0000 0010 0001

 

My radeon_decoder:

ATOM BIOS Rom: 
SubsystemVendorID: 0x104d SubsystemID: 0x9071
IOBaseAddress: 0xd000
Filename: BR36874.001 
BIOS Bootup Message: 
Sony M980 Madison LP DDR3 64Mx16 600E/790M LVDS/VGA/HDMI					

PCI ID: 1002:68c1
Connector at index 0
Type [@offset 45516]: LVDS (7)
Encoder [@offset 45520]: INTERNAL_UNIPHY (0x1e)
Connector at index 1
Type [@offset 45526]: HDMI-A (11)
Encoder [@offset 45530]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45609]: 0x94, OSX senseid: 0x5
Connector at index 2
Type [@offset 45536]: VGA (1)
Encoder [@offset 45540]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45636]: 0x90, OSX senseid: 0x1

 

I changed senseid for HDMI:

0400 0000 1400 0000 0001 0000 0102 0104 
0008 0000 0002 0000 0071 0000 1204 040[b]5[/b]
1000 0000 1000 0000 0000 0000 0010 0001

 

And my TV was detected in System Preferences/Monitors. But on TV "no signal".

 

How I can get Transmiter and Encoder?

I have tried many combinations (8 hours ;):) ) But HDMI still not working.

 

My redsock_bios_decoder:

BR36874.001 :

Sony M980 Madison LP DDR3 64Mx16 600E/790M LVDS/VGA/HDMI					

Subsystem Vendor ID: 104d
   Subsystem ID: 9071
Object Header Structure Size: 195
Connector Object Table Offset: 34
Router Object Table Offset: 0
Encoder Object Table Offset: 95
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 [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

 

I am confused. Need help.

Link to comment
Share on other sites

Maybe you should use Hoolock instead of Eulemur ?

With Hoolock internal display working. HDMI not working.

Try to change Hoolock?

Default:

	00  04  00  00  04  06  00  00  00  01  00  00  21  03  05  01
00  04  00  00  04  06  00  00  00  01  00  00  11  02  04  02
04  00  00  00  14  02  00  00  00  01  00  00  02  04  01  03 (LVDS)

For LVDS Transmitter 02, which means UNIPHY2:DUALLINK?

But in radeon_bios_decoder internal display UNIPHY.

Why does it work? For Eulemur same (UNIPHY1:DUALLINK).

Maybe bios decoder wrong? And I get wrong HDMI transmitter/encoder?

I try to change Eulemur:

0400 0000 1400 0000 0001 0000 1002 0104   (LVDS UNIPHY+DUAL_LINK)
0008 0000 0002 0000 0071 0000 2105 0405 (HDMI UNIPHY+LINKB)
1000 0000 1000 0000 0000 0000 0010 0001

But HDMI not working (only detected in System Preferences). Interanal monitor working.

Strange thing: If I change HotplugID for LVDC to 00, I get corrupted internal screen.

Link to comment
Share on other sites

With Hoolock internal display working. HDMI not working.

Try to change Hoolock?

Default:

	00  04  00  00  04  06  00  00  00  01  00  00  21  03  05  01
00  04  00  00  04  06  00  00  00  01  00  00  11  02  04  02
04  00  00  00  14  02  00  00  00  01  00  00  02  04  01  03 (LVDS)

For LVDS Transmitter 02, which means UNIPHY2:DUALLINK?

But in radeon_bios_decoder internal display UNIPHY.

Why does it work? For Eulemur same (UNIPHY1:DUALLINK).

Maybe bios decoder wrong? And I get wrong HDMI transmitter/encoder?

I try to change Eulemur:

0400 0000 1400 0000 0001 0000 1002 0104   (LVDS UNIPHY+DUAL_LINK)
0008 0000 0002 0000 0071 0000 2105 0405 (HDMI UNIPHY+LINKB)
1000 0000 1000 0000 0000 0000 0010 0001

But HDMI not working (only detected in System Preferences). Interanal monitor working.

Strange thing: If I change HotplugID for LVDC to 00, I get corrupted internal screen.

 

Modify Uakari for better results. and for HDMI audio you need DSDT fix i think, well im pretty sure. only thing with 5650m's is that if you force your LED EDID then whatever you connect will also be forced using that Display717 file. Unless i think you force all EDID that you connect to the mac.

 

 

***Update***

Removed my forced EDID Display717 file to isolate further issues, just for short testing while I patch connection info, I edited Uakari and can successfully get LVDS to switch on without others. More testing in process.

Link to comment
Share on other sites

hey folks...trying to get a HISRadeon HD4670 working....black screen so far unless i remove ATI4600Controller.kext...

oh...it's AGP... ;) on 10.6.8 here's my dump

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1002 SubsystemID: 0x0028

IOBaseAddress: 0x0000

Filename: B107310.100

BIOS Bootup Message: RV730XT AGP 1024M/128B DDR3 DVI-I/VGA/HDMI 873M/750E

PCI ID: 1002:9495

Connector at index 0

Type [@offset 44694]: VGA (1)

Encoder [@offset 44698]: INTERNAL_KLDSCP_DAC2 (0x16)

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

Connector at index 1

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

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

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

Connector at index 2

Type [@offset 44714]: DVI-I (2)

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

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

Connector at index 3

Type [@offset 44724]: DVI-I (2)

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

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

 

...where do i start?...hmmm...i'd like at least VGA working as i have an old CRT monitor...but also can do dvi-vga dongle

 

 

and from redsocks

 

Downloads/redsock_bios_decoder < /Users/Rusty/Desktop/RV730.bin

TEST.BIN :

RV730XT AGP 1024M/128B DDR3 DVI-I/VGA/HDMI 800M/750E

Subsystem Vendor ID: 1002

Subsystem ID: 28

Object Header Structure Size: 235

Connector Object Table Offset: 3c

Router Object Table Offset: 0

Encoder Object Table Offset: af

Display Path Table Offset: 10

Connector Object Id [5] which is [VGA]

encoder obj id [0x16] which is [iNTERNAL_KLDSCP_DAC2] 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 [2] which is [DVI_I]

encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false

Connector Object Id [2] which is [DVI_I]

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

Link to comment
Share on other sites

I'm pretty sure 5650m cards are reading inside MacOSX from 2nd port and not first port like Apple's working, I can get LVDS to power up now, just it all depends on using the right control flags from what I've been observing.

Link to comment
Share on other sites

  • 2 weeks later...

this is from my ati 5870m bios, internal laptop screen not working, and I use nomasus as I see in the ioregistry.

can anyone tell me what is wrong with the LVDS?

I cannot find which ports are matched correctly and which are not. The Laptop only works with external monitor through HDMI output and internal screen recognized by system profiler but when I press detect displays, only the backlight turns on and stays black. I have also made the EDID override but still nothing.

Can anyone help me please?

 

 

ATOM BIOS Rom:

SubsystemVendorID: 0x1028 SubsystemID: 0x043a

IOBaseAddress: 0x3000

Filename: 13B96101.104

BIOS Bootup Message:

BROADWAY XT B96101 GDDR5 64Mx16 4CH 400m/300e @0.9V UCODEv:128

 

PCI ID: 1002:68a0

Connector at index 0

Type [@offset 45088]: LVDS (7)

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

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

Connector at index 1

Type [@offset 45098]: DisplayPort (10)

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

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

Connector at index 2

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

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

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

Connector at index 3

Type [@offset 45118]: VGA (1)

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

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

 

 

 

 

 

here also attach my IOregistry explorer export file

bassistas.ioreg.zip

Link to comment
Share on other sites

Hi all!

I'm trying to enable LVDS on ATI Mobility Radeon HD 5650 on 10.7.1:

$ sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
pcilib: 0000:02:00.0 64-bit device address ignored.
02:00.0 VGA compatible controller [0300]: ATI Technologies Inc Madison [AMD Radeon HD 5000M Series] [1002:68c1] (prog-if 00 [VGA controller])
  Subsystem: Acer Incorporated [ALI] Unknown device [1025:0379]
--
02:00.1 Audio device [0403]: ATI Technologies Inc Redwood HDMI Audio [Radeon HD 5600 Series] [1002:aa60]
  Subsystem: Acer Incorporated [ALI] Unknown device [1025:0379]

 

Graphics card was correctly recognized by system only after using patched Chameleon R875 boot file. Also I've forced edid file installed.

 

Output of radeon_bios_decode

$ ./radeon_bios_decode < 1002_68C1.rom
ATOM BIOS Rom:
	 SubsystemVendorID: 0x1025 SubsystemID: 0x037f
	 IOBaseAddress: 0x2000
	 Filename: BR035200.010
	 BIOS Bootup Message:
MADISON HYNIX/SAMSUNG DDR3 64Mx16										  

PCI ID: 1002:68c1
Connector at index 0
	 Type [@offset 45024]: LVDS (7)
	 Encoder [@offset 45028]: INTERNAL_UNIPHY (0x1e)
	 i2cid [@offset 45098]: 0x96, OSX senseid: 0x7
Connector at index 1
	 Type [@offset 45034]: HDMI-A (11)
	 Encoder [@offset 45038]: INTERNAL_UNIPHY1 (0x20)
	 i2cid [@offset 45121]: 0x91, OSX senseid: 0x2
Connector at index 2
	 Type [@offset 45044]: VGA (1)
	 Encoder [@offset 45048]: INTERNAL_KLDSCP_DAC1 (0x15)
	 i2cid [@offset 45148]: 0x90, OSX senseid: 0x1

Output of redsock_bios_decoder

$ ./redsock_bios_decoder < 1002_68C1.rom
 BR035200.010:

 MADISON HYNIX/SAMSUNG DDR3 64Mx16										  

 Subsystem Vendor ID: 1025
	 Subsystem ID: 37f
 Object Header Structure Size: 199
 Connector Object Table Offset: 34
 Router Object Table Offset: 0
 Encoder Object Table Offset: 99
 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 [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

 

And here is my modified Hoolock:

0200 0000 4000 0000 0901 0000 1000 0007
0008 0000 0002 0000 0001 0000 1102 0202
1000 0000 1000 0000 0000 0000 0001 0101

 

Result:

LVDS - black screen, backlight is on

VGA - ok, full resolution

HDMI - ok, full resolution, but no audio

 

Also tried other FB such as Uakari, Eulemur - the same result.

 

Is there any way to enable LVDS? Where I'm mistaken?

Link to comment
Share on other sites

try LVDS on encoder 01 instead of 00

 

0200 0000 4000 0000 0901 0000 1001 0007

 

Hi all!

I'm trying to enable LVDS on ATI Mobility Radeon HD 5650 on 10.7.1:

$ sudo lspci -nnvd 0x1002: | grep -B2 Subsystem
pcilib: 0000:02:00.0 64-bit device address ignored.
02:00.0 VGA compatible controller [0300]: ATI Technologies Inc Madison [AMD Radeon HD 5000M Series] [1002:68c1] (prog-if 00 [VGA controller])
  Subsystem: Acer Incorporated [ALI] Unknown device [1025:0379]
--
02:00.1 Audio device [0403]: ATI Technologies Inc Redwood HDMI Audio [Radeon HD 5600 Series] [1002:aa60]
  Subsystem: Acer Incorporated [ALI] Unknown device [1025:0379]

 

Graphics card was correctly recognized by system only after using patched Chameleon R875 boot file. Also I've forced edid file installed.

 

Output of radeon_bios_decode

$ ./radeon_bios_decode < 1002_68C1.rom
ATOM BIOS Rom:
	 SubsystemVendorID: 0x1025 SubsystemID: 0x037f
	 IOBaseAddress: 0x2000
	 Filename: BR035200.010
	 BIOS Bootup Message:
MADISON HYNIX/SAMSUNG DDR3 64Mx16										  

PCI ID: 1002:68c1
Connector at index 0
	 Type [@offset 45024]: LVDS (7)
	 Encoder [@offset 45028]: INTERNAL_UNIPHY (0x1e)
	 i2cid [@offset 45098]: 0x96, OSX senseid: 0x7
Connector at index 1
	 Type [@offset 45034]: HDMI-A (11)
	 Encoder [@offset 45038]: INTERNAL_UNIPHY1 (0x20)
	 i2cid [@offset 45121]: 0x91, OSX senseid: 0x2
Connector at index 2
	 Type [@offset 45044]: VGA (1)
	 Encoder [@offset 45048]: INTERNAL_KLDSCP_DAC1 (0x15)
	 i2cid [@offset 45148]: 0x90, OSX senseid: 0x1

Output of redsock_bios_decoder

$ ./redsock_bios_decoder < 1002_68C1.rom
 BR035200.010:

 MADISON HYNIX/SAMSUNG DDR3 64Mx16										  

 Subsystem Vendor ID: 1025
	 Subsystem ID: 37f
 Object Header Structure Size: 199
 Connector Object Table Offset: 34
LVDS is usually on encoder 01

0200 0000 4000 0000 0901 0000 10[color="#FF0000"]01[/color] 0007  

Router Object Table Offset: 0
 Encoder Object Table Offset: 99
 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 [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

 

And here is my modified Hoolock:

0200 0000 4000 0000 0901 0000 1000 0007
0008 0000 0002 0000 0001 0000 1102 0202
1000 0000 1000 0000 0000 0000 0001 0101

 

Result:

LVDS - black screen, backlight is on

VGA - ok, full resolution

HDMI - ok, full resolution, but no audio

 

Also tried other FB such as Uakari, Eulemur - the same result.

 

Is there any way to enable LVDS? Where I'm mistaken?

Link to comment
Share on other sites

did you change the other connection to use a different encoder? so that they don't interfere with each other?

 

1000 0000 1000 0000 0000 0000 0001 0101

 

Unfortunately got the same result, internal display is black, backlight is on.
Link to comment
Share on other sites

I have same 5650M. LVDS not working like LVDS, only like VGA (or DVI with analog signal = VGA ) (result display type CRT)

 

Take kext from 10.7.1: ATIFramebuffer, ATISupport , ATI5000Controller

 

See my config with working internal screen(like VGA or analog DVI) and hdmi(but like DP)

 

 

 

 

 

 

 

Also read my 2 last posts in this thread . What are you think about this ?

Link to comment
Share on other sites

HP DV7 Pavlion 4045er. Everything works with Lion 10.7.1 except internal display.

 

Connection information:

ATOM BIOS Rom: 
SubsystemVendorID: 0x103c SubsystemID: 0x1448
IOBaseAddress: 0x4000
Filename: BR40439.001 
BIOS Bootup Message: 
MADISON Lenovo-Yx60-Madison Pro DDR3 64Mx16 500E/600M                       

PCI ID: 1002:68c1
Connector at index 0
Type [@offset 45318]: LVDS (7)
Encoder [@offset 45322]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 45392]: 0x96, OSX senseid: 0x7
Connector at index 1
Type [@offset 45328]: HDMI-A (11)
Encoder [@offset 45332]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 45415]: 0x90, OSX senseid: 0x1
Connector at index 2
Type [@offset 45338]: VGA (1)
Encoder [@offset 45342]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 45442]: 0x97, OSX senseid: 0x8

 

Dear gurus, could you help to find (and maybe patch) proper framebuffer for such configuration?

Link to comment
Share on other sites

can you at least tell us which video card you use?

Oh sorry. ATI 5650m

 

As far as I understand. I need to modify three lines of ATI5000Controller at offset 488680

 

Personality: Eulemur
ConnectorInfo count in decimal: 3
Disk offset in decimal 488680
0000000    04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  04
0000010    00  08  00  00  00  02  00  00  00  71  00  00  12  04  04  02
0000020    10  00  00  00  10  00  00  00  00  00  00  00  00  10  00  01

 

The last digit must correspondent with OSX sensed:. right?

 

First line must start with 02 00 (LVDS) right?

 

What else I need to modify? must I care about 0x96 and similar?

Link to comment
Share on other sites

Title101, unfortunately internal display still not work...

 

CheeseTank, I know this may sound counter-intuitive, but can you give this a go. Set up the line that corresponds to your LVDS exactly as it should be according to the bios dumps - except make it a DVI port, and for the controlflags make sure it supports Analog/VGA DVI output. Then let me know if the internal screen comes to life. (It may be out of range by default, so you might need to vnc to set a resolution it supports, or use edid overrides).

 

It seems a problem many of us have (including Itansan's post above yours), where even with all the correct data edited into our ati-personality of choice, lvds simply doesn't work.. BUT we can manage to get it working as a crt/vga display.

 

I really hope someone finds a *proper* solution to this soon. There are countless posts with people having the same issue, and without proper LVDS support (instead of of the screen being shown as crt) simple things like dithering for 6-bit screens can't be enabled (i.e. the majority of cheap internal 1366x768 screens)..

Link to comment
Share on other sites

I started working to fix my video output:

  • I have a Sapphire Radeon 4670 Ultimate (Passive cooling, 3 ports: VGA/DVI/HDMI), and I want to use the DVI output to my 23" monitor
  • Using Chimera 1.5.4 bootloader, with Mac OS X 10.7.2
  • With GraphicsEnabler=No, both DVI and VGA works good, but DVD player and geek bench crashes.
  • With GraphicsEnabler=Yes, VGA works good while DVI is black, and everything seems to work
  • Earlier when I used to use Chalemeon 2.0 RC5, DVI used to give a signal, but the picture was like 256 colors, maybe wrong decoder/FB

 

here is the BIOS dump with radeon dump:

ATOM BIOS Rom: 
SubsystemVendorID: 0x174b SubsystemID: 0xe100
IOBaseAddress: 0x0000
Filename: BE1007SA.S13
BIOS Bootup Message:   RV730 GDDR3 SAMSUNG 128B 750E/873M DVII+HDMI+VGA						

PCI ID: 1002:9490
Connector at index 0
Type [@offset 44434]: VGA (1)
Encoder [@offset 44438]: INTERNAL_KLDSCP_DAC2 (0x16)
i2cid [@offset 44506]: 0x93, OSX senseid: 0x4
Connector at index 1
Type [@offset 44444]: HDMI-A (11)
Encoder [@offset 44448]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 44529]: 0x94, OSX senseid: 0x5
Connector at index 2
Type [@offset 44454]: DVI-I (2)
Encoder [@offset 44458]: INTERNAL_KLDSCP_DAC1 (0x15)
i2cid [@offset 44558]: 0x90, OSX senseid: 0x1
Connector at index 3
Type [@offset 44464]: DVI-I (2)
Encoder [@offset 44468]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 44558]: 0x90, OSX senseid: 0x1

 

and here is the outout or redsock_bios_decoder

BE1007SA.S13:
 RV730 GDDR3 SAMSUNG 128B 750E/873M DVII+HDMI+VGA                        

Subsystem Vendor ID: 174b
      Subsystem ID: e100
Object Header Structure Size: 235
Connector Object Table Offset: 3c
Router Object Table Offset: 0
Encoder Object Table Offset: af
Display Path Table Offset: 10
Connector Object Id [5] which is [VGA]
encoder obj id [0x16] which is [iNTERNAL_KLDSCP_DAC2] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
encoder obj id [0x20] which is [iNTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [2] which is [DVI_I]
encoder obj id [0x15] which is [iNTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false
Connector Object Id [2] which is [DVI_I]
encoder obj id [0x1e] which is [iNTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false

 

Here is the dump of the ati_personalities_0.7:

Kext ATI4600Controller
Personality: Flicker
ConnectorInfo count in decimal: 3
Disk offset in decimal 474728
0000000	00  04  00  00  - 00  04  00  00  - 00  01  - 00  00  - 02  01  03  05
0000010	00  04  00  00  - 00  04  00  00  - 00  01  - 00  00  - 01  00  02  02
0000020	00  02  00  00  - 14  02  00  00  - 00  01  - 00  00 -  00  10  01  04
0000030

 

and attached to this post are the screenshots of ioregistry.

 

Currently my monitor is connected with both cables (VGA+DVI) but I am using the VGA input on the screen (as the DVI is blank), technically I am connected to port #0 (from the BIOS Dump), which should be at index '00000000', which has ConnectorType set as DP and ControlFlags set as DP, which are both completely wrong in my case (VGA connector), but for some reason it is giving a signal to my screen.

 

So, if I want to fix my DVI, I should fix line number 3 (which from the BIOS is one with the DVI ports, knowing that the radeon bios declares 4 outputs, while the KEXT driver has only 3 personalities). I should fix the FrameBuffers in the ATI4600Controller.kext by hex editing the above values to some better ones, but I don't know exactly where to change.

 

Currently port #2 (counting from zero) is already set to DVI ConnectorType, but the single-link one (as there is a dual link one, 0x00000004), the ControlFlag seem ok too for DVI (0x0214). this might be also confirmed by the IORegistry screen, the ATI,ActiveFlags=0x10 (Which is != 0x1, according to page 1 of this thread), maybe the features/transmitter/encoder/senseID are wrong?

 

As I read, the SenseID is the most important, but how to calculate it, I didn't really understand the formula, and when you say bits 0-3: are they from the left or the right?

i2cid = (senseid & 0xf-1) + 0x90
senseid = (i2cid & 0xf) + 1

Currently senseID is set to 0x04
0x04 = 0000 0100

from the BIOS Dump
 SenseID = 0x1 = 0000 0001
 i2cid = 0x90 =  1001 0000

What to do next?

 

Update 1:

I tried updating the port #2 to:

0000020 04 00 00 00 - 14 02 00 00 - 00 01 - 00 00 - 00 10 01 05

 

but now the VGA is detected with the wrong resolution, maybe the 3rd row in result of ati_personalities is in reality port #0 of the card, and that's why IORegistryView shows it is @0?

post-840908-1318934136_thumb.png

post-840908-1318934141_thumb.png

post-840908-1318934145_thumb.png

Link to comment
Share on other sites

 Share

×
×
  • Create New...