Board:google/butterfly: Difference between revisions

From coreboot
Jump to navigation Jump to search
Line 11: Line 11:
==== Get 'flashmap' ====
==== Get 'flashmap' ====


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


==== Find the RO_VPD section ====
==== Find the RO_VPD section ====


Build flashmap, then run '''fmap_decode''' on the extracted chromebook firmware.
Build flashmap, then run '''fmap_decode''' on the extracted chromebook firmware.
  fmap_decode original_chrome_image.rom
  $ ./fmap_decode original_chrome_image.rom


Locate the RO_VPD section in the output:
Locate the RO_VPD section in the output:
Line 26: Line 26:


==== Insert vpd.bin in the custom coreboot image: ====
==== Insert vpd.bin in the custom coreboot image: ====
  TODO!!! cbfstool bla bla vpd.bin bla
  $ TODO!!! cbfstool bla bla vpd.bin bla

Revision as of 20:02, 3 December 2013

See Chromebooks for additional details.

Hi. I am the mighty alien dwarf, and I will be talking about the Pavilion Chromebook here.

Building a complete coreboot image (WHIP)

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. There is a patch to allow coreboot to read this file and configure the hardware accordingly.

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:

$ TODO!!! cbfstool bla bla vpd.bin bla