Hi Ahmad,

You will have to decide where to map it in the system memory map, and make sure 
that range is not occupied. For example:

self.dram_ctrl = SimpleDDR3(range = AddrRange(‘512MB’))
self.pcm_ctrl = SimplePCM(range = AddrRange(start = ‘512MB', size = ‘512MB’))
self.mem_ranges = [self.dram_ctrl.range, self.pcm_ctrl.range]

self.membus.master = self.dram_ctrl.port
self.membus_master = self.pcm_ctrl.port

If you want multi-channel controllers like gets even more complicated. In that 
case I’d suggest to use the MemConfig convenience functions.

Good luck with the changes.

Andreas


From: Ahmad Hassan <[email protected]<mailto:[email protected]>>
Reply-To: gem5 users mailing list 
<[email protected]<mailto:[email protected]>>
Date: Monday, 28 October 2013 18:14
To: gem5 users mailing list <[email protected]<mailto:[email protected]>>
Subject: Re: [gem5-users] Running two SimpleDram instances simulataniously

Hi Andreas,

I am attaching two memory controller to the system as per your advice 
system.ddr3_ctl and system.pcm_ctl. I found the following details inside 
FSConfig.py

//makeX86System method
self.physmem = SimpleDDR3(range = AddrRange('1GB'))
self.mem_ranges = [self.physmem.range]

//connectX86ClassicSystem method
x86_sys.membus = MemBus()
x86_sys.physmem.port = x86_sys.membus.master
 x86_sys.bridge.slave = x86_sys.membus.master
x86_sys.apicbridge.master = x86_sys.membus.slave
x86_sys.system_port = x86_sys.membus.slave


I am new to Gem5 memory model. Please can you give me hints how to change above 
initialization to two memory controllers and attach them to the bus.

Thanks.

Best Regards, Ahmad


On 24 October 2013 19:28, Andreas Hansson 
<[email protected]<mailto:[email protected]>> wrote:
Hi Ahmad,

You can instantiate as many controller as you want, all you have to do is edit 
the python files. You can either try and add it as an option to fs.py or 
similar, or manually create a system in a separate .py file.

You can simply do system.ddr3_ctrl = SimpleDDR3() and system.pcm_ctrl = 
SimplePCM() (you have to create the latter class). You pass the address range 
as a parameter to each controller. When you connect them to the bus they will 
automatically be updating the address map in the bus.

Good luck.

As a final note, please stick to the mailing list :-)

Andreas

From: Ahmad Hassan <[email protected]<mailto:[email protected]>>
Date: Wednesday, 23 October 2013 20:29
To: Andreas Hansson <[email protected]<mailto:[email protected]>>
Subject: Re: Running two SimpleDram instances simulataniously

Or more simply, how would it be possible to use both "SimpleLPDDR2_S4" and 
"SimpleDDR3" simultaneously. I will redirect some virtual addresses to 
SimpleLPDDR2_S4 and some to SimpleDDR3.

Thanks.

kind Regards, Ahmad


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No: 2548782


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No: 2548782
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to