Hi Christian,

I will start looking at the address mappings in SE mode as a starting point for 
this and hope to get a working system.

Thank you for your help and suggestions.

Regards
Yasir


-----Original Message-----
From: Christian Menard [mailto:christian.men...@tu-dresden.de] 
Sent: 20 June 2017 17:34
To: Qureshi Yasir Mahmood <yasir.qure...@epfl.ch>
Cc: gem5-users@gem5.org; Matthias Jung <jun...@eit.uni-kl.de>
Subject: Re: [gem5-users] SystemC and GEM5 SE Mode

Hi Yasir,

you will simply need to write/read to/from the correct address as described for 
instance here: 
https://stackoverflow.com/questions/22618271/access-memory-mapped-i-o 

However, for this to work. You need to configure the address range of the tlm 
port correctly. Since SE mode uses virtual addresses, you will also need to 
configure the memory map so that some virtual addresses point to the physical 
address space of your tlm bridge and then access these virtual addresses. I do 
not now how, but this should be possible. A starting point could be to search 
for how the memory map is established in the SimpleMemory.

If you get smth working, I want to encourage you to contribute an example to 
the util/tlm dir in order to help others who might run into the same problems.

Cheers,
Christian

On Tuesday, 20 June 2017 16:15:56 CEST Qureshi Yasir Mahmood wrote:
> Hi Christian,
> 
> Thank you for the reply. I get your point that since there is no 
> tlm-memory object, GEM5 does not treat it as a memory.
> 
> For the solution you are suggesting to have a connection to the 
> accelerator in my config file. What I have tried is to have a CPU 
> connected to
> membus(interconnect) at one end and SimpleMemory and TLM slave 
> connected at the other end (using se.py as a starting point). GEM5 
> simulates it, but what I am unable to do is to do a transaction or 
> address the TLM slave from a C program. Please let me know if this is 
> correct as the connection to the TLM slave (accelerator) is through the 
> membus.
> 
> So I am basically trying to do a transaction in the direction of TLM 
> bridge, but don't know how to initiate it from a C program.
> 
> Thank you
> 
> Regards
> Yasir
> 
> 
> 
> -----Original Message-----
> From: Christian Menard [mailto:christian.men...@tu-dresden.de]
> Sent: 20 June 2017 14:37
> To: gem5-users@gem5.org
> Cc: Qureshi Yasir Mahmood <yasir.qure...@epfl.ch>; Matthias Jung 
> <jun...@eit.uni-kl.de> Subject: Re: [gem5-users] SystemC and GEM5 SE 
> Mode
> 
> Hi Yasir,
> 
> > So I think there is a bug in se.py that when tlm-memory is used, it 
> > doesn't create any other memory.
> 
> This is not a bug, its a feature! However, there is a bug of another kind.
> 
> The --tlm-memory switch indicates that you want to use a TLM memory 
> instead of a gem5 memory. So, none is created. However, since there is 
> no Memory object in the gem5 system, the system thinks that there is 
> not enough space. This is the bug. There should be a Memory object 
> that points to the external slave and indicates to the system how much 
> memory is available. I think the best way to resolve this (and also a 
> better way to configure
> this) would be to introduce a new memory type 'TlmMemory' and a 
> corresponding class that is instantiated during configuration.
> 
> To your problem: if you want to use a gem5 memory and connect your 
> accelerator using the --tlm-memory switch, this is not possible. 
> Instead you should build your own configuration. se.py is just a 
> template and intended to be modified for more complex systems. You 
> could simply copy se.py to your own config and hard code the 
> connection to your accelerator or maybe even add some cli arguments to 
> configure this connection.
> 
> Best regards,
> Christian
> 
> On Monday, 12 June 2017 14:44:49 CEST Qureshi Yasir Mahmood wrote:
> > Hi Matthias,
> > 
> > I think I have a clue to the problem in the TLM and se.py simulation 
> > that when I configure se.py to have TLM memory using configuration 
> > parameter --tlm-memory, and also have some physical memory like 
> > SimpleMemory using --mem-type=SimpleMemory, it only creates the TLM 
> > memory port and does not instantiate the Simple memory. I manually edited
> > the config.ini file to include   both SimpleMemory and the tlm-memory and
> > the helloworld program worked.
> > 
> > So I think there is a bug in se.py that when tlm-memory is used, it 
> > doesn't create any other memory.
> > 
> > Regards
> > Yasir
> > 
> > -----Original Message-----
> > From: gem5-users [mailto:gem5-users-boun...@gem5.org] On Behalf Of 
> > Matthias Jung
> 
>  Sent: 09 June 2017 00:21
> 
> > To: gem5 users mailing list <gem5-users@gem5.org>
> > Subject: Re: [gem5-users] SystemC and GEM5 SE Mode
> > 
> > Hi Yasir,
> > 
> > I just wanted to say that se.py works without problems in the cxx config.
> > And I confirmed that there is an issue with the TLM setup and se.py.
> > 
> > Regards
> > Matthias
> > 
> > > Am 08.06.2017 um 14:43 schrieb Qureshi Yasir Mahmood
> > > <yasir.qure...@epfl.ch>:
> > > 
> > > Hi Matthias,
> > > 
> > > Thank you for the reply. When you say " Using util/cxx_config with 
> > > se.py or fs.py with util/tlm works fine",  do you mean I should 
> > > compile the build/examples/slave_port/gem5.sc using cxx_config ?
> > > 
> > > Regards
> > > Yasir
> > > 
> > > 
> > > -----Original Message-----
> > > From: gem5-users [mailto:gem5-users-boun...@gem5.org] On Behalf Of 
> > > Matthias Jung
> 
>  Sent: 07 June 2017 23:50
> 
> > > To: gem5 users mailing list <gem5-users@gem5.org>
> > > Subject: Re: [gem5-users] SystemC and GEM5 SE Mode
> > > 
> > > Hi Yasir,
> > > 
> > > I just had a short look, indeed there is an issue.
> > > Using util/cxx_config with se.py or fs.py with util/tlm works fine.
> > > We will have a deeper look into it.
> > > 
> > > Regards
> > > Matthias
> > > 
> > >> Am 07.06.2017 um 18:22 schrieb Qureshi Yasir Mahmood
> > >> <yasir.qure...@epfl.ch>:
> > >> 
> > >> Hello All,
> > >> 
> > >> I am trying to setup a GEM5-SystemC co-simulation with gem5 
> > >> running in SE mode. I have followed the tutorial in 
> > >> /util/tlm/README file and I can run the example provided. But 
> > >> when I try to run GEM5 in SE with TLM enabled, I get the 
> > >> following error,
> > >> 
> > >> First to build the config file, I run
> > >> 
> > >> ../../build/ARM/gem5.opt ../../configs/example/se.py 
> > >> --tlm-memory=transactor  --mem-type=SimpleMemory --mem-size=512MB
> > >> --mem-channels=1 -c ../../../helloworld/hevc
> > >> 
> > >> And then to run
> > >> 
> > >> bash-4.2$ build/examples/slave_port/gem5.sc m5out/config.ini
> > >> 
> > >>        SystemC 2.3.1-Accellera --- May 31 2017 13:14:37
> > >>        Copyright (c) 1996-2014 by all Contributors,
> > >>       
> > >>       ALL RIGHTS RESERVED
> > >> 
> > >> ============================================================
> > >> EventQueue Dump  (cycle 0)
> > >> ------------------------------------------------------------
> > >> <No Events>
> > >> ============================================================
> > >> 0: system.remote_gdb.listener: listening for remote gdb #0 on 
> > >> port
> > >> 7000
> > >> 0 s (=) : sc_main Start of Simulation
> > >> warn: ClockedObject: More than one power state change request 
> > >> encountered within the same simulation tick
> 
>  fatal: Out of memory, please increase
> 
> > >> size of physical memory.
> > >> Memory Usage: 597116 Kbytes
> > >> 
> > >> 
> > >> Can anyone please let me know, if I need to have a separate 
> > >> physical memory for this and hence modify the se.py file or just 
> > >> control it through the configuration options ?
> > >> 
> > >> Regards
> > >> Yasir
> > >> _______________________________________________
> > >> gem5-users mailing list
> > >> gem5-users@gem5.org
> > >> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> > > 
> > > _______________________________________________
> > > gem5-users mailing list
> > > gem5-users@gem5.org
> > > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> > > _______________________________________________
> > > gem5-users mailing list
> > > gem5-users@gem5.org
> > > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> > 
> > _______________________________________________
> > gem5-users mailing list
> > gem5-users@gem5.org
> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> > _______________________________________________
> > gem5-users mailing list
> > gem5-users@gem5.org
> > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> 
> --
> Dipl.-Ing. Christian Menard
> Research Assistant
> 
> TU Dresden
> Faculty of Computer Science
> Chair for Compiler Construction
> 01062 Dresden
> 
> Phone: +49 351 463-42441
> e-Mail: christian.men...@tu-dresden.de


--
Dipl.-Ing. Christian Menard
Research Assistant

TU Dresden
Faculty of Computer Science
Chair for Compiler Construction
01062 Dresden

Phone: +49 351 463-42441
e-Mail: christian.men...@tu-dresden.de

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to