You’ve probably heard about it if you’ve been following xorg development over the last few months, however there is some confusion as it what it is and how it can be used. ATOMBIOS is a collection of card specific data tables and scripts stored in the rom on recent radeon cards (r4xx cards had the initial version of it). The data tables store card specific information such as connector information and memory timings. The scripts allow you to program specific functionality on a particular card using a common API. Some of the functionality includes: setting crtc timing, setting up DACs, TMDS, and TV encoders, DPMS, crtc routing, and card initialization. The x86 real mode video bios, the windows driver, and fglrx all use ATOMBIOS to initialize and program the card.
In order to use ATOMBIOS, the driver provides a wrapper for the parser and some hooks for touching the hw (read/write memory mapped register, read/write PCI register, allocate/free memory, sleep, etc.). To run one of the scripts you point the parser at the script and it parses it, calling the driver supplied hw hooks to actually program the hw. Each script takes a struct that specifies what parameters you want to use for that script as an input.
For example, if you execute a script to program the pixel clock, you would supply the parameters you want to program (pll1/2, dot clock, M, N, P values, etc.) and execute the script. The parser would then run through the script calling the hw access hooks and programming the card. It might read in one of the PLL regs, then adjust some values and write it out, then wait for a few microseconds for the clock to lock, then read back the value, then write some other register value, etc.
The scripts do basically the same thing you would do if you were programming the registers directly, but since they can be tailored to specific hw, so there is less need for card specific workarounds in the driver code and hw differences are hidden behind a common API.