@@ -394,24 +394,25 @@ def get_memory_layout(device):
394394 intf = cfg [(0 , 0 )]
395395 mem_layout_str = get_string (device , intf .iInterface )
396396 mem_layout = mem_layout_str .split ('/' )
397- addr = int (mem_layout [1 ], 0 )
398- segments = mem_layout [2 ].split (',' )
399- seg_re = re .compile (r'(\d+)\*(\d+)(.)(.)' )
400397 result = []
401- for segment in segments :
402- seg_match = seg_re .match (segment )
403- num_pages = int (seg_match .groups ()[0 ], 10 )
404- page_size = int (seg_match .groups ()[1 ], 10 )
405- multiplier = seg_match .groups ()[2 ]
406- if multiplier == 'K' :
407- page_size *= 1024
408- if multiplier == 'M' :
409- page_size *= 1024 * 1024
410- size = num_pages * page_size
411- last_addr = addr + size - 1
412- result .append (named ((addr , last_addr , size , num_pages , page_size ),
413- "addr last_addr size num_pages page_size" ))
414- addr += size
398+ for mem_layout_index in range (1 , len (mem_layout ), 2 ):
399+ addr = int (mem_layout [mem_layout_index ], 0 )
400+ segments = mem_layout [mem_layout_index + 1 ].split (',' )
401+ seg_re = re .compile (r'(\d+)\*(\d+)(.)(.)' )
402+ for segment in segments :
403+ seg_match = seg_re .match (segment )
404+ num_pages = int (seg_match .groups ()[0 ], 10 )
405+ page_size = int (seg_match .groups ()[1 ], 10 )
406+ multiplier = seg_match .groups ()[2 ]
407+ if multiplier == 'K' :
408+ page_size *= 1024
409+ if multiplier == 'M' :
410+ page_size *= 1024 * 1024
411+ size = num_pages * page_size
412+ last_addr = addr + size - 1
413+ result .append (named ((addr , last_addr , size , num_pages , page_size ),
414+ "addr last_addr size num_pages page_size" ))
415+ addr += size
415416 return result
416417
417418
0 commit comments