Device.py revision 1366
12810Srdreslin@umich.edufrom FunctionalMemory import FunctionalMemory 212500Snikos.nikoleris@arm.com 311051Sandreas.hansson@arm.com# This device exists only because there are some devices that I don't 411051Sandreas.hansson@arm.com# want to have a Platform parameter because it would cause a cycle in 511051Sandreas.hansson@arm.com# the C++ that cannot be easily solved. 611051Sandreas.hansson@arm.com# 711051Sandreas.hansson@arm.com# The real solution to this problem is to pass the ParamXXX structure 811051Sandreas.hansson@arm.com# to the constructor, but with the express condition that SimObject 911051Sandreas.hansson@arm.com# parameter values are not to be available at construction time. If 1011051Sandreas.hansson@arm.com# some further configuration must be done, it must be done during the 1111051Sandreas.hansson@arm.com# initialization phase at which point all SimObject pointers will be 1211051Sandreas.hansson@arm.com# valid. 1311051Sandreas.hansson@arm.comsimobj FooPioDevice(FunctionalMemory): 1411051Sandreas.hansson@arm.com type = 'PioDevice' 1511051Sandreas.hansson@arm.com abstract = True 162810Srdreslin@umich.edu addr = Param.Addr("Device Address") 172810Srdreslin@umich.edu mmu = Param.MemoryController(Super, "Memory Controller") 182810Srdreslin@umich.edu io_bus = Param.Bus(NULL, "The IO Bus to attach to") 192810Srdreslin@umich.edu pio_latency = Param.Tick(1, "Programmed IO latency in bus cycles") 202810Srdreslin@umich.edu 212810Srdreslin@umich.edusimobj FooDmaDevice(FooPioDevice): 222810Srdreslin@umich.edu type = 'DmaDevice' 232810Srdreslin@umich.edu abstract = True 242810Srdreslin@umich.edu 252810Srdreslin@umich.edusimobj PioDevice(FooPioDevice): 262810Srdreslin@umich.edu type = 'PioDevice' 272810Srdreslin@umich.edu abstract = True 282810Srdreslin@umich.edu platform = Param.Platform(Super, "Platform") 292810Srdreslin@umich.edu 302810Srdreslin@umich.edusimobj DmaDevice(PioDevice): 312810Srdreslin@umich.edu type = 'DmaDevice' 322810Srdreslin@umich.edu abstract = True 332810Srdreslin@umich.edu 342810Srdreslin@umich.edu