Bug#1108898: riscv64: Illegal instruction appears when using rdcycle in grub
Han Gao
rabenda.cn at gmail.com
Mon Jul 7 10:43:03 BST 2025
Package: grub-efi-riscv64-unsigned
User: debian-riscv at lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: debian-riscv at lists.debian.org
X-Debbugs-Cc: rabenda.cn at gmail.com
Version: 2.12-8
Severity: normal
Tags: upstream
Dear Maintainer,
Illegal instructions will occur when debian riscv64 iso boots to grub.efi.
Because grub uses the rdcycle instruction.
Upstream[1] has fixed this issue and hopes to backport to 2.12.
[1]: https://cgit.git.savannah.gnu.org/cgit/grub.git/commit/grub-core/kern/riscv/efi/init.c?id=c5ae124e11f28f637cbd38cb4d6c1b9817baa135
sudo qemu-system-riscv64 --enable-kvm -M virt -cpu host -m 2048 -smp 2
-nographic \
-boot d -cdrom debian-testing-riscv64-netinst.iso \
-device virtio-net-device,netdev=eth0 -netdev user,id=eth0 \
-device virtio-rng-pci \
-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \
-drive file=debian.qcow2,format=qcow2,if=virtio
U-Boot 2025.01-3 (Apr 08 2025 - 23:07:41 +0000)
CPU: riscv
Model: riscv-virtio,qemu
DRAM: 2 GiB
Core: 28 devices, 13 uclasses, devicetree: board
Flash: 32 MiB
Loading Environment from nowhere... OK
In: serial,usbkbd
Out: serial,vidconsole
Err: serial,vidconsole
No USB controllers found
Net: eth0: virtio-net#0
Working FDT set to feee6c60
Hit any key to stop autoboot: 0
Device 0: unknown device
Device 0: 1af4 VirtIO Block Device
Type: Hard Disk
Capacity: 610.2 MB = 0.5 GB (1249880 x 512)
... is now current device
Scanning virtio 0:2...
Failed to load '/'
Failed to load '/dtb/'
Failed to load EFI variables
Error: writing contents
** Unable to write file ubootefi.var **
Failed to persist EFI variables
Error: writing contents
** Unable to write file ubootefi.var **
Failed to persist EFI variables
Error: writing contents
** Unable to write file ubootefi.var **
Failed to persist EFI variables
Error: writing contents
** Unable to write file ubootefi.var **
Failed to persist EFI variables
Error: writing contents
** Unable to write file ubootefi.var **
Failed to persist EFI variables
Booting: virtio 0
Unhandled exception: Illegal instruction
EPC: 00000000fdc7a0b8 RA: 00000000fdc7a0fa TVAL: 00000000c0002573
EPC: 000000007e7720b8 RA: 000000007e7720fa reloc adjusted
SP: 00000000feee5050 GP: 0000000000000000 TP: 0000000000000000
T0: 00000000000000e0 T1: 00000000fdc6efe8 T2: 00000000000000f0
S0: 00000000feee5160 S1: 00000000feee52b0 A0: 00000000fdc6efa0
A1: 0000000000000000 A2: 00000000fdc6efe8 A3: fffffffffffffff8
A4: ffffffffffffffb8 A5: 0000000000000001 A6: 0000000000000007
A7: 0000000000000000 S2: 00000000fdc7f528 S3: 00000000fdc7f478
S4: 0000000000000000 S5: 00000000ff7f782c S6: 0000000000000000
S7: 00000000fef2fa70 S8: 0000000000000000 S9: 0000000000000001
S10: 0000000000000001 S11: 0000000000000000 T3: 000000000000001f
T4: 0000000000010000 T5: ffffffffffffffff T6: 00000000000000c0
Code: 7d42 7da2 6149 8082 1141 e022 e406 0800 (2573 c000)
UEFI image [0x00000000fdc6f000:0x00000000fdd8efff] pc=0xb0b8
'/\EFI\BOOT\BOOTRISCV64.EFI'
Thanks,
Han
More information about the Pkg-grub-devel
mailing list