File tree Expand file tree Collapse file tree 2 files changed +21
-6
lines changed
Expand file tree Collapse file tree 2 files changed +21
-6
lines changed Original file line number Diff line number Diff line change 4444// Lowercase helpers are provided through implementations.
4545#![ allow( non_snake_case) ]
4646
47- use std:: fmt:: { Debug , Display } ;
47+ use std:: {
48+ fmt:: { Debug , Display } ,
49+ ops:: Range ,
50+ } ;
4851
4952use bitfield_struct:: bitfield;
5053use serde:: { Deserialize , Serialize } ;
@@ -307,8 +310,8 @@ impl FlashRegion {
307310 self . limit ( ) as usize * 4096 + 4095
308311 }
309312
310- pub fn range ( self ) -> ( usize , usize ) {
311- ( self . ba ( ) , self . la ( ) + 1 )
313+ pub fn range ( self ) -> Range < usize > {
314+ self . ba ( ) .. self . la ( ) + 1
312315 }
313316}
314317
@@ -336,6 +339,18 @@ pub struct Regions {
336339 pub flreg9 : FlashRegion ,
337340}
338341
342+ impl Regions {
343+ pub fn ifd_range ( & self ) -> Range < usize > {
344+ self . flreg0 . range ( )
345+ }
346+ pub fn bios_range ( & self ) -> Range < usize > {
347+ self . flreg1 . range ( )
348+ }
349+ pub fn me_range ( & self ) -> Range < usize > {
350+ self . flreg2 . range ( )
351+ }
352+ }
353+
339354// NOTE: Regions have changed over processors generations.
340355impl Display for Regions {
341356 fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
Original file line number Diff line number Diff line change @@ -37,10 +37,10 @@ impl Firmware {
3737 let ifd = IFD :: parse ( & data) ;
3838 let me = match & ifd {
3939 Ok ( ifd) => {
40- let me_region = ifd. regions . flreg2 . range ( ) ;
41- let ( b , l ) = me_region;
40+ let me_region = ifd. regions . me_range ( ) ;
41+ let b = me_region. start ;
4242 info ! ( "ME region start @ {b:08x}" ) ;
43- ME :: parse ( & data[ b..l ] , b, debug)
43+ ME :: parse ( & data[ me_region ] , b, debug)
4444 }
4545 Err ( e) => {
4646 warn ! ( "Not a full image: {e:?}" ) ;
You can’t perform that action at this time.
0 commit comments