| 297 | } |
| 298 | |
| 299 | fn parse_metadata_cyacd2(buffer: &[u8]) -> Option<(u32, u32)> { |
| 300 | let buffer = &buffer[CCG8_METADATA_OFFSET..]; |
| 301 | let (metadata, _) = CyAcd2Metadata::read_from_prefix(buffer).ok()?; |
| 302 | trace!("Metadata: {:X?}", metadata); |
| 303 | if metadata.metadata_valid.get() == CCG8_METADATA_MAGIC { |
| 304 | if metadata.metadata_version.get() == 1 { |
| 305 | Some((metadata.fw_start.get(), metadata.fw_size.get())) |
| 306 | } else { |
| 307 | println!("Unknown CCG8 metadata version"); |
| 308 | None |
| 309 | } |
| 310 | } else { |
| 311 | None |
| 312 | } |
| 313 | } |
| 314 | |
| 315 | #[cfg(test)] |
| 316 | mod tests { |