Jump to content

Fjtorsol

Members
  • Content count

    47
  • Joined

  • Last visited

About Fjtorsol

  • Rank
    InsanelyMac Protégé

Profile Information

  • Gender
    Male
  1. It is actually there and working the problem is that the accelerator is unable to write the rendered pixels to the display frame buffer. I suspect that as Apple decided to replace the display detection routines by fixed value tables there is some value that the accelerator requires to properly write the accelerated pixels in the correct memory offset. What is clear is that ATIRadeonX2000GA enables the creation of hardware accelerated overlays and is properly creating them but no content is written to such overlays. PD: I use Chameleon with a custom EFI graphics property list based on the EFI values of an iMac8,1. The boot loader has nothing to do here. I edited my connector values in the ATIRadeon2600 frame buffer to get the internal LVDS to work (only 16-bit colour depth as I don't know the correct dithering values for my panel). Also as my GPU is an ATI Mobility Radeon HD 2600 XT (the same as iMac8,1) my hardware ID is already present in all the required kexts.
  2. The ATI HD 2XXX and 3XXX graphics cards which share many architectural similitudes won't work properly on Mac OS X 10.6 and up due to apple replacing hardware detection routines by fixed value tables. These cards might work properly in Mac OS X 10.5.x with hardware acceleration (GL, QE, CI, and Video) but considering the Mac App Store requires applications to be compiled for Mac OS X 10.6.x as a minimum with no backwards compatibility you will only be able to run outdated versions of most of applications. The most I have managed to get with one of these cards (ATI Radeon HD 2600 XT) in Mac OS X 10.6 is a fully working frame buffer which gives support for up to two monitors with cloning and desktop expansion modes (no backlight control for my LVDS CCFL backlighted display). I even managed to check that in fact graphic acceleration works for this graphics cards in Mac OS X 10.6 but for some reason the hardware accelerated surfaces are not written back to the display frame buffer. If you boot with the graphic acceleration kexts loaded you get a dirty frame buffer which renders previous non cleared (obviously non overwritten) GPU memory regions resulting in your display showing a collage of what was previously displayed by your GPU with a working hardware accelerated cursor. About flashing an original Mac GPU bios, it might result useless as most of PC versions of this GPUs only have a 64 Kb on-board EPROM while a Mac GPU bios has 128 Kb of size being the last bytes of the bios image the ones that contain the EFI initialization code that makes Mac bios different from PC. So to make these graphics cards work in reasonable useful way in Mac OS X you would have to understand the disassemblies of the hardware acceleration driver components, specially the part that refers to writing rendered pixels to display buffers. I did many tests without success, it is pretty complex as acceleration is based on lots of hardware instructions with nearly any open source reference.
  3. Please could you specify what is working for you with these drivers?? Working card-specific framebuffer -> Results in ability to properly set display resolutions, gamma management and hardware cursor Working GA -> Results in OpenGL and Video Acceleration (OpenCL not applicable for RV6XX and RV7XX due to the lack of shared memory functionality)
  4. Editing custom personalities for ATI Radeon HD[45]xx

    It is <, and bad news changing I2C ID's in VBIOS is useless as they are references to hardwired I2C buses. And respect to my ATOMBIOS connector tables descriptions it is a bit different for RV7XX: - The secondary table (the one that uses items ending in 0xFF) has a diferent order for it's items and ads new values - The third table with encoder ID's and an a unknwon value different for each encoder doesn't exist.
  5. Editing custom personalities for ATI Radeon HD[45]xx

    After doing a comparison between Apple ATI VBIOS and their respective personalities I discovered that the personality SenseID isn't always the result of (being I2C ID 0xNS) S+1 in ATI QUAIL FB the SenseID is 07 and the matching I2CID is 0x91 as in my case where the SenseID was supposedly 0x05 (being the I2C ID 0x14) and the only working one was 0x07.
  6. Editing custom personalities for ATI Radeon HD[45]xx

    I managed to understand how ATOMBIOS connector tables work thanks to the i2C ID offsets. The attached document contains a simple description of the tables and items and what they mean all based in hex strings. Hope it helps for a better understanding of personalities... ATOMBIOS_connector_information_tables_description.rtf
  7. Editing custom personalities for ATI Radeon HD[45]xx

    It works, it gives the ability to change I2CID's easily but still (as you said before) it requires a checksum update. PD: I am currently searching netkas' forums for some info over it.
  8. Editing custom personalities for ATI Radeon HD[45]xx

    It is safe, I flashed the iMac 8,1 VBIOS to my Mobility Radeon HD 2600 XT and it booted perfectly the problem is that the changes compared to my VBIOS included different indexes for the connector types resulting in a working VGA without I2CID, as the matching connector I2CID was intended for ANALOG I2CID-less S-VIDEO, so it worked without EDID. Anyway this demonstrates that it at least can be tried as the I2C ID's seem to be only numerical indexes asociated to each connector with the only intention of enumerating. It would involve getting rid of the binnary patching in many cases after each OSX update, I think It does worth a try.
  9. Editing custom personalities for ATI Radeon HD[45]xx

    Could you please code such app it would help in many cases avoiding the need of binary patching the drivers after each update and also would solve the cases where an i2CID is out of the 0x9X range and can not be associated with any personality.
  10. Editing custom personalities for ATI Radeon HD[45]xx

    Anyone knows how to hexedit the VBIOS to change the I2CID for a connector index??
  11. Editing custom personalities for ATI Radeon HD[45]xx

    After getting the i2C values for the iMac 8,1 Mobility Radeon HD 2600 XT and comparing with mine: iMac 8,1 Mobility Radeon HD 2600 XT ATOM BIOS Rom: SubsystemVendorID: 0x106b SubsystemID: 0x0083 IOBaseAddress: 0x0000 Filename: 13B22504.101 BIOS Bootup Message: M76XT B22504 MXM GDDR3 256M 680e/750m Connector at index 0 Type: DVI-I (2) Encoder: id: 15 name: INTERNAL_KLDSCP_DAC1 i2cid: 0x90, OSX senseid: 0x1 Connector at index 1 Type: DVI-I (2) Encoder: id: 13 name: INTERNAL_KLDSCP_TMDS1 i2cid: 0x90, OSX senseid: 0x1 Connector at index 2 Type: LVDS (7) Encoder: id: f name: INTERNAL_LVTM1 i2cid: 0x91, OSX senseid: 0x2 Connector at index 3 Type: DVI-I (2) Encoder: id: 16 name: INTERNAL_KLDSCP_DAC2 02 00 00 00 40 00 00 00 09 00 00 00 00 01 01 12 00 10 00 00 16 00 00 00 C4 00 00 00 10 00 02 11 AMILO XI 2528 Mobility Radeon HD 2600 XT ATOM BIOS Rom: SubsystemVendorID: 0x1734 SubsystemID: 0x1107 IOBaseAddress: 0x0000 Filename: 26832C.bin BIOS Bootup Message: ECS_P75IM0_M76XT M76 GDDR3_16Mx32 128bit 256MB 300e/700m Connector at index 0 Type: LVDS (7) Encoder: id: f name: INTERNAL_LVTM1 i2cid: 0x14, OSX senseid: 0x5 Connector at index 1 Type: 9 pin DIN (9) Encoder: id: 16 name: INTERNAL_KLDSCP_DAC2 Connector at index 2 Type: HDMI-A (11) Encoder: id: 13 name: INTERNAL_KLDSCP_TMDS1 i2cid: 0x91, OSX senseid: 0x2 Connector at index 3 Type: VGA (1) Encoder: id: 15 name: INTERNAL_KLDSCP_DAC1 i2cid: 0x90, OSX senseid: 0x1 Considering: LVTM1 = LVTMA TMDS1 = TMDSA DAC1 = DACA Connector i2CID 0x91 | Personality 1 iMac 8,1 => INTERNAL_LVTM1 (LVDS) AMILO XI 2528 => INTERNAL_KLDSCP_TMDS1 (HDMI-A)* *Should be associated with LVTMA (LVDS + HDMI-A), standalone TMDSA won’t work. Connector i2CID 0x90 | Personality 2 iMac 8,1 => INTERNAL_KLDSCP_DAC1 (DVI-A) & INTERNAL_KLDSCP_TMDS1 (DVI-A) AMILO XI 2528 => INTERNAL_KLDSCP_DAC1 (VGA)* *Should also be associated with TMDSA (HDMI-A). Conclusion: - LVTM1 I2CID 0x14 => Out of range for personality association I2CID’s should be renamed in VBIOS according to the following: - LVTM1 I2CID should be 0x91 (currently 0x14) - TMDS1 I2CID should be 0x90 (currently 0x91) - DAC1 I2CID is 0x90 and requires no changes Personalities won't require to be edited after such changes. This explains why VGA works and HDMI is associated with the first personality where 0x05 as a SenseID doesn't work. Now I need to guess how to hexedit the VBIOS to rename such i2CID's
  12. Editing custom personalities for ATI Radeon HD[45]xx

    I know I actually used 14 but then I discovered the following: LVTMA combines LVDS + DVIA (TMDS1/HDMI) it is also link A + B LVTM1 0x05 + TMDS1 0x02 = 0x07 Which is the only SenseID that was able to read the LVDS EDID So I tried: 82 00 00 00 ; 42 00 00 00 ; 0D 00 ; 00 00 ; 20 ; 22 ; 02 ; 07 80 + 02 ; 02 + 40 ; 04 + 09 ; Unsed bits maybe now required ; LVTMA (To guess) ; 13 + 14 ; 2 + 0 ; 2 + 5 And it recognices the LVDS EDID and shutsdown the backlight at boot (backlight control that did not occur with 01 as feature bits)
  13. Editing custom personalities for ATI Radeon HD[45]xx

    Misteriously only with 0x07 the LVDS EDID is assigned to the first of the two personalities but anyway the first personality is atomatically associated with TMDS1 => HDMI so what I get is the LVDS EDID assigned to HDMI output and no way to connect with LVTMA. The strange thing is that the i2CID of the LVDS is 0x15 and the working ones (VGA and HDMI) start with 0x90. Even the bootloader assings a TMDSA (TMDS1) display type to the device-properties of the connector. Is there any way to associate the LVTMA (connector index 0) with the first personality?? Would it work if I change the Hypoprion DATA XREF to a set of 3 personalities??
  14. Editing custom personalities for ATI Radeon HD[45]xx

    Thanks so much!!! I will try tomorrow and post results EDIT: OK, but /* u can get this from dmesg after installing Dong's RadeonHD with debug info */ /* Transmitter Bits 0-3 (TransmitterID) */ #define UNIPHY 0x00 #define UNIPHY_1 0x01 #define UNIPHY_2 0x02 /* Transmitter Bits 4-7 (LinkID) */ #define DUAL_LINK 0x00 // LINK_A + LINK_B #define LINK_A 0x10 #define LINK_B 0x20 /* Transmitter byte */ #define UNIPHY_A 0x10 // = UNIPHY:LINK_A #define UNIPHY_B 0x20 // = UNIPHY:LINK_B #define UNIPHY_AB 0x00 // = UNIPHY:DUAL_LINK #define UNIPHY_C 0x11 // = UNIPHY_1:LINK_A #define UNIPHY_D 0x21 // = UNIPHY_1:LINK_B #define UNIPHY_CD 0x01 // = UNIPHY_1:DUAL_LINK #define UNIPHY_E 0x12 // = UNIPHY_2:LINK_A #define UNIPHY_F 0x22 // = UNIPHY_2:LINK_B #define UNIPHY_EF 0x02 // = UNIPHY_2:DUAL_LINK #define DACA 0x00 #define DACB 0x10 LVTM1 => LVTMA => 0x?? By dissembling the Radeon HD 2600 kext I found LVTMA as the name of many subroutines so it's supported but which transmiter ID should I use.
×