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

John Lewis jlewis at johnlewis.ie
Tue Oct 6 13:53:44 CEST 2015



On 2015-10-06 02:02, Kevin O'Connor wrote:
> On Mon, Oct 05, 2015 at 05:04:09PM +0100, edward wandasiewicz wrote:
>> Following on from this post - 
>> http://seabios.seabios.narkive.com/UAt3jVij
>> 
>> I was having the exactly the same problem.
> 
> So to summarize, you can boot Linux on Samus, but can not boot any
> *BSD?  Both Linux and the BSDs do work on Link?
> 
> [...]
>> If I run "vbeinfo" within Grub2 on the Pixel 2013, we get a long list,
>> including 640 x 400 and 800 x 600
>> 
>> On the Pixel 2015, "vbeinfo" only gives one entry, and one entry only
>> of 1280 x 850 x 16
>> 
>> Could this explain why *BSD operating systems and MemTest utility
>> cannot boot from USB or SD card (..properly..) ? They boot up in a
>> "text console", versus a "graphical console in text mode".
> 
> It's certainly possible that cbvga SeaVGABIOS is the cause.  The cbvga
> support in SeaVGABIOS is a hack to get some minimal display support
> when only a graphical framebuffer is available.  It is known to not
> work with some bootloaders and OSes (that don't use the VGA BIOS to
> write to the screen).  For that reason, it's not going to work with
> MemTest86+.
> 
> 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.

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.

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).

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.

-John.

> 
> -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.  :-(



More information about the SeaBIOS mailing list