Native gfx init: Difference between revisions

From coreboot
Jump to navigation Jump to search
Line 10: Line 10:


=Usage in coreboot=
=Usage in coreboot=
Usually the full color depth and native screen resolution is used. If (x86) VGA hardware is present, one can not assume that it has been initialized at all.
Usually the full color depth and native screen resolution is used. If (x86) VGA hardware is present, one can '''not''' assume that it has been initialized at all.
A payload should either initialize the GPU on its own or use coreboot tables to gather information about the current state.
The payload can '''not''' determine if the information provided in coreboot tables is still valid. A bootloader might have changed the GPUs current state.


=Libgfxinit in coreboot=
=Libgfxinit in coreboot=

Revision as of 16:27, 21 March 2018

Native graphics init

Is a driver, which is written in a high level language and open source implementation to initialize the graphics hardware on a platform. It might implement only a subset of possible resolution, a subset of possible color depth and work only on a subset of available connectors.

Even though coreboot can run VGA Option ROMs, those aren't called native graphics init.

Short forms

  • NGI : native graphics initialization
  • GFX init : graphics initialization

Usage in coreboot

Usually the full color depth and native screen resolution is used. If (x86) VGA hardware is present, one can not assume that it has been initialized at all. A payload should either initialize the GPU on its own or use coreboot tables to gather information about the current state. The payload can not determine if the information provided in coreboot tables is still valid. A bootloader might have changed the GPUs current state.

Libgfxinit in coreboot

libgfxinit is a graphics initialization (aka modesetting) library for embedded environments. It currently supports only Intel hardware, more specifically the Intel Core processor line.

It can query and set up most kinds of displays based on their EDID information. You can, however, also specify particular mode lines.

libgfxinit is written in SPARK, an Ada subset with formal verifica- tion aspects. Absence of runtime errors can be proved automatically with SPARK GPL 2016.

"C" native graphics init on pre haswell platforms

On some pre Haswell Intel platforms the graphics can be initialized using C code, but only on the internal LVDS connector.