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

Issue 915013 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Dec 19
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

[daisy] Firmware didn't update after AU R70-11021.81.0 to R71-11151.59.0

Project Member Reported by mkarkada@chromium.org, Dec 13

Issue description

Chrome OS Version: 11151.59.0, 71.0.3578.94 stable channel daisy

What steps will reproduce the problem?
(1) Perform AU from R70-11021.81.0 to R71-11151.59.0
(2)
(3)

What is the expected result?
Firmware should be updated from Google_Snow.2695.117.0 to Google_Snow.2695.132.0 after AU.

What happens instead?
Although AU is successful, firmware didn't get updated after AU.

Attached update engine logs
 
update_engine.20181213-120509.txt
53.8 KB View Download
Cc: yungleem@chromium.org bhthompson@chromium.org djmm@chromium.org
Labels: ReleaseBlock-Stable
Summary: [daisy] Firmware didn't update after AU R70-11021.81.0 to R71-11151.59.0 (was: Firmware didn't update after AU R70-11021.81.0 to R71-11151.59.0)
Blocking Daisy from M71 Stable
+raju to take a look.
Labels: -Pri-1 Pri-0
Raising the priority since this is blocking daisy from making stable
Cc: hungte@chromium.org norvez@chromium.org
Update engine logs seem fairly normal. Norvez, can you confirm?

Cloning firmware B to A...
flashrom v0.9.9  : fc12893 : Sep 19 2018 23:31:14 UTC on Linux 3.8.11 (armv7l)
read_from_file failed to read 655360 bytes
No fmap entries found in /tmp/tmp.jwzXnWdlLS
Reading flash... SUCCESS
flashrom v0.9.9  : fc12893 : Sep 19 2018 23:31:14 UTC on Linux 3.8.11 (armv7l)
Erasing and writing flash chip... SUCCESS
INFO: /usr/sbin/chromeos-setgoodfirmware: Active vboot1 firmware set as good firmware.

...

Starting firmware updater (//usr/sbin/chromeos-firmwareupdate --mode=autoupdate)
Command: //usr/sbin/chromeos-firmwareupdate --mode=autoupdate
Starting Google_Snow firmware updater v5 (autoupdate)...
>> Firmware updater started.
quirk_daisy_snow_dual_model: Platform version: x8 (original value: MP)
>> Target image: bios.bin (RO:Google_Snow.2695.132.0, RW/A:Google_Snow.2695.117.0, RW/B:Google_Snow.2695.117.0).
>> Current system: /tmp/fwupdater.rjU0FE (RO:Google_Snow.2695.90.2, RW/A:Google_Snow.2695.117.0, RW/B:Google_Snow.2695.117.0).
>> Write protection: 1 (enabled; HW=1, SW=1).
Checking compatibility...
Checking RW_SECTION_A contents...
>> No need to update.
>> DONE: Firmware updater exited successfully.
Firmware update (autoupdate) completed.
Finished after 11 seconds.
Firmware update completed.
cr50 setup complete.
ChromeosChrootPostinst complete
Syncing filesystem at end of postinst...

Hung-Te, do you see anything odd w.r.t. handling daisy code paths?
Cc: ahass...@chromium.org
+ahassani@ is the update engine expert, but I don't see anything wrong

Looking at this:
"
Target image: bios.bin (RO:Google_Snow.2695.132.0, RW/A:Google_Snow.2695.117.0, RW/B:Google_Snow.2695.117.0).
"

Seems like the BIOS image is incorrect? RW is version .117.0. Bad uprev CL?
Cc: vapier@chromium.org
Owner: hungte@chromium.org
Tentatively assigning to hungte@. Maybe https://chrome-internal-review.googlesource.com/c/chromeos/overlays/overlay-daisy-private/+/684050/ has something to do with it?
I think RW firmware in the updater must be >= RO but the logs in the comment 0 showing it < RO.
  >> Target image: bios.bin (RO:Google_Snow.2695.132.0, RW/A:Google_Snow.2695.117.0, RW/B:Google_Snow.2695.117.0).


extracted 11151.65.0 MP image and here is output.

~/trunk/src/scripts $ ./mount_gpt_image.sh -f ../bios/ -i stable-channel_daisy_11151.65.0_chromeos_11151.65.0_daisy_recovery_stable-channel_snow-mp-v4.bin
mount: /tmp/m/var: special device /tmp/s/var_overlay does not exist.


~/trunk/src/scripts $ /tmp/m/usr/sbin/chromeos-firmwareupdate -V
BIOS image:   4447c818089f0de84f832ad34333dfed */build/daisy/tmp/portage/chromeos-base/chromeos-firmware-daisy-0.0.1-r242/work/chromeos-firmware-daisy-0.0.1/.dist/Snow.x16_2695.132_x8_2695.117.tbz2/bios-snow-2695.132.117-rw.bin
BIOS version: Google_Snow.2695.132.0

Package Content:
3c3a99346d1ca1273cbcd86c104851ff *./shflags
7265a3147a73672ab38a378be9ef9247 *./common.sh
d47c4c0224b649e8339c5576b8e670bb *./updater5.sh
bddb2f0f289f162de5629ae8926bce40 *./VERSION.signer
c5104e7636f5e0e5314dbee69176b116 *./bios.bin
f8e5622b0856962965d385541c5cd371 *./crosutil.sh
4fde57b0e7e462ced5285f566fe8ff7a *./crosfw.sh

Signed with keyset in /tmp/signer.keydir.vT6ENA/cros/keys/SnowMPKeys-v4 .
recovery: 13b0ddf343bb0c325b178e5be138d4969a9e02be
List sha1sum of single key's signature:
  root: a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799

Cc: dgoyette@chromium.org kmshelton@chromium.org
Cc: dchan@chromium.org
Cc: kbleicher@chromium.org

They are different platform version:

mosys platform version

 There may be few results:

  DVT, PVT, PVT2, MP => x8
  MP2, MPx16 => x16

see crbug/894324
Status: WontFix (was: Untriaged)
Work as intended.

Firmware updater does not compare versions, so there's no rule about RO < RW, although that is "usually (99%)" true.

Daisy is a special platform that it has diverged firmware for different platforms without creating a variant (or something like unibuild) and messed up, as dchan listed in c#12 ( issue 894324 ).

For AU, there's nothing wrong from what updater reported. Although, there's one thing in output I may have missed - in https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1239798/12/futility/updater_quirks.c#213 , I should clone RO version as well.
An improvement to the output is in https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1383631 but I don't think that needs to be cherry-picked.
Project Member

Comment 15 by bugdroid1@chromium.org, Dec 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/45964294fa4605e19d844b1f7165c2b48edc0554

commit 45964294fa4605e19d844b1f7165c2b48edc0554
Author: Hung-Te Lin <hungte@chromium.org>
Date: Wed Dec 19 09:13:04 2018

futility: updater: Correct output version for Snow

In quirk daisy_snow_dual_model, after RO is preserved the actual RO
version should be updated as well from current image. Without this,
reported version may look weird as RO=132, RW=117.

BRANCH=None
BUG= chromium:915013 
TEST=make futil; tests/futility/run_test_scripts.sh $(pwd)/build/futility

Change-Id: I1bc6c47a8bd548265fd654dae6ab2a5971d59a1c
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1383631
Reviewed-by: Duncan Laurie <dlaurie@google.com>

[modify] https://crrev.com/45964294fa4605e19d844b1f7165c2b48edc0554/futility/updater_quirks.c

Cc: -sdantul...@chromium.org ka...@chromium.org sontis@chromium.org
Labels: -Pri-0 Pri-1
Owner: ka...@chromium.org
+raju
was the device functional after FW update?

I think the confusion is that daisy listed as firmware 132 (https://screenshot.googleplex.com/qirbN0g190Z) but after AU, the RW FW remains at 117.  Since daisy has 2 versions, one need to remain as 117 while other to 132 (someone correct me if I am mistaken here).

+sontis to try on x16 daisy, if that turns out ok, we can go ahead and release daisy

If 

M71_11151.59.0 recovery is working fine on both x8 and x16 daisy devices.
Reg c#16
 yes device functional after update.
After double checking with hungte, this is confirmed as WAI.

Due to reasons, we have x8 and x16 for Daisy devices, but GE can not distinguish it.

Besides, there is a CL (see comment 14) provided by hungte that will clone the proper RO version, Google_Snow.2695.90.2 in this case. It's on ToT, and nice to have, but won't impact the overall functionality.

By checking comment 17, sontis@ also confirm recovery works fine on both x8 and x16 devices.
 
Hence, we would say that this bug should not be a release blocker for m71.
Labels: -ReleaseBlock-Stable
Thanks all, I'll remove the RBS and ping the MP to release for M71-STABLE-1 
Is crbug/917581 a DUP and/or Fix of this issue?
No, 917581 is a different issue from this one. That would cause update to fail on certain type of devices.

Sign in to add a comment