New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 799152 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

SeaBIOS doesn't load on eve/fizz

Project Member Reported by seanpaul@chromium.org, Jan 4 2018

Issue description

What steps will reproduce the problem?
(1) Boot eve or fizz in developer mode
(2) Press Ctrl+L on the devmode screen


What is the expected result?
Device boots to SeaBIOS


What happens instead?
Device freezes or resets


Attached is the serial log from fizz.

 
screenlog.13
65.1 KB Download
Cc: pgeorgi@chromium.org reinauer@chromium.org
This should work on Eve, though boot from NVMe is not supported in the version that we have. Make sure you have the latest BIOS.. (9584.107.0)

Stefan and Patrick are in the process of transitioning the 'legacy' firmware from seabios to tianocore, but we need to fix a few related issues first...
thanks for the update, duncan. should i give up on fizz as a development target? it's a pretty useful device for upstream kernel development.
Cc: shchen@chromium.org
Owner: reinauer@chromium.org
Status: Started (was: Available)
Fizz should be able to be a useful development target, but we probably need the tianocore switch since NVMe is common on that platform.
great! i'm happy to test anything y'all come up with. is there a tianocore bug that i can follow along with?
There isn't really one particular bug. b:70802728 might be a good entrypoint though.
I just received my Eve chromebook (Pixelbook i7) yesterday, and SeaBIOS is not detecting the NVME hard drive. Do I need to switch to a different channel to get the latest BIOS?
As noted in comment#1 the version of SeaBIOS on Eve does not support NVMe.

The upstream SeaBIOS NVMe patches do not backport to our version cleanly, and updating our SeaBIOS version broke a lot of build assumptions.  Since we want to transition to Tianocore instead we decided to prioritize that effort over updating SeaBIOS.

That said, you can do it manually if you want to have something working before we push an update that enables Tianocore for legacy boot.

# Prereq: build cbfstool from coreboot repository
# This part is unnecessary if you have a coreboot checkout already.
git clone https://review.coreboot.org/coreboot.git
pushd coreboot
git submodule update --init
pushd util/cbfstool
make all
export CBFSTOOL=$(pwd)/cbfstool
popd
popd

# Check out seabios from git
git clone git://git.seabios.org/seabios.git
pushd seabios

# configure it, setting at least the following options:
make nconfig
> CONFIG_COREBOOT=y                (General Features -> Build Target -> Build for coreboot)
> CONFIG_BOOTSPLASH=n              (General Features -> Graphical Boot Splash Screen -> DISABLE unless you supply an image...)
> CONFIG_COREBOOT_FLASH=y          (General Features -> coreboot CBFS support)
> CONFIG_CBFS_LOCATION=0xffc00000  (General Features -> CBFS memory end location)
> CONFIG_NVME=y                    (Hardware Support -> NVMe Controllers)
> CONFIG_VGA_COREBOOT=y            (VGA ROM -> VGA Hardware Type -> coreboot linear framebuffer)

# I also attached a working seabios.config which you can copy to .config and run "make oldconfig" to use

# Build it
make

# Create a 2MB CBFS partition for it and add the seabios payload and option rom
$CBFSTOOL seabios.cbfs create -s $(( 2 * 1024 * 1024 )) -m x86
$CBFSTOOL seabios.cbfs add-payload -f out/bios.bin.elf -n payload -c lzma
$CBFSTOOL seabios.cbfs add -f vgabios.bin -n vgaroms/seavgabios.bin -t optionrom

# Finally, copy seabios.cbfs to the device and update just the RW_LEGACY region in firmware.
# This region is unused by chromeos so it is safe to touch

flashrom -r /tmp/bios.bin
dd if=/tmp/seabios.cbfs of=/tmp/bios.bin bs=1M seek=10 conv=notrunc
flashrom -i RW_LEGACY -w /tmp/bios.bin

seabios.config
1.7 KB Download

Sign in to add a comment