On 15.04.2018 14:28, Peter Stuge wrote:
Arthur Heymans wrote:
one would be able to generate this binary file but due to its modularity and variable length such generator would be tedious to create.
How tedious?
I think the tedious part is choosing which fields you want to fill. The available fields vary between generations. There's lots of historical ballast and you don't know which fields are required (VBT is mostly nee- ded for Windows and who knows what the driver does there; when it comes to Linux, we should at least try to talk some sense into the developer's to tell us which information they really need).
Do you know where documentation can be found?
The most comprehensive documentation I know about the various sub-tables and how they are organized is the i915 Linux driver code that reads it. There are also per-platform description files that tell a "binary modi- fication program" by Intel what bit is what. You can find them sometimes along the FSP releases (e.g. [1]; 9972 lines, yeah!).
If somebody really wants to digest complete VBTs, I think the best shot would be to translate these description files into something nicer and have a tool like bincfg [2] to translate human readable VBTs into binary ones (based on the description). And talk Intel into always releasing the description files, ofc.
Nico
[1] https://github.com/IntelFsp/FSP/blob/BayTrail/BayTrailFspBinPkg/Vbios/Vga.bs... [2] https://review.coreboot.org/cgit/coreboot.git/tree/util/bincfg/