Video BIOS
Video BIOS is the BIOS of a graphics card in a (usually IBM PC-derived) computer. It initializes the graphics card at the computer's boot time. It also implements INT 10h interrupt and VESA BIOS Extensions (VBE)[1][2] for basic text and videomode output before a specific video driver is loaded. In UEFI 2.x systems, the INT 10h and the VBE are replaced by the UEFI GOP.[3][4]
Much the way the system BIOS provides a set of functions that are used by software programs to access the system hardware, the video BIOS provides a set of video-related functions that are used by programs to access the video hardware as well as storing vendor-specific settings such as card name, clock frequencies, VRAM types & voltages. The video BIOS interfaces software to the video chipset in the same way that the system BIOS does for the system chipset. The ROM also contained a basic font set[5] to upload to the video adapter font RAM, if the video card did not contain a font ROM with this font set instead.
Unlike some other hardware components, the video card usually needs to be active very early during the boot process so that the user can see what is going on. This requires the card to be activated before any operating system begins loading; thus it needs to be activated by the BIOS, the only software that is present at this early stage. The system BIOS loads the video BIOS from the card's ROM into system RAM and transfers control to it early in the boot sequence.[6]
Early PCs contained functions for driving MDA and CGA cards in the system BIOS, and those cards did not have any Video BIOS built in. When the EGA card was first sold in 1984, the Video BIOS was introduced to make these cards compatible with existing PCs whose BIOS did not know how to drive an EGA card. Ever since, EGA/VGA and all enhanced VGA compatible cards have included a Video BIOS.
When the computer is started, some graphics cards (usually certain Nvidia cards) display their vendor, model, Video BIOS version and amount of video memory.
Modding
Up until the mid 2010s, video ROMs were user-editable/modifiable, which allowed users to configure GPU features like core clocks, VRAM clocks or fan speed curves. In certain cases, a different GPU class could have been unlocked. However, nowadays both NVIDIA and AMD digitally sign video firmware, which has made it impossible to make any changes to it. Still, in many cases, users can flash a firmware image from another OEM, thus unlocking higher performance modes or changing its mode of operation.
Older NVIDIA GPU ROMs up until the GeForce 900 series could be edited using NiBiTor (NVIDIA BIOS Editor).[7]
See also
- Graphics processing unit (GPU)
- VESA BIOS Extensions (VBE)
- Video Graphics Array (VGA)
References
- lorihollasch. "Support for headless systems - Windows drivers". docs.microsoft.com. Retrieved 2020-12-05.
- INT 10 - VIDEO - SET VIDEO MODE
- "What is efifb? — The Linux Kernel documentation". www.kernel.org. Retrieved 2020-11-24.
- "What is vesafb? — The Linux Kernel documentation". www.kernel.org. Retrieved 2020-11-24.
- "Project: Examining VGA BIOS from Old Graphic Cards | Gough's Tech Zone". May 2016.
- https://www.usenix.org/legacy/event/usenix05/tech/freenix/full_papers/lo/lo_html/vgabios.html "Traditionally, a VGA card is initialized by software known as the VGA BIOS, which is considered an extension of system BIOS. It is loaded by the system BIOS from an expansion ROM located on the VGA card into a specific address in system memory. Control is then transferred to the VGA BIOS, and it uses the 16-bit callback interface to communicate with the system BIOS."
- Hagedoorn, Hilbert. "NVIDIA BIOS Editor 6.06 (NiBiTor)". Guru3D.com. Retrieved 2021-02-27.