diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2014-12-03 10:49:48 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-12-05 00:02:06 +0000 |
commit | 63704fd11b1858d9438f6bfefcc0b304c43644ad (patch) | |
tree | bb353017ff03af633d66bf0bf9859084ab5b45f5 /common | |
parent | 2777252a2093fa91a4f905314b288ac970d6076c (diff) | |
download | chrome-ec-63704fd11b1858d9438f6bfefcc0b304c43644ad.tar.gz |
Remove extra EAh at end of RW image.
EAh is used at the end marker for calculating hash in EC.
The extra EAh make hash calculated by EC different from calculated in host
by sha256sum for the RW image. The RO image is fine.
Fix a comment, no A,B images anymore.
BUG=chromium:438326
TEST=Check sha256sum is similar for Ryu EC image.
On EC console
> hash rw
[28.740271 hash start 0x00010000 0x0000ea24]
> [28.938875 hash done e2c40d0168ce4b20e8320438c7fc719d2188d7f88d9cb7ca694527b3f507e534]
sha256sum of built image:
sha256sum build/ryu_p1/ec.RW.flat
e2c40d0168ce4b20e8320438c7fc719d2188d7f88d9cb7ca694527b3f507e534
build/ryu_p1/ec.RW.flat
TEST=Check firmware upgrade still works:
Using a modify version of coreboot with
- ryu_p1 as main ec firmware
- code to reenable SW sync: CL:233222
Ryu with an older image:
cros_ec_init: CrosEC protocol v3 supported (128, 128)
Google ChromeOS EC driver ready, id 'ryu_p1_v1.1.2570-942248a'
Clearing the recovery request.
VbEcSoftwareSync(devidx=0)
EC hash:e2c40d0168ce4b20e8320438c7fc719d2188d7f88d9cb7ca694527b3f507e534
EC-RW hash address, size are 0x835b4ff8, 32.
Hash = b183cd58d668d3d42a7cec95f2dcbb8ddee33f6a42d873f4b78106f85d341b46
Expected hash:b183cd58d668d3d42a7cec95f2dcbb8ddee33f6a42d873f4b78106f85d341b46
EC-RW firmware address, size are 0x837f9374, 59924.
VbEcSoftwareSync() - expected len = 59924
Computed hash of expected
image:b183cd58d668d3d42a7cec95f2dcbb8ddee33f6a42d873f4b78106f85d341b46
VbEcSoftwareSync() updating EC-RW...
VbEcSoftwareSync() jumping to EC-RW
VbEcSoftwareSync() jumped to EC-RW
VbEcSoftwareSync() in RW; done
Check that at next reboot the firmware is not upgraded:
cros_ec_init: CrosEC protocol v3 supported (128, 128)
Google ChromeOS EC driver ready, id 'ryu_p1_no_version'
Clearing the recovery request.
VbEcSoftwareSync(devidx=0)
EC hash:b183cd58d668d3d42a7cec95f2dcbb8ddee33f6a42d873f4b78106f85d341b46
EC-RW hash address, size are 0x835b4ff8, 32.
Hash = b183cd58d668d3d42a7cec95f2dcbb8ddee33f6a42d873f4b78106f85d341b46
Expected hash:b183cd58d668d3d42a7cec95f2dcbb8ddee33f6a42d873f4b78106f85d341b46
VbEcSoftwareSync() in EC-RW and it matches
BRANCH=ToT
Change-Id: I2db275a16b16fbcea95f53287e95104ba921593e
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232952
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/firmware_image.S | 3 | ||||
-rw-r--r-- | common/firmware_image.lds.S | 1 |
2 files changed, 2 insertions, 2 deletions
diff --git a/common/firmware_image.S b/common/firmware_image.S index 7ceb20bffe..fa79849982 100644 --- a/common/firmware_image.S +++ b/common/firmware_image.S @@ -2,7 +2,8 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * - * Build the full image with up to 3 copies (Read only, A, B) of the program + * Build the full image with up to 2 copies (Read only, Read write) + * of the program */ #include "config.h" diff --git a/common/firmware_image.lds.S b/common/firmware_image.lds.S index c655b4856d..e2de7a2c1c 100644 --- a/common/firmware_image.lds.S +++ b/common/firmware_image.lds.S @@ -20,7 +20,6 @@ SECTIONS . = ALIGN(CONFIG_FLASH_BANK_SIZE); .image.RW : AT(CONFIG_FLASH_BASE + CONFIG_FW_RW_OFF) { *(.image.RW) - BYTE(0xEA) /* Mark end explicitly */ } > FLASH =0xff .padding : AT(CONFIG_FLASH_BASE + CONFIG_FLASH_SIZE - 1) { BYTE(0xff); |