breadcrumbs:
flashrom --wp-disable
git clone http://review.coreboot.org/p/coreboot cd coreboot
The BIOS from the running system will contain some specific data in GBB and VPD regions that are unique. It is recommended to extract and save this BIOS in case you want to restore to previous unique device information. Without a valid HWID the system will be unable to recover or receive updates.
flashrom -r device_bios.bin
The BIOS extracted from a running system does not contain the Management Engine firmware as that region is not readable from the host. The firmware update utility contains a raw BIOS update image which will contain the Management Engine binary.
Copy /usr/sbin/chromeos-firwmwareupdate from device, execute, and copy bios.bin to coreboot root.
chromeos-firwmareupdate --sb_extract /tmp cp /tmp/bios.bin .
ifdtool -x bios.bin
cbfstool bios.bin extract -n mrc.bin -f mrc.bin
cbfstool bios.bin extract -n pci8086,0406.rom -f pci8086,0a06.rom
make menuconfig
> Mainboard -> Mainboard Vendor -> Google > Mainboard -> Mainboard Model -> Falco > Chipset -> Add a System Agent binary -> mrc.bin > VGA BIOS -> Add a VGA BIOS image -> pci8086,0a06.rom > VGA BIOS -> VGA device PCI IDs -> 8086,0a06 > Console -> Serial port console output -> DISABLE > Payload -> Add a payload -> SeaBIOS > Payload -> SeaBIOS version -> master > ChromeOS -> Build for ChromeOS -> DISABLE
make
echo -ne "\x01" > boot-menu-key echo -e "\nPress ESC for boot menu.\n" > boot-menu-message cbfstool build/coreboot.rom add -f boot-menu-key -n etc/boot-menu-key -t raw cbfstool build/coreboot.rom add -f boot-menu-message -n etc/boot-menu-message -t raw
If setting a boot splash screen:
cbfstool build/coreboot.rom add -f bootsplash.jpg -n bootsplash.jpg -t raw
dd if=flashregion_0_flashdescriptor.bin of=build/coreboot.rom conv=notrunc
ifdtool -i me:flashregion_2_intel_me.bin build/coreboot.rom mv build/coreboot.rom.new build/coreboot.rom