In the second NDA-free documentation dump, AMD has just released programming data on the M76 and RS690 graphics processors. While the RadeonHD developers have already had these documents, this information will help the free software community in understanding the internal workings of AMD's graphics processors. In this article, we have information on this just-released data as well as what else the community can expect in the way of documentation in the near future.
Back on September 12, 2007 at the X Developer Summit, AMD had released 900+ pages of GPU specifications, which was made up of register reference guides for the RV630 and M56 GPUs. Although minor, this documentation had led to improvements with the open-source Avivo driver on the same-day, and this information has certainly gone a long way with helping the RadeonHD driver.
It has been nearly four months since the RV630 and M56 register reference guides were released, and no other documentation has been released because of the holidays and AMD bringing on additional staff. Alex Deucher, who is known for his work on the open-source xf86-video-ati driver, had joined AMD to continue in his open-source involvement and preparing documentation for these release dumps. As we have previously shared, this work involves AMD employees and their legal advisors going through their internal documentation, determining what is authorized for release, and what isn't (anything that may cause legal problems, information pertaining to future ASICs, etc). AMD has also had to fill in areas where their internal documentation is less than complete.
As we've been reporting since November, this documentation drop contains LVTMA and i2c information. This information was originally missing with the RV630 drop for covering the Radeon HD 2000 series. LVTMA is the second digital output block on the ATI R500/600 series and can handle TMDS and LVDS for DVI/HDMI and LCD panels, respectively. Only the first TMDS block was documented in the previous documentation release.
There was a chance that AMD would also be releasing the "tcore" sample code today as well, but due to the holidays, this code isn't yet ready for release. AMD engineers use "tcore" internally for software work, prior to the availability of the silicon for future GPUs. Once released, this tcore code will help establish the open-source 3D support within DRM for the ATI R500 and R600 series. The tcore code should also help in 2D R600 acceleration. In addition, AMD will be open-sourcing part of their new proprietary OpenGL driver and will be in a state so that it can be patched into the existing R300+ Mesa driver.
AMD is also preparing to release information on the R600 series 2D acceleration, while for the Radeon X1000 series most of the code found in the xf86-video-ati Radeon driver should work with the R500 due to a similar 2D engine.
The M76 and RS690 documentation can be downloaded from X.Org. The M76 register guide is 458 pages long and the RS690 guide is 422 pages. To most people, register reference guides aren't exactly bedtime reading. In order to prevent the X.Org server from being "Phoronicized", AMD would like to reiterate that this information is just intended for developers and not end-users. Basically, if you don't need the material, please don't download it (or at least not immediately). Next week AMD will likely be making a mirror of the data on their website.
As always, be sure to subscribe to the Phoronix RSS feed and the active discussions going on in the Phoronix Forums for the latest information on Linux graphics drivers. Expect more documentation drops from AMD later this quarter.