sydlix Posted March 23, 2011 Share Posted March 23, 2011 On linux: There are two digital output blocks in the 5xx and 6xx ASICs, which handle TMDS (the signalling for DVI and HDMI) and LVDS (the signalling for internal LCD panels). They sort of correspond to "digital output 1" and "digital output 2". The first block is TMDS only, and is called TMDSA (ie the first TMDS block). The second block can output TMDS or LVDS, and is called LVTMA (ie LVds plus TMds A or the first LVTM block). The two blocks are programmed differently. While we were preparing the initial documentation for 5xx and 6xx display logic we realized at the last minute that the information for the LVTMA block was missing from the documents. We were able to replace the 5xx document with a new one containing most of the 5xx LVTMA info but were only able to get the updated 6xx LVTMA info to Novell a few weeks ago. I'm hoping to get the same info posted publicly over the next week or two. As a result, until very recently if you had a card with dual DVI connectors there was a pretty good chance that one DVI connector (the one wired to the TMDSA block) worked and the other (the one wired to the LVTMA block) did not. Hope this helps. I'd ask OP to post the ioreg -l of his configuration to see how is recognized his working internal display. 1 Link to comment Share on other sites More sharing options...
mucha Posted March 23, 2011 Author Share Posted March 23, 2011 Thanks for the useful information, waiting for more documentations about the encoder transmitter mapping mystery Link to comment Share on other sites More sharing options...
kizwan Posted March 23, 2011 Share Posted March 23, 2011 Another info. With Transmitter set to 12 (linkA) the display is listed as TMDSA, with 02 (supposedly A+B dual link), is listed as TMDSB (LINK2). TMDS is not LVDS..I think is used on DVI displays? Imac connection shows LVDS. Check the logs and let me know. I already tested this, apparently the ATY,EFIDisplay is only cosmetic/information. Change it doesn't make the internal LCD usable or not. It also hardcoded in ati.c (trunk). I even change it to LVDS (mine was TMDSB) but all monitors still working. Link to comment Share on other sites More sharing options...
mucha Posted March 23, 2011 Author Share Posted March 23, 2011 you are right the ATY,EFIDISPALY reported by the ioreg dump is injected by chameleon bootloader Not detected by the drivers & only cosmetic but as he reported : TMDS-A (HDMI-A & Single Link DVI) are Single Link, TMDS-B (HDMI-B & Dual Link DVI) are Dual Link, LVDS is Single Link, but for some High Resolution Internal LCD is Dual Link. Link to comment Share on other sites More sharing options...
sydlix Posted March 23, 2011 Share Posted March 23, 2011 I already tested this, apparently the ATY,EFIDisplay is only cosmetic/information. Change it doesn't make the internal LCD usable or not. It also hardcoded in ati.c (trunk). I even change it to LVDS (mine was TMDSB) but all monitors still working. What resolution do you have on your display? And mucha's one? I see a dual-link value enabled in the imac ioreg, plus several more defined values that are not present in our ioregs. I think the problem lies in the connection configurations in the ati.c file in the bootloader. I am checking it right now. I think we have to edit the ati.c file that is lacking some values to get some lvds displays working. It would be useful to talk with the developers behind the ati injection, they probably would find the issue much faster than me. Link to comment Share on other sites More sharing options...
moob Posted March 23, 2011 Share Posted March 23, 2011 also I have a Sony Vaio (VGN-NW21EF) but it lacks the i2cid of LVDS ATOM BIOS Rom: SubsystemVendorID: 0x104d SubsystemID: 0x9056 IOBaseAddress: 0xd000 Filename: BR34079.001 BIOS Bootup Message: Sony_M851_M92S2_XT_GDDR3 M92 GDDR3 64bit 680e/800m Connector at index 0 type: LVDS (7) Connector at index 1 type: VGA (1) Connector's i2cid: 90 Connector at index 2 type: HDMI-A (11) Connector's i2cid: 94 I noticed this: GPIO_I2C_Clk_Mask: [b]0x1f90[/b] GPIO_I2C_Clk_Mask_Shift: 0x0 GPIO_I2C_Data_Mask: 0x1f90 GPIO_I2C_Data_Mask_Shift: 0x8 I2C bus "RHD I2C line 0" initialized. GPIO_I2C_Clk_Mask: [b]0x1f94[/b] GPIO_I2C_Clk_Mask_Shift: 0x0 GPIO_I2C_Data_Mask: 0x1f94 GPIO_I2C_Data_Mask_Shift: 0x8 I2C bus "RHD I2C line 1" initialized. GPIO_I2C_Clk_Mask: [b]0x1f98[/b] GPIO_I2C_Clk_Mask_Shift: 0x0 GPIO_I2C_Data_Mask: 0x1f98 GPIO_I2C_Data_Mask_Shift: 0x8 I2C bus "RHD I2C line 2" initialized. GPIO_I2C_Clk_Mask: [b]0x1f88[/b] GPIO_I2C_Clk_Mask_Shift: 0x0 GPIO_I2C_Data_Mask: 0x1f88 GPIO_I2C_Data_Mask_Shift: 0x8 I2C bus "RHD I2C line 3" initialized. GPIO_I2C_Clk_Mask:[b] 0x1fc4[/b] GPIO_I2C_Clk_Mask_Shift: 0x0 GPIO_I2C_Data_Mask: 0x1fc4 GPIO_I2C_Data_Mask_Shift: 0x8 I2C bus "RHD I2C line 4" initialized. GPIO_I2C_Clk_Mask: [b]0x1fe8[/b] GPIO_I2C_Clk_Mask_Shift: 0x0 GPIO_I2C_Data_Mask: 0x1fe8 GPIO_I2C_Data_Mask_Shift: 0x8 I2C bus "RHD I2C line 5" initialized. when 0x1f90 ----> i2cid:90 (VGA) 0x1f94 ----> i2cid:94 (HDMI) then 0x1f98 or 0x1f88 or 0x1fc4 or 0x1fe8 can be LVDS. Right? Are accepted tips or denials. Link to comment Share on other sites More sharing options...
sydlix Posted March 23, 2011 Share Posted March 23, 2011 you are right the ATY,EFIDISPALY reported by the ioreg dump is injected by chameleon bootloader Not detected by the drivers & only cosmetic but as he reported : TMDS-A (HDMI-A & Single Link DVI) are Single Link, TMDS-B (HDMI-B & Dual Link DVI) are Dual Link, LVDS is Single Link, but for some High Resolution Internal LCD is Dual Link. mucha we need someone to insert the values I need into the ati.c of TRUNK/KABYL. I don't know if we need only dual link but it would be a nice start. I dont know how it could be put in the first section of trunk (where TMDSA/:wub: names are, but it does seem simper on the KABYL section. In the kabyl there are also some disabled checks and values. Trunk: const char *ati_compatible_0[] = { "@0,compatible", "ATY,%s" }; const char *ati_compatible_1[] = { "@1,compatible", "ATY,%s" }; const char *ati_device_type_0[] = { "@0,device_type", "display" }; const char *ati_device_type_1[] = { "@1,device_type", "display" }; const char *ati_device_type[] = { "device_type", "ATY,%sParent" }; const char *ati_name_0[] = { "@0,name", "ATY,%s" }; const char *ati_name_1[] = { "@1,name", "ATY,%s" }; const char *ati_name[] = { "name", "ATY,%sParent" }; const char *ati_efidisplay_0[] = { "@0,ATY,EFIDisplay", "LVDS" }; struct ati_data_key ati_connector_type_0 = { 0x04, "@0,connector-type", {0x00, 0x04, 0x00, 0x00} }; struct ati_data_key ati_connector_type_1 = { 0x04, "@1,connector-type", {0x04, 0x00, 0x00, 0x00} }; struct ati_data_key ati_display_con_fl_type_0 = { 0x04, "@0,display-connect-flags", {0x00, 0x00, 0x04, 0x00} }; const char *ati_display_type_0[] = { "@0,display-type", "LCD" }; const char *ati_display_type_1[] = { "@1,display-type", "NONE" }; struct ati_data_key ati_aux_power_conn = { 0x04, "AAPL,aux-power-connected", {0x01, 0x00, 0x00, 0x00} }; struct ati_data_key ati_backlight_ctrl = { 0x04, "AAPL,backlight-control", {0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_aapl01_coher = { 0x04, "AAPL01,Coherency", {0x01, 0x00, 0x00, 0x00} }; const char *ati_card_no[] = { "ATY,Card#", "109-B77101-00" }; const char *ati_copyright[] = { "ATY,Copyright", "Copyright AMD Inc. All Rights Reserved. 2005-2009" }; const char *ati_efi_compile_d[] = { "ATY,EFICompileDate", "Jan 26 2009" }; struct ati_data_key ati_efi_disp_conf = { 0x08, "ATY,EFIDispConfig", {0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01} }; struct ati_data_key ati_efi_drv_type = { 0x01, "ATY,EFIDriverType", {0x02} }; struct ati_data_key ati_efi_enbl_mode = { 0x01, "ATY,EFIEnabledMode", {0x01} }; struct ati_data_key ati_efi_init_stat = { 0x04, "ATY,EFIHWInitStatus", {0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_efi_orientation = { 0x02, "ATY,EFIOrientation", {0x02, 0x00} }; const char *ati_efi_version[] = { "ATY,EFIVersion", "01.00.318" }; const char *ati_efi_versionB[] = { "ATY,EFIVersionB", "113-SBSJ1G04-00R-02" }; const char *ati_efi_versionE[] = { "ATY,EFIVersionE", "113-B7710A-318" }; struct ati_data_key ati_mclk = { 0x04, "ATY,MCLK", {0x70, 0x2e, 0x11, 0x00} }; struct ati_data_key ati_mem_rev_id = { 0x02, "ATY,MemRevisionID", {0x03, 0x00} }; struct ati_data_key ati_mem_vend_id = { 0x02, "ATY,MemVendorID", {0x02, 0x00} }; const char *ati_mrt[] = { "ATY,MRT", " " }; const char *ati_romno[] = { "ATY,Rom#", "113-B7710C-176" }; struct ati_data_key ati_sclk = { 0x04, "ATY,SCLK", {0x28, 0xdb, 0x0b, 0x00} }; struct ati_data_key ati_vendor_id = { 0x02, "ATY,VendorID", {0x02, 0x10} }; struct ati_data_key ati_platform_info = { 0x80, "ATY,PlatformInfo", {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} }; struct ati_data_key ati_mvad = { 0x40, "MVAD", {0x3f, 0x5c, 0x82, 0x02, 0xff, 0x90, 0x00, 0x54, 0x60, 0x00, 0xac, 0x10, 0xa0, 0x17, 0x00, 0x03, 0xb0, 0x68, 0x00, 0x0a, 0xa0, 0x0a, 0x30, 0x00, 0x20, 0x00, 0x40, 0x06, 0x6e, 0x06, 0x03, 0x00, 0x06, 0x00, 0x40, 0x06, 0x00, 0x0a, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x10, 0x06, 0x92, 0x20, 0x00, 0x03} }; struct ati_data_key ati_saved_config = { 0x100, "saved-config", {0x3f, 0x5c, 0x82, 0x02, 0xff, 0x90, 0x00, 0x54, 0x60, 0x00, 0xac, 0x10, 0xa0, 0x17, 0x00, 0x03, 0xb0, 0x68, 0x00, 0x0a, 0xa0, 0x0a, 0x30, 0x00, 0x20, 0x00, 0x40, 0x06, 0x6e, 0x06, 0x03, 0x00, 0x06, 0x00, 0x40, 0x06, 0x00, 0x0a, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x10, 0x06, 0x92, 0x20, 0x00, 0x03, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xee, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x31, 0x30, 0x50, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x32, 0x32, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 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} }; ///non 48xx keys const char *ati_efidisplay_0_n4[] = { "@0,ATY,EFIDisplay", "TMDSA" }; struct ati_data_key ati_connector_type_0_n4 = { 0x04, "@0,connector-type", {0x04, 0x00, 0x00, 0x00} }; struct ati_data_key ati_connector_type_1_n4 = { 0x04, "@1,connector-type", {0x00, 0x02, 0x00, 0x00} }; struct ati_data_key ati_aapl_emc_disp_list_n4 = { 0x40, "AAPL,EMC-Display-List", {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x00, 0x00, 0x1b, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x00, 0x00, 0x1c, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x10, 0x00, 0x00, 0x21, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_fb_offset_n4 = { 0x08, "ATY,FrameBufferOffset", {0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00} }; struct ati_data_key ati_hwgpio_n4 = { 0x04, "ATY,HWGPIO", {0x23, 0xa8, 0x48, 0x00} }; struct ati_data_key ati_iospace_offset_n4 = { 0x08, "ATY,IOSpaceOffset", {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00} }; struct ati_data_key ati_mclk_n4 = { 0x04, "ATY,MCLK", {0x00, 0x35, 0x0c, 0x00} }; struct ati_data_key ati_sclk_n4 = { 0x04, "ATY,SCLK", {0x60, 0xae, 0x0a, 0x00} }; struct ati_data_key ati_refclk_n4 = { 0x04, "ATY,RefCLK", {0x8c, 0x0a, 0x00, 0x00} }; struct ati_data_key ati_regspace_offset_n4 = { 0x08, "ATY,RegisterSpaceOffset", {0x00, 0x00, 0x00, 0x00, 0x90, 0xa2, 0x00, 0x00} }; struct ati_data_key ati_vram_memsize_0 = { 0x08, "@0,VRAM,memsize", {0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_vram_memsize_1 = { 0x08, "@1,VRAM,memsize", {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_aapl_blackscr_prefs_0_n4= { 0x04, "AAPL00,blackscreen-preferences", {0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_aapl_blackscr_prefs_1_n4= { 0x04, "AAPL01,blackscreen-preferences", {0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_swgpio_info_n4 = { 0x04, "ATY,SWGPIO Info", {0x00, 0x48, 0xa8, 0x23} }; struct ati_data_key ati_efi_orientation_n4 = { 0x01, "ATY,EFIOrientation", {0x08} }; struct ati_data_key ati_mvad_n4 = { 0x100, "MVAD", {0x3e, 0x5c, 0x82, 0x00, 0xff, 0x90, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x3c, 0x80, 0x07, 0x20, 0x08, 0x30, 0x00, 0x20, 0x00, 0xb0, 0x04, 0xd3, 0x04, 0x03, 0x00, 0x06, 0x00, 0xb0, 0x04, 0x80, 0x07, 0x00, 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, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x31, 0x30, 0x50, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x32, 0x32, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 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} }; struct ati_data_key ati_saved_config_n4 = { 0x100, "saved-config", {0x3e, 0x5c, 0x82, 0x00, 0xff, 0x90, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x3c, 0x80, 0x07, 0x20, 0x08, 0x30, 0x00, 0x20, 0x00, 0xb0, 0x04, 0xd3, 0x04, 0x03, 0x00, 0x06, 0x00, 0xb0, 0x04, 0x80, 0x07, 0x00, 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, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x31, 0x30, 0x50, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x32, 0x32, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 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} }; and Kabyl section: } dev_prop_t; dev_prop_t ati_devprop_list[] = { {FLAGTRUE, false, "@0,AAPL,boot-display", get_bootdisplay_val, NULVAL }, // {FLAGTRUE, false, "@0,ATY,EFIDisplay", NULL, STRVAL("TMDSA") }, // {FLAGTRUE, true, "@0,AAPL,vram-memory", get_vrammemory_val, NULVAL }, // {FLAGTRUE, true, "@0,compatible", get_name_val, NULVAL }, // {FLAGTRUE, true, "@0,connector-type", get_conntype_val, NULVAL }, // {FLAGTRUE, true, "@0,device_type", NULL, STRVAL("display") }, // {FLAGTRUE, false, "@0,display-connect-flags", NULL, DWRVAL((uint32_t)0) }, // {FLAGTRUE, true, "@0,display-type", NULL, STRVAL("NONE") }, {FLAGTRUE, true, "@0,name", get_name_val, NULVAL }, // {FLAGTRUE, true, "@0,VRAM,memsize", get_vrammemsize_val, NULVAL }, // {FLAGTRUE, false, "AAPL,aux-power-connected", NULL, DWRVAL((uint32_t)1) }, // {FLAGTRUE, false, "AAPL,backlight-control", NULL, DWRVAL((uint32_t)0) }, {FLAGTRUE, false, "ATY,bin_image", get_binimage_val, NULVAL }, {FLAGTRUE, false, "ATY,Copyright", NULL, STRVAL("Copyright AMD Inc. All Rights Reserved. 2005-2010") }, {FLAGTRUE, false, "ATY,Card#", get_romrevision_val, NULVAL }, {FLAGTRUE, false, "ATY,VendorID", NULL, WRDVAL((uint16_t)0x1002) }, {FLAGTRUE, false, "ATY,DeviceID", get_deviceid_val, NULVAL }, // {FLAGTRUE, false, "ATY,MCLK", get_mclk_val, NULVAL }, // {FLAGTRUE, false, "ATY,SCLK", get_sclk_val, NULVAL }, // {FLAGTRUE, false, "ATY,RefCLK", get_refclk_val, DWRVAL((uint32_t)0x0a8c) }, // {FLAGTRUE, false, "ATY,PlatformInfo", get_platforminfo_val, NULVAL }, {FLAGTRUE, false, "name", get_nameparent_val, NULVAL }, {FLAGTRUE, false, "device_type", get_nameparent_val, NULVAL }, {FLAGTRUE, false, "model", get_model_val, STRVAL("ATI Radeon") }, // {FLAGTRUE, false, "VRAM,totalsize", get_vramtotalsize_val, NULVAL }, {FLAGTRUE, false, NULL, NULL, NULVAL } }; Link to comment Share on other sites More sharing options...
almuras Posted March 23, 2011 Share Posted March 23, 2011 Thank you. However, somehow, RadeonHD doesn't detect the monitor connected to HDMI port & I presume that it also failed to extract correct EDID from internal LCD:- Query for AtomBIOS Get Panel EDID: failed Raw EDID data: 00 ff ff ff ff ff ff 00 30 ae 22 40 00 00 00 00 2d 10 01 03 80 1d 15 78 ea 6f 95 9c 54 4c 87 26 21 50 54 21 08 00 81 80 01 01 01 01 01 01 01 01 01 01 01 01 01 01 30 2a 78 20 51 1a 10 40 30 70 13 00 1f d7 10 00 00 18 25 23 78 20 51 1a 10 40 30 70 13 00 1f d7 10 00 00 18 00 00 00 0f 00 90 43 32 90 43 28 0f 01 00 30 64 90 55 00 00 00 fe 00 4c 54 44 31 34 31 45 4e 39 42 0a 20 20 00 35 EDID data for LVDS Panel 00: 0 1 2 3 4 5 6 7 8 9 A B C D E F 00: 00 ff ff ff ff ff ff 00 30 ae 22 40 00 00 00 00 10: 2d 10 01 03 80 1d 15 78 ea 6f 95 9c 54 4c 87 26 20: 21 50 54 21 08 00 81 80 01 01 01 01 01 01 01 01 30: 01 01 01 01 01 01 30 2a 78 20 51 1a 10 40 30 70 40: 13 00 1f d7 10 00 00 18 25 23 78 20 51 1a 10 40 50: 30 70 13 00 1f d7 10 00 00 18 00 00 00 0f 00 90 60: 43 32 90 43 28 0f 01 00 30 64 90 55 00 00 00 fe 70: 00 4c 54 44 31 34 31 45 4e 39 42 0a 20 20 00 35 RHDAtomOutputAllocFree Mapping DIG1 encoder to KLDSKP_UNIPHYE Crtc[0]: found native mode from Monitor[LVDS Panel]: Modeline "1600x900" 96 1600 1648 1680 1736 900 901 906 922 Connector "PANEL" uses Monitor "LVDS Panel": RHDValidateScaledToMode rhdModeValidateCrtc DxModeValid: ATOM CRTC 1 rhdAtomOutputModeValid Listing modesetting layout: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: Outputs: AtomOutputUniphyE (PANEL) ATOM CRTC 2: unused Unused Outputs: AtomOutputDACA, AtomOutputUniphyA As you can see - "Mapping DIG1 encoder to KLDSKP_UNIPHYE" - only LVDS is got mapped while HDMI is not. Honestly, at this point, I don't know how to get LVDS working but if you want to continue testing, please see below. Can you provide:- 1) Get EDID value in Windows by using a software called "MonInfo". The "Raw data" is EDID value:- 2) Please try this connectors table with Shrike framebuffer. Please test this without any external monitor plugged in. I change the LVDS link a little bit, telling it to use DUAL_LINK:- CRTC0 > DIG1 > UNIPHY_EF > LVDS: Encoder=0x00 Transmitter=0x02 --> 00000000 02 00 00 00 40 00 00 00 09 01 00 00 02 00 00 07 (LVDS) --> 00000010 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 (VGA) --> 00000020 00 08 00 00 00 02 00 00 00 01 00 00 10 01 02 02 (HDMI) Offset of Shrike connections table (3 connections):- 32bit: 0x00037298 64bit: 0x00010F80 The extracted EDID value is "4CA34B540000000000130103902615780A56259D5B539A2817505400000001010101010101010101010101010101A525408860841630302015007ED71000001AA525408860841630302015007ED71000001A000000FE004A31334A58803137334B540A200000000000000000000000000002010A20200002" Link to comment Share on other sites More sharing options...
Derc Posted March 23, 2011 Share Posted March 23, 2011 Hello all! Help me please with my video card ATI Radeon Mobility 4570 512 mb on ASUS k40ad. I read the manual but did not quite understand it works. Apparently this is due to lack of knowledge and experience. What should I do first? I'll be very grateful for your help! Link to comment Share on other sites More sharing options...
kizwan Posted March 23, 2011 Share Posted March 23, 2011 you are right the ATY,EFIDISPALY reported by the ioreg dump is injected by chameleon bootloader Not detected by the drivers & only cosmetic but as he reported : TMDS-A (HDMI-A & Single Link DVI) are Single Link, TMDS-B (HDMI-B & Dual Link DVI) are Dual Link, LVDS is Single Link, but for some High Resolution Internal LCD is Dual Link. Yes, I know. I just let everyone know that I already experiment the ATY,EFIDisplay injection in the ati.c (chameleon). So that no one waste their time trying the same thing. The injection only cosmetic. Link to comment Share on other sites More sharing options...
almuras Posted March 24, 2011 Share Posted March 24, 2011 The extracted EDID value is "4CA34B540000000000130103902615780A56259D5B539A2817505400000001010101010101010101010101010101A525408860841630302015007ED71000001AA525408860841630302015007ED71000001A000000FE004A31334A58803137334B540A200000000000000000000000000002010A20200002" Kizwan, Here is EDID raw dara: Raw data 00,FF,FF,FF,FF,FF,FF,00,4C,A3,4B,54,00,00,00,00,00,13,01,03,90,26,15,78,0A,56,25,9D,5B,53,9A,28, 17,50,54,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,A5,25,40,88,60,84,16,30,30,20, 15,00,7E,D7,10,00,00,1A,A5,25,40,88,60,84,16,30,30,20,15,00,7E,D7,10,00,00,1A,00,00,00,FE,00,4A, 31,33,4A,58,80,31,37,33,4B,54,0A,20,00,00,00,00,00,00,00,00,00,00,00,00,00,02,01,0A,20,20,00,02 Link to comment Share on other sites More sharing options...
kizwan Posted March 24, 2011 Share Posted March 24, 2011 What resolution do you have on your display? And mucha's one? On my Dell Studio 1557, it has a dual-link LVDS transmitter and can support up to WUXGA panel resolution (1920x1280). But right now it only fitted with WXGA panel resolution (1366x768). I can upgrade anytime to Full HD LCD panel (1920x1280) since it already have dual-link LVDS transmitter. Any Dell Studio notebooks, including Studio 1747 (almuras), SXPS 1640 (sydlix) & SXPS 1645 (jvilla), also has dual-link LVDS transmitter. I got all three of RadeonHD's log from them & I found all three have Full HD LCD panel. So far they unable to get LVDS working. Also RadeonHD's log said all three have single-link LVDS transmitter which is weird. Based on the notebooks specification, it should be dual-link LVDS transmitter. @Mucha, does your notebook have single or dual-link LVDS transmitter (hardware specification)? Link to comment Share on other sites More sharing options...
kizwan Posted March 24, 2011 Share Posted March 24, 2011 Kizwan, Here is EDID raw dara: Raw data 00,FF,FF,FF,FF,FF,FF,00,4C,A3,4B,54,00,00,00,00,00,13,01,03,90,26,15,78,0A,56,25,9D,5B,53,9A,28, 17,50,54,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,01,A5,25,40,88,60,84,16,30,30,20, 15,00,7E,D7,10,00,00,1A,A5,25,40,88,60,84,16,30,30,20,15,00,7E,D7,10,00,00,1A,00,00,00,FE,00,4A, 31,33,4A,58,80,31,37,33,4B,54,0A,20,00,00,00,00,00,00,00,00,00,00,00,00,00,02,01,0A,20,20,00,02 Is this internal LCD's EDID? I'll prepare the display overrides for you later. Link to comment Share on other sites More sharing options...
almuras Posted March 24, 2011 Share Posted March 24, 2011 Is this internal LCD's EDID? I'll prepare the display overrides for you later. Yes, it is internal LCD's EDID. Please try this connectors table with Shrike framebuffer. Please test this without any external monitor plugged in. I change the LVDS link a little bit, telling it to use DUAL_LINK:-CRTC0 > DIG1 > UNIPHY_EF > LVDS: Encoder=0x00 Transmitter=0x02 --> 00000000 02 00 00 00 40 00 00 00 09 01 00 00 02 00 00 07 (LVDS) --> 00000010 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 (VGA) --> 00000020 00 08 00 00 00 02 00 00 00 01 00 00 10 01 02 02 (HDMI) I tried these connectors, only HDMI is working, VGA and internal LCD have black screens (I think they are detected though) Link to comment Share on other sites More sharing options...
mucha Posted March 24, 2011 Author Share Posted March 24, 2011 @Mucha, does your notebook have single or dual-link LVDS transmitter (hardware specification)? not sure about it, i know my screen is 1366x768 (doesn't need a dual-link) & AMD website says Mobility Radeon 4600 Series support dual channel LVDS Link to comment Share on other sites More sharing options...
mucha Posted March 24, 2011 Author Share Posted March 24, 2011 I suggest to open another thread that should be reserved only for Working System logs (no commentary allowed, only systems logs & for woking configurations only) to keep it clean & usefull, just to help us getting feed-back informations that may help to figure the working combinations & mapping the proposed template is: 1- System identification: HP Pavilion DV6-1240ek - ATI Mobility Radeon 4650 (DeviceID:0x9480) - Max screen resolution: 1366x768. 2- bcc9 RadeonDump log: Desktop Mucha$ ./radeondump < 1002_9480.rom ATOM BIOS Rom: SubsystemVendorID: 0x103c SubsystemID: 0x3629 IOBaseAddress: 0x7000 Filename: br33507.001 BIOS Bootup Message: HP_Quanta_Jones_Cujo_M96M_DDR3 M96 DDR3 128bit 550e/667m Connector at index 0 type: LVDS (7) Connector's i2cid: 96 Connector at index 1 type: VGA (1) Connector's i2cid: 95 Connector at index 2 type: HDMI-A (11) Connector's i2cid: 90 3- Dong's RadeonHD.kext or Linux log: Mapping DIG1 encoder to KLDSKP_UNIPHYE Crtc[0]: found native mode from Monitor[LVDS Panel]: Modeline "1366x768" 72 1366 1414 1446 1486 768 771 775 806 Connector "PANEL" uses Monitor "LVDS Panel": RHDMonitorInit Connector "VGA 1": Failed to retrieve Monitor information. RHDValidateScaledToMode rhdModeValidateCrtc DxModeValid: ATOM CRTC 1 rhdAtomOutputModeValid Listing modesetting layout: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: Outputs: AtomOutputduleDemandUniphyE (PANEL) ATOM CRTC 2: tied to Atom PLL 2 and LUT B: Outputs: AtomOutputvalueDACA (VGA 1) Unused Outputs: AtomOutputUniphyB 4- Tested Framebuffer : Shrike (10.6.6-10.6.7) 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 07 LVDS > working 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 06 VGA > working 00 08 00 00 00 02 00 00 00 01 00 00 20 01 02 01 HDMI > not tested or not working Link to comment Share on other sites More sharing options...
crazybirdy Posted March 24, 2011 Share Posted March 24, 2011 also I have a Sony Vaio (VGN-NW21EF) but it lacks the i2cid of LVDS ATOM BIOS Rom: SubsystemVendorID: 0x104d SubsystemID: 0x9056 IOBaseAddress: 0xd000 Filename: BR34079.001 BIOS Bootup Message: Sony_M851_M92S2_XT_GDDR3 M92 GDDR3 64bit 680e/800m Connector at index 0 type: LVDS (7) Connector at index 1 type: VGA (1) Connector's i2cid: 90 Connector at index 2 type: HDMI-A (11) Connector's i2cid: 94 It's interesting, could you upload the file of RadeonHD's log? dmesg >Encoder.txt Link to comment Share on other sites More sharing options...
kizwan Posted March 24, 2011 Share Posted March 24, 2011 @mucha, I has started the thread for collecting working & tested configuration:- (Collection) ATI Mobility Radeon HD - Tested ATIFramebuffer Solution, Collection of tested & working ATI Mobility Radeon HD Link to comment Share on other sites More sharing options...
moob Posted March 24, 2011 Share Posted March 24, 2011 It's interesting, could you upload the file of RadeonHD's log? dmesg >Encoder.txt i have attached my encoder.txt Encoder.txt Link to comment Share on other sites More sharing options...
sydlix Posted March 24, 2011 Share Posted March 24, 2011 On my Dell Studio 1557, it has a dual-link LVDS transmitter and can support up to WUXGA panel resolution (1920x1280). But right now it only fitted with WXGA panel resolution (1366x768). I can upgrade anytime to Full HD LCD panel (1920x1280) since it already have dual-link LVDS transmitter. Any Dell Studio notebooks, including Studio 1747 (almuras), SXPS 1640 (sydlix) & SXPS 1645 (jvilla), also has dual-link LVDS transmitter. I got all three of RadeonHD's log from them & I found all three have Full HD LCD panel. So far they unable to get LVDS working. Also RadeonHD's log said all three have single-link LVDS transmitter which is weird. Based on the notebooks specification, it should be dual-link LVDS transmitter. @Mucha, does your notebook have single or dual-link LVDS transmitter (hardware specification)? Where do you see on RadeonHD log that our lvds is detected as single link? Do you have the full radeondump log to show us? Link to comment Share on other sites More sharing options...
sydlix Posted March 24, 2011 Share Posted March 24, 2011 @mucha, I has started the thread for collecting working & tested configuration:- (Collection) ATI Mobility Radeon HD - Tested ATIFramebuffer Solution, Collection of tested & working ATI Mobility Radeon HD Good Idea, thanks man. Link to comment Share on other sites More sharing options...
almuras Posted March 24, 2011 Share Posted March 24, 2011 3-Features; /* Features byte 0 , for example for LVDS screen it's almost 0x09 = 0x01 + 0x08 > Internal + Backlight */ #define FEATURE_USE_INTERNAL 0x01 #define FEATURE_USE_RGB_ON_YUV 0x04 #define FEATURE_USE_BACKLIGHT 0x08 #define FEATURE_BACKLIGHT_INVERTED 0x10 #define FEATURE_USE_CLAMSHELL 0x20 I am sorry but what the difference between internal and clamshell? When should I choose one or the other? Thanks, almuras Link to comment Share on other sites More sharing options...
kizwan Posted March 24, 2011 Share Posted March 24, 2011 Where do you see on RadeonHD log that our lvds is detected as single link? Do you have the full radeondump log to show us? This is your radeondump's log:- [RadeonHD]: Mapping DIG1 encoder to KLDSKP_UNIPHYE [RadeonHD]: Crtc[0]: found native mode from Monitor[LVDS Panel]: [RadeonHD]: Modeline "1920x1080" 153 1920 1968 2000 2280 1080 1082 1087 1122[RadeonHD]: [RadeonHD]: Connector "PANEL" uses Monitor "LVDS Panel": [RadeonHD]: RHDValidateScaledToMode [RadeonHD]: rhdModeValidateCrtc [RadeonHD]: DxModeValid: ATOM CRTC 1 [RadeonHD]: rhdAtomOutputModeValid [RadeonHD]: Listing modesetting layout: [RadeonHD]: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: [RadeonHD]: Outputs: AtomOutput UniphyE (PANEL)[RadeonHD]: See? LCD panel (LVDS) is using UNIPHYE transmitter (UNIPHY2:LINKA). Link to comment Share on other sites More sharing options...
wmarsh Posted March 24, 2011 Share Posted March 24, 2011 This is your radeondump's log:- [RadeonHD]: Mapping DIG1 encoder to KLDSKP_UNIPHYE [RadeonHD]: Crtc[0]: found native mode from Monitor[LVDS Panel]: [RadeonHD]: Modeline "1920x1080" 153 1920 1968 2000 2280 1080 1082 1087 1122[RadeonHD]: [RadeonHD]: Connector "PANEL" uses Monitor "LVDS Panel": [RadeonHD]: RHDValidateScaledToMode [RadeonHD]: rhdModeValidateCrtc [RadeonHD]: DxModeValid: ATOM CRTC 1 [RadeonHD]: rhdAtomOutputModeValid [RadeonHD]: Listing modesetting layout: [RadeonHD]: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: [RadeonHD]: Outputs: AtomOutput UniphyE (PANEL)[RadeonHD]: See? LCD panel (LVDS) is using UNIPHYE transmitter (UNIPHY2:LINKA). I know we are discussing this on the other thread. But mine also says UNIPHYE, but I get no output with single link only with dual link. Further, you said my screen resolution requires dual link. Mapping DIG1 encoder to KLDSKP_UNIPHYE Crtc[0]: found native mode from Monitor[LVDS Panel]: Modeline "1600x900" 97 1600 1648 1680 1760 900 903 908 926 Connector "PANEL" uses Monitor "LVDS Panel": DxModeValid: ATOM CRTC 1 Listing modesetting layout: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: Outputs: AtomOutput UniphyE (PANEL) ATOM CRTC 2: unused Unused Outputs: AtomOutput DACA Validating Modes from Monitor "LVDS Panel" on "PANEL" I don't think we have entirely figured this out yet. Link to comment Share on other sites More sharing options...
kizwan Posted March 24, 2011 Share Posted March 24, 2011 also I have a Sony Vaio (VGN-NW21EF) but it lacks the i2cid of LVDS ATOM BIOS Rom: SubsystemVendorID: 0x104d SubsystemID: 0x9056 IOBaseAddress: 0xd000 Filename: BR34079.001 BIOS Bootup Message: Sony_M851_M92S2_XT_GDDR3 M92 GDDR3 64bit 680e/800m Connector at index 0 type: LVDS (7) Connector at index 1 type: VGA (1) Connector's i2cid: 90 Connector at index 2 type: HDMI-A (11) Connector's i2cid: 94 i have attached my encoder.txt This is the important part from the encoder.txt:- Mapping DIG1 encoder to KLDSKP_UNIPHYE Crtc[0]: found native mode from Monitor[LVDS Panel]: Modeline "1366x768" 72 1366 1414 1446 1540 768 771 776 780 Connector "PANEL" uses Monitor "LVDS Panel": I2C device "RHD I2C line 4:ddc2" registered at address 0xA0. Mapping DIG2 encoder to KLDSKP_UNIPHYA Connector "DVI-D 1" uses Monitor "HSG1074": DxModeValid: ATOM CRTC 1 Listing modesetting layout: ATOM CRTC 1: tied to Atom PLL 1 and LUT A: Outputs: AtomOutputUniphyE (PANEL) ATOM CRTC 2: tied to Atom PLL 2 and LUT B: Outputs: AtomOutputUniphyA (DVI-D 1) Unused Outputs: AtomOutputDACA CRTC0 > DIG1 > UNIPHYE > LVDS: Encoder=0x00 Transmitter=0x12 CRTC1 > DIG2 > UNIPHYA > HDMI: Encoder=0x01 Transmitter=0x10 CRTC1 > DAC > DACA > VGA: Encoder=0x10 Transmitter=0x00 senseid = (i2cid And 0xF) + 1 LVDS: (? And 0xF) + 1 = ? VGA: (90 And 0xF) + 1 = 1 HDMI: (94 And 0xF) + 1 = 5 Please try senseid 0 for LVDS. Shrike framebuffer (32bit):- --> 00037298 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 00 (LVDS) --> 000372A8 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 (VGA) --> 000372B8 00 08 00 00 00 02 00 00 00 01 00 00 10 01 02 05 (HDMI) Shrike framebuffer (64bit):- --> 00010F80 02 00 00 00 40 00 00 00 09 01 00 00 12 00 00 00 (LVDS) --> 00010F90 10 00 00 00 10 00 00 00 00 01 00 00 00 10 01 01 (VGA) --> 00010FA0 00 08 00 00 00 02 00 00 00 01 00 00 10 01 02 05 (HDMI) Please test & let me know the results. Probably you'll need to inject EDID for your LVDS but just try the above first. (P/S: I'm not confident LVDS will work on Sony VAIO. I know Sony VAIO have known issue with LVDS.) Link to comment Share on other sites More sharing options...
Recommended Posts