riscv: satp invalid while kvm set to cpu host

Host environment

  • Operating system: Linux
  • OS/kernel version: Linux milkv-megrez-2 6.6.73-win2030 #2025.01.23.02.46+aeb0f375c SMP Thu Jan 23 03:08:39 UTC 2025 riscv64 GNU/Linux
  • Architecture: riscv64
  • QEMU flavor: qemu-system-riscv64
  • QEMU version: any (master)
  • QEMU command line:
    qemu-system-riscv64 -machine virt --enable-kvm -smp 4 -m 2048 -cpu host -nographic \
     -bios /usr/local/share/opensbi/lp64/generic/firmware/fw_jump.elf \
     -kernel /usr/local/share/u-boot/u-boot-qemu-riscv64/u-boot.bin \
     -drive file=/tmp/riscv-world/riscv.img,format=raw,id=hd0,if=none \
     -device virtio-blk-device,drive=hd0

Emulated/Virtualized environment

  • Operating system: Any
  • OS/kernel version: any
  • Architecture: riscv64

Description of problem

After boot, no "mmu-type" in dtb

 cpu@0 {                                                                                        
                                                                                                
         phandle = <0x7>;                                                                       
         device_type = "cpu";                                                                   
         reg = <0x0>;                                                                           
         status = "okay";                                                                       
         compatible = "riscv";                                                                  
         riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", "zifencei", "zi
bb";                                                                                            
         riscv,isa-base = "rv64i";                                                              
         riscv,isa = "rv64imafdc_zicntr_zicsr_zifencei_zihpm_zba_zbb";                                                                                   
         interrupt-controller {                                                                 
                                                                                                
                 #interrupt-cells = <0x1>;                                                      
                 interrupt-controller;                                                          
                 compatible = "riscv,cpu-intc";                                                 
                 phandle = <0x8>;                                                               
         };                                                                                     
 };                                                                                             

Steps to reproduce

  1. boot any qemu with -cpu host
Edited by Meng Zhuo