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

Issue 732538 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Jun 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 690573



Sign in to add a comment

reef-uni: RW FW update doesn't seem to be working

Project Member Reported by yueherngl@chromium.org, Jun 12 2017

Issue description

With legacy reef build on ToT,

~/trunk/src/scripts $ /build/reef/usr/sbin/chromeos-firmwareupdate -V

....
BIOS image:   1b535280fe688ac284d95276492b06f6 *chromeos-firmware-reef-0.0.1/.dist/Reef.9042.87.1.tbz2/image.bin
BIOS version: Google_Reef.9042.87.1
BIOS (RW) image:   0ef265eb8f2d228c09f75b011adbdcbb *chromeos-firmware-reef-0.0.1/.dist/Reef.9042.110.0.tbz2/image.bin
BIOS (RW) version: Google_Reef.9042.110.0
EC image:     2e8b4b5fa73cc5dbca4496de97a917a9 *chromeos-firmware-reef-0.0.1/.dist/Reef_EC.9042.87.1.tbz2/ec.bin
EC version:reef_v1.1.5900-ab1ee51
EC (RW) version: reef_v1.1.5909-bd1f0c9
....

With https://chrome-internal-review.googlesource.com/#/c/392828/ to sync the RW FW version under reef-uni. We have

~/trunk/src/scripts $ /build/reef-uni/usr/sbin/chromeos-firmwareupdate -V
....
BIOS image:   1b535280fe688ac284d95276492b06f6 */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-9999/temp/tmpgh36gV.pack_firmware-5868/models/reef/image.bin
BIOS version: Google_Reef.9042.87.1
EC image:     2e8b4b5fa73cc5dbca4496de97a917a9 */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-9999/temp/tmpgh36gV.pack_firmware-5868/models/reef/ec.bin
EC version:   reef_v1.1.5900-ab1ee51
....

Note in comparison that few RW lines are missing.

 
Summary: reef-uni: RW FW update doesn't seem to be working (was: reef-uni: RW FW update)
By wiping the setup (via ./setup_board --board=reef-uni --force) reef-uni build failed as file Reef.9042.110.0.tbz2 cannot be found.

Comment 3 by sjg@chromium.org, Jun 13 2017

Cc: sjg@chromium.org
Owner: yueherngl@chromium.org
Hi, can you please explain what the problem is here? Sorry but I don't follow this.
It's probably a bit easier from legacy reef build's perspective. With firmware-updater, not only it can do RO/RW update, but it needs to do RW-only update as well. An example is the current setup (chromeos-firmware-reef-9999.ebuild), with 

CROS_FIRMWARE_MAIN_IMAGE="bcs://Reef.9042.87.1.tbz2"
CROS_FIRMWARE_MAIN_RW_IMAGE="bcs://Reef.9042.110.0.tbz2"
CROS_FIRMWARE_EC_IMAGE="bcs://Reef_EC.9042.87.1.tbz2"

9042.87.1 is the RO version and 9042.110.0 is the RW version. The firmware updater it builds will include both versions (as seen above).

Under reef-uni, we should be able to do the same thing (via https://chrome-internal-review.googlesource.com/#/c/392828/). However, this is not working --
 with fresh tree the build will fail with file not found message.

Thanks.

Comment 5 by sjg@google.com, Jun 15 2017

Owner: sjg@chromium.org
Status: Started (was: Untriaged)

Comment 6 by sjg@google.com, Jun 15 2017

Owner: ----
I'm not sure about file not found. You might need to cros_workon chrome-os-firmware-reef? In any case there are additions needed to the manifest.


I think these are the steps I did just now:

patch in CL *392828

# get the new config
cros_workon --board=reef-uni start chromeos-config-bsp
emerge-reef-uni -q chromeos-config-bsp
fdtdump /build/reef-uni/usr/share/chromeos-config/config.dtb
(to check that it looks right)

emerge-reef-uni --nodeps chromeos-firmware-reef


The manifest additions are below. You can find them with something like:

cd ~/cosarm/src/platform/firmware
PYTHONPATH=~/cosarm ./convert_to_model.py -m reef-uni

but there is a bug in it. I will send a CL for that. In the meantime you can use the below:

DIST Pyro.9042.110.0.tbz2 3629427 SHA256 f88f54d1583b46e3aec9a903bcc2ce4749d118a41ce87ae8272ec63440c662d7 SHA512 f5bfd9f24a07c83a49e5e25cd4ff36c23f438824f2235ecdc5767143b334de372c91f27e499c64ef4fbe3ff7c86eaf1d4b5270477b2a396c751cc8cfa8024b7c WHIRLPOOL 465f4c884838c1d5353a7a4cb788a9ff5628f3d3349571e40a43b7c82916659cfe14a58e37cba1b0023d3981dfec9248cfc55f4fadd579de2ff34b7c2fc724a3
DIST Pyro.9042.87.1.tbz2 3624007 SHA256 5126b7d694ca9724c4d8da77fa386854ebe0adeca97c2097baa1b58c70c2fae3 SHA512 dad76424b9e7ab3eb0659b05803def562ebed7e34074a968aaddcd2572f61219542923c24575ca05c598b3735842764da87721b79d7fcf7300c8eac694b10758 WHIRLPOOL 7dfad493bf63aab3bc55e1e375683b846ac1f198a4e385b8809da19a285e47180a7ea5f8a811ce71b56a8fdadbe37fe49840fa61318236140adb1cddb31d8c11
DIST Pyro_EC.9042.87.1.tbz2 115508 SHA256 64b696d25f4ffcb2fdf240e37a94eb07ac92185ea144e880a8878007ec3919cc SHA512 f125ab5d9a30b163b5d5e37a8bb45e4ea386bdc01f216ed39868b2f1a71f17121e84e623a148aec78f9606b1bbea2f3e0946a45ae0a38e2b005426c9818ddffa WHIRLPOOL 6aff08e21fd4837ac6013a0e997b6171944b7de9471f0aef4b2d309c5084ab9b2ae00811277e0c283b3a9100b3b7a6d6a2d7a0e81542507c76d0cebf6c43b9e7
DIST Reef.9042.110.0.tbz2 3635874 SHA256 6c2198df47507fc6c3873ed4a5704f3bb60a9bb0242391ba0c0e3eb97c6265d1 SHA512 e0fa98c2ccda670946feec3b2e2cd032be56fdec53691d5a06cadf136da4104e02ec6c9f8895129bbfa6ef4d5f39d342695b88c978219d0fc2a3eaf5019ae3ed WHIRLPOOL a1e2bf5c649532e22cde2fe27de18eb5cebc6bab914fcb5f72eab09e3ad46bc42b118399aac974d2925e5310f5ed357ea4e3d0a5fd79f15ed9d29ef3f6ce4eb4
DIST Reef.9042.87.1.tbz2 3628027 SHA256 836f6037a19270dcda2c1f454e5c7ae60a6d7661e6d54f5dea8b94c0c330123f SHA512 a5ad6040ab86951de686a99c77bf1296475b9a7a58e94252e1a9f725c7ef6b2a67c29500f83176880287be101b2a4c61a9c91c9af76716fc45021be3eb449510 WHIRLPOOL 7c46abea096e762c2d88d0cb9fcde7d713ea8ac12888be303cc19bd6c0861926473b4bf3ce7ed0f168528d8ff9cfe74c12c65b1330924eafb87598a0a9cbf9a8
DIST Reef_EC.9042.87.1.tbz2 118592 SHA256 6cf307d76354ac949634d553ccd79be697ba7e0c5c2d517794c0f6ba66e24b0d SHA512 4f9862795b75ad04b1bf24d521066de446e676328872bfc751e2f696737f585acfe903ffbbc76e40a6659dd6aad7838623b92bcdff61082bf19d237293bce176 WHIRLPOOL 8c6e3140a6650ecd37525284e15d896824b82cd876b570778753e7ce7e83899d131534c72ac2e2d6a279ee3d0393a2edfae9fef859b7b578a307b759933a802d
DIST Snappy.9042.110.0.tbz2 3630027 SHA256 39d9e3059bc43d402f6cb61d76c6af0ffc481732383dae6f73b7c24b4cdc5300 SHA512 a8e2fde141e557da3c5280ebc78a12a1bee511fd421398c761c6a438fc3c08667909e18f0d661fb205914953f7d791825a411e6dec2d3382770e6b6ceaec34a8 WHIRLPOOL 7fd0a81ac28619461e06a54961818ca5e9056945d4aa44c9323d86153fd92fa88fc320fc783e578a7a1a9069bbe011826101d2404410da87466fb357b0e234b5
DIST Snappy.9042.87.1.tbz2 3624413 SHA256 21f27519f27940fc6feed23c8bbab4d5882199397fe6356bd2278ffe9e9583e5 SHA512 b435877579512877c45ae767cbb30a1317a186adedf0e454315b6b140148798072db2c2d8ea0fc56f390514b35ccbdb45c5a727237adbdcd24e2d7bb22d5903f WHIRLPOOL 069c1146917f15cb01ad29fb3cf918548a817d25149d812e108fdc4d64fac9a39ab183f60730c2eccbaebdfbe15646a82a6692d31e4663ce10987d2db5a2240a
DIST Snappy_EC.9042.87.1.tbz2 116215 SHA256 57d91b7c1ee9e316992c4c163fe4270787e26157401204dcaf1941f037b1fa60 SHA512 0c8bb4268b68d28ca2a76bd54a93b05d60eb2c79a739a5edff915a0558e685d9324c8e991cefb675ed5a4c872e1aa60b4ef565e51b95ad2d0fb41c0ca4fbf5cf WHIRLPOOL c51d91025c2391846bcc41793ce39e33ebbbe15881c47528771c26413000ac74a0d8d71db8e4a6ebedbfe163016f8c7f89c65b5b22b83de4cdd1bde16ea843cf



Comment 7 by sjg@google.com, Jun 15 2017

Blocking: 690573

Comment 8 by sjg@google.com, Jun 15 2017

Here's a CL for the convert_to_model problem:

https://chromium-review.googlesource.com/c/537178/

Comment 9 by sjg@google.com, Jun 15 2017

I forgot to mention:

emerge-reef-uni chromeos-config

to build the config file.

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 17 2017

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

commit d6d3bc5e9014cec419b8430a840f72a33d336591
Author: Simon Glass <sjg@chromium.org>
Date: Sat Jun 17 00:24:25 2017

convert_to_model: Support the special case for 'reef-uni'

Unfortunately due to the structure of cbuildbot and GoldenEye we are
unable to have the reef overlay produce both unified and non-unified
builds. As a work-around, the 'reef-uni' board was created. Adjust the
script to support this.

Signed-off-by: Simon Glass <sjg@chromium.org>
BUG= chromium:732538 
BUG= chromium:690573 
TEST=PYTHONPATH=~/cosarm ./convert_to_model_unittest.py

Change-Id: I05cb8336aa5580a996e311620307fe3c142252a6
Reviewed-on: https://chromium-review.googlesource.com/537178
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/d6d3bc5e9014cec419b8430a840f72a33d336591/convert_to_model.py
[modify] https://crrev.com/d6d3bc5e9014cec419b8430a840f72a33d336591/convert_to_model_unittest.py

With https://chromium-review.googlesource.com/c/537178/ and https://chrome-internal-review.googlesource.com/#/c/392828/ merged. The build is successful. But the dump from firmware updater is still a bit off.

From legacy reef build,

~/trunk/src/scripts $ /build/reef/usr/sbin/chromeos-firmwareupdate -V

flashrom(8): 1edd4829806e8de0000be2ea29729eb8 */build/reef/usr/sbin/flashrom
             ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=6a8add22245c79387550dd012fadaa336039dc10, stripped
             0.9.9  : f6001b2 : Jun 04 2017 23:11:24 UTC

BIOS image:   1b535280fe688ac284d95276492b06f6 *chromeos-firmware-reef-9999/.dist/Reef.9042.87.1.tbz2/image.bin
BIOS version: Google_Reef.9042.87.1
BIOS (RW) image:   0ef265eb8f2d228c09f75b011adbdcbb *chromeos-firmware-reef-9999/.dist/Reef.9042.110.0.tbz2/image.bin
BIOS (RW) version: Google_Reef.9042.110.0
EC image:     2e8b4b5fa73cc5dbca4496de97a917a9 *chromeos-firmware-reef-9999/.dist/Reef_EC.9042.87.1.tbz2/ec.bin
EC version:reef_v1.1.5900-ab1ee51
EC (RW) version: reef_v1.1.5909-bd1f0c9
....

With reef-uni,

~/trunk/src/scripts $ /build/reef-uni/usr/sbin/chromeos-firmwareupdate -V

flashrom(8): 6a8dde58fa373e11ad83726bfa225d2e */build/reef-uni/usr/sbin/flashrom
             ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=9f3546e86fb6be31498b89489a875787aff049e6, stripped
             0.9.9  : 7aaafd4 : Jun 04 2017 23:10:58 UTC

BIOS image:   0ef265eb8f2d228c09f75b011adbdcbb */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-9999/temp/tmpszHkeG.pack_firmware-160391/models/reef/image.bin
BIOS version: Google_Reef.9042.110.0
BIOS (RW) image:   0ef265eb8f2d228c09f75b011adbdcbb */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-9999/temp/tmpszHkeG.pack_firmware-160391/models/reef/image.bin
BIOS (RW) version: Google_Reef.9042.110.0
EC image:     2e8b4b5fa73cc5dbca4496de97a917a9 */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-9999/temp/tmpszHkeG.pack_firmware-160391/models/reef/ec.bin
EC version:   reef_v1.1.5900-ab1ee51
EC (RW) version: reef_v1.1.5909-bd1f0c9
....

The version of RO BIOS is incorrect (should be Google_Reef.9042.87.1 instead). On the other hand, the versions of EC (RO and RW) looks good.
 

Comment 12 by sjg@google.com, Jun 20 2017

Owner: sjg@chromium.org
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 22 2017

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

commit b53a40d9d49cd520c3f1a5a09e396003ce473d9e
Author: Simon Glass <sjg@chromium.org>
Date: Thu Jun 22 10:34:44 2017

pack_firmware: Support untarring duplicate files

When using RO and RW firmware we unpack two versions of 'image.bin' from
two different tar files. At present these end up in the same file so the
earlier one is overwritten.

Enhance tar unpacking to support adding a suffix to the untarred file to
avoid this problem. This works by untarring to a temporary directory
first, then renaming to the desired final output file. This preserves
file attributes such as the timestamp.

BUG= chromium:732538 
TEST=PYTHONPATH=~/cosarm python ./pack_firmware_unittest.py && \
   PYTHONPATH=~/cosarm python ./pack_firmware_functest.py
Change-Id: I996177863cd9bbc587d655e58be216b50d005f27
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/543642
Reviewed-by: Dan Erat <derat@chromium.org>

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

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 22 2017

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

commit c25379378753a5d6c236a9f698c4c36bf4387f32
Author: Simon Glass <sjg@chromium.org>
Date: Thu Jun 22 10:34:44 2017

pack_firmware: Move mock creation into a shared function

We plan to add another test for RW firmware. Move the mocks into a
function so that they can be reused.

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

Change-Id: Iab8a55fc0a5f9d4a1ab1c1967f5648fb4c7cb985
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/543643
Reviewed-by: Dan Erat <derat@chromium.org>

[modify] https://crrev.com/c25379378753a5d6c236a9f698c4c36bf4387f32/pack_firmware_unittest.py

Status: Verified (was: Started)
As the CLs went in, re-test the build and compare with legacy reef build,

Legacy reef build,

~/trunk/src/scripts $ /build/reef/usr/sbin/chromeos-firmwareupdate -V

flashrom(8): 1edd4829806e8de0000be2ea29729eb8 */build/reef/usr/sbin/flashrom
             ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=6a8add22245c79387550dd012fadaa336039dc10, stripped
             0.9.9  : f6001b2 : Jun 04 2017 23:11:24 UTC

BIOS image:   1b535280fe688ac284d95276492b06f6 *chromeos-firmware-reef-0.0.1/.dist/Reef.9042.87.1.tbz2/image.bin
BIOS version: Google_Reef.9042.87.1
BIOS (RW) image:   0ef265eb8f2d228c09f75b011adbdcbb *chromeos-firmware-reef-0.0.1/.dist/Reef.9042.110.0.tbz2/image.bin
BIOS (RW) version: Google_Reef.9042.110.0
EC image:     2e8b4b5fa73cc5dbca4496de97a917a9 *chromeos-firmware-reef-0.0.1/.dist/Reef_EC.9042.87.1.tbz2/ec.bin
EC version:reef_v1.1.5900-ab1ee51
EC (RW) version: reef_v1.1.5909-bd1f0c9
...

reef-uni build,

~/trunk/src/scripts $ /build/reef-uni/usr/sbin/chromeos-firmwareupdate -V

flashrom(8): 6a8dde58fa373e11ad83726bfa225d2e */build/reef-uni/usr/sbin/flashrom
             ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=9f3546e86fb6be31498b89489a875787aff049e6, stripped
             0.9.9  : 7aaafd4 : Jun 04 2017 23:10:58 UTC

BIOS image:   1b535280fe688ac284d95276492b06f6 */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-0.0.1-r77/temp/tmp6VTZ75.pack_firmware-86404/models/reef/image.bin
BIOS version: Google_Reef.9042.87.1
BIOS (RW) image:   0ef265eb8f2d228c09f75b011adbdcbb */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-0.0.1-r77/temp/tmp6VTZ75.pack_firmware-86404/models/reef/image.binrw
BIOS (RW) version: Google_Reef.9042.110.0
EC image:     2e8b4b5fa73cc5dbca4496de97a917a9 */build/reef-uni/tmp/portage/chromeos-base/chromeos-firmware-reef-0.0.1-r77/temp/tmp6VTZ75.pack_firmware-86404/models/reef/ec.bin
EC version:   reef_v1.1.5900-ab1ee51
EC (RW) version: reef_v1.1.5909-bd1f0c9
...

The versions from reef-uni build match the ones from legacy build.
Mark the bug fixed. Please re-open if in need.
Thanks.

Comment 16 by sjg@google.com, Jun 22 2017

Thanks YH

Sign in to add a comment