summaryrefslogtreecommitdiff
path: root/chip
diff options
context:
space:
mode:
authorKor Nielsen <kor@google.com>2018-06-26 14:39:17 -0700
committerDaisuke Nojiri <dnojiri@chromium.org>2018-07-16 08:46:34 -0700
commit867479b7a9422c554dda170d9f3acd67bb49e032 (patch)
treee69f4b82d70dfe613d4aeb2ec490aa3d17f25673 /chip
parent3926050d8cb872cb8fdf72c51254cabaa9b97b98 (diff)
downloadchrome-ec-867479b7a9422c554dda170d9f3acd67bb49e032.tar.gz
Update signed_header.h with additional fields.
BRANCH=none BUG=None TEST=make buildall -J Change-Id: Ic5590bea4577c1d249cb628389fb930ef20fc9d2 Signed-off-by: Kor Nielsen <kor@google.com> Reviewed-on: https://chromium-review.googlesource.com/1115906 Tested-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Marius Schilder <mschilder@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'chip')
-rw-r--r--chip/g/signed_header.h36
1 files changed, 30 insertions, 6 deletions
diff --git a/chip/g/signed_header.h b/chip/g/signed_header.h
index 26a85aebf3..c59909b958 100644
--- a/chip/g/signed_header.h
+++ b/chip/g/signed_header.h
@@ -45,12 +45,36 @@ struct SignedHeader {
uint32_t err_response_;
/* action to take when expectation is violated */
uint32_t expect_response_;
- /*
- * Padding to bring the total structure size to 1K. Note: First 17
- * words of _pad[] may be used by a second FIPS-compliant signature,
- * so don't put anything there.
- */
- uint32_t _pad[23];
+
+ union {
+ // 2nd FIPS signature (gnubby RW / Cr51)
+ struct {
+ uint32_t keyid;
+ uint32_t r[8];
+ uint32_t s[8];
+ } ext_sig;
+
+ // FLASH trim override (Dauntless RO)
+ // iff config1_ & 65536
+ struct {
+ uint32_t FSH_SMW_SETTING_OPTION3;
+ uint32_t FSH_SMW_SETTING_OPTION2;
+ uint32_t FSH_SMW_SETTING_OPTIONA;
+ uint32_t FSH_SMW_SETTING_OPTIONB;
+ uint32_t FSH_SMW_SMP_WHV_OPTION1;
+ uint32_t FSH_SMW_SMP_WHV_OPTION0;
+ uint32_t FSH_SMW_SME_WHV_OPTION1;
+ uint32_t FSH_SMW_SME_WHV_OPTION0;
+ } fsh;
+ } u;
+
+ /* Padding to bring the total structure size to 1K. */
+ uint32_t _pad[5];
+ struct {
+ unsigned size:12;
+ unsigned offset:20;
+ } swap_mark;
+
/* Field for managing updates between RW product families. */
uint32_t rw_product_family_;
/* Board ID type, mask, flags (stored ^SIGNED_HEADER_PADDING) */