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

Issue 682781 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocking:
issue 680153
issue 685670



Sign in to add a comment

Support unified builds with coreboot

Project Member Reported by sjg@chromium.org, Jan 19 2017

Issue description

Add support for building the coreboot image for multiple models (using reef).

This involves updating the coreboot ebuild to build for all models supported by the board, when USE=uniboard is enabled.

It also affects:
- chromeos-mrc which needs to build multiple outputs
- private files for pyro/snappy, which need to move into baseboard-reef-private (at least until we figure out another way)
- possibly a few other packages as well

 

Comment 1 by sjg@chromium.org, Jan 19 2017

Cc: adurbin@chromium.org martinroth@chromium.org

Comment 2 by sjg@chromium.org, Jan 19 2017

Status: Started (was: Available)

Comment 3 by sjg@chromium.org, Jan 20 2017

16 CLs are up for review. I can now build what appears to be a suitable coreboot for reef, pyro, snappy, using "USE=unibuild emerge-reef coreboot". However I cannot test it properly until I do chromeos-bootimage.

https://chromium-review.googlesource.com/#/c/430894/
https://chrome-internal-review.googlesource.com/#/c/318730/
https://chrome-internal-review.googlesource.com/#/c/318652/

Comment 4 by sjg@chromium.org, Jan 20 2017

Blocking: -680151 680153
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 25 2017

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 25 2017

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 25 2017

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 25 2017

Comment 9 by sjg@chromium.org, Jan 26 2017

Blocking: 685670
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 30 2017

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/a7343cea9c521439851741b082a94eb0aaf1912d

commit a7343cea9c521439851741b082a94eb0aaf1912d
Author: Simon Glass <sjg@chromium.org>
Date: Wed Feb 08 04:14:20 2017

coreboot: Use variables for the config file names

Rather than repeating the name each time, use variables. This will allow
us to supply a different name in a future CL, which is needed for unified
builds.

I have avoided adding quotes since it is unnecessary and harder to read.
But I can add them in if needed.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed

Change-Id: I86063f8598ef53010f1bc8eb39bac4963b7083ab
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430228
Reviewed-by: Chris Ching <chingcodes@chromium.org>

[modify] https://crrev.com/a7343cea9c521439851741b082a94eb0aaf1912d/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 12 by bugdroid1@chromium.org, Feb 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/7a03f71b714ff5b5ae22567c7696ef8b1b6a2590

commit 7a03f71b714ff5b5ae22567c7696ef8b1b6a2590
Author: Simon Glass <sjg@chromium.org>
Date: Wed Feb 08 04:14:19 2017

coreboot: Move the board selection code into a function

Rather than repeating the code twice, put it in a function and use it when
needed.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot

Change-Id: Ia714addabc729714c3e24c816c9b57b0a413f0dd
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430227
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Chris Ching <chingcodes@chromium.org>

[modify] https://crrev.com/7a03f71b714ff5b5ae22567c7696ef8b1b6a2590/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 13 by bugdroid1@chromium.org, Feb 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/1daa8545ad08d21e0df76ad8a30516852cee5697

commit 1daa8545ad08d21e0df76ad8a30516852cee5697
Author: Simon Glass <sjg@chromium.org>
Date: Wed Feb 08 04:14:20 2017

coreboot: Move config creation code into a function

There is a lot of code used to create the .config files. Move it into its
own function. This will allow us to call it multiple times as needed for
unified builds.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot

Change-Id: I4d4bd9c6f5dd2a64bdd27848d855615321925efd
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430229
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Chris Ching <chingcodes@chromium.org>

[modify] https://crrev.com/1daa8545ad08d21e0df76ad8a30516852cee5697/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 14 by bugdroid1@chromium.org, Feb 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/13bc17a7824c34bbfcdd1d11eacbb4aa65700839

commit 13bc17a7824c34bbfcdd1d11eacbb4aa65700839
Author: Simon Glass <sjg@chromium.org>
Date: Sat Feb 11 08:35:21 2017

coreboot: Add a function to set the build environment

We need to access the same variables from different parts of the build.
Add a 'set_build_env' function to support this. Adjust the existing use
of ".config", etc. to use the variables.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed

Change-Id: I771765124aee0bc7fa80382b5c5079da233cfd06
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430890
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

[modify] https://crrev.com/13bc17a7824c34bbfcdd1d11eacbb4aa65700839/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 15 by bugdroid1@chromium.org, Feb 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/3ba7523e40b01dd28fff6e91f5cb02f712be5388

commit 3ba7523e40b01dd28fff6e91f5cb02f712be5388
Author: Simon Glass <sjg@chromium.org>
Date: Sat Feb 11 08:35:21 2017

coreboot: Add variables for the build directories

Set up variables for the two build directories. This will allow us to
adjust then for unified builds.

While we're at it, add a message showing the config and build directory.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed

Change-Id: I7a6d091dfc03ebf9729df41f8b0d522d3c4db71c
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430891

[modify] https://crrev.com/3ba7523e40b01dd28fff6e91f5cb02f712be5388/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 16 by bugdroid1@chromium.org, Feb 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/fe0a3d073337436141b20f03f1f221063a4281d1

commit fe0a3d073337436141b20f03f1f221063a4281d1
Author: Simon Glass <sjg@chromium.org>
Date: Sat Feb 11 19:04:51 2017

coreboot: Pass the board config to make_coreboot()

Rather than moving the config into place and then calling make_coreboot(),
pass the required config to the function and have it deal with the details
of how to press the config into use.

Adjust make_coreboot() to store the config in the build directory, so that
it can be installed correctly after all builds are complete.

These changes make it easier to handle unified builds.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed
$ grep  CONFIG_SOC_UART_DEBUG /build/reef/firmware/coreboot.config
$ grep  CONFIG_SOC_UART_DEBUG /build/reef/firmware/coreboot_serial.config
CONFIG_SOC_UART_DEBUG=y

Change-Id: I8427f3bd5d17cb0b693131509c523484983e5419
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430327

[modify] https://crrev.com/fe0a3d073337436141b20f03f1f221063a4281d1/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 17 by bugdroid1@chromium.org, Feb 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/9b375f8acdf62ded9512762668d4d229ae14e86a

commit 9b375f8acdf62ded9512762668d4d229ae14e86a
Author: Simon Glass <sjg@chromium.org>
Date: Sat Feb 11 19:04:50 2017

coreboot: Move the install code into its own function

With unified builds we will be calling this code multiple times, once for
each model. Put it in a function to enable this.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed

Change-Id: Ic56e9205a5871aec47169db115520bb84046ff62
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430893
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Chris Ching <chingcodes@chromium.org>

[modify] https://crrev.com/9b375f8acdf62ded9512762668d4d229ae14e86a/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 18 by bugdroid1@chromium.org, Feb 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/7c934cb399eaa7b33a3dc89d0588570e30d697d2

commit 7c934cb399eaa7b33a3dc89d0588570e30d697d2
Author: Simon Glass <sjg@chromium.org>
Date: Sat Feb 11 19:04:50 2017

coreboot: Use a variable for the repeating config filename

Rather than writing it out each time, put it in a variable.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed

Change-Id: Icd2e52f2543e94af340f1f42768401035e41a4ec
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430892

[modify] https://crrev.com/7c934cb399eaa7b33a3dc89d0588570e30d697d2/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 19 by bugdroid1@chromium.org, Feb 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/49e79570f1e64242fb68508ca17d02ba7d2475d7

commit 49e79570f1e64242fb68508ca17d02ba7d2475d7
Author: Simon Glass <sjg@chromium.org>
Date: Sun Feb 12 00:39:02 2017

coreboot: Use a variable for the install directory

With unified builds we need to install into multiple directories, one for
each supported model. To prepare for this, make the install directory a
variable.

BUG= chromium:682781 
BRANCH=none
TEST=emerge-reef --nodeps coreboot; see that files are still installed
Change-Id: Ic29ad44948fdb23a224148234e79bd95f7713f05
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430328

[modify] https://crrev.com/49e79570f1e64242fb68508ca17d02ba7d2475d7/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 20 by bugdroid1@chromium.org, Feb 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/ef9505fdf926e9b385f2c851cc2d39ba7834a32d

commit ef9505fdf926e9b385f2c851cc2d39ba7834a32d
Author: Simon Glass <sjg@chromium.org>
Date: Sun Feb 12 02:12:14 2017

coreboot: Support unified builds

Update the ebuild to support building all models supported by a board.
This involves adjusting each stage (prepare, compile, install) to loop
through all the models instead of just doing one model.

BUG= chromium:682781 
BRANCH=none
TEST=USE=unibuild emerge-reef --nodeps coreboot
$ grep CONFIG_SOC_UART_DEBUG /build/reef/firmware/*/coreboot_serial.config
/build/reef/firmware/pyro/coreboot_serial.config:CONFIG_SOC_UART_DEBUG=y
/build/reef/firmware/reef/coreboot_serial.config:CONFIG_SOC_UART_DEBUG=y
/build/reef/firmware/snappy/coreboot_serial.config:CONFIG_SOC_UART_DEBUG=y
$ grep CONFIG_SOC_UART_DEBUG /build/reef/firmware/*/coreboot.config
$ ls -d /build/reef/firmware/*/coreboot* -1
/build/reef/firmware/pyro/coreboot
/build/reef/firmware/pyro/coreboot.config
/build/reef/firmware/pyro/coreboot.rom
/build/reef/firmware/pyro/coreboot.rom.serial
/build/reef/firmware/pyro/coreboot_serial
/build/reef/firmware/pyro/coreboot_serial.config
/build/reef/firmware/reef/coreboot
/build/reef/firmware/reef/coreboot.config
/build/reef/firmware/reef/coreboot.rom
/build/reef/firmware/reef/coreboot.rom.serial
/build/reef/firmware/reef/coreboot_serial
/build/reef/firmware/reef/coreboot_serial.config
/build/reef/firmware/snappy/coreboot
/build/reef/firmware/snappy/coreboot.config
/build/reef/firmware/snappy/coreboot.rom
/build/reef/firmware/snappy/coreboot.rom.serial
/build/reef/firmware/snappy/coreboot_serial
/build/reef/firmware/snappy/coreboot_serial.config
$ ls /build/reef/firmware/*/coreboot{,_serial}
/build/reef/firmware/pyro/coreboot:
bootblock.debug  postcar.debug  ramstage.debug  romstage.debug  verstage.debug

/build/reef/firmware/pyro/coreboot_serial:
bootblock.debug  postcar.debug  ramstage.debug  romstage.debug  verstage.debug

/build/reef/firmware/reef/coreboot:
bootblock.debug  postcar.debug  ramstage.debug  romstage.debug  verstage.debug

/build/reef/firmware/reef/coreboot_serial:
bootblock.debug  postcar.debug  ramstage.debug  romstage.debug  verstage.debug

/build/reef/firmware/snappy/coreboot:
bootblock.debug  postcar.debug  ramstage.debug  romstage.debug  verstage.debug

/build/reef/firmware/snappy/coreboot_serial:
bootblock.debug  postcar.debug  ramstage.debug  romstage.debug  verstage.debug

$ ls -d /build/reef/firmware/*coreboot*
/build/reef/firmware/coreboot-private
(i.e. no coreboot output files in /firmware, they are all in subdirs)

Change-Id: I56518677efb27b536a86b18670f7a3ee621fd9a3
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/430894

[modify] https://crrev.com/ef9505fdf926e9b385f2c851cc2d39ba7834a32d/sys-boot/coreboot/coreboot-9999.ebuild

Comment 21 by sjg@chromium.org, Feb 13 2017

Status: Fixed (was: Started)
Project Member

Comment 22 by bugdroid1@chromium.org, Feb 21 2017

Project Member

Comment 23 by bugdroid1@chromium.org, Feb 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/b2b2c74fb0c1e298af514f045bdf2423c02ba30b

commit b2b2c74fb0c1e298af514f045bdf2423c02ba30b
Author: Simon Glass <sjg@chromium.org>
Date: Tue Feb 21 22:07:38 2017

coreboot: config: Make pyro and snappy use the same files as reef

These files are created by chromeos-mrc which produces identical results
for all three boards. Adjust pyro and snappy to point to reef, making them
all use the baseboard-reef directory.

BUG= chromium:682781 
TEST=emerge-pyro chromeos-coreboot
CQ-DEPEND=CL:*329224

Change-Id: I6fd21fc8c6d44e78a8ac2312060405a16bbac34d
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/444244
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

[modify] https://crrev.com/b2b2c74fb0c1e298af514f045bdf2423c02ba30b/sys-boot/coreboot/files/configs/config.pyro
[modify] https://crrev.com/b2b2c74fb0c1e298af514f045bdf2423c02ba30b/sys-boot/coreboot/files/configs/config.reef
[modify] https://crrev.com/b2b2c74fb0c1e298af514f045bdf2423c02ba30b/sys-boot/coreboot/files/configs/config.snappy

Sign in to add a comment