Bug 2227418 - qemu-system-ppc64 can't boot image from nvme driver
Summary: qemu-system-ppc64 can't boot image from nvme driver
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: qemu
Version: 38
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Fedora Virtualization Maintainers
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-07-29 13:24 UTC by JianHong Yin
Modified: 2023-07-29 14:15 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description JianHong Yin 2023-07-29 13:24:00 UTC
qemu-system-ppc64 can't boot image from nvme driver

'''
Escape character is ^] (Ctrl + ])
Populating /vdevice methods
Populating /vdevice/vty@30000000
Populating /vdevice/nvram@71000000
Populating /pci@800000020000000
                     00 0800 (D) : 1af4 1000    virtio [ net ]
                     00 1000 (D) : 1af4 1000    virtio [ net ]
                     00 1800 (D) : 1b36 000d    serial bus [ usb-xhci ]
                     00 2000 (D) : 1af4 1004    virtio [ scsi ]
Populating /pci@800000020000000/scsi@4
       SCSI: Looking for devices
          100000000000000 CD-ROM   : "QEMU     QEMU CD-ROM      2.5+"
                     00 2800 (D) : 1af4 1003    virtio [ serial ]
                     00 3000 (D) : 1af4 1002    legacy-device*
                     00 3800 (D) : 1af4 1050    virtio [ gpu ]
                     00 8000 (D) : 1b36 0010    mass-storage*
                     00 8800 (D) : 1b36 0010    mass-storage*
No NVRAM common partition, re-initializing...
Scanning USB 
  XHCI: Initializing
    USB Keyboard 
Using default console: /vdevice/vty@30000000
     
  Welcome to Open Firmware

  Copyright (c) 2004, 2017 IBM Corporation All rights reserved.
  This program and the accompanying materials are made available
  under the terms of the BSD License available at
  http://www.opensource.org/licenses/bsd-license.php


Trying to load:  from: /pci@800000020000000/mass-storage@10 ... 
E3404: Not a bootable device!
Trying to load:  from: /pci@800000020000000/scsi@4/disk@100000000000000 ... 
E3404: Not a bootable device!

E3407: Load failed

  Type 'boot' and press return to continue booting the system.
  Type 'reset-all' and press return to reboot the system.


Ready! 
0 > boot  
Trying to load:  from: /pci@800000020000000/mass-storage@10 ... 
E3404: Not a bootable device!
Trying to load:  from: /pci@800000020000000/scsi@4/disk@100000000000000 ... 
E3404: Not a bootable device!

E3407: Load failed

  Type 'boot' and press return to continue booting the system.
  Type 'reset-all' and press return to reboot the system.

 ok
0 > 
'''

Reproducible: Always

Steps to Reproduce:
1. create vm with nvme device
'''
  <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='power10'/>
    <qemu:arg value='-drive'/>
    <qemu:arg value='file=/home/jiyin/VMs/RHEL-9.3.0-20230729.33/jiyin-rhel-930-2023072933_ppc64/rhel-guest-image-9.3-20230729.33.ppc64le.qcow2,format=qcow2,if=none,id=NVME0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='nvme,drive=NVME0,serial=nvme-0,bootindex=0,addr=0x10'/>
  </qemu:commandline>
'''

virt-install command line:
'''
virt-install --connect=qemu:///system --virt-type=qemu --accelerate '--qemu-commandline=-cpu power10' '--qemu-commandline=-drive file=/home/jiyin/VMs/RHEL-9.3.0-20230729.33/jiyin-rhel-930-2023072933_ppc64/rhel-guest-image-9.3-20230729.33.ppc64le.qcow2,format=qcow2,if=none,id=NVME0 -device nvme,drive=NVME0,serial=nvme-0,bootindex=0,addr=0x10' --os-variant=detect=on,require=off --name jiyin-rhel-930-2023072933_ppc64 --import --vcpus 4,sockets=1,cores=4 --arch=ppc64 --memory=1536 --disk /home/jiyin/VMs/RHEL-9.3.0-20230729.33/jiyin-rhel-930-2023072933_ppc64/jiyin-rhel-930-2023072933_ppc64-cloud-init.iso,device=cdrom --network=network=default,model=virtio --network=type=direct,source=enp2s0,source_mode=bridge,model=virtio --video=virtio --noautoconsole --graphics=vnc,listen=0.0.0.0 

virsh console $vmname
'''
Actual Results:  
qemu-system-ppc64 can't boot image from nvme driver;
'''
$ qemu-system-ppc64 -device help|grep nvme
name "nvme", bus PCI, desc "Non-Volatile Memory Express"
name "nvme-ns", bus nvme-bus, desc "Virtual NVMe namespace"
name "nvme-subsys", desc "Virtual NVMe subsystem"
'''

** if don't use nvme driver, it can always start success.

Expected Results:  
  qemu-system-ppc64 can boot image from nvme driver success

More information:
  **same version, qemu-system-aarch64,qemu-system-x86_64 works well booting from nvme

Comment 1 JianHong Yin 2023-07-29 14:15:56 UTC
my reproducer based on kiss-vm
'''
1. install kiss-vm
   curl -s https://raw.githubusercontent.com/tcler/kiss-vm-ns/master/utils/kiss-update.sh|sudo bash && sudo vm prepare
2. create vm that boot from nvme
   vm create CentOS-9-stream -n c9s-nvmeboot --arch ppc64le  --nvmeboot
'''


Note You need to log in before you can comment on or make changes to this bug.