Skip to content

Commit 08ed075

Browse files
committed
ec_binary: Make it less misleading if legacy cookie not found
Signed-off-by: Daniel Schaefer <[email protected]>
1 parent e24fbdf commit 08ed075

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

framework_lib/src/ec_binary.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -145,38 +145,39 @@ pub fn parse_ec_version_str(version: &str) -> Option<ImageVersionDetails> {
145145

146146
/// Parse version information from EC FW image buffer
147147
pub fn read_ec_version(data: &[u8], ro: bool) -> Option<ImageVersionData> {
148+
// First try to find the legacy EC version
148149
let offset = if ro {
149150
EC_RO_VER_OFFSET
150151
} else {
151152
EC_RW_VER_OFFSET
152153
};
153-
let offset_zephyr = if ro {
154-
EC_RO_VER_OFFSET_ZEPHYR
155-
} else {
156-
EC_RW_VER_OFFSET_ZEPHYR
157-
};
158-
159154
if data.len() < offset + core::mem::size_of::<_ImageVersionData>() {
160155
return None;
161156
}
162157
let v: _ImageVersionData = unsafe { std::ptr::read(data[offset..].as_ptr() as *const _) };
163158
if v.cookie1 != CROS_EC_IMAGE_DATA_COOKIE1 {
164-
debug!("Failed to find Cookie 1. Found: {:X?}", { v.cookie1 });
159+
debug!("Failed to find legacy Cookie 1. Found: {:X?}", { v.cookie1 });
165160
} else if v.cookie2 != CROS_EC_IMAGE_DATA_COOKIE2 {
166-
debug!("Failed to find Cookie 2. Found: {:X?}", { v.cookie2 });
161+
debug!("Failed to find legacy Cookie 2. Found: {:X?}", { v.cookie2 });
167162
} else {
168163
return parse_ec_version(&v);
169164
}
170165

166+
// If not present, find Zephyr EC version
167+
let offset_zephyr = if ro {
168+
EC_RO_VER_OFFSET_ZEPHYR
169+
} else {
170+
EC_RW_VER_OFFSET_ZEPHYR
171+
};
171172
if data.len() < offset_zephyr + core::mem::size_of::<_ImageVersionData>() {
172173
return None;
173174
}
174175
let v: _ImageVersionData =
175176
unsafe { std::ptr::read(data[offset_zephyr..].as_ptr() as *const _) };
176177
if v.cookie1 != CROS_EC_IMAGE_DATA_COOKIE1 {
177-
debug!("Failed to find Cookie 1. Found: {:X?}", { v.cookie1 });
178+
debug!("Failed to find Zephyr Cookie 1. Found: {:X?}", { v.cookie1 });
178179
} else if v.cookie2 != CROS_EC_IMAGE_DATA_COOKIE2 {
179-
debug!("Failed to find Cookie 2. Found: {:X?}", { v.cookie2 });
180+
debug!("Failed to find Zephyr Cookie 2. Found: {:X?}", { v.cookie2 });
180181
} else {
181182
return parse_ec_version(&v);
182183
}

0 commit comments

Comments
 (0)