Skip to content

Commit 3e25b80

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 3e25b80

File tree

1 file changed

+23
-14
lines changed
  • framework_lib/src/chromium_ec

1 file changed

+23
-14
lines changed

framework_lib/src/chromium_ec/mod.rs

Lines changed: 23 additions & 14 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
}
@@ -777,34 +781,39 @@ impl CrosEc {
777781
self.flash_notify(MecFlashNotify::AccessSpiDone)?;
778782
self.flash_notify(MecFlashNotify::FirmwareDone)?;
779783

780-
println!("Flashing EC done. You can reboot the EC now");
781-
// TODO: Should we force a reboot if currently running one was reflashed?
784+
if res.is_ok() {
785+
println!("Flashing EC done. You can reboot the EC now");
786+
}
782787

783788
Ok(())
784789
}
785790

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

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

799812
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-
);
813+
if chunk_no != 0 {
814+
println!();
815+
}
816+
print!(" Chunk {:>4}: X", chunk_no);
808817
} else {
809818
print!("X");
810819
}

0 commit comments

Comments
 (0)