RISC-V: crash in riscv_get_time()
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Aug 6 16:27:56 CEST 2020
On 06.08.20 13:18, Rick Chen wrote:
> Hi Heinrich
>
>> From: Heinrich Schuchardt [mailto:xypron.glpk at gmx.de]
>> Sent: Thursday, August 06, 2020 6:45 PM
>> To: Bin Meng; Rick Jian-Zhi Chen(陳建志)
>> Cc: U-Boot Mailing List
>> Subject: RISC-V: crash in riscv_get_time()
>>
>> Hello Rick, hello Bin,
>>
>> when I run qemu-riscv64_defconfig using
>>
>> qemu-system-riscv64 -machine virt -m 1G -nographic \
>> -bios u-boot \
>> -device virtio-net-device,netdev=net0 \
>> -netdev user,id=net0,tftp=tftp
>>
>> a crash occurs in riscv_get_time() when executing readq().
>>
>> $ qemu-system-riscv64 --version
>> QEMU emulator version 5.0.0 (Debian 1:5.0-13)
>>
>> Looking at doc/board/emulation/qemu-riscv.rst this should work.
>>
>> Is there something missing in the documentation?
>>
>
> You can try this
> ./qemu-system-riscv64 -nographic -machine virt -bios u-boot -device
> virtio-net-device,netdev=net0 -netdev user,id=net0,tftp=tftp
>
> It can work as below:
>
> U-Boot 2020.10-rc1-00299-g89150a9 (Aug 06 2020 - 19:14:01 +0800)
>
> CPU: rv64imafdcsu
> Model: riscv-virtio,qemu
> DRAM: 128 MiB
> In: uart at 10000000
> Out: uart at 10000000
> Err: uart at 10000000
> Net: eth0: virtio-net#0
> Hit any key to stop autoboot: 0
> => help
But on Debian Bullseye it fails:
$ git reset --hard origin/master
$ make mrproper
$ make qemu-riscv64_defconfig
$ export CROSS_COMPILE
$ export CROSS_COMPILE=riscv64-linux-gnu-
$ qemu-system-riscv64 -nographic -machine virt \
> -bios u-boot \
> -device virtio-net-device,netdev=net0 \
> -netdev user,id=net0,tftp=tftp
U-Boot 2020.10-rc1-00120-g1521326b7a (Aug 06 2020 - 16:17:14 +0200)
CPU: rv64imafdcsu
Model: riscv-virtio,qemu
DRAM: 128 MiB
In: uart at 10000000
Out: uart at 10000000
Err: uart at 10000000
Net: eth0: virtio-net#0
Hit any key to stop autoboot: 2 Unhandled exception: Load access fault
EPC: 0000000087f6e282 TVAL: 000000000200bff8
### ERROR ### Please RESET the board ###
Debian uses QEMU 5.
QEMU emulator version 5.0.0 (Debian 1:5.0-13)
The QEMU in our Dockerimage used for Gitlab is
QEMU emulator version 4.2.0 (v4.2.0-dirty)
With this outdated QEMU the emulation succeeds.
Our testing should succeed on current QEMU.
Best regards
Heinrich
More information about the U-Boot
mailing list