Sascha, thanks for your reply.

As you suggested, I tried gem5 outside of WA. I also prepared a dtb file
according to the instructions of this page (
http://www.gem5.org/Android_Marshmallow), which was more clear than the
instructions of the Kitkat page.

So, I tried this:

hossein@mercury:~/gem5$ build/ARM/gem5.opt configs/example/fs.py \
--kernel=/home/hossein/gem5_images/binaries/vmlinux-android \
--dtb-file=/home/hossein/gem5_images/binaries/vexpress-v2p-ca15-tc1-gem5.dtb
\
--disk-image=/home/hossein/gem5_images/disks/android_image.img \
--os-type=android-kitkat

But gem5 stops, showing this warning:
warn: Kernel panic in simulated kernel

The telnet session displays this at the end:
VFS: Cannot open root device "sda1" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available
partitions:
0100            4096 ram0  (driver?)
0101            4096 ram1  (driver?)
0102            4096 ram2  (driver?)
0103            4096 ram3  (driver?)
0104            4096 ram4  (driver?)
0105            4096 ram5  (driver?)
0106            4096 ram6  (driver?)
0107            4096 ram7  (driver?)
0108            4096 ram8  (driver?)
0109            4096 ram9  (driver?)
010a            4096 ram10  (driver?)
010b            4096 ram11  (driver?)
010c            4096 ram12  (driver?)
010d            4096 ram13  (driver?)
010e            4096 ram14  (driver?)
010f            4096 ram15  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on
unknown-block(0,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.0-gd5545a8-dirty #3
Hardware name: ARM-Versatile Express
[<c00161bc>] (unwind_backtrace) from [<c0012fd8>] (show_stack+0x10/0x14)
[<c0012fd8>] (show_stack) from [<c0217c8c>] (dump_stack+0x84/0xc4)
[<c0217c8c>] (dump_stack) from [<c00a6240>] (panic+0x9c/0x1ec)
[<c00a6240>] (panic) from [<c05ba2b4>] (mount_block_root+0x198/0x238)
[<c05ba2b4>] (mount_block_root) from [<c05ba564>] (mount_root+0x124/0x12c)
[<c05ba564>] (mount_root) from [<c05ba6e8>] (prepare_namespace+0x17c/0x1b4)
[<c05ba6e8>] (prepare_namespace) from [<c05b9eec>]
(kernel_init_freeable+0x244/0x254)
[<c05b9eec>] (kernel_init_freeable) from [<c044c7e0>] (kernel_init+0x8/0xe8)
[<c044c7e0>] (kernel_init) from [<c000f5f8>] (ret_from_fork+0x14/0x3c)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on
unknown-block(0,0)


Can you help on this problem?

Regards,
Hossein


On Tue, Nov 22, 2016 at 5:52 PM, Hossein Golestani <hosse...@umich.edu>
wrote:

> 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(_ZN15NoncoherentXBar10recvAtomi
> cEP6Packets+0x172)[0xbeb792]
> ./build/ARM/gem5.opt(_ZN6Bridge15BridgeSlavePort10re
> cvAtomicEP6Packet+0x24)[0xbaf864]
> ./build/ARM/gem5.opt(_ZN12CoherentXBar10recvAtomicEP
> 6Packets+0x6f3)[0xbc2303]
> ./build/ARM/gem5.opt(_ZN5Cache10recvAtomicEP6Packet+0x517)[0xc66a77]
> ./build/ARM/gem5.opt(_ZN12CoherentXBar10recvAtomicEP
> 6Packets+0x6f3)[0xbc2303]
> ./build/ARM/gem5.opt(_ZN5Cache10recvAtomicEP6Packet+0x517)[0xc66a77]
> ./build/ARM/gem5.opt(_ZN15AtomicSimpleCPU8writeMemEPhjm5FlagsIjEPm+0x3a4)[
> 0xb32744]
> ./build/ARM/gem5.opt(_ZN17SimpleExecContext8writeMem
> EPhjm5FlagsIjEPm+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