Difference between revisions of "Board:google/butterfly"

From coreboot
Jump to: navigation, search
(Building a complete coreboot image (WHIP))
(Building a complete coreboot image)
Line 6: Line 6:
  
 
== Building a complete coreboot image ==
 
== Building a complete coreboot image ==
 +
 +
=== General options ===
 +
 +
The following options will need to be enabled to get a working image:
 +
General setup  --->  [*] Allow use of binary-only repository
 +
Chipset  ---> [*] Add a System Agent binary
 +
Chipset  ---> [*] Add Intel Management Engine firmware
  
 
=== Including the MAC address and keyboard layout ===
 
=== Including the MAC address and keyboard layout ===

Revision as of 23:52, 6 December 2013

See Chromebooks for additional details.

EHCI debug port

With the default settings, the USB port next to the HDMI connector is the EHCI debug port.

Building a complete coreboot image

General options

The following options will need to be enabled to get a working image:

General setup  --->  [*] Allow use of binary-only repository
Chipset  ---> [*] Add a System Agent binary
Chipset  ---> [*] Add Intel Management Engine firmware

Including the MAC address and keyboard layout

The coreboot that ships with the laptop will read the keyboard layout and MAC address from the flash. Since ChromeOS uses a different layout than CBFS, the region containing these parameters must me included in the CBFS of the custom coreboot. When not building for ChromeOS, coreboot will read this region from a CBFS file named vpd.bin.

Get 'flashmap'

$ git clone https://chromium.googlesource.com/chromiumos/third_party/flashmap

Find the RO_VPD section

Build flashmap, then run fmap_decode on the extracted chromebook firmware.

$ ./fmap_decode original_chrome_image.rom

Locate the RO_VPD section in the output:

area_offset="0x00600000" area_size="0x00004000" area_name="RO_VPD" area_flags_raw="0x01" area_flags="static"

Extract the RO_VPD section from ROM image.

First, convert area_offset and area_size to decimal, as dd does not accept hexadecimal input, then use dd to extract the RO_VPD section.

$ dd if=original_chrome_image.rom bs=1 skip=ibs=$((area_offset)) count=$((area_size)) of=vpd.bin

Insert vpd.bin in the custom coreboot image:

$ cbfstool build/coreboot.rom add -f vpd.bin -n vpd.bin -t raw