Jump to content

Sharing my Experience on ATI Radeon HD 6470M (Asus A42JZ Notebook)


  • Please log in to reply
85 replies to this topic

#1
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
I would like to share my experience about ATI Radeon HD 6470M on Asus A42JZ Notebook.

Part 1 : Current Status & Information about my best configuration
What I uses :
- Kabyl’s boot with 6470M id added
- ATI Kext from MBP2011 10.6.7 with patched Ipomoea personality (using bcc9 and mucha method

Current Status :
LVDS : Not working, blank/black screen with backlight turn on (can turn off/on using keyboard “Fn”). The screen can be used in VESA mode (1024x768x32) using GraphicsEnabler=No.
HDMI : Working, Correct FullHD 1080p resolution with QE/CI, HDMI-audio not working.
VGA : Working, Correct resolution 1440x900 using SwtichResX.

Remarks :
- QE/CI will work only when HDMI is pluged in before OS X boot. If plug HDMI after OS X booted, screen still working but no QE/CI.
- QE/CI tested feature : transparent topbar, ripple effect in dashboard, Adobe flash worked.

Attached File  System_Profile.jpg   79.43KB   940 downloads
My Radeon ROM dump :
ATOM BIOS Rom: 
	SubsystemVendorID: 0x1043 SubsystemID: 0x1cb2
	IOBaseAddress: 0xd000
	Filename: BR39572.001 
	BIOS Bootup Message: 
Asus K42Jy/Jk SEYMOUR XT DDR3 64Mx16 512MB/1GB							  
Connector at index 0
	Type: LVDS (7)
	Encoder: id: 1e name: INTERNAL_UNIPHY
	i2cid: 0x96, OSX senseid: 0x7
Connector at index 1
	Type: HDMI-A (11)
	Encoder: id: 20 name: INTERNAL_UNIPHY1
	i2cid: 0x91, OSX senseid: 0x2
Connector at index 2
	Type: VGA (1)
	Encoder: id: 15 name: INTERNAL_KLDSCP_DAC1
	i2cid: 0x97, OSX senseid: 0x8


Ipomoea Framebuffer
I choose Ipomoea Framebuffer because it closely matches my card personality: 3 ports in correct order.

Ipomoea – Original :
Personality: Ipomoea
ConnectorInfo count in decimal: 3
Disk offset in decimal 501244 (0x7a5fc)
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  01  05  (DVI)
0000010	00  08  00  00  04  02  00  00  00  01  00  00  11  02  04  03  (HDMI)
0000020	10  00  00  00  10  00  00  00  00  01  00  00  00  00  00  02  (VGA)

Ipomoea – my best discovered configuration :
Personality: Ipomoea
ConnectorInfo count in decimal: 3
Disk offset in decimal 501244 (0x7a5fc)
0000000	02  00  00  00  40  00  00  00  09  01  00  00  20  01  00  07  (LVDS – not detected/not working)
0000010	00  08  00  00  04  02  00  00  00  01  00  00  21  03  04  02  (HDMI – working)
0000020	10  00  00  00  10  00  00  00  00  01  00  00  00  00  01  08  (VGA – working)

IOReg Dump:
| |   |   | +-o ATY,Ipomoea@0  <class AtiFbStub, id 0x1000002d7, registered, matched, active, busy 0 (32 ms), retain 7>
	| |   |   | | | {
	| |   |   | | |   "port-number" = 0
	| |   |   | | |   "display-type" = "NONE"
	| |   |   | | |   "connector-type" = 2
	| |   |   | | |   "ATY,ActiveFlags" = 1
	| |   |   | | |   "IOFBDependentIndex" = 0
	| |   |   | | |   "IOFBDependentID" = 83116416
	| |   |   | | |   "ATY,ControlFlags" = 64
	| |   |   | | |   "AAPL,gray-page" = <01000000>
	| |   |   | | |   "device_type" = "display"
	| |   |   | | |   "av-signal-type" = 0
	| |   |   | | |   "AAPL,iokit-ndrv" = <80129336>
	| |   |   | | |   "AAPL,gray-value" = <c38c6400>
	| |   |   | | |   "display-connect-flags" = <00000000>
	| |   |   | | |   "name" = "ATY,Ipomoea"
	| |   |   | | |   "AAPL,boot-display" = <01000000>
	| |   |   | | | }

	| |   |   | +-o ATY,Ipomoea@1  <class AtiFbStub, id 0x1000002d8, registered, matched, active, busy 0 (21 ms), retain 7>
	| |   |   | | | {
	| |   |   | | |   "display-type" = "LCD"
	| |   |   | | |   "connector-type" = 2048
	| |   |   | | |   "ATY,ActiveFlags" = 512
	| |   |   | | |   "IOFBDependentIndex" = 1
	| |   |   | | |   "IOFBDependentID" = 83116416
	| |   |   | | |   "ATY,ControlFlags" = 512
	| |   |   | | |   "AAPL,gray-page" = <01000000>
	| |   |   | | |   "device_type" = "display"
	| |   |   | | |   "av-signal-type" = 8
	| |   |   | | |   "AAPL,iokit-ndrv" = <80129336>
	| |   |   | | |   "AAPL,gray-value" = <c38c6400>
	| |   |   | | |   "display-connect-flags" = <00000000>
	| |   |   | | |   "name" = "ATY,Ipomoea"
	| |   |   | | |   "port-number" = 1
	| |   |   | | | }

	| |   |   | +-o ATY,Ipomoea@2  <class AtiFbStub, id 0x1000002d9, registered, matched, active, busy 0 (17 ms), retain 7>
	| |   |   | | | {
	| |   |   | | |   "display-type" = "CRT"
	| |   |   | | |   "connector-type" = 16
	| |   |   | | |   "ATY,ActiveFlags" = 16
	| |   |   | | |   "IOFBDependentIndex" = 2
	| |   |   | | |   "IOFBDependentID" = 83116416
	| |   |   | | |   "ATY,ControlFlags" = 16
	| |   |   | | |   "AAPL,gray-page" = <01000000>
	| |   |   | | |   "device_type" = "display"
	| |   |   | | |   "av-signal-type" = 1
	| |   |   | | |   "AAPL,iokit-ndrv" = <80129336>
	| |   |   | | |   "AAPL,gray-value" = <c38c6400>
	| |   |   | | |   "display-connect-flags" = <00000000>
	| |   |   | | |   "name" = "ATY,Ipomoea"
	| |   |   | | |   "port-number" = 2
	| |   |   | | | }

End of Part 1
=======================================================================

Part 2 : Testing on Transmission/Encoder (Not working yet, just for reference and discussion purpose)
In this section, I'll try to get LVDS working by focus on TransmissionID/EncoderID.

I assume that my ATI HD 6470M is DCE 4.0 compatible because my HDMI port exactly matched this spec.
From bcc9's radeon rom dump output, It tells me that LVDS port is using UNIPHY0.
So there are possible 3 values to be tested : 0x1000, 0x0000, 0x2001.

* DCE 4.0
 * - 3 DIG transmitter blocks UNPHY0/1/2 (links A and B).
 * Supports up to 6 digital outputs
 * - 6 DIG encoder blocks.
 * - DIG to PHY mapping is hardcoded
 * DIG1 drives UNIPHY0 link A, A+B	0x1000	  0x0000
 * DIG2 drives UNIPHY0 link B		0x2001
 * DIG3 drives UNIPHY1 link A, A+B	
 * DIG4 drives UNIPHY1 link B		0x2103  HDMI
 * DIG5 drives UNIPHY2 link A, A+B	
 * DIG6 drives UNIPHY2 link B

LVDS personality tested :
02  00  00  00  40  00  00  00  09  01  00  00  10  00  00  07  (Case 01 : black/blank screen, backlight off)
02  00  00  00  40  00  00  00  09  01  00  00  00  00  00  07  (Case 02 : black/blank screen, backlight off)
02  00  00  00  40  00  00  00  09  01  00  00  20  01  00  07  (Case 03 : black/blank screen, backlight on)
Conclusions: Only case 03 0x2001 that can turn backlight on/off using keboard “Fn” button. So I think 0x2001 is the most possible value for my card.

End of Part 2
=======================================================================

Attached Files



#2
mojtabazarei

mojtabazarei

    InsanelyMac Protégé

  • Members
  • PipPip
  • 88 posts
  • Gender:Male
  • Location:IRAN
HI i have 5730 on asus n61jq my info is same as you have vga working fully HDMI not tested don' have LVDS we are working on it

my there is some difference in editing for 5000 & 6000

#3
dickhouse

dickhouse

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
  • Gender:Male
  • Location:The Gunners HomeTown

I would like to share my experience about ATI Radeon HD 6470M on Asus A42JZ Notebook.

Current Status & Information about my best configuration
What I uses :
- Kabyl’s boot with 6470M id added
- ATI Kext from MBP2011 10.6.7 with patched Ipomoea personality

Current Status :
LVDS : Not working, blank/black screen with backlight turn on (can turn off/on using keyboard “Fn”). The screen can be used in VESA mode (1024x768x32) using GraphicsEnabler=No.
HDMI : Working, Correct FullHD 1080p resolution with QE/CI, HDMI-audio not working.
VGA : Working, Incorrect resolution. Can change resolution but no widescreen options to select (my native resolution is 1440x900).

My Radeon ROM dump :
[code=auto:0]ATOM BIOS Rom:
SubsystemVendorID: 0x1043 SubsystemID: 0x1cb2
IOBaseAddress: 0xd000
Filename: BR39572.001
BIOS Bootup Message:
Asus K42Jy/Jk SEYMOUR XT DDR3 64Mx16 512MB/1GB
Connector at index 0
Type: LVDS (7)
Encoder: id: 1e name: INTERNAL_UNIPHY
i2cid: 0x96, OSX senseid: 0x7
Connector at index 1

.............................
....................................


I've been waiting this for almost 4months ;) 6470M is it fully working QE/CI. I have asus notebook to but lower spec core-i3 with 6470M native 1366x768. but without LVDS as u mention i cant deal with it. i have no 2nd monitor to attached. but thanks tho! :D great.

is that vga bios that u attached (afaik onboard vga bios cant be dump).. how do u get it?

#4
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

is that vga bios that u attached (afaik onboard vga bios cant be dump).. how do u get it?


Use Slice's radeondump method from this link (Exactly instruction and file that I used) :
http://www.projectos...?showtopic=1029


Slice also post topic in this board :
http://www.insanelym...showtopic=96664

#5
pnegry

pnegry

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Hi k540kkk,

I am working on the same series laptop (mine is a JY) which has exactly the same video rom as yours and am basically up to the same point as you (patching the kext). The difference is I am in 64 bit mode because I have 8gb ram. You can find my work by googling K42JY hackintosh.

I am using the r748 bootloader that came with Nawcom and the framebuffer shows in IORegistryExplorer as ATIFramebuffer with a Compatible-With: Megalodon which I found strange since the Megalodon isnt an r800. I will try Kabyl and see what results I get.

We should get in touch (maybe via email) and share info.

#6
wmarsh

wmarsh

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 900 posts

I choose Ipomoea Framebuffer because it closely matches my card personality: 3 ports in correct order.

From testing order appears unimportant.
You might want to try Cattail as new MBP uses it. See ioreg posted here
http://www.insanelym...00#entry1661988

#7
atlee

atlee

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 724 posts
  • Gender:Male
  • Location:South NSW, Australia
@k540kk
Try booting with AtiConfig=RadeonFramebuffer to see how many outputs you get by default?
Also i have found if you change controlflag LVDS to 14 and VGA to 14 then normally they switch on. Extended mode. also you might have mirroring option.

Try the below, 20,01 don't seem like a LVDS transmitter/encoder maybe try a few others 12,04 / 12,01
I have also found out 00,00 works great with VGA.

Personality: Ipomoea
ConnectorInfo count in decimal: 3
Disk offset in decimal 501244 (0x7a5fc)
0000000	02  00  00  00  14  00  00  00  09  01  00  00  20  01  00  07  (LVDS – not detected/not working)
0000010	00  08  00  00  00  02  00  00  00  01  00  00  21  03  04  02  (HDMI – working)
0000020	10  00  00  00  14  00  00  00  00  01  00  00  00  00  01  08  (VGA – working)

also install ScreenResX to fix the VGA resolution.

#8
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
Hi all,

Glad to know that there are many people interested to get this thing working.

@wmarsh and @atlee, Thanks for your suggestions and here is the result.


You might want to try Cattail as new MBP uses it.

I've also tried Cattail because It starts with LVDS port. Result is nothing changed. LVDS not working, HDMI and VGA working when I patched it with correct senseid and transmission/encoder.

Try the below, 20,01 don't seem like a LVDS transmitter/encoder maybe try a few others 12,04 / 12,01
I have also found out 00,00 works great with VGA.

As described in Part 2 in my first post, I think 2001 is the most possible value. However, before @bcc9 release radeon_bios_decode, I've already tried many possible value included 1204/1201/0000 but nothing worked.

Try booting with AtiConfig=RadeonFramebuffer to see how many outputs you get by default?

This is interesting. With AtiConfig=RadeonFramebuffer, It gives the same result : 3 ports; LVDS-not working, HDMI-working, VGA-working. From ioreg dump, I think it picks "Gibba" for me as It's only name I found in ioreg.
I also found that ANY INCORRECT framebuffer name give the same result. I've tried AtiConfig=ABCABCABC (ensure that the name is long enough or you will get error message) give the same result as "RadeonFramebuffer".
Attached File  ioreg.RadeonFramebuffer.zip   130.18KB   75 downloads
Attached File  ProfileRadeonFramebuffer.jpg   77.29KB   218 downloads

Let's see what it picks for me, It doesn't seem to match my card. It has no LVDS, no VGA but it's work!!!
Personality: Gibba
ConnectorInfo count in decimal: 5
Disk offset in decimal 501084 (0x7a55c)
0000000	00  04  00  00  04  03  00  00  00  01  00  00  12  04  05  01
0000010	00  04  00  00  04  03  00  00  00  01  00  00  22  05  04  02
0000020	00  08  00  00  04  02  00  00  00  01  00  00  11  02  06  04
0000030	00  02  00  00  04  02  00  00  00  01  00  00  00  00  03  05
0000040	04  00  00  00  04  02  00  00  00  01  00  00  11  02  01  03
At this point, from my own experience and from reading others, It seems that what is working, It's also still working even with incorrect values. What that is not working, it's still not working with any values.
Maybe It's not important what the value is. May be something is missing but we don't know.

Also i have found if you change controlflag LVDS to 14 and VGA to 14 then normally they switch on. Extended mode. also you might have mirroring option.

See @pnegry comment below

also install ScreenResX to fix the VGA resolution.

Yes, It's work. I've installed SwitchResX long time ago. When I opened it again, It shown "Trial period expired" so I just skipped this task because I will not use VGA. You encouraged me to try again and It's working now. Thanks

#9
dickhouse

dickhouse

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
  • Gender:Male
  • Location:The Gunners HomeTown

Hi all,

Glad to know that there are many people interested to get this thing working.

@wmarsh and @atlee, Thanks for your suggestions and here is the result.



....


THanks for the progress guys! i waiting to get LVDS working, have tried all mods but nothing work.
i use Gibba as fB

#10
pnegry

pnegry

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts

@k540kk
Also i have found if you change controlflag LVDS to 14 and VGA to 14 then normally they switch on. Extended mode. also you might have mirroring option.
Try the below, 20,01 don't seem like a LVDS transmitter/encoder maybe try a few others 12,04 / 12,01
I have also found out 00,00 works great with VGA.


I have done some more tests, still no luck, results below.

02000000140000000901000020010007 -both screens gray
02000000140000000901000012010007 -both screens corruption
02000000410000000901000020010007 - hdmi only
02000000400000000901000012010007 - hdmi only
02000000400000000901000012040007 - hdmi only

I have also tried various permutations based on the lvds lines from all of the built in personalities in the controller kext - no luck. However I note that there are values in some of these lines that do not match with dong / bcc9's reference work, so this might be worth investigating further.

Some more remarks:

Testing manually is tedious. It should be easy to write a python test harness to do the following:
* Calculate all possible permutations based on input conditions
* Patch ATI6000Controller and move into place
* Fix permissions, update cache
* Reboot
* As a startup item, dump ioreg and store with ConnectorInfo table as a reference, raise alert if display0 branch appears under Ipomoea@0
* Iterate and try the next possibility

Given that there are only 6 transmitters and 6 encoders possible in ddc, that gives 36 possible combinations which should only take 1/2 an hour or so to test. I will try this on saturday and post results here.

Another possible approach would be to dump the configuration from Windows, or dump kernel memory from windows and/or linux and inspect the connectorinfo with a debugger. I am not sure if anyone has already tried this with other Radeons and found that it didnt work or wasnt possible.

#11
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

(1) I have done some more tests, still no luck, ... ... ...

(2) Testing manually is tedious. It should be easy to write a python ... ... ...

(3) Another possible approach would be to dump the configuration from Windows, or dump kernel memory from windows and/or linux and inspect the connectorinfo with a debugger. I am not sure if anyone has already tried this with other Radeons and found that it didnt work or wasnt possible.


(1) I've seen many people testing but still no luck, me too. :rolleyes:

(2) If you are going to create the testing script, please see following posts, maybe good information to develop possible values.
@atlee's conclusion here
@mucha's report here


(3) I've install Ubuntu 10.10 but current driver does not support HD6470M yet. I've tried both opensource driver and AMD's driver, nothing work. ;)

#12
pnegry

pnegry

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Output from dmesg |grep drm on latest ubuntu dev with radeon driver cloned from git:

[ 17.653054] [drm] Radeon Display Connectors
[ 17.653056] [drm] Connector 0:
[ 17.653057] [drm] LVDS
[ 17.653060] [drm] DDC: 0x6560 0x6560 0x6564 0x6564 0x6568 0x6568 0x656c 0x656c
[ 17.653061] [drm] Encoders:
[ 17.653063] [drm] LCD1: INTERNAL_UNIPHY

Nothing new here. Xorg wont load with kms disabled, so no extra info available.

#13
mojtabazarei

mojtabazarei

    InsanelyMac Protégé

  • Members
  • PipPip
  • 88 posts
  • Gender:Male
  • Location:IRAN
I tried many combination on my 5730m on asus n61jq no result :rolleyes: ;) :D :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :(

#14
pnegry

pnegry

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts

(2) If you are going to create the testing script, please see following posts, maybe good information to develop possible values.
@atlee's conclusion here
@mucha's report here


I have the first part done, that is just a nested loop to iterate out possible values from input. But it occured to me that all the values discovered have already been tested...

(3) I've install Ubuntu 10.10 but current driver does not support HD6470M yet. I've tried both opensource driver and AMD's driver, nothing work. :hysterical:


I got the AMD driver to work perfectly in natty but I wasnt able to get useful information. Opensource driver detected lvds and resolution but showed a corrupt screen - that was something to do with GART. I pasted the output from drm here. Because this card must use KMS we are limited in the data we can get from the driver until we hack/enable some extra debugging in it.

@k540kk one more idea, do you have enough monitors to test vga, hdmi and lvds connected under windows? if so, can you verify that the vga is treated as a seperate display to lvds, or if it is just cloned.

#15
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

@k540kk one more idea, do you have enough monitors to test vga, hdmi and lvds connected under windows? if so, can you verify that the vga is treated as a seperate display to lvds, or if it is just cloned.

Using Catalyst Control Center on Windows 7, It allows only 2 monitors activated at the same time. When I tried to activate 3rd monitor, It forced me to select one of active monitors to be disabled.
Test Case |Duplicated mode |Extended mode
-----------------------------------------
LVDS-VGA  |OK			  |OK*
LVDS-HDMI |OK			  |OK
VGA-HDMI  |OK			  |OK
To answer your question, LVDS-VGA can be enabled in Extended mode so VGA is treated as a separate display to LVDS.

#16
pnegry

pnegry

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
thanks. I think along the lines of atlee's suggestion we need to patch not just the lvds line but also the vga. from my testing obviously a change in one line can affect the other...
my laptop doesnt have a VGA port at all (it's just a stub on the motherboard), so I cant test this :(

#17
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts
For reference, I've discussed with @altee here

#18
pnegry

pnegry

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
another question: did anyone try the lion kexts? I just tried, no luck except for radeonframebuffer which showed 2 corrupt screens under VNC. might have been doing it wrong though.

#19
k540kkk

k540kkk

    InsanelyMac Protégé

  • Members
  • Pip
  • 27 posts

Using Catalyst Control Center on Windows 7, It allows only 2 monitors activated at the same time. When I tried to activate 3rd monitor, It forced me to select one of active monitors to be disabled.


Just notice that this maybe limitation on this card. Only 2 monitors can be activated at the same time.
Right now,No matter what personality we have tried,we've got only HDMI and VGA working.
Perhaps the personality we used is correct, we may need a method to disable HDMI or VGA and then enable LVDS.

#20
dickhouse

dickhouse

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
  • Gender:Male
  • Location:The Gunners HomeTown
did u manage to get lvds working k540kkk..?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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