Hi Pedro,

I'd recommend you to rely on the "configs/example/arm/starter_fs.py" script 
instead and, with M5_PATH pointing to the

/home/pedro/Projects/gem5/fs_files/aarch-system-201901106 folder, simply run 
with

build/ARM/gem5.opt  configs/example/arm/starter_fs.py \
    --kernel $M5_PATH/binaries/vmlinux.arm64 \
    --disk-image 
=/home/pedro/Projects/gem5/fs_files/ubuntu-18.04-arm64-docker.img \
    --root /dev/vda

Let me know if it works

Kind Regards

Giacomo

> -----Original Message-----
> From: Pedro Becker via gem5-users <gem5-users@gem5.org>
> Sent: 22 March 2021 12:28
> To: gem5-users@gem5.org
> Cc: Pedro Becker <pe...@ac.upc.edu>
> Subject: [gem5-users] Cannot boot full-system aarch64
>
> Hi all,
>
> I've been recently advised to try full-system instead of syscall emulation due
> to some errors I was having with the latter.
> Since I never ran gem5 + full-system before I want to do the simplest thing
> possible: boot and exit. However, I'm getting errors as displayed below.
>
> To "reproduce" my errors, here's what I've done:
>
> 1) clone gem5 2373934b8224e33c55ce96a0fe7751caeee13baf (v20.1.0.4)
> 2) build gem5
>     scons build/ARM/gem5.opt
> 3) build m5
>     scons -C util/m5 build/aarch64/out/m5
> 4) build term (to attach and read boot output)
>     $ cd gem5/util/term
>     $ make
> 5) Download recommended guest binaries
> (https://www.gem5.org/documentation/general_docs/fullsystem/guest_bi
> naries), namely:
>     http://dist.gem5.org/dist/current/arm/aarch-system-201901106.tar.bz2
>     http://dist.gem5.org/dist/current/arm/disks/ubuntu-18.04-arm64-
> docker.img.bz2
> 6) Run full system (fs.py) pointing out the disk image, kernel, and bootloader
>      ./build/ARM/gem5.opt configs/example/fs.py --disk-
> image=/home/pedro/Projects/gem5/fs_files/ubuntu-18.04-arm64-
> docker.img --kernel=/home/pedro/Projects/gem5/fs_files/aarch-system-
> 201901106/binaries/vmlinux.arm64 --
> bootloader=/home/pedro/Projects/gem5/fs_files/aarch-system-
> 201901106/binaries/boot.arm64
>
> Terminal output:
> warn: iobus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: bridge.master is deprecated. `master` is now called
> `mem_side_port`
> warn: membus.master is deprecated. `master` is now called
> `mem_side_ports`
> warn: bridge.slave is deprecated. `slave` is now called
> `cpu_side_port`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: iobus.master is deprecated. `master` is now called
> `mem_side_ports`
> warn: iobridge.slave is deprecated. `slave` is now called
> `cpu_side_port`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: iobridge.master is deprecated. `master` is now called
> `mem_side_port`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.master is deprecated. `master` is now called
> `mem_side_ports`
> Global frequency set at 1000000000000 ticks per second
> warn: DRAM device capacity (8192 Mbytes) does not match the
> address range assigned (512 Mbytes)
> info: kernel located at: /home/pedro/Projects/gem5/fs_files/aarch-
> system-201901106/binaries/vmlinux.arm64
> warn: Highest ARM exception-level set to AArch32 but the workload
> is for AArch64. Assuming you wanted these to match.
> system.vncserver: Listening for connections on port 5900
> system.terminal: Listening for connections on port 3456
> system.realview.uart1.device: Listening for connections on port 3457
> system.realview.uart2.device: Listening for connections on port 3458
> system.realview.uart3.device: Listening for connections on port 3459
> 0: system.remote_gdb: listening for remote gdb on port 7000
> info: Using bootloader at address 0x10
> info: Using kernel entry physical address at 0x80080000
> warn: DTB file specified, but no device tree support in kernel
> **** REAL SIMULATION ****
> warn: Existing EnergyCtrl, but no enabled DVFSHandler found.
> panic: panic condition !e occurred: Failed to find kernel symbol 'panic'
> Memory Usage: 989856 KBytes
> Program aborted at tick 0
> --- BEGIN LIBC BACKTRACE ---
> ./build/ARM/gem5.opt(+0x4ebf50)[0x560601825f50]
> ./build/ARM/gem5.opt(+0x50048e)[0x56060183a48e]
> /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7fab9783f3c0]
> /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7fab969e718b]
> /lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7fab969c6859]
> ./build/ARM/gem5.opt(+0x568a45)[0x5606018a2a45]
> ./build/ARM/gem5.opt(+0x198eee8)[0x560602cc8ee8]
> ./build/ARM/gem5.opt(+0x14ac438)[0x5606027e6438]
> ./build/ARM/gem5.opt(+0x123381a)[0x56060256d81a]
> ./build/ARM/gem5.opt(+0x57987f)[0x5606018b387f]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x2a8408)[0x7fab97af5408]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyObject_MakeTpCall+0xab)[0x7fab97af57db]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x2a8aa0)[0x7fab97af5aa0]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x74d6d)[0x7fab978c1d6d]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x7d86)[0x7fab978c9ef6]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7fab97a17d3
> b]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x94)[0x7fab97af4de4]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x74d6d)[0x7fab978c1d6d]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x7d86)[0x7fab978c9ef6]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x8006b)[0x7fab978cd06b]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x74d6d)[0x7fab978c1d6d]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x12fd)[0x7fab978c346d]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7fab97a17d3
> b]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x94)[0x7fab97af4de4]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x74d6d)[0x7fab978c1d6d]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x7d86)[0x7fab978c9ef6]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7fab97a17d3
> b]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(PyEval_EvalCodeEx+0x42)[0x7fab97a180c2]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(PyEval_EvalCode+0x1f)[0x7fab97a184af]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x1cfaa1)[0x7fab97a1caa1]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x25f3a7)[0x7fab97aac3a7]
> /lib/x86_64-linux-
> gnu/libpython3.8.so.1.0(+0x74d6d)[0x7fab978c1d6d]
> --- END LIBC BACKTRACE ---
> Aborted (core dumped)
>
> Alternatively, instead of pointing all flags, I exported the M5_PATH to point
> /home/pedro/Projects/gem5/fs_files/aarch-system-201901106, and run
> gem5 again indicating only the --disk-image. Same error.
>
> 7) Found this suggestion of adding the --bare-metal option in a previously
> posted question (https://www.mail-archive.com/gem5-
> us...@gem5.org/msg16107.html)
>   Fails with:
>         warn: iobus.slave is deprecated. `slave` is now called 
> `cpu_side_ports`
> warn: bridge.master is deprecated. `master` is now called
> `mem_side_port`
> warn: membus.master is deprecated. `master` is now called
> `mem_side_ports`
> warn: bridge.slave is deprecated. `slave` is now called
> `cpu_side_port`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: iobus.master is deprecated. `master` is now called
> `mem_side_ports`
> warn: iobridge.slave is deprecated. `slave` is now called
> `cpu_side_port`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: iobridge.master is deprecated. `master` is now called
> `mem_side_port`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.slave is deprecated. `slave` is now called
> `cpu_side_ports`
> warn: membus.master is deprecated. `master` is now called
> `mem_side_ports`
> Global frequency set at 1000000000000 ticks per second
> warn: DRAM device capacity (8192 Mbytes) does not match the
> address range assigned (512 Mbytes)
> info: kernel located at: /home/pedro/Projects/gem5/fs_files/aarch-
> system-201901106/binaries/vmlinux.arm64
> system.vncserver: Listening for connections on port 5900
> system.terminal: Listening for connections on port 3456
> system.realview.uart1.device: Listening for connections on port 3457
> system.realview.uart2.device: Listening for connections on port 3458
> system.realview.uart3.device: Listening for connections on port 3459
> 0: system.remote_gdb: listening for remote gdb on port 7000
> fatal: fatal condition !system->isMemAddr(mapper(_start))
> || !system->isMemAddr(mapper(_end)) occurred: Kernel is mapped to
> invalid location (not memory). start (0xffffff8008080000) - end
> (0xffffff8008aa74b0) 0xffffff8008080000:0xffffff8008aa74b0
>
>
> 8) Further discussion on previous question also suggest adding --param
> 'system.highest_el_is_64 = True' --param 'system.auto_reset_addr_64 =
> True' to aarch64, which also does not work with:
>           Traceback (most recent call last):
>     File "<string>", line 1, in <module>
>   File "build/ARM/python/m5/main.py", line 457, in main
>     exec(filecode, scope)
>   File "configs/example/fs.py", line 386, in <module>
>     Simulation.run(options, root, test_sys, FutureClass)
>   File "/home/pedro/Projects/gem5/configs/common/Simulation.py",
> line 621, in run
>     root.apply_config(options.param)
>   File "build/ARM/python/m5/SimObject.py", line 1737, in
> apply_config
>     exec(param, d)
>   File "<string>", line 1, in <module>
>   File "build/ARM/python/m5/SimObject.py", line 1077, in
> __setattr__
>     raise SimObjectCliWrapperException(
> m5.SimObject.SimObjectCliWrapperException: tried to set or access
> non-existentobject parameter: auto_reset_addr_64
>
>
> So... the questions:
> - Is it possible to run fs with aarch64? (I suppose so since there are guest
> binaries for that)
> - Any reason why I'm not able to boot?
>
> Thank you very much for any suggestions!
> Cheers,
> Pedro.
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an
> email to gem5-users-
> le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
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.
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to