<div dir="ltr">These are great corrections! Thanks everyone, sorry for my confusion. <div><br></div><div>The information I'm seeing here is really useful, would somebody consider putting it on the wiki? Among other things, it would reduce my own levels of confusion.</div><div><br></div><div>ron</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Apr 4, 2017 at 12:23 PM Zoran Stojsavljevic <<a href="mailto:zoran.stojsavljevic@gmail.com">zoran.stojsavljevic@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Wait a moment, Ron... :-)<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Igor is in some points correct. But I need to digest document, you've attached, much more in details. I recall some interesting things, reading this document, while reading some (jumping around) context.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Very interesting discussion it is, although BIOS is associated with vBIOS and VBT in Option ROMs. I need to digest more about these data, you have presented, Ron.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">VBT stands for Video BIOS Table, VBE is VESA BIOS Extension. I am very sure these two things have very much to do with each other, since I can imagine that modes (described in VBE 3.0, are supported exactly by VBT, which needs to translate VBE modes to some Video timings, and video HSync, VSync, Back Porch, Front Porch, blanking dot and line intervals... Low Level GFX, which is not too much known to vast majority of the people.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I would like all to look into the document <a href="http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf" class="gmail_msg" target="_blank">http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf</a>, page 19. These are the modes VBE 3.0 supports.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Furthermore, let me tell you all that this is a mechanism to support ONLY The Legacy BIOS (UEFI works ONLY with GOP, but this is another dimension/discussion), and, to all of your knowledge (which I have no idea how deep it is, I doubt), VBT table survives postmortem BIOS. By Linux, it will be RELOCATED into much higher (over 1MB) 32bit protected mode memory (addresses recalculated), and still use INT10H, using vBIOS (Option ROM, my best guess) down there.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I would not draw so fast... As many of you do! ;-)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thank you,</div><div class="gmail_msg">Zoran</div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Tue, Apr 4, 2017 at 7:46 PM, ron minnich <span dir="ltr" class="gmail_msg"><<a href="mailto:rminnich@gmail.com" class="gmail_msg" target="_blank">rminnich@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">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. <div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Please, everyone, if you're going to move this conversation forward, you need to cite primary sources at least, such as this one: <a href="http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf" class="gmail_msg" target="_blank">http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf</a>. </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">thanks</div><span class="m_3403928363735838442HOEnZb gmail_msg"><font color="#888888" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">ron</div></font></span></div><div class="m_3403928363735838442HOEnZb gmail_msg"><div class="m_3403928363735838442h5 gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Tue, Apr 4, 2017 at 10:19 AM Igor Skochinsky via coreboot <<a href="mailto:coreboot@coreboot.org" class="gmail_msg" target="_blank">coreboot@coreboot.org</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="font-family:'Courier New';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">Hello Zoran,</span></div><div class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><span style="font-family:'Courier New';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Monday, April 3, 2017, 8:58:43 PM, you wrote:<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</span></div><div class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><table class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<tbody class="gmail_msg"><tr class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<td width="10" bgcolor="#0000ff" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</td>
<td width="898" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><span style="font-family:'courier new';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">VBT should fulfill this VBE standard, as my best understanding is, or not?!</span></td>
</tr>
</tbody></table>
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</div><div class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><span style="font-family:'Courier New';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">VBE only describes the int 10h BIOS interface extensions, VBT are tables used by Intel to provide info about how to control the GPU (I assume). AFAIK there is no public description of these tables' layout and contents, only Intel knows how to build and parse them.<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Both VBE(code) and VBT (data) may be present in the video card's option ROM, I guess that's the only common part.<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</span></div><div class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><table class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<tbody class="gmail_msg"><tr class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<td width="10" bgcolor="#0000ff" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</td>
<td width="898" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="font-family:'courier new';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">Zoran<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
On Mon, Apr 3, 2017 at 7:36 PM, Igor Skochinsky via coreboot <<a href="mailto:coreboot@coreboot.org" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">coreboot@coreboot.org</a>> wrote:<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Hello Zoran,<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Monday, April 3, 2017, 9:24:41 AM, you wrote:<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</span><table class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<tbody class="gmail_msg"><tr class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<td width="11" bgcolor="#0000ff" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</td>
<td width="864" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><span style="font-family:'courier new';font-size:10pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">> <b class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><i class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><u class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">VBT is not code, it's a table</u></i></b> -- that's what the T is -- and you can create it any way you want.<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Not going to say more, anyway. Just to point to the standard:<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<a style="font-size:9pt" href="https://en.wikipedia.org/wiki/VESA_BIOS_Extensions" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">https://en.wikipedia.org/wiki/</a><a style="font-size:9pt" href="https://en.wikipedia.org/wiki/VESA_BIOS_Extensions" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">VESA_BIOS_Extensions</a></span></td>
</tr>
</tbody></table>
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="font-family:'courier new';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">Not sure why you posted this link. VBE is not VBT, it's a completely separate and different thing.<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</span><table class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<tbody class="gmail_msg"><tr class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<td width="11" bgcolor="#0000ff" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</td>
<td width="864" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="font-family:'courier new';font-size:9pt" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">To clever enough! ;-)<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Zoran<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
On Mon, Apr 3, 2017 at 2:38 AM, ron minnich <<a href="mailto:rminnich@gmail.com" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">rminnich@gmail.com</a>> wrote:<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
As for graphics startup, here's what I learned when I was doing this in 2012/2013: the kernel could start sandy and ivy with no vbios needed. However, I have been told that the veil of secrecy has started to draw a bit closer in subsequent chipsets, and that something like a VGA BIOS/GOP has to run or graphics will not work. I really don't know, I have not looked at this in over 3 years.<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Todd, just to make sure we're on the same page, VBT is not code, it's a table -- that's what the T is -- and you can create it any way you want. <br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
Also, as for numbers: the fastest graphics startup, by far, was when we had coreboot- based startup with configuration specialized to the chromeos laptop. How fast? At one point we had a pixel booting to chromeos prompt in 2.7 seconds, reduced from 7.7 seconds when linux did the graphics init. We've seen that the linux graphics init is highly concurrent and generalized, and that tends to mean slow. Of course this was all far faster than the 8086-mode vga BIOS supplied by "the vendor". But we were a bit surprised to see how much faster coreboot was than the linux kernel. <br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
I doubt this speed difference matters any more, since boot time only needs to be "fast enough" nowadays and 10 seconds seems to do it for most people -- plus, any 5-second advantage in boot time vanishes as soon as you go to your first web page.<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="color:#888888" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">ron<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="color:#000000" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">On Sun, Apr 2, 2017 at 5:31 PM ron minnich <<a style="color:#000000" href="mailto:rminnich@gmail.com" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">rminnich@gmail.com</a>> wrote:<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
So, I'll mention go userland one last time, for a simple reason: I have it on good authority that at some places, saying you have a go userland instead of a c userland checks a check box on a security checklist. I think that's a sensible decision, having watched all the awful ways that C programs tend to go wrong :-)<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
ron<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
--<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
coreboot mailing list: <a style="color:#000000" href="mailto:coreboot@coreboot.org" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">coreboot@coreboot.org</a><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<a style="color:#000000" href="https://www.coreboot.org/mailman/listinfo/coreboot" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">https://www.coreboot.org/mailm</a><a style="color:#000000" href="https://www.coreboot.org/mailman/listinfo/coreboot" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">an/listinfo/coreboot</a></span></span></span></td>
</tr>
</tbody></table>
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="font-family:'courier new';font-size:9pt;color:#c0c0c0" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><i class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">-- <br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
WBR,<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
 Igor<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
</i><span style="color:#000000" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">--<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">coreboot@coreboot.org</a><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<a href="https://www.coreboot.org/mailman/listinfo/coreboot" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">https://www.coreboot.org/</a><a href="https://www.coreboot.org/mailman/listinfo/coreboot" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">mailman/listinfo/coreboot</a></span></span></td>
</tr>
</tbody></table>
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<span style="font-family:'arial';color:#c0c0c0" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg"><i class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">-- <br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
WBR,<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
 Igor</i></span></div>--<br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">coreboot@coreboot.org</a><br class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg">
<a href="https://www.coreboot.org/mailman/listinfo/coreboot" rel="noreferrer" class="m_3403928363735838442m_3827496980910788189gmail_msg gmail_msg" target="_blank">https://www.coreboot.org/mailman/listinfo/coreboot</a></blockquote></div>
</div></div></blockquote></div><br class="gmail_msg"></div>
</blockquote></div>