summaryrefslogtreecommitdiff
path: root/python/m5/objects/Device.mpy
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2005-03-14 15:40:51 -0500
committerKevin Lim <ktlim@umich.edu>2005-03-14 15:40:51 -0500
commit8f2a84cbe5a0cd26053d49fb0376ec18bcbeb8f4 (patch)
tree1b707750f5064ed9f89a4a1ecc2f2be4d3daddc0 /python/m5/objects/Device.mpy
parentc12a665c3120b61ed4e09da5d8a52c57406763d5 (diff)
parent76e6dd01ae4a534adad1d34398fefc819771a781 (diff)
downloadgem5-8f2a84cbe5a0cd26053d49fb0376ec18bcbeb8f4.tar.xz
Merge
--HG-- extra : convert_revision : 22919164108afd74f30207606f59a38992991dae
Diffstat (limited to 'python/m5/objects/Device.mpy')
-rw-r--r--python/m5/objects/Device.mpy33
1 files changed, 33 insertions, 0 deletions
diff --git a/python/m5/objects/Device.mpy b/python/m5/objects/Device.mpy
new file mode 100644
index 000000000..47f8db1cb
--- /dev/null
+++ b/python/m5/objects/Device.mpy
@@ -0,0 +1,33 @@
+from FunctionalMemory import FunctionalMemory
+
+# This device exists only because there are some devices that I don't
+# want to have a Platform parameter because it would cause a cycle in
+# the C++ that cannot be easily solved.
+#
+# The real solution to this problem is to pass the ParamXXX structure
+# to the constructor, but with the express condition that SimObject
+# parameter values are not to be available at construction time. If
+# some further configuration must be done, it must be done during the
+# initialization phase at which point all SimObject pointers will be
+# valid.
+simobj FooPioDevice(FunctionalMemory):
+ type = 'PioDevice'
+ abstract = True
+ addr = Param.Addr("Device Address")
+ mmu = Param.MemoryController(Super, "Memory Controller")
+ io_bus = Param.Bus(NULL, "The IO Bus to attach to")
+ pio_latency = Param.Tick(1, "Programmed IO latency in bus cycles")
+
+simobj FooDmaDevice(FooPioDevice):
+ type = 'DmaDevice'
+ abstract = True
+
+simobj PioDevice(FooPioDevice):
+ type = 'PioDevice'
+ abstract = True
+ platform = Param.Platform(Super, "Platform")
+
+simobj DmaDevice(PioDevice):
+ type = 'DmaDevice'
+ abstract = True
+