
On Mon, Apr 22, 2024 at 04:43:59PM -0300, Daniel Henrique Barboza wrote:
[EXTERNAL MAIL]
Hi,
In QEMU we have a 'max' type CPU that implements (almost) all extensions that QEMU is able to emulate. Recently, in QEMU commit 249e0905d05, we bumped the extensions for this CPU.
And after this commit this CPU is now unable to boot a guest using upstream u-boot. Here's the error being thrown:
qemu-system-riscv64 \ -machine virt -nographic -m 8G -smp 8 \ -cpu max -kernel uboot.elf (...) (...)
initcall sequence 000000008027c3e8 failed at call 000000008021259e (err=-28) ### ERROR ### Please RESET the board ###
I can get the guest to boot if I disable the following extensions from the 'max' CPU:
-cpu max,zfbfmin=false,zvfbfmin=false,zvfbfwma=false
Due to QEMU extension dependencies I'm not able to disable these individually. What I can say is that u-boot isn't playing ball to at least one of them.
Is this an u-boot bug? Up to this point I was assuming that u-boot would silently ignore hart extensions that it doesn't support.
Hi Daniel,
Which u-boot version are you using?
I think this issue is fixed by the following patch set sent by Conor.
f39b1b77d8 riscv: support extension probing using riscv, isa-extensions b90edde701 riscv: don't read riscv, isa in the riscv cpu's get_desc()
I've tested and can reproduce the issue you mentioned if these two patches are reverted.
Could you try with the lastest u-boot master branch again?
For reference, my testing commands are as follows: 1. cd ${u-boot} && make qemu-riscv64_defconfig && make -j`nproc` 2. ./${qemu}/build/qemu-system-riscv64 -nographic -machine virt -cpu max -bios u-boot.bin -m 8G -smp 8
- u-boot branch (commit): master (38ea74d6d5c0 "Prepare v2024.07-rc1") - qemu branch (commit): master (62dbe54c24db "Update version for v9.0.0-rc4 release")
Best regards, Leo
Thanks,
Daniel