[coreboot] VGA and Graphics

Igor Skochinsky skochinsky at mail.ru
Wed Apr 5 19:30:11 CEST 2017


Hello Patrick,

Tuesday, April 4, 2017, 8:54:09 PM, you wrote:

PR> VBT is documented by intel-gpu-tools. There's intel_vbt_decode
PR> (former intel_bios_decode) available
PR> https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/tree/tools/intel_vbt_decode.c
PR> that will print all tables in human readable form.

Nice find! I did not realize this tool supports that many structures;
for some reason I thought it just prints some general info without details.

So now that we have a dumper the following should be possible:
1) make a "decompiler" that would convert VBT from the option ROM into a human/machine
readable text format
2) make a "compiler" that would take that text format and create a
binary VBT from it
3) put the binary VBT into the ACPI IGD OpRegion table ([1], [2]), or
wherever the graphics driver can find it.

So, basically, an approach similar to ich9gen for the flash
descriptor/gbe.

This should allow getting rid of the option ROM if real mode support is
not required.

[1] https://01.org/sites/default/files/documentation/acpi_igd_opregion_spec_0.pdf
[2] https://lwn.net/Articles/429319/


PR> Am 4. April 2017 20:45:15 MESZ schrieb Nico Huber <nico.h at gmx.de>:
PR> Hi Ron,

PR> On 04.04.2017 19:46, ron minnich wrote:
PR>  Igor, if you are going to say things like "AFAIK there is no public
PR>  description of these tables' layout and contents, only Intel knows how to
PR>  build and parse them.", it's really a good idea to back it up with a
PR>  primary source, especially since you also use phrases like "I assume" and
PR>  "I guess". I am pretty sure you're wrong in this case. The V in VBT, as I
PR>  understand it, means VESA, and VESA has been a standard for about 30 years.
PR>  
PR>  Please, everyone, if you're going to move this conversation forward, you
PR>  need to cite primary sources at least, such as this one:
PR>  http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf.

PR> now you got confused too. I'll try to clarify.

PR> VBE means VESA (Video Electronics Standards Association) BIOS Extension.
PR> It's a Video BIOS interface extension (i.e. specifying additional BIOS
PR> calls). Don't know if it was public from the beginning (you often have
PR> to be a VESA member to get access to their "standards"), but the inter-
PR> face is used by many open source programs. It's vendor independent. Also
PR> it's off-topic, nobody was discussing it here.

PR> As Igor noted, VBE has absolutely nothing to do with VBT.

PR> VBT means Video BIOS Table. It's a 100% Intel specific table of confi-
PR> guration options for Intel's Video BIOS and Intel's graphics drivers.
PR> There is no public documentation, but as it's used by the Linux driver,
PR> at least the structure and some of the values are publicly "documented"
PR> [1]. Developers of the i915 Linux driver stated that they are not wil-
PR> ling to support systems without a VBT. Most features of the i915 driver
PR> work without a VBT by chance. But anything board specific, like inte-
PR> grated panels in laptops, will likely _not_ work. I'd also expect that
PR> they won't count it as a regression if something breaks but would still
PR> work with a VBT. (Windows won't even try to get things running without
PR> VBT, AFAIK.)

PR> An OEM should have access to Intel's binary configuration tool and the
PR> specification file for the VBT of his processor's generation. It comes
PR> along with the VBIOS, I suppose.

PR> Nico

PR> PS. Igor, Zoran please write text-only emails or at least make sure the
PR>     text version is readable and quotes are visible as quotes.

PR> [1]
PR> https://www.kernel.org/doc/html/latest/gpu/i915.html#video-bios-table-vbt



-- 
WBR,
 Igor




More information about the coreboot mailing list