VBT is documented by intel-gpu-tools. There's intel_vbt_decode (former intel_bios_decode) available https://cgit.freedesktop.org/xorg/app/intel-gpu-tools/tree/tools/intel_vbt_d... that will print all tables in human readable form. Regards Patrick
Am 4. April 2017 20:45:15 MESZ schrieb Nico Huber nico.h@gmx.de:
Hi Ron,
On 04.04.2017 19:46, ron minnich wrote:
Igor, if you are going to say things like "AFAIK there is no public description of these tables' layout and contents, only Intel knows
how to
build and parse them.", it's really a good idea to back it up with a primary source, especially since you also use phrases like "I assume"
and
"I guess". I am pretty sure you're wrong in this case. The V in VBT,
as I
understand it, means VESA, and VESA has been a standard for about 30
years.
Please, everyone, if you're going to move this conversation forward,
you
need to cite primary sources at least, such as this one: http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf.
now you got confused too. I'll try to clarify.
VBE means VESA (Video Electronics Standards Association) BIOS Extension. It's a Video BIOS interface extension (i.e. specifying additional BIOS calls). Don't know if it was public from the beginning (you often have to be a VESA member to get access to their "standards"), but the inter- face is used by many open source programs. It's vendor independent. Also it's off-topic, nobody was discussing it here.
As Igor noted, VBE has absolutely nothing to do with VBT.
VBT means Video BIOS Table. It's a 100% Intel specific table of confi- guration options for Intel's Video BIOS and Intel's graphics drivers. There is no public documentation, but as it's used by the Linux driver, at least the structure and some of the values are publicly "documented" [1]. Developers of the i915 Linux driver stated that they are not wil- ling to support systems without a VBT. Most features of the i915 driver work without a VBT by chance. But anything board specific, like inte- grated panels in laptops, will likely _not_ work. I'd also expect that they won't count it as a regression if something breaks but would still work with a VBT. (Windows won't even try to get things running without VBT, AFAIK.)
An OEM should have access to Intel's binary configuration tool and the specification file for the VBT of his processor's generation. It comes along with the VBIOS, I suppose.
Nico
PS. Igor, Zoran please write text-only emails or at least make sure the text version is readable and quotes are visible as quotes.
[1] https://www.kernel.org/doc/html/latest/gpu/i915.html#video-bios-table-vbt
-- coreboot mailing list: coreboot@coreboot.org https://www.coreboot.org/mailman/listinfo/coreboot
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_d... 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.pd... [2] https://lwn.net/Articles/429319/
PR> Am 4. April 2017 20:45:15 MESZ schrieb Nico Huber nico.h@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
Igor Skochinsky via coreboot coreboot@coreboot.org writes:
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_d... 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:
- 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.
I think blobtool would fit that purpose quite nicely on the assumption VBT is already extracted and that VBT has fixed locations for its entries. If one writes a blobtool spec file (which describes the bitfields) it can serve both as a "decompiler" and as a "compiler".
So, basically, an approach similar to ich9gen for the flash descriptor/gbe.
Blobtool handles ICH9 IFD and GBE compilation and decompilation too. ;)
This should allow getting rid of the option ROM if real mode support is not required.
Would great to have indeed, who knows if other OS drivers will mandate VBT one day.
Kind regards.