k540kkk Posted March 29, 2011 Share Posted March 29, 2011 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. 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 ======================================================================= ioreg.txt 6760.8000.0200.vga.rom.zip boot.zip ATI6000Controller.zip ati.c.zip 2 Link to comment Share on other sites More sharing options...
mojtabazarei Posted March 29, 2011 Share Posted March 29, 2011 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 Link to comment Share on other sites More sharing options...
dickhouse Posted March 29, 2011 Share Posted March 29, 2011 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 : 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! great. is that vga bios that u attached (afaik onboard vga bios cant be dump).. how do u get it? Link to comment Share on other sites More sharing options...
k540kkk Posted March 29, 2011 Author Share Posted March 29, 2011 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.projectosx.com/forum/index.php?showtopic=1029 Slice also post topic in this board : http://www.insanelymac.com/forum/index.php?showtopic=96664 Link to comment Share on other sites More sharing options...
pnegry Posted March 29, 2011 Share Posted March 29, 2011 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. Link to comment Share on other sites More sharing options...
wmarsh Posted March 30, 2011 Share Posted March 30, 2011 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.insanelymac.com/forum/index.php...00#entry1661988 Link to comment Share on other sites More sharing options...
atlee Posted March 31, 2011 Share Posted March 31, 2011 @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. Link to comment Share on other sites More sharing options...
k540kkk Posted March 31, 2011 Author Share Posted March 31, 2011 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,01I 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". ioreg.RadeonFramebuffer.zip 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 Link to comment Share on other sites More sharing options...
dickhouse Posted March 31, 2011 Share Posted March 31, 2011 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 Link to comment Share on other sites More sharing options...
pnegry Posted March 31, 2011 Share Posted March 31, 2011 @k540kkAlso 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. Link to comment Share on other sites More sharing options...
k540kkk Posted April 2, 2011 Author Share Posted April 2, 2011 (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. (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. Link to comment Share on other sites More sharing options...
pnegry Posted April 2, 2011 Share Posted April 2, 2011 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. Link to comment Share on other sites More sharing options...
mojtabazarei Posted April 2, 2011 Share Posted April 2, 2011 I tried many combination on my 5730m on asus n61jq no result :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( :( Link to comment Share on other sites More sharing options...
pnegry Posted April 2, 2011 Share Posted April 2, 2011 (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. 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. Link to comment Share on other sites More sharing options...
k540kkk Posted April 3, 2011 Author Share Posted April 3, 2011 @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. Link to comment Share on other sites More sharing options...
pnegry Posted April 3, 2011 Share Posted April 3, 2011 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 Link to comment Share on other sites More sharing options...
k540kkk Posted April 3, 2011 Author Share Posted April 3, 2011 For reference, I've discussed with @altee here Link to comment Share on other sites More sharing options...
pnegry Posted April 3, 2011 Share Posted April 3, 2011 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. Link to comment Share on other sites More sharing options...
k540kkk Posted April 3, 2011 Author Share Posted April 3, 2011 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. Link to comment Share on other sites More sharing options...
dickhouse Posted April 3, 2011 Share Posted April 3, 2011 did u manage to get lvds working k540kkk..? Link to comment Share on other sites More sharing options...
pnegry Posted April 4, 2011 Share Posted April 4, 2011 I tried with Lion kext. Using RadeonFramebuffer, something strange happened. The screen was corrupt so I VNCed in and it was still corrupt but showing two screens, one smaller than the other. I thought I had a screenshot but I must have missed it. ioreg detects the second "display" as CRT. This makes me beleive that the Lion kext is autodetecting the ports but there is a problem. I have spent enough time on this now to give up for now. I will wait for Lion to be released and try again, but I will keep an eye on your work @k545kkk. If interested I have attached the ioreg tree for gfx0 and Lion. Remember my model does not have a physical connector for VGA. gfx.ioreg.lion.txt Link to comment Share on other sites More sharing options...
pnegry Posted April 4, 2011 Share Posted April 4, 2011 back from the dead already with another thought... perhaps graphicsenabler is bugged... maybe we can try a dsdt patch such as wmarsh's one here: http://www.insanelymac.com/forum/index.php?showtopic=253113 Link to comment Share on other sites More sharing options...
k540kkk Posted April 5, 2011 Author Share Posted April 5, 2011 maybe we can try a dsdt patch such as wmarsh's one here: http://www.insanelymac.com/forum/index.php?showtopic=253113 I'm not success with DSDT but we can inject any value by editing ati.c. Here is an example I've tested, I've got these string shown up in IORegistry (which mean it's effective). dev_prop_t ati_devprop_list[] = { ... {FLAGTRUE, false, "@0,ATY,EFIDisplay", NULL, STRVAL("LVDS") }, {FLAGTRUE, false, "AAPL,HasPanel", NULL, DWRVAL((uint32_t)1) }, {FLAGTRUE, false, "@0,AAPL,DualLink", NULL, DWRVAL((uint32_t)1) }, ... {FLAGTRUE, false, NULL, NULL, NULVAL } }; This is only an example. Not found working values yet. Link to comment Share on other sites More sharing options...
pnegry Posted April 6, 2011 Share Posted April 6, 2011 I'm not success with DSDT but we can inject any value by editing ati.c. Here is an example I've tested, I've got these string shown up in IORegistry (which mean it's effective). dev_prop_t ati_devprop_list[] = { ... {FLAGTRUE, false, "@0,ATY,EFIDisplay", NULL, STRVAL("LVDS") }, {FLAGTRUE, false, "AAPL,HasPanel", NULL, DWRVAL((uint32_t)1) }, {FLAGTRUE, false, "@0,AAPL,DualLink", NULL, DWRVAL((uint32_t)1) }, ... {FLAGTRUE, false, NULL, NULL, NULVAL } }; This is only an example. Not found working values yet. Wow, great work! Are you in touch with kabyl and other chameleon developers? Link to comment Share on other sites More sharing options...
dickhouse Posted April 7, 2011 Share Posted April 7, 2011 are we getting close to get lvds working on mobility 6470? Link to comment Share on other sites More sharing options...
Recommended Posts