diff options
Diffstat (limited to 'gitlab/issues/target_riscv/host_missing/accel_missing/1343.toml')
| -rw-r--r-- | gitlab/issues/target_riscv/host_missing/accel_missing/1343.toml | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gitlab/issues/target_riscv/host_missing/accel_missing/1343.toml b/gitlab/issues/target_riscv/host_missing/accel_missing/1343.toml new file mode 100644 index 000000000..8687979ed --- /dev/null +++ b/gitlab/issues/target_riscv/host_missing/accel_missing/1343.toml @@ -0,0 +1,44 @@ +id = 1343 +title = "qemu-system-riscv64: It cannot initialize ramfb video adapter" +state = "closed" +created_at = "2022-11-28T12:54:15.566Z" +closed_at = "2025-03-25T20:03:29.030Z" +labels = ["kind::Feature Request", "target: riscv"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/1343" +host-os = "Ubuntu 22.04.1" +host-arch = "x86_64" +qemu-version = "QEMU emulator version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.5)" +guest-os = "Bare metal" +guest-arch = "riscv64" +description = """It looks like ramfb video adapter doesn't work in riscv64 architecture. But it works fine in aarch64 architecture.""" +reproduce = """1. Launch the [attached kernel](/uploads/43282fa1bd6959472af4f99646b447b9/kernel) with command: +``` +qemu-system-riscv64 -machine virt -kernel kernel -device ramfb -bios none -serial stdio +``` +2. You will get the messages in console: +``` +guest fw_cfg dma-interface enabled +setup ramfb successfull +``` +3. Video adapter will not initialize. QEMU window will continue display this message: +``` +Guest has not initialized the display (yet). +```""" +additional = """There is a useful project for aarch64 architecture - https://github.com/luickk/qemu-ramfb-aarch64-driver. This is a Bare metal driver for ramfb adapter. It works fine. I adapted it for riscv64 architecture - https://github.com/CityAceE/qemu-ramfb-riscv64-driver. I've successfully went through all problems. Driver compiles now and launches. But unfortunately ramfb doesn't initialize. I parallel traced aarch64 and riscv64. They works equal until initialization. Aarch64 changes revolution just after qemu_cfg_write_entry call, but nothing happened after qemu_cfg_write_entry call in riscv64 emulation. I spent a lot of time trying to resolve this problem, but it looks like a problem in qemu-system-riscv64. + +**UPDATE** + +Tested with Windows builds of QEMU: + +v 6.1 - The same situation as Ubuntu build 6.2. + +v 7.1.92 - Stopped with message: +``` +c:\\Program Files\\qemu\\qemu-system-riscv64.exe: -device ramfb: ramfb device requires fw_cfg with DMA +``` + +P.S. v 7.1.92 - qemu-system-aarch64.exe with [aarch64 kernel build](/uploads/0df1d440163913c25a1505032672e1c5/kernel) works fine. + +**UPDATE2** + +[QEMU emulator version 7.0.0 (v7.0.0-11902-g1d935f4a02-dirty)](https://qemu.weilnetz.de/w64/2022/qemu-w64-setup-20220419.exe) is the last Windows build which opens my riscv64 kernel without message about requirement of fw_cfg with DMA. Next build "QEMU emulator version 7.0.90 (v7.1.0-rc0-11915-g5f9b281b8a-dirty)" already has this issue.""" |