Hello Coreboot folks,
I am opening the another thread, trying better to understand GFX Coreboot
architecture, as well as Linux GFX one. And relationships between these two.
Here are some rules I'll assume they are correct (my best guess), after I
started investigating this area.
- While BSP/Coreboot (EDID not read from the actual monitor yet), the
only entity which applies for attached monitor for timings is VBT.dat (if
applied in Coreboot, assuming it does).
- VBT.dat is passed via vBIOS or GOP (dynamically) to Linux kernel
while it boots. How and in which phase it is done, I have very little
understanding. More I do understand if vBIOS (CSM ON) is passed to kernel
(as part of Option ROM), but not really clear to me where vbt.dat (where
exactly ?) will finish after Coreboot is done.
- No matter what and how vbt.dat is passed and where, monitor's EDID
will be read using DDC/CI protocol, while initializing kernel GFX, to
obtain all the true/natural timing data for the present monitor (if
implemented/applicable).
And here are the questions, regarding what I wrote here:
[1] Where in the kernel structures VBT.dat will be kept/held (it'll be
added on fly after BSP is done, somewhere in the allocated heap - the APIs
describing it will be somewhere here: drivers/gpu/drm/i915/)?
[2] In other words, VBT.dat will be the part of DRM (i915 GFX driver), part
of kernel space, correct?
[3] What about EDID, if it is/was successfully read? It obviously has
precedence over VBT.dat, correct?
[4] Does DRI API (DRILib, DRI -> Direct Rendering Infrastructure) as part
of X11 server, provide the only access to VBT.dat?
[5] Does DRI API (DRILib) as part of X11 server, provide the only access to
EDID, previously read from attached monitor (via DDC/CI protocol)?
[6] Alternative to [4], does DRM API (part of kernel space, top layer,
above i915 driver) provide the only access to VBT.dat?
[7] Alternative to [5], does DRM API provide the only access to EDID?
[8] Please, if you like, add your own understanding of this architecture.
[9] Whatever you have to add, subtract, change... You name it!
I really would like to open this thread in order to clear lot of fog,
created by Linux maintainers, INTEL, and Linux GFX designers, as main
reason driving this email to get much better Linux/kernel GFX
picture/architecture understanding???
Thank you all in advance!
Zoran Stojsavljevic