Dear gem5 maintainers,

I'm having difficulty booting Android Kitkat on gem5 and using ARM workload
automation tool.

I'm going to completely explain my problem here, so excuse me for this long
message.

I have prepared the Android file system and compiled the kernel according
to the instructions on this page:
http://www.gem5.org/Android_KitKat
(I've done all the things up to the 'Android Runtime Configuration' section
completely, but since the instructions in the mentioned section is somewhat
vague, I didn't have an idea how to follow them).

According to these pages:
http://www.gem5.org/WA-gem5
http://www.mail-archive.com/gem5-users@gem5.org/msg13218.html
I prepared the gem5 stuff for integration with ARM workload automation and
prepared the following agenda file (my_agenda.yaml):

config:
    device: gem5_android
    device_config:
        gem5_binary: "./build/ARM/gem5.opt"
        gem5_args: "configs/example/fs.py
            --kernel=/home/hossein/gem5_images/binaries/vmlinux-android
            --disk-image=/home/hossein/gem5_images/disks/android_image.img
            --cpu-type=AtomicSimpleCPU --frame-capture -n 1
            --caches --l2cache --l1d_size=16kB --l1i_size=16kB
--l2_assoc=16 --l2_size=2MB
            --mem-size=256MB --mem-type=LPDDR3_1600_x32
            --os-type=android-kitkat"
        gem5_vio_args: "--workload-automation-vio={}"
        temp_dir: "/tmp"
        checkpoint: True
        run_delay: 10
        core_names: ['a15']
    reboot_policy: never
    result_processors: [~sqlite]
    instrumentation: [~cpufreq]

workloads:
  - id: dhrystone
    workload_name: dhrystone
    iterations: 1

Note that 'vmlinux-android' and 'android_image.img' are the files that I
generated according to the instructions.

Then, in the gem5 installation root directory, I executed the workload.
Here's what happened in the command line:

hossein@mercury:~/gem5$ wa run -f my_agenda.yaml
INFO     Removing existing output directory.
INFO     Creating output directory.
INFO     Initializing
INFO     Running workloads
INFO     Creating temporary directory: /tmp/wa_3
INFO     Starting the gem5 simulator
INFO     Connecting to device
INFO     Connecting to the gem5 simulation on port 3463
INFO     Connected! Waiting for prompt...
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/core/entry_point.py", line
66, in main
CRITICAL     sys.exit(command.execute(args))
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/commands/run.py", line 104,
in execute
CRITICAL     executor.execute(agenda, selectors={'ids': args.only_run_ids})
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line
346, in execute
CRITICAL     runner.run()
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line
484, in run
CRITICAL     self._initialize_run()
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line
537, in _initialize_run
CRITICAL     self._connect_to_device()
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line
570, in _connect_to_device
CRITICAL     self.device.connect()
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/common/gem5/device.py", line
207, in connect
CRITICAL     self.connect_gem5()
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/wlauto/common/gem5/device.py", line
271, in connect_gem5
CRITICAL     self.sckt.expect([r'# ', self.sckt.UNIQUE_PROMPT,
r'\[PEXPECT\][\\\$\#]+ '], timeout=60)
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/pexpect/spawnbase.py", line 321, in
expect
CRITICAL     timeout, searchwindowsize, async)
CRITICAL   File
"/usr/local/lib/python2.7/dist-packages/pexpect/spawnbase.py", line 345, in
expect_list
CRITICAL     return exp.expect_loop(timeout)
CRITICAL   File "/usr/local/lib/python2.7/dist-packages/pexpect/expect.py",
line 105, in expect_loop
CRITICAL     return self.eof(e)
CRITICAL   File "/usr/local/lib/python2.7/dist-packages/pexpect/expect.py",
line 50, in eof
CRITICAL     raise EOF(msg)
CRITICAL
CRITICAL EOF(End Of File (EOF). Exception style platform.
CRITICAL <wlauto.utils.ssh.TelnetConnection object at 0x7f0c3b7e2150>
CRITICAL command: /usr/bin/telnet
CRITICAL args: ['/usr/bin/telnet', '-l', 'None', 'mercury', '3463']
CRITICAL buffer (last 100 chars): ''
CRITICAL before (last 100 chars): 'erface driver hub\r\r\nusbcore:
registered new device driver usb\r\r\nConnection closed by foreign
host.\r\n'
CRITICAL after: <class 'pexpect.exceptions.EOF'>
CRITICAL match: None
CRITICAL match_index: None
CRITICAL exitstatus: 1
CRITICAL flag_eof: True
CRITICAL pid: 4935
CRITICAL child_fd: 9
CRITICAL closed: False
CRITICAL timeout: 30
CRITICAL delimiter: <class 'pexpect.exceptions.EOF'>
CRITICAL logfile: None
CRITICAL logfile_read: None
CRITICAL logfile_send: None
CRITICAL maxread: 2000
CRITICAL ignorecase: False
CRITICAL searchwindowsize: None
CRITICAL delaybeforesend: 0.05
CRITICAL delayafterclose: 0.1
CRITICAL delayafterterminate: 0.1
CRITICAL searcher: searcher_re:
CRITICAL     0: re.compile("# ")
CRITICAL     1: re.compile("\[PEXPECT\][\$\#] ")
CRITICAL     2: re.compile("\[PEXPECT\][\\\$\#]+ "))


ARM WA saves stderr, stdout, and system.terminal of gem5 into a particular
folder. Here's the contents of stderr:

warn: DRAM device capacity (512 Mbytes) does not match the address range
assigned (256 Mbytes)
Listening for system connection on port 5907
Listening for system connection on port 3463
0: system.remote_gdb.listener: listening for remote gdb #0 on port 7007
warn: ClockedObject: More than one power state change request encountered
within the same simulation tick
warn: Existing EnergyCtrl, but no enabled DVFSHandler found.
warn: The csselr register isn't implemented.
warn: The ccsidr register isn't implemented and always reads as 0.
warn: instruction 'mcr dcisw' unimplemented
warn: Not doing anything for miscreg ACTLR
warn: Not doing anything for write of miscreg ACTLR
warn: instruction 'mcr dccmvau' unimplemented
warn: instruction 'mcr icimvau' unimplemented
warn: instruction 'mcr bpiallis' unimplemented
warn: The clidr register always reports 0 caches.
warn: clidr LoUIS field of 0b001 to match current ARM implementations.
warn: instruction 'mcr icialluis' unimplemented
warn: instruction 'mcr dccimvac' unimplemented
warn: Tried to read RealView I/O at offset 0x60 that doesn't exist
warn: Tried to read RealView I/O at offset 0x48 that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: Tried to write RVIO at offset 0xa8 (data 0) that doesn't exist
warn: CP14 unimplemented crn[1], opc1[0], crm[3], opc2[4]
warn: CP14 unimplemented crn[1], opc1[0], crm[0], opc2[4]
warn: CP14 unimplemented crn[0], opc1[0], crm[7], opc2[0]
fatal: Unable to find destination for addr 0x1c030000 on system.iobus
 @ tick 101175788500
[findPort:build/ARM/mem/xbar.cc, line 358]
Memory Usage: 624608 KBytes
Program aborted at tick 101175788500
--- BEGIN LIBC BACKTRACE ---
./build/ARM/gem5.opt(_Z15print_backtracev+0x28)[0x91dab8]
./build/ARM/gem5.opt(_Z12abortHandleri+0x46)[0x93eea6]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x113e0)[0x7f0ddafac3e0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38)[0x7f0dd99b5428]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7f0dd99b702a]
./build/ARM/gem5.opt(_Z15__exit_epilogueiPKcS0_iS0_+0x440)[0x1094360]
./build/ARM/gem5.opt(_Z14__exit_messageIJmNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvPKciS7_S7_iS7_DpRKT_+0x1c1)[0xc0a2a1]
./build/ARM/gem5.opt(_ZN8BaseXBar8findPortEm+0x344)[0xc21b34]
./build/ARM/gem5.opt(_ZN15NoncoherentXBar10recvAtomicEP6Packets+0x172)[0xbeb792]
./build/ARM/gem5.opt(_ZN6Bridge15BridgeSlavePort10recvAtomicEP6Packet+0x24)[0xbaf864]
./build/ARM/gem5.opt(_ZN12CoherentXBar10recvAtomicEP6Packets+0x6f3)[0xbc2303]
./build/ARM/gem5.opt(_ZN5Cache10recvAtomicEP6Packet+0x517)[0xc66a77]
./build/ARM/gem5.opt(_ZN12CoherentXBar10recvAtomicEP6Packets+0x6f3)[0xbc2303]
./build/ARM/gem5.opt(_ZN5Cache10recvAtomicEP6Packet+0x517)[0xc66a77]
./build/ARM/gem5.opt(_ZN15AtomicSimpleCPU8writeMemEPhjm5FlagsIjEPm+0x3a4)[0xb32744]
./build/ARM/gem5.opt(_ZN17SimpleExecContext8writeMemEPhjm5FlagsIjEPm+0x29)[0xb3e759]
./build/ARM/gem5.opt(_Z14writeMemAtomicI11ExecContextjESt10shared_ptrI9FaultBaseEPT_PN5Trace10InstRecordERKT0_m5FlagsIjEPm+0x5c)[0x193b9bc]
./build/ARM/gem5.opt(_ZNK10ArmISAInst28STORE_IMM_AY_PN_SN_UN_WN_SZ47executeEP11ExecContextPN5Trace10InstRecordE+0x1a7)[0x18f6467]
./build/ARM/gem5.opt(_ZN15AtomicSimpleCPU4tickEv+0x2af)[0xb30edf]
./build/ARM/gem5.opt(_ZN10EventQueue10serviceOneEv+0xb1)[0x92d291]
./build/ARM/gem5.opt(_Z9doSimLoopP10EventQueue+0x50)[0x963fe0]
./build/ARM/gem5.opt(_Z8simulatem+0x203)[0x9645b3]
./build/ARM/gem5.opt[0xe90192]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7852)[0x7f0ddb276552]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f0ddb3a001c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6ffd)[0x7f0ddb275cfd]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7124)[0x7f0ddb275e24]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x7124)[0x7f0ddb275e24]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f0ddb3a001c]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f0ddb26eb89]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x613b)[0x7f0ddb274e3b]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c)[0x7f0ddb3a001c]
--- END LIBC BACKTRACE ---


It seems that the source of my problem can be understood from this error
message:
fatal: Unable to find destination for addr 0x1c030000 on system.iobus
 @ tick 101175788500
[findPort:build/ARM/mem/xbar.cc, line 358]

I've spent so much time to reach this point because the gem5 documentation
for Android and ARM WA is not clear enough. I'd appreciate it if you help
me on this issue.

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

Reply via email to