Files
gem5/util/cpt_upgraders/memory-per-range.py
Bobby R. Bruce 787204c92d python: Apply Black formatter to Python files
The command executed was `black src configs tests util`.

Change-Id: I8dfaa6ab04658fea37618127d6ac19270028d771
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/47024
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2022-08-03 09:10:41 +00:00

35 lines
1.5 KiB
Python

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