53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
from gem5.isas import ISA
|
|
from m5.objects import (
|
|
ArmDefaultRelease,
|
|
)
|
|
from gem5.utils.requires import requires
|
|
from gem5.resources.workload import CustomWorkload
|
|
from gem5.resources.resource import BinaryResource
|
|
from gem5.simulate.simulator import Simulator
|
|
from m5.objects import VExpress_GEM5_Foundation
|
|
from gem5.components.boards.arm_baremetal_board import ArmBareMetalBoard
|
|
from gem5.components.memory import DRAMSysDDR3_1600
|
|
from gem5.components.processors.cpu_types import CPUTypes
|
|
from gem5.components.processors.simple_processor import SimpleProcessor
|
|
|
|
requires(isa_required=ISA.ARM)
|
|
|
|
from gem5.components.cachehierarchies.classic.private_l1_private_l2_cache_hierarchy import (
|
|
PrivateL1PrivateL2CacheHierarchy,
|
|
)
|
|
from gem5.components.cachehierarchies.classic.no_cache import NoCache
|
|
|
|
cache_hierarchy = PrivateL1PrivateL2CacheHierarchy(
|
|
l1d_size="16kB", l1i_size="16kB", l2_size="256kB"
|
|
)
|
|
# cache_hierarchy = NoCache()
|
|
|
|
memory = DRAMSysDDR3_1600(recordable=True)
|
|
processor = SimpleProcessor(cpu_type=CPUTypes.O3, num_cores=1, isa=ISA.ARM)
|
|
release = ArmDefaultRelease()
|
|
platform = VExpress_GEM5_Foundation()
|
|
|
|
board = ArmBareMetalBoard(
|
|
clk_freq="3GHz",
|
|
processor=processor,
|
|
memory=memory,
|
|
cache_hierarchy=cache_hierarchy,
|
|
release=release,
|
|
platform=platform,
|
|
)
|
|
|
|
board.m5ops_base = 0x10010000
|
|
|
|
workload = CustomWorkload(
|
|
"set_baremetal_workload",
|
|
{
|
|
"kernel": BinaryResource("aarch64"),
|
|
},
|
|
)
|
|
board.set_workload(workload)
|
|
|
|
simulator = Simulator(board=board)
|
|
simulator.run()
|