cpu: Apply the ARM TLB rework to the O3 checker CPU.
[gem5.git] / src / mem / AbstractMemory.py
index bf1621f4dc85e49e40f04b6bd621829545b972a0..5b4c718c2640f6fe9ea92a428929f8c9dd074d77 100644 (file)
 #          Andreas Hansson
 
 from m5.params import *
-from MemObject import MemObject
+from m5.objects.ClockedObject import ClockedObject
 
-class AbstractMemory(MemObject):
+class AbstractMemory(ClockedObject):
     type = 'AbstractMemory'
     abstract = True
-    range = Param.AddrRange(AddrRange('128MB'), "Address range")
-    file = Param.String('', "Memory-mapped file")
+    cxx_header = "mem/abstract_mem.hh"
+
+    # A default memory size of 128 MB (starting at 0) is used to
+    # simplify the regressions
+    range = Param.AddrRange('128MB', "Address range (potentially interleaved)")
     null = Param.Bool(False, "Do not store data, always return zero")
-    zero = Param.Bool(False, "Initialize memory with zeros")
 
     # All memories are passed to the global physical memory, and
     # certain memories may be excluded from the global address map,
     # e.g. by the testers that use shadow memories as a reference
     in_addr_map = Param.Bool(True, "Memory part of the global address map")
 
+    # When KVM acceleration is used, memory is mapped into the guest process
+    # address space and accessed directly. Some memories may need to be
+    # excluded from this mapping if they overlap with other memory ranges or
+    # are not accessible by the CPU.
+    kvm_map = Param.Bool(True, "Should KVM map this memory for the guest")
+
     # Should the bootloader include this memory when passing
     # configuration information about the physical memory layout to
     # the kernel, e.g. using ATAG or ACPI
-    conf_table_reported = Param.Bool(False, "Report to configuration table")
+    conf_table_reported = Param.Bool(True, "Report to configuration table")