Video BIOS

Last updated
Generic components of a graphics card. Note that the VGABIOS is a separate chip located on the graphics card, and not part of the GPU. Generic block diagram of a GPU.svg
Generic components of a graphics card. Note that the VGABIOS is a separate chip located on the graphics card, and not part of the GPU.
Practically all processing units require basic initialization, not just GPUs. POST card 98usd.jpg
Practically all processing units require basic initialization, not just GPUs.

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]

Contents

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.[ clarification needed ] 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

Related Research Articles

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The BIOS firmware comes pre-installed on an IBM PC or IBM PC compatible's system board and exists in some UEFI-based systems to maintain compatibility with operating systems that do not support UEFI native operation. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by some companies looking to create compatible systems. The interface of that original system serves as a de facto standard.

<span class="mw-page-title-main">Motherboard</span> Main printed circuit board (PCB) for a computing device

A motherboard is the main printed circuit board (PCB) in general-purpose computers and other expandable systems. It holds and allows communication between many of the crucial electronic components of a system, such as the central processing unit (CPU) and memory, and provides connectors for other peripherals. Unlike a backplane, a motherboard usually contains significant sub-systems, such as the central processor, the chipset's input/output and memory controllers, interface connectors, and other components integrated for general use.

VESA BIOS Extensions (VBE) is a VESA standard, currently at version 3, that defines the interface that can be used by software to access compliant video boards at high resolutions and bit depths. This is opposed to the "traditional" INT 10h BIOS calls, which are limited to resolutions of 640×480 pixels with 16 colour (4-bit) depth or less. VBE is made available through the video card's BIOS, which installs during boot up some interrupt vectors that point to itself.

<span class="mw-page-title-main">Video Graphics Array</span> Computer display standard and resolution

Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the IBM PC compatible industry within three years. The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640×480 resolution characteristic of the VGA hardware.

<span class="mw-page-title-main">Graphics card</span> Expansion card which generates a feed of output images to a display device

A graphics card is a computer expansion card that generates a feed of graphics output to a display device such as a monitor. Graphics cards are sometimes called discrete or dedicated graphics cards to emphasize their distinction to integrated graphics processor on the motherboard or the CPU. A graphics processing unit (GPU) that performs the necessary computations is the main component in a graphics card, but the acronym "GPU" is sometimes also used to refer to the graphics card as a whole.

<span class="mw-page-title-main">3dfx Interactive</span> American computer hardware company

3dfx Interactive was an American computer hardware company headquartered in San Jose, California, founded in 1994, that specialized in the manufacturing of 3D graphics processing units, and later, video cards. It was a pioneer in the field from the late 1990s until 2000.

<span class="mw-page-title-main">Graphics processing unit</span> Specialized electronic circuit; graphics accelerator

A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles.

<span class="mw-page-title-main">Super VGA</span> Graphics display resolution

Super VGA (SVGA) is a broad term that covers a wide range of computer display standards that extended IBM's VGA specification.

<span class="mw-page-title-main">UEFI</span> Operating system and firmware specification

UEFI is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples of firmware that implement these specifications are AMI Aptio, Phoenix SecureCore Tiano, TianoCore EDK II and InsydeH2O.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates the machine's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

An Option ROM for the PC platform is a piece of firmware that resides in ROM on an expansion card, which gets executed to initialize the device and (optionally) add support for the device to the BIOS. In its usual use, it is essentially a driver that interfaces between the BIOS API and hardware. Technically, an option ROM is firmware that is executed by the BIOS after POST and before the BIOS boot process, gaining complete control of the system and being generally unrestricted in what it can do. The BIOS relies on each option ROM to return control to the BIOS so that it can either call the next option ROM or commence the boot process. For this reason, it is possible for an option ROM to keep control and preempt the BIOS boot process. The BIOS generally scans for and initializes option ROMs in ascending address order at 2 KB address intervals within two different address ranges above address C0000h in the conventional (20-bit) memory address space; later systems may also scan additional address ranges in the 24-bit or 32-bit extended address space.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

UniVBE is a software driver that allows DOS applications written to the VESA BIOS standard to run on almost any display device made in the last 15 years or so.

<span class="mw-page-title-main">Borland Graphics Interface</span>

The Borland Graphics Interface, also known as BGI, was a graphics library bundled with several Borland compilers for the DOS operating systems since 1987. BGI was also used to provide graphics for many other Borland products including the Quattro Pro spreadsheet.

The ATI Mach line was a series of 2D graphics accelerators for personal computers developed by ATI Technologies. It became an extension to the ATI Wonder series of cards. The first chip in the series was the ATI Mach8. It was essentially a clone of the IBM 8514/A with a few notable extensions such as Crystal fonts. Being one of the first graphics accelerator chips on the market, the Mach8 did not have an integrated VGA core. In order to use the first Mach8 coprocessor cards, a separate VGA card was required. This increased the cost of ownership as one had to purchase two rather than one expansion card for graphics. A temporary solution was presented with the ATI Graphics Ultra/Vantage cards, which combined an ATI 8514 Ultra and VGA Wonder+ into a single card. The Mach32 chip was the follow-up to the Mach8, which finally featured an integrated VGA core, true colour support and a 64-bit datapath to internal memory.

INT 10h, INT 10H or INT 16 is shorthand for BIOS interrupt call 10hex, the 17th interrupt vector in an x86-based computer system. The BIOS typically sets up a real mode interrupt handler at this vector that provides video services. Such services include setting the video mode, character and string output, and graphics primitives.

<span class="mw-page-title-main">Linux console</span> Console of the Linux kernel

The Linux console is a system console internal to the Linux kernel. A system console is the device which receives all kernel messages and warnings and which allows logins in single user mode. The Linux console provides a way for the kernel and other processes to send text output to the user, and to receive text input from the user. The user typically enters text with a computer keyboard and reads the output text on a computer monitor. The Linux kernel supports virtual consoles – consoles that are logically separate, but which access the same physical keyboard and display. The Linux console are implemented by the VT subsystem of the Linux kernel, and do not rely on any user space software. This is in contrast to a terminal emulator, which is a user space process that emulates a terminal, and is typically used in a graphical display environment.

<span class="mw-page-title-main">VGA text mode</span> Computer graphics standard from 1987

VGA text mode was introduced in 1987 by IBM as part of the VGA standard for its IBM PS/2 computers. Its use on IBM PC compatibles was widespread through the 1990s and persists today for some applications on modern computers. The main features of VGA text mode are colored characters and their background, blinking, various shapes of the cursor, and loadable fonts. The Linux console traditionally uses hardware VGA text modes, and the Win32 console environment has an ability to switch the screen to text mode for some text window sizes.

The ATI Wonder series represents some of the first video card add-on products for IBM Personal Computers and compatibles introduced by ATI Technologies in the mid to late 1980s. These cards were unique at the time as they offered the end user a considerable amount of value by combining support for multiple graphics standards into a single card. The VGA Wonder series added additional value with the inclusion of a bus mouse port, which normally required the installation of a dedicated Microsoft Mouse adapter.

GPU virtualization refers to technologies that allow the use of a GPU to accelerate graphics or GPGPU applications running on a virtual machine. GPU virtualization is used in various applications such as desktop virtualization, cloud gaming and computational science.

References

  1. lorihollasch. "Support for headless systems - Windows drivers". docs.microsoft.com. Retrieved 2020-12-05.
  2. INT 10 - VIDEO - SET VIDEO MODE
  3. "What is efifb? — The Linux Kernel documentation". www.kernel.org. Retrieved 2020-11-24.
  4. "What is vesafb? — The Linux Kernel documentation". www.kernel.org. Retrieved 2020-11-24.
  5. "Project: Examining VGA BIOS from Old Graphic Cards | Gough's Tech Zone". May 2016.
  6. 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."
  7. Hagedoorn, Hilbert. "NVIDIA BIOS Editor 6.06 (NiBiTor)". Guru3D.com. Retrieved 2021-02-27.