[SeaBIOS] Problems booting legacy OSes on Chromebook Pixel 2015 - cbmem output

Kevin O'Connor kevin at koconnor.net
Tue Oct 6 16:53:04 CEST 2015


On Tue, Oct 06, 2015 at 12:53:44PM +0100, John Lewis wrote:
> >Looks like you have a rom from John Lewis.  I'd confirm that the
> >SeaVGABIOS in the rom is relatively recent as there were some changes
> >("leal" emulation) that are known to work better on the *BSDs.
> >
> >If SeaVGABIOS is recent, then I think the next step would be to see if
> >you can replace SeaVGABIOS with an Intel VGABIOS.
> 
> I'm not absolutely sure how old it is, but I don't think it's any older than
> 2 or 3 weeks, since that was the last time I really had a bash at getting
> this working properly, and I finished up by putting the cbvga option ROM in.
> I guess what this points to is that I should get the script, run by Jenkins,
> to update the cbvga option ROM every time, if I'm going to continue running
> that way.

The "leal" stuff went in around June, so it's probably recent enough
then.

> If I disable coreboot framebuffer support in SeaBIOS and then use the
> VGABIOS from the stock ROM in RW_LEGACY, I don't get any display from
> SeaBIOS on Broadwell.
> 
> If I do the same with a Haswell Chromebook, the display works.
> 
> In the former case, SeaBIOS appears to find and load the VGABIOS, according
> to cbmem, just no display.
> 
> I think whatever this problem is may also explain why I'm not able to get
> display using a modified BOOT_STUB with SeaBIOS on Broadwell.

IIUC, the intel vgabios fails to work properly on some gpus if it is
run after the hardware has already been initialized.  If that's the
case you'd need to be careful to only init the display once (either
native coreboot vga + SeaVGABIOS cbvga, or no video in coreboot +
SeaBIOS run intel vgabios).

> Another thing that may or may not have some bearing is that on Baytrail, if
> I try to use RW_LEGACY with SeaBIOS, SeaBIOS initialises the display, but
> Linux won't display anything unless I disable KMS with "nomodeset" on the
> kernel cmdline. That unfortunately leaves me with a display resolution of
> 1024x768 (presumably what coreboot sets the framebuffer to).

When you say "SeaBIOS initialises the display" do you mean cbvga
SeaVGABIOS?  If so, that does not initialize the hardware - it just
draws on the framebuffer that coreboot sets up.  I'm not sure why
Linux wouldn't be able to use a display that coreboot setup.  Maybe
there is some setting that will convince it to use it.

> If you have some stuff I can try to get a VGABIOS working properly with
> BOOT_STUB and RW_LEGACY on Broadwell and Baytrail Chromebooks, I would sure
> appreciate it, Kevin.
[...]
> >P.S. it should be possible to implement a SeaVGABIOS with support for
> >mode switching on Intel graphics adapters.  That should solve these
> >problems (at least on Intel hardware), but it's a bit of work as I
> >find the Intel graphics manuals to be basically indecipherable.  :-(

I don't have anything.  A few months ago I looked through the Intel
gpu docs.  As near as I can tell, the Intel hardware is compatible
with all the legacy VGA interfaces.  It seemed like the only thing
that would need to be done to switch into true legacy modes would be
to enable the "legacy vga mode" and to program something called a
"panel fitter".  The docs were not much help though.

-Kevin



More information about the SeaBIOS mailing list