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

Issue 741043 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Feature

Blocked on:
issue 761227

Blocking:
issue 680153



Sign in to add a comment

Support different models sharing the same firmware

Project Member Reported by sjg@chromium.org, Jul 11 2017

Issue description

With coral we would like to be able to use the same firmware image for multiple models without repeating it and storing it separately.

The hardware ID in these images would just be for one of the models picked at random. This is not used by the factory process nor the firmware update process.

Add a means in the master configuration to specify the firmware to use for each model from a shared list of firmware images.

 
Cc: pbe...@chromium.org
Would be great if there was for example a default "reef" firmware that could be overridden as needed by electro or basking, for example, which are subtypes of reef.

Comment 3 by sjg@google.com, Jul 20 2017

Summary: Support different models sharing the same firmware (was: Support different models sharing the same firmware`)

Comment 4 by pbe...@chromium.org, Jul 27 2017

Labels: -Pri-3 Pri-1
Can we migrate this to buganizer so we can apply Proj-Coral hotlist?
I'm also upping the priority a lot. Without this, Coral will not work as planned.

Comment 5 by sjg@chromium.org, Jul 27 2017

Blocking: 680153

Comment 6 by sjg@chromium.org, Jul 27 2017

I'd like to keep this in the public bug tracker since it relates to unified builds. But please feel free to add a private bug too.

This is an optimisation rather than a critical feature. It should not block anything right now. If it does, please let me know since I may misunderstand the problem.

As I understand it, we need to do it before we get too far along, since otherwise the firmware update bundles will become large. I expect to be able to start around the 14th.
It's a blocker because we need it in for prebuilds to validate that it
works. Since it's a platform dependency we should track it in the partner
tracker since we can't post product names or feature freeze dates here.
Project Member

Comment 8 by bugdroid1@chromium.org, Aug 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/1e6c9403e5dd06e4db0a2f3934f811904eabf9f6

commit 1e6c9403e5dd06e4db0a2f3934f811904eabf9f6
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 10 23:10:17 2017

chromeos-config: Add support for sharing firmware

Some models are similar enough to each other that it is not worth having a
separate firmware build. We can deal with any changes at run-time and can
detect the model from hardware features (generally board ID pins).

Add support for this in the binding.

BUG= chromium:741043 
BUG=b:64117873
TEST=check with 'retext README.md'
Signed-off-by: Simon Glass <sjg@chromium.org>

Change-Id: Ib141df2fcf4e0c800d9c3a1f5c70738182b1f85c
Reviewed-on: https://chromium-review.googlesource.com/609943
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Commit-Queue: Simon Glass <sjg@chromium.org>
Trybot-Ready: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/1e6c9403e5dd06e4db0a2f3934f811904eabf9f6/chromeos-config/README.md

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/d3ad59928bf3341f8241c067251636424f97e8db

commit d3ad59928bf3341f8241c067251636424f97e8db
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 11 17:15:58 2017

chromeos-config: Update docs for built-targets syntax in model.dtsi

BUG= chromium:741043 ,b:64117873
TEST=mdformat

Change-Id: I068be7045ad59e9d08f97ada723c15022bccd869
Reviewed-on: https://chromium-review.googlesource.com/612116
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/d3ad59928bf3341f8241c067251636424f97e8db/chromeos-config/README.md

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/6ab35bed6275747259b001549ea0cf6b2cef3ea4

commit 6ab35bed6275747259b001549ea0cf6b2cef3ea4
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 11 20:48:35 2017

chromeos-config: mdformat README.md

BUG= chromium:741043 ,b:64117873
TEST=mdformat

Change-Id: I923fac90e5c6fef142a6b4da18a5259bf19bd95f
Reviewed-on: https://chromium-review.googlesource.com/612445
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/6ab35bed6275747259b001549ea0cf6b2cef3ea4/chromeos-config/README.md

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 12 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-reef-private/+/f4f4e3ff9d89ea53fd99d32c7910697567705cb8

commit f4f4e3ff9d89ea53fd99d32c7910697567705cb8
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Sat Aug 12 03:10:24 2017

Project Member

Comment 12 by bugdroid1@chromium.org, Aug 12 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-coral-private/+/491765c23047309eccdee665bafb0a6e5bee6213

commit 491765c23047309eccdee665bafb0a6e5bee6213
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Sat Aug 12 03:10:24 2017

Project Member

Comment 13 by bugdroid1@chromium.org, Aug 12 2017

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

commit 2d116ce22f83638570d03d9207d2bd34eac4c797
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Sat Aug 12 18:26:07 2017

cros-unibuild.eclass: Remove CROS_BOARDS guard

It seems to provide no value and it was interfering with using this
eclass in ebuilds that aren't board-specific. Historically, the
justification for this was added in code review:
https://chromium-review.googlesource.com/c/417359/2/eclass/cros-unibuild.eclass#25

BUG= chromium:741043 ,b:64117873
TEST=emerge coreboot with subsequent CLs; confirm output equivalent

Change-Id: Id923a2f511da9fb63179cfba8c7c70015394b0d0
Reviewed-on: https://chromium-review.googlesource.com/611798
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/2d116ce22f83638570d03d9207d2bd34eac4c797/eclass/cros-unibuild.eclass

Project Member

Comment 14 by bugdroid1@chromium.org, Aug 12 2017

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

commit bd9e75f19bf1113eca6150b67835ff518f321a47
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Sat Aug 12 18:26:07 2017

cros-unibuild.eclass: Add two funcs to extract values across models

There's a desire to kill off the FIRMWARE_UNIBUILD and
EC_FIRMWARE_UNIBUILD variables. These functions provide a semantically
equivalent replacement extracted from the config.dtb/model.dtsi
installed to the board root.

BUG= chromium:741043 ,b:64117873
TEST=emerge coreboot with subsequent CL; confirm output equivalent

Change-Id: I48b505c27c8af911fb694e529ee2a9fbbd3bc267
Reviewed-on: https://chromium-review.googlesource.com/612139
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/bd9e75f19bf1113eca6150b67835ff518f321a47/eclass/cros-unibuild.eclass

Project Member

Comment 15 by bugdroid1@chromium.org, Aug 12 2017

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

commit 205d897d258e0e86feba3572591d25e6366d26aa
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Sat Aug 12 19:56:52 2017

coreboot: Convert FIRMWARE_UNIBUILD to get_each_model_conf_value_set

This is one of many ebuilds that will have this variable (or similar)
replaced with a call to this function.

BUG= chromium:741043 ,b:64117873
TEST=emerge coreboot; confirm output equivalent to before change

Change-Id: Ic3c1f422d1b334c1fec07f2c1b122f26adbe28be
Reviewed-on: https://chromium-review.googlesource.com/611799
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

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

Project Member

Comment 16 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/4564794528f03a513f9a3320ec4d686a45eb7748

commit 4564794528f03a513f9a3320ec4d686a45eb7748
Author: Simon Glass <sjg@chromium.org>
Date: Mon Aug 14 21:57:20 2017

pack_firmware: Move image/keyset vars into setvars.sh

At present for unified builds we set the IMAGE_... and KEYSET_DIR
variables at the top of updater4.sh. We plan to allow sharing of images
between models. To make this more flexible, move setting of these
variables into the setvars.sh script.

This script is created by the firmware packer so with this change we can
(in the future) set the variables as needed. When sharing images, for
example, we will adjust the variant for one model's image to point to
another's.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py
Signed-off-by: Simon Glass <sjg@chromium.org>

Change-Id: I5951bb164ba4af477bdf89fa2a3366aa302c3ec9
Reviewed-on: https://chromium-review.googlesource.com/613563
Commit-Ready: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/4564794528f03a513f9a3320ec4d686a45eb7748/pack_firmware_utils.py
[modify] https://crrev.com/4564794528f03a513f9a3320ec4d686a45eb7748/pack_dist/updater4.sh
[modify] https://crrev.com/4564794528f03a513f9a3320ec4d686a45eb7748/setvars_template
[modify] https://crrev.com/4564794528f03a513f9a3320ec4d686a45eb7748/pack_firmware_functest.py

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/e4b816ada9d7e1e1987799b3a1779cb9d16408a1

commit e4b816ada9d7e1e1987799b3a1779cb9d16408a1
Author: Simon Glass <sjg@chromium.org>
Date: Mon Aug 14 21:57:20 2017

pack_firmware: Generate test args from model list

Use the existing model list to generate parameters instead of duplicating
it.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py
Signed-off-by: Simon Glass <sjg@chromium.org>

Change-Id: I1e89549719221a3bfae455d99d7f3879f4f1f8f7
Reviewed-on: https://chromium-review.googlesource.com/613564
Commit-Ready: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/e4b816ada9d7e1e1987799b3a1779cb9d16408a1/pack_firmware_functest.py

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/d3b52e465af2f7045c45d3b0aa66095707aae16e

commit d3b52e465af2f7045c45d3b0aa66095707aae16e
Author: Simon Glass <sjg@chromium.org>
Date: Mon Aug 14 21:57:20 2017

pack_firmware: Show model name when we have no image

At least one image must be provided to be able to generate a firmware
update. Show the model name in this case so it is clear which model has
a problem.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py
Change-Id: I12a69500e04bde891b12c1e08c85477bddc8f671
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/613565
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/d3b52e465af2f7045c45d3b0aa66095707aae16e/pack_firmware.py

Project Member

Comment 19 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/f96db2e2563aee1de23fbc15eefa9c1c75b7ae98

commit f96db2e2563aee1de23fbc15eefa9c1c75b7ae98
Author: Simon Glass <sjg@chromium.org>
Date: Mon Aug 14 21:57:20 2017

pack_firmware: Support the 'shared' property

Add basic support for a model sharing another model's firmware. So far
this just grabs the same files and includes them in the update twice.
Future work will allow sharing the files without expanding the size of
the firmware update.

To support looking up the property, add a function to follow a phandle
link. This is not supported in the libfdt Python bindings yet, so we need
to add our own version. We also need a byteswap function since this is not
currently exported.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I211167272b174acd710a0ba42b45b5346bc0d40d
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/613566
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/f96db2e2563aee1de23fbc15eefa9c1c75b7ae98/pack_firmware_functest.py
[modify] https://crrev.com/f96db2e2563aee1de23fbc15eefa9c1c75b7ae98/pack_firmware.py
[modify] https://crrev.com/f96db2e2563aee1de23fbc15eefa9c1c75b7ae98/test/config_base.dtsi

Project Member

Comment 20 by bugdroid1@chromium.org, Aug 15 2017

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

commit 5b24cba856024296babcf715d22a11c703f500e0
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Tue Aug 15 01:24:52 2017

chromeos-bootimage: Convert FIRMWARE_UNIBUILD to get_each_model_conf_value_set

This is one of many ebuilds that will have this variable (or similar)
replaced with a call to this function.

BUG= chromium:741043 ,b:64117873
TEST=emerge chromeos-bootimage; confirm output equivalent to before
change

Change-Id: I3f9c18a9455de20c6d81cc43456ff4701b9eec59
Reviewed-on: https://chromium-review.googlesource.com/613502
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

[modify] https://crrev.com/5b24cba856024296babcf715d22a11c703f500e0/sys-boot/chromeos-bootimage/chromeos-bootimage-0.0.3.ebuild
[rename] https://crrev.com/5b24cba856024296babcf715d22a11c703f500e0/sys-boot/chromeos-bootimage/chromeos-bootimage-0.0.3-r4.ebuild

Project Member

Comment 21 by bugdroid1@chromium.org, Aug 15 2017

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

commit 79c1ab844d954037f1516a2e0c5b840d8c9572f8
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Tue Aug 15 01:24:53 2017

depthcharge: Convert FIRMWARE_UNIBUILD to get_each_model_conf_value_set

This is one of many ebuilds that will have this variable (or similar)
replaced with a call to this function.

BUG= chromium:741043 ,b:64117873
TEST=emerge depthcharge; confirm output equivalent to before change

Change-Id: I6747fc2031b3b7d3adf8d8437ffe18b293f65eba
Reviewed-on: https://chromium-review.googlesource.com/613673
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

[modify] https://crrev.com/79c1ab844d954037f1516a2e0c5b840d8c9572f8/sys-boot/depthcharge/depthcharge-9999.ebuild

Project Member

Comment 22 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/ee11283a97bb0d2758cf11fc48223836bc477fff

commit ee11283a97bb0d2758cf11fc48223836bc477fff
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 15 05:19:34 2017

pack_firmware: Handle the update script in a new function

We only support a single update script for the firmware update, but the
copying code is currently written to support a separate update script for
each model. In preparation for fixing this, move the code into its own
function.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

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

[modify] https://crrev.com/ee11283a97bb0d2758cf11fc48223836bc477fff/pack_firmware.py

Project Member

Comment 23 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/c0bd1bea2e1eea88325d84ca72c29d9aa9e39dd0

commit c0bd1bea2e1eea88325d84ca72c29d9aa9e39dd0
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 15 05:19:34 2017

pack_firmware: Copy the updater script once

Move copying of this file out of the per-model inner loop so that it only
happens once. Update the affected test and add a missing comment.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I6f3b70c6bac2509f8a6873fc2275418add363b3e
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/613568
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/c0bd1bea2e1eea88325d84ca72c29d9aa9e39dd0/pack_firmware_unittest.py
[modify] https://crrev.com/c0bd1bea2e1eea88325d84ca72c29d9aa9e39dd0/pack_firmware.py

Project Member

Comment 24 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/580330ce44921dcaec35430522b6908857e57538

commit 580330ce44921dcaec35430522b6908857e57538
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 15 05:19:34 2017

pack_firmware: Move script check into _CopyUpdateScript()

We need to make sure that the specified update script is copied into the
base directory. Move that check into the function that does the copy, to
keep the error check with the operation.

The --no-remove_inactive_updaters option makes this a little trickier than
it could be.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I2ba4b3eb488f5e0464532a4844c3fd47acc367ba
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/613569
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/580330ce44921dcaec35430522b6908857e57538/pack_firmware.py

Project Member

Comment 25 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/31bd2bbfe798d38315587726d71aa3d9b5cdf584

commit 31bd2bbfe798d38315587726d71aa3d9b5cdf584
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 15 05:19:34 2017

pack_firmware: Reduce arguments to _CopyFirmwareFiles()

Several of the image arguments are very similar. Factor out the target
directory into a new parameter, allowing these arguments to be dropped.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Ie40de557d703ecfadead27406d84173c4394cab9
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/613570
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/31bd2bbfe798d38315587726d71aa3d9b5cdf584/pack_firmware.py

Project Member

Comment 26 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/402e505654d17ea3466abbb9670ec728c2b9e34b

commit 402e505654d17ea3466abbb9670ec728c2b9e34b
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 15 05:19:34 2017

pack_firmware: Rename 'replace_dict' variable

This is not very descriptive and is the same as a variable further down.
To avoid confusion, rename it.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I4803a227bfe706e33fbf67090a243daac5f697fd
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/613681
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/402e505654d17ea3466abbb9670ec728c2b9e34b/pack_firmware.py

Project Member

Comment 27 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/197019a2795e2950c414bd4562bd59387352de57

commit 197019a2795e2950c414bd4562bd59387352de57
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 17 08:56:46 2017

pack_firmware: Support shared firmware

Add initial support for shared firmware, where a model can make use of
another model's firmware image. This uses 'electro' as an test case since
it shares reef's firmware.

It works by updating the setvars.sh script for electro to make the image
variables (IMAGE_MAIN, IMAGE_EC, etc.) point into the models/reef/
directory. Symlinks do not seem to be supported in shellballs.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

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

[modify] https://crrev.com/197019a2795e2950c414bd4562bd59387352de57/pack_firmware_functest.py
[modify] https://crrev.com/197019a2795e2950c414bd4562bd59387352de57/pack_firmware.py

Project Member

Comment 28 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/a0dc7a0cefc3d38a47fa111842506b7d52535cb8

commit a0dc7a0cefc3d38a47fa111842506b7d52535cb8
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 17 08:56:45 2017

pack_firmware: Move model generation code into a function

In a future CL we need to starting processing the models in two passes.
The current code for doing this is large enough to justify its own
function, so move it into one.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Ief89b9bfd60dd8862123b05dbc451603828591fb
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/614868
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/a0dc7a0cefc3d38a47fa111842506b7d52535cb8/pack_firmware.py

Project Member

Comment 29 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/b5655911ca4ef748334864f8f2ba30b7f6cc78c7

commit b5655911ca4ef748334864f8f2ba30b7f6cc78c7
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 17 08:56:45 2017

pack_firmware: Make the dash shebang update more efficient

The firmware update scripts can be quite long, so the current code is
very wasteful. Update it to avoid spliting into lines.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I3ec0ad5fcc069b7f4dea231559b60f2fd84ebe8c
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/615088
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/b5655911ca4ef748334864f8f2ba30b7f6cc78c7/pack_firmware.py

Project Member

Comment 30 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/7584495b56aa202d99079b2e747c4ce760583622

commit 7584495b56aa202d99079b2e747c4ce760583622
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 17 08:56:46 2017

pack_firmware: Adjust code order in _GenerateOneModel()

Don't create directories until we have located the shared node. This will
allow us to skip this model if we decide not to process it yet.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I775df811592cb2916900681ce8c4362810e48f80
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/615367
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/7584495b56aa202d99079b2e747c4ce760583622/pack_firmware.py

Project Member

Comment 31 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/2769ab1b9b7fbe84136b9550738c91b015d0c1ad

commit 2769ab1b9b7fbe84136b9550738c91b015d0c1ad
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 17 08:56:46 2017

pack_firmware: Refactor to allow reuse of version checking

Move the code which checks version information into a function so we can
reuse it for electro when shared firmware is implemented.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Iee651682628e8b4b5b339ee6c0a460b7f2835c77
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/615780
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/2769ab1b9b7fbe84136b9550738c91b015d0c1ad/pack_firmware_functest.py

Project Member

Comment 32 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/14e53987cfbb1e99fa72f7517910acbb4e8ca5d4

commit 14e53987cfbb1e99fa72f7517910acbb4e8ca5d4
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 18 07:57:29 2017

parallel_emerge: Work around Portage library bug with usepkg

When using --usepkg, the Portage library imported into parallel_emerge
will always return "optional" instead of "buildtime" as the deptypes
even when a package is being built from source (ie. the binary package
is not available or an uprev is occuring). This has caused years of
frustration and loathing for the DEPEND and RDEPEND variables.

This works around the problem by always treating 'optional' as a
strong package dependency when usepkg is enabled.

BUG= chromium:756240 ,b:64117873, chromium:741043 
TEST=./setup_board for previously failing board, ./build_packages to
confirm that non-determinism in package install order is gone. (And
that coreboot builds as expected.)

Change-Id: I7c93802d5b7b82d56e86fecf4ead0eab7445762d
Reviewed-on: https://chromium-review.googlesource.com/619869
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>

[modify] https://crrev.com/14e53987cfbb1e99fa72f7517910acbb4e8ca5d4/scripts/parallel_emerge.py

Project Member

Comment 33 by bugdroid1@chromium.org, Aug 18 2017

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

commit d997c948f7a85ac89a6c47fe73af567253104c72
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 18 10:14:01 2017

chromeos-ec: EC_FIRMWARE_UNIBUILD{,_FAKE} -> get_each_model_conf_value_set

This is one of many ebuilds that will have this variable (or similar)
replaced with a call to this function.

BUG= chromium:741043 ,b:64117873

TEST=emerge chromeos-ec ec-utils coreboot for both pyro and reef-uni;
confirm output equivalent to before change

CQ-DEPEND=CL:619869

Change-Id: Ieef2912ff03e2728c3edd3aa72e85d746400a72e
Reviewed-on: https://chromium-review.googlesource.com/614310
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/d997c948f7a85ac89a6c47fe73af567253104c72/eclass/cros-firmware.eclass
[modify] https://crrev.com/d997c948f7a85ac89a6c47fe73af567253104c72/chromeos-base/chromeos-ec/chromeos-ec-9999.ebuild
[modify] https://crrev.com/d997c948f7a85ac89a6c47fe73af567253104c72/chromeos-base/ec-utils/ec-utils-9999.ebuild
[modify] https://crrev.com/d997c948f7a85ac89a6c47fe73af567253104c72/eclass/cros-unibuild.eclass
[modify] https://crrev.com/d997c948f7a85ac89a6c47fe73af567253104c72/eclass/cros-ec-board.eclass
[modify] https://crrev.com/d997c948f7a85ac89a6c47fe73af567253104c72/sys-boot/coreboot/coreboot-9999.ebuild

Project Member

Comment 34 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/a0a3d8db093afbb3c5a16950fda5de076bcbe92c

commit a0a3d8db093afbb3c5a16950fda5de076bcbe92c
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 18 19:44:10 2017

chromeos-config: Temporarily drop using a phandle for firmware shares

fdtget doesn't support resolving phandles yet (which we need in
ebuilds) so, for now, we'll have a convention of falling back to
family-level configuration if the firmware information is not defined
within the model.

BUG=b:64117873, chromium:741043 
TEST=mdformat

Change-Id: I3e113afd7b448bc1d0419807e583f3a777c22c0e
Reviewed-on: https://chromium-review.googlesource.com/621405
Tested-by: Jason Clinton <jclinton@chromium.org>
Trybot-Ready: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/a0a3d8db093afbb3c5a16950fda5de076bcbe92c/chromeos-config/README.md

Project Member

Comment 35 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/ddd378161d915735cea1346dc4c75f4b2967273e

commit ddd378161d915735cea1346dc4c75f4b2967273e
Author: Simon Glass <sjg@chromium.org>
Date: Fri Aug 18 21:27:18 2017

pack_firmware: Name the replace strings consistently

The 'stable' strings mirror their variable names but the 'target' strings
do not. Update this for consistency.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I7a743b0d29d35c0186fd71701d115d07fb31eab8
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/619310
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/ddd378161d915735cea1346dc4c75f4b2967273e/setvars_template
[modify] https://crrev.com/ddd378161d915735cea1346dc4c75f4b2967273e/pack_stub
[modify] https://crrev.com/ddd378161d915735cea1346dc4c75f4b2967273e/pack_firmware.py

Project Member

Comment 36 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/526404f4726e68e52523aafc7aae722cabfe3530

commit 526404f4726e68e52523aafc7aae722cabfe3530
Author: Simon Glass <sjg@chromium.org>
Date: Fri Aug 18 21:27:19 2017

pack_firmware: Tidy up unified builds variable replacement

The current code uses the same logic for unified builds and non-unified
builds. But the result is quite different. The top of pack_stub is:

UNIBUILD=

if [ -z "${UNIBUILD}" ]; then
  # Version information. Please keep this in head of the updater.
  TARGET_RO_FWID="REPLACE_RO_FWID"
  TARGET_FWID="REPLACE_FWID"
  TARGET_ECID="REPLACE_ECID"
  TARGET_PDID="REPLACE_PDID"
  TARGET_PLATFORM="REPLACE_PLATFORM"
  STABLE_FWID="REPLACE_STABLE_FWID"
  STABLE_ECID="REPLACE_STABLE_ECID"
  STABLE_PDID="REPLACE_STABLE_PDID"
fi

With non-unibuild we update this to replace the variables with valid
values. With unibuild we just replace everything with
'<unused with unified builds>'. This means that the replace_dict created
for unibuild is not actually used.

To avoid confusion, unwind the replace_dict creation for unibuild and set
the variables directly.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Id207694e66051a6ea5139920969b7e95ff93eb43
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/619311
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/526404f4726e68e52523aafc7aae722cabfe3530/pack_firmware_functest.py
[modify] https://crrev.com/526404f4726e68e52523aafc7aae722cabfe3530/pack_stub
[modify] https://crrev.com/526404f4726e68e52523aafc7aae722cabfe3530/pack_firmware.py

Project Member

Comment 37 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/6edebcc54624aaf17788fd4fc40d48573ca82dd6

commit 6edebcc54624aaf17788fd4fc40d48573ca82dd6
Author: Simon Glass <sjg@chromium.org>
Date: Fri Aug 18 21:27:24 2017

pack_firmware: Expand test coverage to include unpacking

At present firmware unpacking fails with unified builds because required
directories are not created.

Update the crosfw.sh library to create these directories. Also update the
functional test to go a little further into the update so that this code
is executed. This allows us to remove the 'unstable' workaround in the
previous CL.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I90c978c3e285678c995a9d92992f8a7abd83d364
Reviewed-on: https://chromium-review.googlesource.com/620908
Commit-Ready: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/6edebcc54624aaf17788fd4fc40d48573ca82dd6/functest/crossystem
[modify] https://crrev.com/6edebcc54624aaf17788fd4fc40d48573ca82dd6/functest/flashrom
[modify] https://crrev.com/6edebcc54624aaf17788fd4fc40d48573ca82dd6/pack_dist/crosfw.sh
[modify] https://crrev.com/6edebcc54624aaf17788fd4fc40d48573ca82dd6/pack_firmware_functest.py

Project Member

Comment 38 by bugdroid1@chromium.org, Aug 22 2017

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

commit 2b605a199a4cc55f8bdffc83c42e3fd159c3b433
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Tue Aug 22 00:55:27 2017

cros-unibuild.eclass: Add a hack to fallback to family firmware

fdtget doesn't support phandle traversal. So, instead, as a temporary
hack to unblock progress on shared firmware, we will fall back to a
predefined family-level node if we can't find the target property
within the model.

BUG=b:64117873, chromium:741043 
TEST=build coral chromeos-config-bsp and all reverse deps

Change-Id: I275a48f2f2afdea6d0d5b8fd77aed7d1a974364f
Reviewed-on: https://chromium-review.googlesource.com/622094
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/2b605a199a4cc55f8bdffc83c42e3fd159c3b433/eclass/cros-unibuild.eclass

Project Member

Comment 39 by bugdroid1@chromium.org, Aug 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/56ad489ed93c161843dd4cb99183b929a84fa2b4

commit 56ad489ed93c161843dd4cb99183b929a84fa2b4
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Tue Aug 22 05:03:59 2017

make.conf: switch to using non-Unibuild specific EC_FIRMWARE_EXTRA

We're about to remove EC_FIRMWARE_EXTRA_UNIBUILD in a CL that will
depend on this one.

BUG=b:64117873, chromium:741043 
TEST=emerge chromeos-ec for reef with follow-up CL

Change-Id: Ia7fa24955bc6585b1d202c8d1ea9c182e6f0caeb
Reviewed-on: https://chromium-review.googlesource.com/624178
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/56ad489ed93c161843dd4cb99183b929a84fa2b4/overlay-reef-uni/make.conf

Project Member

Comment 40 by bugdroid1@chromium.org, Aug 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/d84350884031bfc4d765c260baa7ad7ba4c1c4d2

commit d84350884031bfc4d765c260baa7ad7ba4c1c4d2
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 22 21:46:13 2017

pack_firmware: Updated support for shared firmware

It can be confusing with the current bindings to have a model sharing a
sibling model's firmware. Add a way to put the shared firmware at the
family level and have models point to it. This corresponds to the new
binding for shared firmware.

Also adjust the code to use a single pass for processing and add a few
more checks for pyro.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I9c01fda59d1050b0c5093ead6631e139a1117d9c
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/622076
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/d84350884031bfc4d765c260baa7ad7ba4c1c4d2/pack_firmware_functest.py
[modify] https://crrev.com/d84350884031bfc4d765c260baa7ad7ba4c1c4d2/pack_firmware.py
[modify] https://crrev.com/d84350884031bfc4d765c260baa7ad7ba4c1c4d2/pack_firmware_unittest.py
[modify] https://crrev.com/d84350884031bfc4d765c260baa7ad7ba4c1c4d2/test/config_base.dtsi

Project Member

Comment 41 by bugdroid1@chromium.org, Aug 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/8e9dc5134a187b92990445f2124597e1fc18c926

commit 8e9dc5134a187b92990445f2124597e1fc18c926
Author: Simon Glass <sjg@chromium.org>
Date: Tue Aug 22 21:46:13 2017

pack_firmware: Drop direct use of libfdt interface

We can use these methods in the Fdt class now. Update the implementation
to avoid direct libfdt usage.

BUG= chromium:741043 
BUG=b:64117873
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Ic49f8a2d010c172ac1bd9eb0359ce6aca1e384ae
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/624404
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/8e9dc5134a187b92990445f2124597e1fc18c926/pack_firmware.py

Project Member

Comment 42 by bugdroid1@chromium.org, Aug 22 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-coral-private/+/e5c6f90bde68abc435a409f5429dcec5b5baeb94

commit e5c6f90bde68abc435a409f5429dcec5b5baeb94
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Tue Aug 22 23:43:53 2017

Project Member

Comment 43 by bugdroid1@chromium.org, Aug 22 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-coral-private/+/8029d54267f195d1ef0639fb3ff78a3e8e2efa5c

commit 8029d54267f195d1ef0639fb3ff78a3e8e2efa5c
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Tue Aug 22 23:43:53 2017

Project Member

Comment 44 by bugdroid1@chromium.org, Aug 23 2017

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

commit 8801df2fcde890ee5f7b18ea9d9eda44516bf9a7
Author: Simon Glass <sjg@chromium.org>
Date: Wed Aug 23 07:04:08 2017

cros-firmware: Iterate over all models for shared firmware

At present we iterate over only the build targets, so the firmware update
contains only the firmware for the un-shared board. For coral, for
example, this means we get firmware for coral but not astronaut.

Update the eclass to fix this.

BUG=b:64842314
BUG= chromium:741043 
TEST=emerge-coral chromeos-config-bsp chromeos-config chromeos-firmware-coral
Copy chroot/build/coral/usr/sbin/chromeos-firmwareupdate to astronaut
./chromeos-firmwareupdate --mode=autoupdate --wp=1 -d -v

Change-Id: Idcbe6db23a515d93ad43af6bd32fecef449057d5
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/627264
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/8801df2fcde890ee5f7b18ea9d9eda44516bf9a7/eclass/cros-firmware.eclass

Project Member

Comment 45 by bugdroid1@chromium.org, Aug 23 2017

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

commit 81104ad5902e0cdbae1be82709d28e32bfc1376a
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Wed Aug 23 09:02:40 2017

cros-ec-board.eclass: Remove last Unibuild-specific firmware variable

It turns out that this variable in reef and coral can just as easily
be the legacy EC_FIRMWARE_EXTRA.

BUG=b:64117873, chromium:741043 
TEST=emerge chromeos-ec for reef, reef-uni and coral
CQ-DEPEND=CL:624178,CL:*435632

Change-Id: Id1d3521af00fa226b7f949e277bdcf22f3cf4727
Reviewed-on: https://chromium-review.googlesource.com/623912
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/81104ad5902e0cdbae1be82709d28e32bfc1376a/eclass/cros-ec-board.eclass

Project Member

Comment 46 by bugdroid1@chromium.org, Aug 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/229c6431fb86febab6da6e50d05a0c55871136b3

commit 229c6431fb86febab6da6e50d05a0c55871136b3
Author: Simon Glass <sjg@chromium.org>
Date: Wed Aug 23 15:02:12 2017

pack_firmware: Write a signing config file

For unified builds we need to tell the signer which images to sign and
which keys to use for each. This appears in a new 'signer_config.csv' file
in the firmware update shellball.

Add support for this.

BUG=b:64842314
BUG= chromium:741043 
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Id73d7e2f6fd8193036001f642965ff5f7cb3228c
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/624463
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/229c6431fb86febab6da6e50d05a0c55871136b3/pack_firmware_utils.py
[modify] https://crrev.com/229c6431fb86febab6da6e50d05a0c55871136b3/pack_firmware_functest.py
[modify] https://crrev.com/229c6431fb86febab6da6e50d05a0c55871136b3/setvars_template
[modify] https://crrev.com/229c6431fb86febab6da6e50d05a0c55871136b3/pack_firmware.py
[modify] https://crrev.com/229c6431fb86febab6da6e50d05a0c55871136b3/test/config_base.dtsi

Project Member

Comment 47 by bugdroid1@chromium.org, Aug 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/b6f7778ad13e38ce48ede87a8bb57d702bc8fa58

commit b6f7778ad13e38ce48ede87a8bb57d702bc8fa58
Author: Simon Glass <sjg@chromium.org>
Date: Wed Aug 23 15:02:12 2017

pack_firmware: Drop the KEYSET_DIR variable

This is not a per-model setting so should not be included in the
setvars.sh script. Instead each model has its own key id. Drop this old
incorrect variable.

BUG=b:64842314
BUG= chromium:741043 
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I1351a4d9bbf1f2ec2e33e8c2059f0c0838d5f928
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/625689
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/b6f7778ad13e38ce48ede87a8bb57d702bc8fa58/pack_firmware_utils.py
[modify] https://crrev.com/b6f7778ad13e38ce48ede87a8bb57d702bc8fa58/setvars_template
[modify] https://crrev.com/b6f7778ad13e38ce48ede87a8bb57d702bc8fa58/pack_firmware_functest.py

Project Member

Comment 48 by bugdroid1@chromium.org, Aug 23 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-coral-private/+/7c3877d5aca7821858578974d3f427710a5e2118

commit 7c3877d5aca7821858578974d3f427710a5e2118
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Wed Aug 23 16:46:25 2017

Project Member

Comment 49 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-coral-private/+/0a40d875f1944e1ca4ccbce578168ecdac6fc5d2

commit 0a40d875f1944e1ca4ccbce578168ecdac6fc5d2
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Thu Aug 24 06:13:37 2017

Project Member

Comment 50 by bugdroid1@chromium.org, Aug 24 2017

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

commit f5554c3d5189f704674c78a6ad2f7e85e75c1b93
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Thu Aug 24 06:13:37 2017

cros-unibuild.eclass: Add ability to traverse firmware shares phandle

BUG=b:64117873, chromium:741043 
TEST=build_packages --board=coral with CQ-DEPEND CL's; also ran
trybot:
https://uberchromegw.corp.google.com/i/chromiumos.tryserver/builders/paladin/builds/3601
CQ-DEPEND=CL:*437993

Change-Id: Ieb13cc59df0a81b7199ff52069730c70e445c120
Reviewed-on: https://chromium-review.googlesource.com/629542
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: YH Lin <yueherngl@chromium.org>

[modify] https://crrev.com/f5554c3d5189f704674c78a6ad2f7e85e75c1b93/eclass/cros-unibuild.eclass

Project Member

Comment 51 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/b4039f98f3a78848dd703a6989be660faec42484

commit b4039f98f3a78848dd703a6989be660faec42484
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 24 18:29:01 2017

pack_firmware: Support key selection for unified builds

With unified builds we don't check customization_id but instead use the
KEY_ID variable provided in the setvars.sh script for each model. Update
updater4.sh to support this scheme.

So far there are no tests for this behaviour since the firmware packer
does not create the keyset/ directory in the shellball. This is handled
by the signer which has not tests. We could add a way to put fake vblock
data into the shellball for testing, but this is not attempted here.

BUG=b:64842314
BUG= chromium:741043 
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: Ia95c8bd388898656d8e12791e7350549e4c9c4b6
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/625690
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/b4039f98f3a78848dd703a6989be660faec42484/pack_dist/updater4.sh
[modify] https://crrev.com/b4039f98f3a78848dd703a6989be660faec42484/pack_stub

Project Member

Comment 52 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/dbd94a7d4728a79c8b1fdc81d17defecd2ec1ffd

commit dbd94a7d4728a79c8b1fdc81d17defecd2ec1ffd
Author: Simon Glass <sjg@chromium.org>
Date: Thu Aug 24 18:29:01 2017

pack_firmware: Support shared firmware with local update

The firmware ebuilds produce a local firmware update which picks up any
locally built firmware (i.e. not from BCS). At present this is not
supported with shared firmware, since the image binaries only exist for
the source models. There are no images binaries built for the shared
models.

Update the implementation to handle this.

BUG=b:64842314
BUG= chromium:741043 
TEST=PYTHONPATH=~/cosarm python pack_firmware_unittest.py && \
PYTHONPATH=~/cosarm python pack_firmware_functest.py

Change-Id: I155a8ef2606f2504ea83d3753fa7cd043034f748
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/627642
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/dbd94a7d4728a79c8b1fdc81d17defecd2ec1ffd/pack_firmware.py

Project Member

Comment 53 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-coral-private/+/f99248aae6aa2cddabe3de5df4b1ce6ef7350f28

commit f99248aae6aa2cddabe3de5df4b1ce6ef7350f28
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 25 00:20:42 2017

Project Member

Comment 54 by bugdroid1@chromium.org, Aug 25 2017

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

commit bdd3528b5e44bf4a5c3116f5bfab019e00bc403f
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 25 00:20:41 2017

make.conf: remove obsolete FIRMWARE_UNIBUILD vars

BUG=b:64117873, chromium:741043 
TEST=build_packages --board=reef-uni

Change-Id: I2effbf023c871e9618f0132d2a235ae6bf3493e8
Reviewed-on: https://chromium-review.googlesource.com/633804
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/bdd3528b5e44bf4a5c3116f5bfab019e00bc403f/overlay-reef-uni/make.conf

Project Member

Comment 55 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/overlays/overlay-reef-private/+/7944c0bc15653467213d34520311391aa621dd9c

commit 7944c0bc15653467213d34520311391aa621dd9c
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 25 03:41:14 2017

Project Member

Comment 56 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/firmware/+/cf57f4ededde99ab5b2cc54e84b4e5b018cd9249

commit cf57f4ededde99ab5b2cc54e84b4e5b018cd9249
Author: Jason D. Clinton <jclinton@chromium.org>
Date: Fri Aug 25 03:41:15 2017

Delete unused FIRMWARE_UNIBUILD

BUG=b:64117873, chromium:741043 
TEST=PYTHONPATH=~/chromiumos:~/chromiumos/chromium/tools/depot_tools/third_party/pymox
python convert _to_model_unittest.py

Change-Id: I34c2c6bf61b8fa5242b41f050588299a040e4348
Reviewed-on: https://chromium-review.googlesource.com/633803
Commit-Ready: Jason Clinton <jclinton@chromium.org>
Tested-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/cf57f4ededde99ab5b2cc54e84b4e5b018cd9249/convert_to_model.py
[modify] https://crrev.com/cf57f4ededde99ab5b2cc54e84b4e5b018cd9249/convert_to_model_unittest.py

Comment 57 by sjg@chromium.org, Aug 25 2017

Status: Started (was: Untriaged)
This seems to be working OK for coral. There is still one test failure: b/64465056 will be tracked separately.

Comment 58 by sjg@chromium.org, Aug 25 2017

Status: Fixed (was: Started)

Comment 59 by sjg@google.com, Sep 1 2017

Blockedon: 761227
Also  crbug.com/761227  - we need to show the model alongside each version with chromeos-firmwareupdate -V

Comment 60 by sjg@chromium.org, Sep 7 2017

Status: Started (was: Fixed)
Yes more work is needed here.
Project Member

Comment 61 by bugdroid1@chromium.org, Sep 8 2017

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

commit a504aa056a75cf60c1a7925b9cb6d70dfba07265
Author: Simon Glass <sjg@chromium.org>
Date: Fri Sep 08 04:21:22 2017

cros-unibuild: Tidy up the _noroot() functions

These all use common code. Put it into a function to avoid repetition.

BUG= chromium:741043 
TEST=emerge-coral chromeos-firmware-coral
See that it still works the same as before

Change-Id: Iacdecdac5076159f0ab1d9363417496695eb2953
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/656081
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/a504aa056a75cf60c1a7925b9cb6d70dfba07265/eclass/cros-unibuild.eclass

Project Member

Comment 62 by bugdroid1@chromium.org, Sep 8 2017

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

commit fd08be716ab213baff5759d01d6cff9d7a61affe
Author: Simon Glass <sjg@chromium.org>
Date: Fri Sep 08 04:21:23 2017

Move model handling for SRC_URI into a function

We currently process each model to look for

BUG= chromium:741043 
TEST=emerge-coral chromeos-firmware-coral
See that it still works as before

Change-Id: I00c686c9471a044546cb7f67edd99eb7221fd2bd
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/656082
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/fd08be716ab213baff5759d01d6cff9d7a61affe/eclass/cros-firmware.eclass

Project Member

Comment 63 by bugdroid1@chromium.org, Sep 9 2017

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

commit 8f1e0853c1a2c85ea140c2df4912935dd21e8a5d
Author: Simon Glass <sjg@chromium.org>
Date: Sat Sep 09 00:36:17 2017

cros-firmware: Handle downloading of shared firmware correctly

When a model does not have its own firmware we should not try to download
an image for it from BCS. It will likely not be there, and we don't need
it anyway.

Process shared firmware in the family separately at the start. Then when
we work through the models, skip models which use shared firmware.

BUG=b:65431038, chromium:741043 
TEST=emerge-coral --nodeps chromeos-firmware-coral
See that we now get just the coral tarballs from distdir:
 * Coral.9899.0.0.tbz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                              [ ok ]
 * Coral_EC.9899.0.0.tbz2 SHA256 SHA512 WHIRLPOOL size ;-) ...                                                           [ ok ]

Change-Id: Ib42478ff29b983f097dd38154fb17105c5895f69
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/655770
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/8f1e0853c1a2c85ea140c2df4912935dd21e8a5d/eclass/cros-unibuild.eclass
[modify] https://crrev.com/8f1e0853c1a2c85ea140c2df4912935dd21e8a5d/eclass/cros-firmware.eclass

Comment 64 by sjg@chromium.org, Sep 21 2017

Status: Fixed (was: Started)
Claiming victory (again)

Project Member

Comment 65 by bugdroid1@chromium.org, Sep 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform2/+/f919dcf5394d81182d53d50ac14ae4c89486955e

commit f919dcf5394d81182d53d50ac14ae4c89486955e
Author: Simon Glass <sjg@chromium.org>
Date: Thu Sep 21 15:35:36 2017

chromeos-config: Update firmware pinning instructions

If only a single version needs to be pinned or we don't mind duplicating
files then we can provide a simpler set of instructions. Add a note about
this.

BUG= chromium:741043 
TEST=FEATURES=test emerge-coral chromeos-config-tools

Change-Id: I79989a725c979edda77b3e574d17cd1126776473
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/673606
Reviewed-by: C Shapiro <shapiroc@google.com>

[modify] https://crrev.com/f919dcf5394d81182d53d50ac14ae4c89486955e/chromeos-config/README.md

Sign in to add a comment