1 # The backing store supporting the memories in the system has changed
2 # in that it is now stored globally per address range. As a result the
3 # actual storage is separate from the memory controllers themselves.
5 for sec
in cpt
.sections():
7 # Search for a physical memory
8 if re
.search('.*sys.*\.physmem$', sec
):
9 # Add the number of stores attribute to the global physmem
10 cpt
.set(sec
, 'nbr_of_stores', '1')
12 # Get the filename and size as this is moving to the
13 # specific backing store
14 mem_filename
= cpt
.get(sec
, 'filename')
15 mem_size
= cpt
.get(sec
, '_size')
16 cpt
.remove_option(sec
, 'filename')
17 cpt
.remove_option(sec
, '_size')
19 # Get the name so that we can create the new section
20 system_name
= str(sec
).split('.')[0]
21 section_name
= system_name
+ '.physmem.store0'
22 cpt
.add_section(section_name
)
23 cpt
.set(section_name
, 'store_id', '0')
24 cpt
.set(section_name
, 'range_size', mem_size
)
25 cpt
.set(section_name
, 'filename', mem_filename
)
26 elif re
.search('.*sys.*\.\w*mem$', sec
):
27 # Due to the lack of information about a start address,
28 # this migration only works if there is a single memory in
29 # the system, thus starting at 0
30 raise ValueError("more than one memory detected (" + sec
+ ")")