MCPcopy Index your code
hub / github.com/FrameworkComputer/framework-system / read_metadata

Function read_metadata

framework_lib/src/ccgx/binary.rs:103–116  ·  view source on GitHub ↗

Read metadata to find FW binary location Returns row_start, fw_size

(
    file_buffer: &[u8],
    flash_row_size: usize,
    metadata_offset: u32,
    ccgx: SiliconId,
)

Source from the content-addressed store, hash-verified

101/// Read metadata to find FW binary location
102/// Returns row_start, fw_size
103fn 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
119fn read_256_bytes(file_buffer: &[u8], row_no: u32, flash_row_size: usize) -> Option<Vec<u8>> {

Callers 1

read_versionFunction · 0.85

Calls 4

read_256_bytesFunction · 0.85
parse_metadata_ccg3Function · 0.85
parse_metadata_cyacdFunction · 0.85
parse_metadata_cyacd2Function · 0.85

Tested by

no test coverage detected