예제 #1
0
def createSystem(caches, kernel, bootscript, disks=[]):
    sys = devices.SimpleSystem(caches, default_mem_size,
                               kernel=SysPaths.binary(kernel),
                               readfile=bootscript)

    sys.mem_ctrls = [ SimpleMemory(range=r, port=sys.membus.master)
                      for r in sys.mem_ranges ]

    sys.connect()

    # Attach disk images
    if disks:
        def cow_disk(image_file):
            image = CowDiskImage()
            image.child.image_file = SysPaths.disk(image_file)
            return image

        sys.disk_images = [ cow_disk(f) for f in disks ]
        sys.pci_vio_block = [ PciVirtIO(vio=VirtIOBlock(image=img))
                              for img in sys.disk_images ]
        for dev in sys.pci_vio_block:
            sys.attach_pci(dev)

    sys.realview.setupBootLoader(sys.membus, sys, SysPaths.binary)

    return sys
예제 #2
0
def createSystem(kernel, mem_mode, bootscript, disks=[]):
    sys = devices.SimpleSystem(kernel=SysPaths.binary(kernel),
                               readfile=bootscript,
                               mem_mode=mem_mode,
                               machine_type="DTOnly")

    mem_region = sys.realview._mem_regions[0]
    sys.mem_ctrls = SimpleMemory(
        range=AddrRange(start=mem_region[0], size=default_mem_size))
    sys.mem_ctrls.port = sys.membus.master

    sys.connect()

    # Attach disk images
    if disks:
        def cow_disk(image_file):
            image = CowDiskImage()
            image.child.image_file = SysPaths.disk(image_file)
            return image

        sys.disk_images = [ cow_disk(f) for f in disks ]
        sys.pci_vio_block = [ PciVirtIO(vio=VirtIOBlock(image=img))
                              for img in sys.disk_images ]
        for dev in sys.pci_vio_block:
            sys.attach_pci(dev)

    sys.realview.setupBootLoader(sys.membus, sys, SysPaths.binary)

    return sys
예제 #3
0
def createSystem(caches,
                 kernel,
                 bootscript,
                 machine_type="VExpress_GEM5_V1",
                 disks=[],
                 mem_size=default_mem_size,
                 bootloader=None):

    platform = ObjectList.platform_list.get(machine_type)
    m5.util.inform("Simulated platform: %s", platform.__name__)

    sys = arm_sys.simpleSystem(LinuxArmSystem,
                               caches,
                               mem_size,
                               platform(),
                               kernel=SysPaths.binary(kernel),
                               readfile=bootscript)

    sys.mem_ctrls = [
        SimpleMemory(range=r, port=sys.membus.master) for r in sys.mem_ranges
    ]

    sys.connect()

    if disks:

        def cow_disk(image_file):
            image = CowDiskImage()
            image.child.image_file = SysPaths.disk(image_file)
            return image

        sys.disk_images = [cow_disk(f) for f in disks]
        sys.pci_vio_block = [
            PciVirtIO(vio=VirtIOBlock(image=img)) for img in sys.disk_images
        ]
        for dev in sys.pci_vio_block:
            sys.attach_pci(dev)

    sys.realview.setupBootLoader(sys, SysPaths.binary, bootloader)

    return sys