Hi Andreas,

can you please provide some hint to solve the problem? am I making a
mistake when I cross compile the source code of dijkstra for Cortex- A7.

Any help will be musch appreciated.


> To avoid confusion, I merely wanted to highlight that there is a
> difference between ARMv7 and ARM Cortex-A7. The former is an ISA, the
> latter an in-order (and not out-of-order) core.
>
> Andreas
>
> On 17/10/2014 01:33, "Naveed Ul Mustafa via gem5-users"
> <gem5-users@gem5.org> wrote:
>
>>
>>Thanks for reply
>>
>>I applied ur suggested option as shown below
>>
>>root.system.cpu.workload=LiveProcess(cmd= 'Mibench/input.dat >
>>Mibench/output_small.dat', executable ='Mibench/dijkstra_small_obj')
>>
>>but still I get same error.
>>
>>
>>> Dijkstra from MiBench takes an argument, have you passed it when
>>>invoking
>>> gem5? It should be -o input.dat
>>> Em 17/10/2014 00:56, "Naveed Ul Mustafa via gem5-users"
>>> <gem5-users@gem5.org>
>>> escreveu:
>>>
>>>> Hi all,
>>>>
>>>> I am trying to run the dijkstra benchmark from Mibench mark suit on
>>>> Cortex
>>>> A7 processor. Follwing is the script for my system.
>>>> --------------------------------------------
>>>> import optparse
>>>> import sys
>>>> import m5
>>>> from m5.defines import buildEnv
>>>> from m5.objects import *
>>>> from m5.util import addToPath, fatal
>>>> addToPath('../common')
>>>> from FSConfig import *
>>>> from SysPaths import *
>>>> from Benchmarks import *
>>>> import Simulation
>>>> import CacheConfig
>>>> import MemConfig
>>>> from Caches import *
>>>> import Options
>>>> from O3_ARM_v7a import *
>>>>
>>>>
>>>> parser = optparse.OptionParser()
>>>> parser.add_option("--num_cpus", type="int")#adding a new option for
>>>> script
>>>> parser.add_option("--clock1",type= "string")
>>>> parser.add_option("--voltage1",type="string")
>>>> parser.add_option("--I_Cache",type="string")
>>>> parser.add_option("--D_Cache",type="string")
>>>> parser.add_option("--TLB_Size",type="string")
>>>> Options.addCommonOptions(parser)
>>>> Options.addFSOptions(parser)
>>>> (options, args) = parser.parse_args()
>>>>
>>>> #define one O3ARM7 core with 2GHz clock, 1mV operational voltage, and
>>>> 32MB
>>>> level1 Instruction and Data cache
>>>> #first define a clock and voltage domain
>>>> VoltageDomain1=VoltageDomain(voltage = options.sys_voltage)
>>>>
>>>> ClkVltDomain1=SrcClockDomain(clock=options.clock1,voltage_domain =
>>>> VoltageDomain1)
>>>> #define O3ARM7core
>>>> core1=O3_ARM_v7a_3()
>>>> #assign id to core
>>>> core1.cpu_id=0
>>>> #bind this core with clock and voltage domain define above
>>>> core1.ClockDomain=ClkVltDomain1
>>>> #define cache L1 Instruction Cache
>>>> L1ICache=O3_ARM_v7a_ICache(size=options.I_Cache)
>>>> #define cache L1 Data Cache
>>>> L1DCache=O3_ARM_v7a_DCache(size=options.D_Cache)
>>>>
>>>>
>>>> #define L2 TLB
>>>> ArmTLB=O3_ARM_v7aWalkCache()
>>>> ArmTLB.size=options.TLB_Size
>>>>
>>>> #Add L1 caches and L2 TLB to the core
>>>> core1.addTwoLevelCacheHierarchy(L1ICache,L1DCache,ArmTLB)
>>>>
>>>> #Craete the system with simple memory
>>>> mysystem = System(
>>>>         cpu=core1,
>>>>         physmem = SimpleMemory(),
>>>>         membus = CoherentXBar(),
>>>>         mem_mode = 'timing'
>>>>                 )
>>>>
>>>> #connect slave port of membus with system port
>>>> mysystem.system_port=mysystem.membus.slave
>>>> #connect master port of membus with port of physical memory
>>>> mysystem.physmem.port=mysystem.membus.master
>>>>
>>>> # create the interrupt controller
>>>> core1.createInterruptController()
>>>> core1.connectAllPorts(mysystem.membus)
>>>>
>>>> # Create a top-level voltage domain
>>>> mysystem.voltage_domain = VoltageDomain(voltage = options.sys_voltage)
>>>> # Create a source clock for the system and set the clock period
>>>> mysystem.clk_domain = SrcClockDomain(clock =
>>>> options.sys_clock,voltage_domain = mysystem.voltage_domain)
>>>>
>>>>
>>>> #declare the root
>>>> root = Root(full_system=False,system = mysystem)
>>>>
>>>> #assign the work load to the system, read data from input.dat and
>>>> write
>>>> output to output_small.dat
>>>>
>>>> root.system.cpu.workload=LiveProcess(cmd= 'Mibench/input.dat >
>>>> Mibench/output_small.dat', executable ='Mibench/dijkstra_small_obj')
>>>>
>>>>
>>>>
>>>> # instantiate configuration
>>>> m5.instantiate()
>>>>
>>>> exit_event = m5.simulate()
>>>> print 'Exiting @ tick', m5.curTick(), 'because', exit_event.getCause()
>>>> --------------------------------------------
>>>>
>>>> I first cross compiled the source code of dijkstra bench mark on my
>>>> linux
>>>> for arm using following command.
>>>>
>>>> arm-linux-gnueabi-gcc -static  dijkstra_small.c -o dijkstra_small_obj
>>>>
>>>> then specified that executeable binary as workload to the system, as
>>>> specified in the script above.
>>>>
>>>> However, when I build the above script using following command
>>>>
>>>> build/ARM/gem5.opt configs/MyScripts/Stage0_P1.py --num_cpus=1
>>>> --clock1=1000MHz --I_Cache=32kB --D_Cache=32kB --TLB_Size=512kB
>>>>
>>>> I get following error
>>>>
>>>> gem5 Simulator System.  http://gem5.org
>>>> gem5 is copyrighted software; use the --copyright option for details.
>>>>
>>>> gem5 compiled Oct  1 2014 19:17:30
>>>> gem5 started Oct 17 2014 01:53:58
>>>> gem5 executing on naveed-desktop
>>>> command line: build/ARM/gem5.opt configs/MyScripts/Stage0_P1.py
>>>> --num_cpus=1 --clock1=1000MHz --I_Cache=32kB --D_Cache=32kB
>>>> --TLB_Size=512kB
>>>> Global frequency set at 1000000000000 ticks per second
>>>>       0: system.cpu.isa: ISA system set to: 0 0xbe30200
>>>> 0: system.remote_gdb.listener: listening for remote gdb #0 on port
>>>> 7000
>>>> info: Entering event queue @ 0.  Starting simulation...
>>>> info: Increasing stack size by one page.
>>>> Usage: dijkstra <filename>
>>>> Only supports matrix size is #define'd.
>>>> panic: Page table fault when accessing virtual address 0
>>>>  @ tick 20270000
>>>> [invoke:build/ARM/sim/faults.cc, line 70]
>>>> Memory Usage: 199008 KBytes
>>>> Program aborted at tick 20270000
>>>> Aborted (core dumped)
>>>>
>>>>
>>>> I need help of u guys to find out reason for the error. Please note
>>>>that
>>>> I
>>>> have checked the file m5out/stat.tx, but this file is empty when the
>>>> error
>>>> appears.
>>>>
>>>> Thank you all in advance
>>>>
>>>>
>>>> Naveed Ul Mustafa
>>>>
>>>> _______________________________________________
>>>> gem5-users mailing list
>>>> gem5-users@gem5.org
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>
>>>
>>
>>
>>Naveed Ul Mustafa
>>
>>_______________________________________________
>>gem5-users mailing list
>>gem5-users@gem5.org
>>http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
> -- 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
>
>


Naveed Ul Mustafa

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

Reply via email to