Bug#1098661: linux: fails to boot on VisionFive 2: Unhandled exception: Store/AMO access fault
On Sat, Feb 22, 2025 at 11:59:38AM +0100, Aurelien Jarno wrote:
> | Loading Linux 6.13-riscv64 ...
> | Loading initial ramdisk ...
> | EFI stub: Decompressing Linux Kernel...
> | Unhandled exception: Store/AMO access fault
> | EPC: 00000000fb64a6ea RA: 00000000fb64a6da TVAL: 0000000040020020
> | EPC: 000000003b9046ea RA: 000000003b9046da reloc adjusted
> |
> | Code: 0506 9526 4783 0015 4703 0005 3583 ed84 (0e23 fef9)
> | UEFI image [0x00000000fe6aa000:0x00000000fe6d0fff] '/efi\boot\bootriscv64.efi'
> | UEFI image [0x00000000fb646000:0x00000000fbe933ff] pc=0x46ea
I digged a bit. Yes, this is the file from
linux-image-6.13-riscv64_6.13.3-1~exp1_riscv64.deb. It contains the
mentioned instructions:
| 46da: 0506 slli a0,a0,0x1
| 46dc: 9526 add a0,a0,s1
| 46de: 00154783 lbu a5,1(a0)
| 46e2: 00054703 lbu a4,0(a0)
| 46e6: ed843583 ld a1,-296(s0)
| 46ea: fef90e23 sb a5,-4(s2)
I did not manage to get the crash you mentioned. The u-boot out of
u-boot-qemu_2024.01+dfsg-7_all.deb can start both the uncompressed EFI
file and the zboot compressed one. Sadly it fails unrelated shortly
after that in both cases.
Using the uncompressed file:
| % qemu-system-riscv64 -m 1024 -nographic -machine virt -device virtio-rng-pci -bios ../qemu-riscv64/u-boot.bin -device loader,file=../../../../boot/plain,addr=0x84000000
| U-Boot 2024.01+dfsg-7 (Jan 09 2025 - 19:14:04 +0000)
| CPU: rv64imafdch_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_zicntr_zicsr_zifencei_zihintntl_zihintpause_zihpm_zmmul_za64rs_zaamo_zalrsc_zawrs_zfa_zca_zcd_zba_zbb_zbc_zbs_ssccptr_sscounterenw_sstc_sstvala_sstvecd_svadu_svvptc
| Model: riscv-virtio,qemu
| DRAM: 1 GiB
| Core: 25 devices, 12 uclasses, devicetree: board
| Flash: 32 MiB
| Loading Environment from nowhere... OK
| In: serial,usbkbd
| Out: serial,vidconsole
| Err: serial,vidconsole
| No working controllers found
| Net: No ethernet found.
[…]
| => bootefi 0x84000000:0x1a61000
| No EFI system partition
| No EFI system partition
| Failed to persist EFI variables
| Booting /MemoryMapped(0x0,0x84000000,0x1a61000)
| EFI stub: Booting Linux Kernel...
| EFI stub: Using DTB from configuration table
| EFI stub: Exiting boot services...
| Unhandled exception: Environment call from M-mode
| EPC: 00000000baa1bd6c RA: 00000000baa1be9c TVAL: 0000000000000000
| EPC: 000000007b2ddd6c RA: 000000007b2dde9c reloc adjusted
|
| Code: 8562 85de 865a 86d6 8752 87ce 8866 88a6 (0073 0000)
| UEFI image [0x00000000bc488000:0x00000000bdee8fff]
Using the zboot compressed file:
| % qemu-system-riscv64 -m 1024 -nographic -machine virt -device virtio-rng-pci -bios ../qemu-riscv64/u-boot.bin -device loader,addr=0x84000000,file=../../../../boot/vmlinux-6.13-riscv64
| U-Boot 2024.01+dfsg-7 (Jan 09 2025 - 19:14:04 +0000)
[…]
| => bootefi 0x84000000:0x80d200
| No EFI system partition
| No EFI system partition
| Failed to persist EFI variables
| Booting /MemoryMapped(0x0,0x84000000,0x80d200)
| EFI stub: Decompressing Linux Kernel...
| EFI stub: Using DTB from configuration table
| EFI stub: Exiting boot services...
| Unhandled exception: Environment call from M-mode
| EPC: 000000008001bd6c RA: 000000008001be9c TVAL: 0000000000000000
| EPC: 00000000408ddd6c RA: 00000000408dde9c reloc adjusted
|
| Code: 8562 85de 865a 86d6 8752 87ce 8866 88a6 (0073 0000)
| UEFI image [0x00000000bd69b000:0x00000000bdee83ff]
The executed code is bogus, but identical both times. It lives at
different adresses.
Bastian
--
Killing is wrong.
-- Losira, "That Which Survives", stardate unknown
Reply to: