File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1526,6 +1526,17 @@ impl CrosEc {
15261526 return_val
15271527 }
15281528
1529+ pub fn validate_gpu_descriptor ( & self , reference_desc : & [ u8 ] ) -> EcResult < bool > {
1530+ let header = self . read_gpu_desc_header ( ) ?;
1531+ if header. magic != [ 0x32 , 0xAC , 0x00 , 0x00 ] {
1532+ return Err ( EcError :: DeviceError (
1533+ "Invalid descriptor hdr magic" . to_string ( ) ,
1534+ ) ) ;
1535+ }
1536+ let current_desc = self . read_ec_gpu_chunk ( 0x00 , header. descriptor_length as u16 ) ?;
1537+ Ok ( current_desc == reference_desc)
1538+ }
1539+
15291540 pub fn read_gpu_descriptor ( & self ) -> EcResult < Vec < u8 > > {
15301541 let header = self . read_gpu_desc_header ( ) ?;
15311542 if header. magic != [ 0x32 , 0xAC , 0x00 , 0x00 ] {
Original file line number Diff line number Diff line change @@ -1807,7 +1807,12 @@ pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 {
18071807 println ! ( " Size: {:>20} KB" , data. len( ) / 1024 ) ;
18081808 let res = ec. set_gpu_descriptor ( & data, args. dry_run ) ;
18091809 match res {
1810- Ok ( ( ) ) => println ! ( "GPU Descriptor successfully written" ) ,
1810+ Ok ( ( ) ) => {
1811+ println ! ( "GPU Descriptor successfully written" ) ;
1812+ println ! ( "Reading Back GPU Descriptor" ) ;
1813+ let valid = ec. validate_gpu_descriptor ( & data) ;
1814+ println ! ( " Read returns same bytes: {:?}" , valid) ;
1815+ }
18111816 Err ( err) => println ! ( "GPU Descriptor write failed with error: {:?}" , err) ,
18121817 }
18131818 }
You can’t perform that action at this time.
0 commit comments