Last September AMD had provided an open-source AtomBIOS parser for use by the RadeonHD driver in order to communicate with this video BIOS abstraction layer found on the past few generations of ATI graphics cards. While we are still waiting on the R600 sample source-code and 3D register documentation to arrive, AMD has today released a new AtomBIOS parser. This parser is coming out of their KGrids project, which we have previously mentioned in the past, and will allow for a clean AtomBIOS parser to enter the Linux kernel.
KGrids is an internal project at AMD used by their engineers in creating a simple kernel driver and testing environment used prior to having the silicon for future graphics processors becoming available. KGrids is also quite similar to another internal AMD project, TCore, which we have been talking about for the past several months. Both KGrids and TCore are on AMD's road map for being open-sourced in order to assist community developers in enabling 2D/3D acceleration for the R600 and RV770 series. This new AtomBIOS parser is just a subset of the total code used by KGrids.
The package for this parser is called kgrids-atom and is made up of merely one C file and three header files. In total there are just under 1,400 lines of code.
What does this new parser deliver to interested developers? Well, it's a lot cleaner than the AtomBIOS parser currently in use by the xf86-video-radeonhd and xf86-video-ati drivers. This parser doesn't deliver any new features or performance improvements, but it's in a much cleaner state to be submitted for inclusion into the Linux kernel.
With ATI AtomBIOS support in the kernel, this will be used for Kernel-based Mode-Setting. Speaking with AMD's Alex Deucher, the current DDX drivers could adopt this new driver, but that would be just added work with little to no end-user benefits. In addition, this code is less tested than the current AtomBIOS parser.
If you are interested in checking out the source-code to kgrids-atom, it can be downloaded from X.Org. We are now one (albeit small) step closer to kernel mode-setting for ATI graphics!