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

Issue 779438 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Feature



Sign in to add a comment

Implement BCS support in cros_config_host

Project Member Reported by sjg@chromium.org, Oct 30 2017

Issue description

At present we are limping along with the non-AP-firmware files in FILEDIR. This is kind-of OK while the files are small but we should implement BCS support before it is needed.

The existing BCS support in pack_firmware can be repurposed for this, and perhaps moved into libcros_config_host.
 

Comment 1 by sjg@chromium.org, Nov 4 2017

Labels: Unibuild
Note we would prefer non-generated SRC_URI, since generated ones are not really portage compatible, and fragile, causing frequent breakage.
Labels: M-65 OS-Chrome

Comment 4 by sjg@chromium.org, Dec 14 2017

Status: Started (was: Untriaged)
Project Member

Comment 5 by bugdroid1@chromium.org, Dec 18 2017

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

commit d82bd3fe72185d0d7e16f7f6437154208856ca31
Author: Simon Glass <sjg@chromium.org>
Date: Mon Dec 18 06:28:50 2017

cros-unibuild: Add a function to obtain BCS URIs for BSP ebuilds

With unified builds the information needed by BSP ebuilds is specified in
the configuration. In particular it provides a list of files that must be
downloaded for the ebuild to operate. The ebuild thus needs to set up the
SRC_URI variable.

Add a eclass function which does this for the ebuild.

BUG= chromium:779438 
TEST=manually test with reef

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

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

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 18 2017

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

commit c99c4e6320e783a6f923ccf4cafe717dc69fefcc
Author: Simon Glass <sjg@chromium.org>
Date: Mon Dec 18 06:28:51 2017

chromeos-config: Add support for BCS files

At present we require that all firmware files exist in the git repo. This
was a useful way of getting going, but is not desirable. Traditionally we
store larger files in BCS (Binary Cloud Storage) instead. At present
unibuild has no support for this.

Add support for reading touch firmware files from BCS instead of the local
filedir.

BUG= chromium:779438 
TEST=FEATURES=test sudo -E emerge --nodeps chromeos-config-host

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

[modify] https://crrev.com/c99c4e6320e783a6f923ccf4cafe717dc69fefcc/chromeos-config/libcros_config/test.dts
[modify] https://crrev.com/c99c4e6320e783a6f923ccf4cafe717dc69fefcc/chromeos-config/README.md
[modify] https://crrev.com/c99c4e6320e783a6f923ccf4cafe717dc69fefcc/chromeos-config/cros_config_host/libcros_config_host_unittest.py
[modify] https://crrev.com/c99c4e6320e783a6f923ccf4cafe717dc69fefcc/chromeos-config/cros_config_host/cros_config_host.py
[modify] https://crrev.com/c99c4e6320e783a6f923ccf4cafe717dc69fefcc/chromeos-config/cros_config_host/libcros_config_host.py
[modify] https://crrev.com/c99c4e6320e783a6f923ccf4cafe717dc69fefcc/chromeos-config/cros_config_host/validate_config.py

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 23 2017

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

commit 7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6
Author: Simon Glass <sjg@chromium.org>
Date: Sat Dec 23 06:33:06 2017

chromeos-config: Add support for firmware files in tarballs

This updates the get-touch-firmware-files to support obtaining touch
firmware files from BCS. It still supports them being in ${FILESDIR}.

This works as follows:

- SRC_URI is populated with a call to cros_config_host get-bsp-uris
- Source filenames are obtained by cros_config_host get-touch-firmware-files

The output of the latter is updated to include three lines per file:

- source filename
- destination filename (in /opt/google/touch/firmware)
- symlink filename (in /lib/firmware)

The source filename is either in the tarfile downloaded from BCS (if a bcs
property is provided by the config) or in the ebuild's files/ directory.

Furture work should look at using a similar mechanism for the firmware
packer.

BUG= chromium:779438 
TEST=sudo emerge -q --nodeps chromeos-config-host
emerge-reef chromeos-bsp-reef-private
See that it picks up some files from tar file and some from filesdir

Change-Id: I953467cc268a83560e72f7ba36e0bbb2ec2aca36
Signed-off-by: Simon Glass <sjg@chromium.org>

[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/v2/libcros_config_host_json.py
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/v2/cros_config_schema.yaml
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/README.md
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/libcros_config_host_unittest.py
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/cros_config_host.py
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/v2/libcros_config_host_json_unittest.py
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/libcros_config_host.py
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/libcros_config/test.dts
[modify] https://crrev.com/7a9b4b8d04a5781d371eda0d3d1bb4d615c013d6/chromeos-config/cros_config_host/validate_config.py

Project Member

Comment 8 by bugdroid1@chromium.org, Dec 26 2017

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

commit 2855d356c54f305ab467be974ce4692dacfdd1c4
Author: Simon Glass <sjg@chromium.org>
Date: Tue Dec 26 23:57:04 2017

cros-unibuild: Update the touch firmware class to support BCS

Now that cros_config supports 3-tuple output from
get-touch-firmware-files, update the eclass to suit. This moves all
knowledge of directory names into cros_config.

BUG= chromium:779438 
TEST=sudo emerge -q --nodeps chromeos-config-host
emerge-reef chromeos-bsp-reef-private
See that it picks up some files from tar file and some from filesdir
Needs test on coral also

Change-Id: I424ecf8221cb815ccd10b47ec043242d74716e51
Signed-off-by: Simon Glass <sjg@chromium.org>

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

Comment 9 by sjg@chromium.org, Jan 2 2018

Status: Fixed (was: Started)
Project Member

Comment 10 by bugdroid1@chromium.org, Mar 16 2018

Labels: merge-merged-factory-fizz-10167.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/d8fc15be5ccdc788333da574a17a1293a6fb6ec2

commit d8fc15be5ccdc788333da574a17a1293a6fb6ec2
Author: Simon Glass <sjg@chromium.org>
Date: Fri Mar 16 02:34:40 2018

cros-unibuild: Add a function to obtain BCS URIs for BSP ebuilds

With unified builds the information needed by BSP ebuilds is specified in
the configuration. In particular it provides a list of files that must be
downloaded for the ebuild to operate. The ebuild thus needs to set up the
SRC_URI variable.

Add a eclass function which does this for the ebuild.

BUG= chromium:779438 
TEST=manually test with reef

Change-Id: I22ebc9dcda4bfd6c5f9795a34f7be373f126ec75
Reviewed-on: https://chromium-review.googlesource.com/828021
Commit-Ready: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
(cherry picked from commit d82bd3fe72185d0d7e16f7f6437154208856ca31)
Reviewed-on: https://chromium-review.googlesource.com/963594
Commit-Queue: YH Lin <yueherngl@chromium.org>
Tested-by: YH Lin <yueherngl@chromium.org>

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

Project Member

Comment 11 by bugdroid1@chromium.org, Mar 16 2018

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

commit 23c361581037ac8c459b3a6f199546777eafb5ac
Author: Simon Glass <sjg@chromium.org>
Date: Fri Mar 16 02:34:42 2018

cros-unibuild: Update the touch firmware class to support BCS

Now that cros_config supports 3-tuple output from
get-touch-firmware-files, update the eclass to suit. This moves all
knowledge of directory names into cros_config.

BUG= chromium:779438 
TEST=sudo emerge -q --nodeps chromeos-config-host
emerge-reef chromeos-bsp-reef-private
See that it picks up some files from tar file and some from filesdir
Needs test on coral also

Change-Id: I424ecf8221cb815ccd10b47ec043242d74716e51
Signed-off-by: Simon Glass <sjg@chromium.org>
(cherry picked from commit 2855d356c54f305ab467be974ce4692dacfdd1c4)
Reviewed-on: https://chromium-review.googlesource.com/964622
Reviewed-by: Patrick Berny <pberny@chromium.org>
Tested-by: YH Lin <yueherngl@chromium.org>
Commit-Queue: YH Lin <yueherngl@chromium.org>

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

Sign in to add a comment