From 8723b08dbf254bc436eac2b2ddf86efa02fc4274 Mon Sep 17 00:00:00 2001 From: Matthias Jung Date: Mon, 3 Aug 2015 23:08:40 -0500 Subject: misc: Coupling gem5 with SystemC TLM2.0 Transaction Level Modeling (TLM2.0) is widely used in industry for creating virtual platforms (IEEE 1666 SystemC). This patch contains a standard compliant implementation of an external gem5 port, that enables the usage of gem5 as a TLM initiator component in SystemC based virtual platforms. Both TLM coding paradigms loosely timed (b_transport) and aproximately timed (nb_transport) are supported. Compared to the original patch a TLM memory manager was added. Furthermore, the transaction object was removed and for each TLM payload a PacketPointer that points to the original gem5 packet is added as an TLM extension. For event handling single events are now created. Committed by: Nilay Vaish --- configs/common/MemConfig.py | 9 +++++++++ configs/common/Options.py | 2 ++ 2 files changed, 11 insertions(+) (limited to 'configs') diff --git a/configs/common/MemConfig.py b/configs/common/MemConfig.py index cf0fb1632..0191554a7 100644 --- a/configs/common/MemConfig.py +++ b/configs/common/MemConfig.py @@ -151,6 +151,15 @@ def config_mem(options, system): them. """ + if options.tlm_memory: + system.external_memory = m5.objects.ExternalSlave( + port_type="tlm", + port_data=options.tlm_memory, + port=system.membus.master, + addr_ranges=system.mem_ranges) + system.kernel_addr_check = False + return + if options.external_memory_system: system.external_memory = m5.objects.ExternalSlave( port_type=options.external_memory_system, diff --git a/configs/common/Options.py b/configs/common/Options.py index 35d453d24..1922f78a6 100644 --- a/configs/common/Options.py +++ b/configs/common/Options.py @@ -106,6 +106,8 @@ def addCommonOptions(parser): # Cache Options parser.add_option("--external-memory-system", type="string", help="use external ports of this port_type for caches") + parser.add_option("--tlm-memory", type="string", + help="use external port for SystemC TLM cosimulation") parser.add_option("--caches", action="store_true") parser.add_option("--l2cache", action="store_true") parser.add_option("--fastmem", action="store_true") -- cgit v1.2.3