Jump to content

Editing custom personalities for ATI Radeon HD[45]xx


  • Please log in to reply
772 replies to this topic

#561
CheeseTank

CheeseTank

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
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?

#562
jvilla

jvilla

    InsanelyMac Protégé

  • Members
  • Pip
  • 38 posts
  • Location:Lawrence, KS
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?



#563
CheeseTank

CheeseTank

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts

try LVDS on encoder 01 instead of 00

0200 0000 4000 0000 0901 0000 1001 0007


Unfortunately got the same result, internal display is black, backlight is on.

#564
jvilla

jvilla

    InsanelyMac Protégé

  • Members
  • Pip
  • 38 posts
  • Location:Lawrence, KS
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.



#565
CheeseTank

CheeseTank

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts

did you change the other connection to use a different encoder?

Yes. And not working :)

#566
itansan

itansan

    InsanelyMac Protégé

  • Members
  • Pip
  • 4 posts
  • Gender:Male
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 ?

#567
Title101

Title101

    InsanelyMac Protégé

  • Members
  • Pip
  • 22 posts
CheeseTank,

I have values that are identical to yours. I am also unable to get it to work. Have you had any further progess?

#568
CheeseTank

CheeseTank

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
Title101, unfortunately internal display still not work...

#569
darknos

darknos

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
HP DV7 Pavlion 4045er. Everything works with Lion 10.7.1 except internal display.

Connection information:
[codebox]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[/codebox]

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

#570
ytrox

ytrox

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 502 posts
  • Gender:Male
  • Location:Italy
can you at least tell us which video card you use?

#571
darknos

darknos

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts

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: EulemurConnectorInfo count in decimal: 3Disk offset in decimal 4886800000000    04  00  00  00  14  00  00  00  00  01  00  00  01  02  01  040000010    00  08  00  00  00  02  00  00  00  71  00  00  12  04  04  020000020    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?

#572
ytrox

ytrox

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 502 posts
  • Gender:Male
  • Location:Italy
to begin you have to change senseids 07, 08, 01, then follow also this topic http://www.insanelym...p...40&start=40.
you need to change a lot of things, but if you are not capable to do that you can try changing just the framebuffer of your card. you are using eulemur for now.

#573
avian

avian

    InsanelyMac Protégé

  • Members
  • PipPip
  • 65 posts

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)..

#574
CheeseTank

CheeseTank

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts
avian, tried. still doesn't work. backlight is on, but system doesn't recognize that LVDS is connected.

#575
mcbyte_it

mcbyte_it

    InsanelyMac Protégé

  • Members
  • Pip
  • 41 posts
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:9490Connector at index 0	Type [@offset 44434]: VGA (1)	Encoder [@offset 44438]: INTERNAL_KLDSCP_DAC2 (0x16)	i2cid [@offset 44506]: 0x93, OSX senseid: 0x4Connector at index 1	Type [@offset 44444]: HDMI-A (11)	Encoder [@offset 44448]: INTERNAL_UNIPHY1 (0x20)	i2cid [@offset 44529]: 0x94, OSX senseid: 0x5Connector at index 2	Type [@offset 44454]: DVI-I (2)	Encoder [@offset 44458]: INTERNAL_KLDSCP_DAC1 (0x15)	i2cid [@offset 44558]: 0x90, OSX senseid: 0x1Connector 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: e100Object Header Structure Size: 235Connector Object Table Offset: 3cRouter Object Table Offset: 0Encoder Object Table Offset: afDisplay Path Table Offset: 10Connector Object Id [5] which is [VGA]	encoder obj id [0x16] which is [INTERNAL_KLDSCP_DAC2] linkb: falseConnector Object Id [12] which is [HDMI_TYPE_A]	encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: trueConnector Object Id [2] which is [DVI_I]	encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: falseConnector 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?

Attached Files



#576
lseba

lseba

    InsanelyMac Protégé

  • Members
  • Pip
  • 34 posts
  • Gender:Male
  • Location:argentina
does any one knows in wich kext is located the conector info of the RadeonFramebuffer personality. i belive thta is the default framebuffer used when there is no match for the framebuffer injected by chameleon

#577
Mietas

Mietas

    InsanelyMac Protégé

  • Members
  • Pip
  • 32 posts
  • Gender:Male
  • Location:Poland
RadeonFramebuffer is an automatic detection of connections in graphic card. If I use this, it will detect LVDS, HDMI and VGA fine, but LVDS stay black without backlight, unfortunately.

#578
lseba

lseba

    InsanelyMac Protégé

  • Members
  • Pip
  • 34 posts
  • Gender:Male
  • Location:argentina
so thgere is no connectorinfo hex table for radeonframebuffer that could be edited? is there a way to see the automaticly generated conector info?

#579
RTH PJM

RTH PJM

    InsanelyMac Protégé

  • Members
  • Pip
  • 1 posts
Hi bcc9,

I have just come across your postings. I hope you are still monitoring this thread. I have an XFX 5770 (ZMF3) card with 3 physical connectors, DVI : DVI : MDP. When I used the tools you linked to, I found that the card BIOS reports 5 connectors:

ATOM BIOS Rom: 
	SubsystemVendorID: 0x1682 SubsystemID: 0x2994
	IOBaseAddress: 0x0000
	Filename: 577ZMF73.BIN
	BIOS Bootup Message: 
JUNIPER BIOS UCODEv:1255									

PCI ID: 1002:68b8
Connector at index 0
	Type [@offset 44278]: DisplayPort (10)
	Encoder [@offset 44282]: INTERNAL_UNIPHY2 (0x21)
	i2cid [@offset 44380]: 0x91, OSX senseid: 0x2
Connector at index 1
	Type [@offset 44288]: DVI-I (2)
	Encoder [@offset 44292]: INTERNAL_UNIPHY1 (0x20)
	i2cid [@offset 44417]: 0x93, OSX senseid: 0x4
Connector at index 2
	Type [@offset 44298]: DVI-I (2)
	Encoder [@offset 44302]: INTERNAL_KLDSCP_DAC2 (0x16)
	i2cid [@offset 44417]: 0x93, OSX senseid: 0x4
Connector at index 3
	Type [@offset 44308]: DVI-I (2)
	Encoder [@offset 44312]: INTERNAL_UNIPHY (0x1e)
	i2cid [@offset 44454]: 0x92, OSX senseid: 0x3
Connector at index 4
	Type [@offset 44318]: DVI-I (2)
	Encoder [@offset 44322]: INTERNAL_KLDSCP_DAC1 (0x15)
	i2cid [@offset 44454]: 0x92, OSX senseid: 0x3

I noticed that you were uncertain about your connector types in the original post

Next we take a look at the ConnectorInfo for this personality:

connector-type 0x00000400=displayport at port 0
connector-type 0x00000004=DVI at port 1
connector-type 0x00000200=single link DVI(probably) at port 2
connector-type 0x00000800=HDMI at port 3


I have to admit that I'm guessing, but there are a few clues here:

There are 3 physical connectors, but five reported by the BIOS. Logically then there must be 2 more. Then I remembered that DVI can be either DVI-D (digital only), or DVI-I (digital with -I-ntegrated analog). Looking at the output from the radeon_bios_decode tool, there's another clue in each of the 'Encoder' lines, connectors at indexes 2 and 4 have the acronym DAC in their descriptions, which usually stands for Digital to Analog Converter. Therefore I'm concluding that I do indeed have 5 physical connectors, it's just that my DVI ports are DVI-I and combine the digital and analog.

Looking at the output from your ati_personality script, I'm going to suggest that cards with DVI-I will have personalities like this:

0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  05  01 #MDP
0000010	04  00  00  00  04  02  00  00  00  01  00  00  11  02  01  02 #DVI-D
0000020	00  02  00  00  14  02  00  00  00  01  00  00  00  00  03  03 #DVI-A
0000030	04  00  00  00  04  02  00  00  00  01  00  00  11  02  01  04 #DVI-D
0000040	00  02  00  00  14  02  00  00  00  01  00  00  00  00  03  05 #DVI-A

I'm suggesting that 00 20 00 00 is the analog port of DVI-I. What do you think?

RTH

#580
xzeil

xzeil

    InsanelyMac Protégé

  • Members
  • Pip
  • 14 posts
Please help I have post QE/CI display issues if you are able to :(

http://www.insanelym...howtopic=272953





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2015 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy