Skip to content

Commit ac269af

Browse files
committed
chromium_ec: Simplify flash output a bit
``` Will write flash from 0x40000 to 0x39000 in 1824*128B chunks Writing chunk 0: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 100: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 200: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 300: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 400: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 500: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 600: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 700: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 800: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 900: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1000: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1100: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1200: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1300: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1400: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1500: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1600: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1700: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Writing chunk 1800: XXXXXXXXXXXXXXXXXXXXXXXX ``` Signed-off-by: Daniel Schaefer <[email protected]>
1 parent 0a6f8a7 commit ac269af

File tree

1 file changed

+20
-12
lines changed
  • framework_lib/src/chromium_ec

1 file changed

+20
-12
lines changed

framework_lib/src/chromium_ec/mod.rs

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -742,14 +742,16 @@ impl CrosEc {
742742

743743
println!("Erasing RW region");
744744
self.erase_ec_flash(FLASH_BASE + FLASH_RW_BASE, FLASH_RW_SIZE)?;
745+
println!(" Done");
745746

746747
println!("Writing RW region");
747748
self.write_ec_flash(FLASH_BASE + FLASH_RW_BASE, rw_data)?;
749+
println!(" Done");
748750

749751
println!("Verifying RW region");
750752
let flash_rw_data = self.read_ec_flash(FLASH_BASE + FLASH_RW_BASE, FLASH_RW_SIZE)?;
751753
if rw_data == flash_rw_data {
752-
println!("RW verify success");
754+
println!(" RW verify success");
753755
} else {
754756
println!("RW verify fail");
755757
}
@@ -760,14 +762,16 @@ impl CrosEc {
760762

761763
println!("Erasing RO region");
762764
self.erase_ec_flash(FLASH_BASE + FLASH_RO_BASE, FLASH_RO_SIZE)?;
765+
println!(" Done");
763766

764767
println!("Writing RO region");
765768
self.write_ec_flash(FLASH_BASE + FLASH_RO_BASE, ro_data)?;
769+
println!(" Done");
766770

767771
println!("Verifying RO region");
768772
let flash_ro_data = self.read_ec_flash(FLASH_BASE + FLASH_RO_BASE, FLASH_RO_SIZE)?;
769773
if ro_data == flash_ro_data {
770-
println!("RO verify success");
774+
println!(" RO verify success");
771775
} else {
772776
println!("RO verify fail");
773777
}
@@ -785,26 +789,30 @@ impl CrosEc {
785789

786790
/// Write a big section of EC flash. Must be unlocked already
787791
fn write_ec_flash(&self, addr: u32, data: &[u8]) -> EcResult<()> {
788-
let info = EcRequestFlashInfo {}.send_command(self)?;
789-
println!("Flash info: {:?}", info);
792+
// TODO: Use flash info to help guide ideal chunk size
793+
// let info = EcRequestFlashInfo {}.send_command(self)?;
790794
//let chunk_size = ((0x80 / info.write_ideal_size) * info.write_ideal_size) as usize;
795+
791796
let chunk_size = 0x80;
792797

793798
let chunks = data.len() / chunk_size;
799+
println!(
800+
" Will write flash from 0x{:X} to 0x{:X} in {}*{}B chunks",
801+
addr,
802+
data.len(),
803+
chunks,
804+
chunk_size
805+
);
794806
for chunk_no in 0..chunks {
795807
let offset = chunk_no * chunk_size;
796808
// Current chunk might be smaller if it's the last
797809
let cur_chunk_size = std::cmp::min(chunk_size, data.len() - chunk_no * chunk_size);
798810

799811
if chunk_no % 100 == 0 {
800-
println!();
801-
print!(
802-
"Writing chunk {:>4}/{:>4} ({:>6}/{:>6}): X",
803-
chunk_no,
804-
chunks,
805-
offset,
806-
cur_chunk_size * chunks
807-
);
812+
if chunk_no != 0 {
813+
println!();
814+
}
815+
print!(" Chunk {:>4}: X", chunk_no);
808816
} else {
809817
print!("X");
810818
}

0 commit comments

Comments
 (0)