Hi Pedro,

I'm running aarch64 FS so it's definitely possible (although I am on an older patch...). I can't really comment on your error except for the fact that this looks like a memory mapping issue. It could be worth looking at the patch history to see if something changed recently, just to check (like searching for "kernel").

Things you could try :

- Only set 'system.highest_el_is_64 = True' and see what happens.

- Older disk image (http://dist.gem5.org/dist/current/arm/disks/aarch64-ubuntu-trusty-headless.img.bz2)

Hope it works out,

Arthur

On 3/22/21 1:28 PM, Pedro Becker via gem5-users wrote:
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_binaries), 
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)[0x7fab97a17d3b]
        
/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)[0x7fab97a17d3b]
        
/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)[0x7fab97a17d3b]
        
/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-users@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
_______________________________________________
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