@@ -742,14 +742,16 @@ impl CrosEc {
742
742
743
743
println ! ( "Erasing RW region" ) ;
744
744
self . erase_ec_flash ( FLASH_BASE + FLASH_RW_BASE , FLASH_RW_SIZE ) ?;
745
+ println ! ( " Done" ) ;
745
746
746
747
println ! ( "Writing RW region" ) ;
747
748
self . write_ec_flash ( FLASH_BASE + FLASH_RW_BASE , rw_data) ?;
749
+ println ! ( " Done" ) ;
748
750
749
751
println ! ( "Verifying RW region" ) ;
750
752
let flash_rw_data = self . read_ec_flash ( FLASH_BASE + FLASH_RW_BASE , FLASH_RW_SIZE ) ?;
751
753
if rw_data == flash_rw_data {
752
- println ! ( "RW verify success" ) ;
754
+ println ! ( " RW verify success" ) ;
753
755
} else {
754
756
println ! ( "RW verify fail" ) ;
755
757
}
@@ -760,14 +762,16 @@ impl CrosEc {
760
762
761
763
println ! ( "Erasing RO region" ) ;
762
764
self . erase_ec_flash ( FLASH_BASE + FLASH_RO_BASE , FLASH_RO_SIZE ) ?;
765
+ println ! ( " Done" ) ;
763
766
764
767
println ! ( "Writing RO region" ) ;
765
768
self . write_ec_flash ( FLASH_BASE + FLASH_RO_BASE , ro_data) ?;
769
+ println ! ( " Done" ) ;
766
770
767
771
println ! ( "Verifying RO region" ) ;
768
772
let flash_ro_data = self . read_ec_flash ( FLASH_BASE + FLASH_RO_BASE , FLASH_RO_SIZE ) ?;
769
773
if ro_data == flash_ro_data {
770
- println ! ( "RO verify success" ) ;
774
+ println ! ( " RO verify success" ) ;
771
775
} else {
772
776
println ! ( "RO verify fail" ) ;
773
777
}
@@ -785,26 +789,30 @@ impl CrosEc {
785
789
786
790
/// Write a big section of EC flash. Must be unlocked already
787
791
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)? ;
790
794
//let chunk_size = ((0x80 / info.write_ideal_size) * info.write_ideal_size) as usize;
795
+
791
796
let chunk_size = 0x80 ;
792
797
793
798
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
+ ) ;
794
806
for chunk_no in 0 ..chunks {
795
807
let offset = chunk_no * chunk_size;
796
808
// Current chunk might be smaller if it's the last
797
809
let cur_chunk_size = std:: cmp:: min ( chunk_size, data. len ( ) - chunk_no * chunk_size) ;
798
810
799
811
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) ;
808
816
} else {
809
817
print ! ( "X" ) ;
810
818
}
0 commit comments