If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

An Open-Source BIOS For ATI GPUs?

Phoronix: An Open-Source BIOS For ATI GPUs?

Oliver McFadden, the developer behind the Revenge reverse-engineering utility for ATI Radeon GPUs, is hoping to create a free software (GPL licensed) Video BIOS for at least one ATI Radeon graphics card. This is certainly a much larger project than just reverse engineering a driver and is much more risky, but at the same time is very interesting and holds merit.

Okay, I understand of having a Linux BIOS on a motherboard, but what is the interest for the end-user (I'm an end-user, not a programmer) ??

Will I get more speed of my card if it should have a Linux BIOS ??

Anyway, I've to admit that I'm a little lost with all the stuff around the GFX in Linux (both Nvidia, ATI and Intel).
Would it be a good idea to write a little article on the various options of drivers when using a GFX card on Linux, how to activate them, their advantages and drawbacks ??

For example, what is "AVIVO" ? What is the AtomBIOS ? What is the use for end-user ?

Kick my ass if those questions as stupidly newbie, but I'm a little lost sometimes...

AtomBIOS is a standard BIOS interface for ATI cards, meaning one code set (in theory) can be used to perform basic setup functions on any (relatively modern) ATI card.

AVIVO is several things. It is a pretty much defunct driver that preceded radeonhd, it is also what ATI calls the video decoding acceleration on their cards.

In terms of a GFX bios, the real purpose is to get direct control of the hardware's functionality. Unlike the CPU, the GPU cant normally be fed arbitrary instructions. Certain values are put in registers to perform certain operations defined by the card's BIOS. However, this limits the tweak-ability of the card, because the driver is really not much more than another abstraction layer on top of the BIOS. Suppose we could write a BIOS that is specifically designed to run OpenGL, for example. It could greatly reduce the size of the driver needed, as well as improve performance substantially. It could also render pixel-perfect OpenGL, which would allow OpenGL to be used for GUIs and stuff that can't deal with the rather inaccurate way cards typically render it.

This is a somewhat fuzzy description of these things, as I haven't actually developed any GFX drivers or BIOSs myself, but cracking the BIOS barrier is definitely the key to enabling the hardware to be used to the fullest extent possible.

AtomBIOS is a standard BIOS interface for ATI cards, meaning one code set (in theory) can be used to perform basic setup functions on any (relatively modern) ATI card.

AVIVO is several things. It is a pretty much defunct driver that preceded radeonhd, it is also what ATI calls the video decoding acceleration on their cards.

In terms of a GFX bios, the real purpose is to get direct control of the hardware's functionality. Unlike the CPU, the GPU cant normally be fed arbitrary instructions. Certain values are put in registers to perform certain operations defined by the card's BIOS. However, this limits the tweak-ability of the card, because the driver is really not much more than another abstraction layer on top of the BIOS. Suppose we could write a BIOS that is specifically designed to run OpenGL, for example. It could greatly reduce the size of the driver needed, as well as improve performance substantially. It could also render pixel-perfect OpenGL, which would allow OpenGL to be used for GUIs and stuff that can't deal with the rather inaccurate way cards typically render it.

This is a somewhat fuzzy description of these things, as I haven't actually developed any GFX drivers or BIOSs myself, but cracking the BIOS barrier is definitely the key to enabling the hardware to be used to the fullest extent possible.

The closed source driver is the only real consumer of the atom bios. In now way the bios get excuted or have control of the card if you don't run it either by issuing a vga or vesa interupt or by directly calling into it. Replacing the bios by some free bios is more a fun project than a things that might add real value or control over the card.

And from my point of view relying on bios is bad as it's mostly a black box and what it does we could do it in better way. Btw you could run a card without a bios if you know how to post it

In terms of a GFX bios, the real purpose is to get direct control of the hardware's functionality. Unlike the CPU, the GPU cant normally be fed arbitrary instructions. Certain values are put in registers to perform certain operations defined by the card's BIOS. However, this limits the tweak-ability of the card, because the driver is really not much more than another abstraction layer on top of the BIOS. Suppose we could write a BIOS that is specifically designed to run OpenGL, for example. It could greatly reduce the size of the driver needed, as well as improve performance substantially. It could also render pixel-perfect OpenGL, which would allow OpenGL to be used for GUIs and stuff that can't deal with the rather inaccurate way cards typically render it.

Wow this whole section is just inaccurate gibber. The BIOS has nothing to do with OpenGL programming. This whole statement is so wrong, I've no idea where to start pointing it out.

The closed source driver is the only real consumer of the atom bios. In now way the bios get excuted or have control of the card if you don't run it either by issuing a vga or vesa interupt or by directly calling into it.

Is this still accurate? I was under the impression that bypassing AtomBIOS was the RadeonHD way, while the radeon drivers used it (at least for modesetting and other important functionality).

Is this still accurate? I was under the impression that bypassing AtomBIOS was the RadeonHD way, while the radeon drivers used it (at least for modesetting and other important functionality).

We now use the atombios functions for modesetting and hw initialization. I must say that using the bios makes things a lot easier (if you have little faith in bios correctness) because bios hide things like the timing the vram needs (oem & ddr chips manufacturer dependant so might vary from one card to another from the same oem thought often the same accross oem) also hide the whole display register shuffling that hw engineer love to perform.

Last modesetting is not that important, i mean there is not much magic going in there (beside drm hdcp stuff which we don't care about) it's just a painfull things you have to do.