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."""