Read metadata to find FW binary location Returns row_start, fw_size
(
file_buffer: &[u8],
flash_row_size: usize,
metadata_offset: u32,
ccgx: SiliconId,
)
| 101 | /// Read metadata to find FW binary location |
| 102 | /// Returns row_start, fw_size |
| 103 | fn read_metadata( |
| 104 | file_buffer: &[u8], |
| 105 | flash_row_size: usize, |
| 106 | metadata_offset: u32, |
| 107 | ccgx: SiliconId, |
| 108 | ) -> Option<(u32, u32)> { |
| 109 | let buffer = read_256_bytes(file_buffer, metadata_offset, flash_row_size)?; |
| 110 | match ccgx { |
| 111 | SiliconId::Ccg3 => parse_metadata_ccg3(&buffer), |
| 112 | SiliconId::Ccg5 | SiliconId::Ccg6Adl | SiliconId::Ccg6 => parse_metadata_cyacd(&buffer), |
| 113 | SiliconId::Ccg8 => parse_metadata_cyacd2(&buffer) |
| 114 | .map(|(fw_row_start, fw_size)| (fw_row_start / (flash_row_size as u32), fw_size)), |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | /// Read 256 bytes starting from a particular row |
| 119 | fn read_256_bytes(file_buffer: &[u8], row_no: u32, flash_row_size: usize) -> Option<Vec<u8>> { |
no test coverage detected