Hello,

With current edk2/master booting AMD SEV-ES and SNP guests with AmdSevX64 package is failing with below error:

2025-01-22 04:46:42: [Bds]OsIndication: 0000000000000000
2025-01-22 04:46:42: [Bds]=============Begin Load Options Dumping ...=============
2025-01-22 04:46:42:   Driver Options:
2025-01-22 04:46:42:   SysPrep Options:
2025-01-22 04:46:42:   Boot Options:
2025-01-22 04:46:42:     Boot0000: UiApp 		 0x0109
2025-01-22 04:46:42:     Boot0001: Grub Bootloader 		 0x0001
2025-01-22 04:46:42:   PlatformRecovery Options:
2025-01-22 04:46:42:     PlatformRecovery0000: Default PlatformRecovery 		 0x0001
2025-01-22 04:46:42: [Bds]=============End Load Options Dumping=============
2025-01-22 04:46:42: [Bds]BdsWait ...Zzzzzzzzzzzz...
2025-01-22 04:46:42: [Bds]Exit the waiting!
2025-01-22 04:46:42: Memory  Previous  Current    Next
2025-01-22 04:46:42:  Type    Pages     Pages     Pages
2025-01-22 04:46:42: ======  ========  ========  ========
2025-01-22 04:46:42:   0A    00000080  00000022  00000080
2025-01-22 04:46:42:   09    00000010  00000011  00000015
2025-01-22 04:46:42:   00    00000080  00000042  00000080
2025-01-22 04:46:42:   05    00000100  0000003F  00000100
2025-01-22 04:46:42:   06    00000100  000000B3  00000100
2025-01-22 04:46:42: Memory Type Information settings change.
2025-01-22 04:46:42: [Bds]Booting Grub Bootloader
2025-01-22 04:46:42: [Bds] Expand Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(B5AE312C-BC8A-43B1-9C62-EBB826DD5D07) -> <null string>
2025-01-22 04:46:42: BdsDxe: failed to load Boot0001 "Grub Bootloader" from Fv(7CB8BDC9-F8EB-4F34-AAEA-3EE4AF6516A1)/FvFile(B5AE312C-BC8A-43B1-9C62-EBB826DD5D07): Not Found
2025-01-22 04:46:42: Process PlatformRecovery0000 (Default PlatformRecovery) ...
2025-01-22 04:46:42: InstallProtocolInterface: 387477C1-69C7-11D2-8E39-00A0C969723B 7B107028
2025-01-22 04:46:42: InstallProtocolInterface: DD9E7534-7762-4698-8C14-F58517A625AA 7B107040
2025-01-22 04:46:42: InstallProtocolInterface: D3B36F2B-D551-11D4-9A46-0090273FC14D 0
2025-01-22 04:46:42: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:42: XhcCreateUsb3Hc: Capability length 0x40
2025-01-22 04:46:42: XhcCreateUsb3Hc: HcSParams1 0x8001040
2025-01-22 04:46:42: XhcCreateUsb3Hc: HcSParams2 0xF
2025-01-22 04:46:42: XhcCreateUsb3Hc: HcCParams 0x87001
2025-01-22 04:46:42: XhcCreateUsb3Hc: DBOff 0x2000
2025-01-22 04:46:42: XhcCreateUsb3Hc: RTSOff 0x1000
2025-01-22 04:46:42: XhcCreateUsb3Hc: UsbLegSupOffset 0xFFFFFFFF
2025-01-22 04:46:42: XhcCreateUsb3Hc: DebugCapSupOffset 0xFFFFFFFF
2025-01-22 04:46:42: XhcCreateUsb3Hc: Usb2SupOffset 0x0
2025-01-22 04:46:42: XhcCreateUsb3Hc: Usb3SupOffset 0x10
2025-01-22 04:46:42: XhcResetHC!
2025-01-22 04:46:42: XhcInitSched:DCBAA=0x7C2AB000
2025-01-22 04:46:42: XhcInitSched: Created CMD ring [7C2AB240~7C2AC240) EVENT ring [7C2AC240~7C2AE240)
2025-01-22 04:46:42: InstallProtocolInterface: 3E745226-9818-45B6-A2AC-D7CD0E8BA2BC 7B0F0038
2025-01-22 04:46:42: XhcDriverBindingStart: XHCI started for controller @ 7D256F98
2025-01-22 04:46:42: InstallProtocolInterface: 240612B7-A063-11D4-9A3A-0090273FC14D 7B1051A0
2025-01-22 04:46:42: XhcGetCapability: 8 ports, 64 bit 1
2025-01-22 04:46:42: UsbRootHubInit: root hub 7B0DF098 - max speed 3, 8 ports
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 0 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 0)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 0
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 1 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 1)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 1
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 2 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 2)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 2
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 3 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 3)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 3
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 4 state - 401, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 4)
2025-01-22 04:46:42: UsbEnumeratePort: new device connected at port 4
2025-01-22 04:46:42: XhcUsbPortReset!
2025-01-22 04:46:42: XhcSetRootHubPortFeature: status Success
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: Enable Slot Successfully, The Slot ID = 0x1
2025-01-22 04:46:42:     Address 1 assigned successfully
2025-01-22 04:46:42: UsbEnumerateNewDev: hub port 4 is reset
2025-01-22 04:46:42: UsbEnumerateNewDev: device is of 2 speed
2025-01-22 04:46:42: UsbEnumerateNewDev: device uses translator (0, 0)
2025-01-22 04:46:42: UsbEnumerateNewDev: device is now ADDRESSED at 1
2025-01-22 04:46:42: UsbEnumerateNewDev: max packet size for EP 0 is 64
2025-01-22 04:46:42: Evaluate context
2025-01-22 04:46:42: UsbBuildDescTable: device has 1 configures
2025-01-22 04:46:42: UsbGetOneConfig: total length is 34
2025-01-22 04:46:42: UsbParseConfigDesc: config 1 has 1 interfaces
2025-01-22 04:46:42: UsbParseInterfaceDesc: interface 0(setting 0) has 1 endpoints
2025-01-22 04:46:42: Endpoint[81]: Created INT ring [7C2B0000~7C2B1000)
2025-01-22 04:46:42: Configure Endpoint
2025-01-22 04:46:42: UsbEnumerateNewDev: device 1 is now in CONFIGED state
2025-01-22 04:46:42: UsbSelectConfig: config 1 selected for device 1
2025-01-22 04:46:42: UsbSelectSetting: setting 0 selected for interface 0
2025-01-22 04:46:42: InstallProtocolInterface: 09576E91-6D3F-11D2-8E39-00A0C969723B 7B0DF598
2025-01-22 04:46:42: InstallProtocolInterface: 2B2F68D6-0CD2-44CF-8E8B-BBA20B1B5B75 7B0DEF40
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 5 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 5)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 5
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 6 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 6)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 6
2025-01-22 04:46:42: XhcClearRootHubPortFeature: status Success
2025-01-22 04:46:42: UsbEnumeratePort: port 7 state - 00, change - 01 on 7B0DF098
2025-01-22 04:46:42: UsbEnumeratePort: Device Connect/Disconnect Normally (port 7)
2025-01-22 04:46:42: UsbEnumeratePort: device disconnected event on port 7
2025-01-22 04:46:42: UsbBusStart: usb bus started on 7D256F98, root hub 7B0DF098
2025-01-22 04:46:42: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:42: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43:  BlockSize : 512
2025-01-22 04:46:43:  LastBlock : 51FFFFF
2025-01-22 04:46:43: InstallProtocolInterface: FA920010-6785-4941-B6EC-498C579F160A 7B0DCC20
2025-01-22 04:46:43: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43:  BlockSize : 512
2025-01-22 04:46:43:  LastBlock : 51FFFFF
2025-01-22 04:46:43: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:43: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:43:  BlockSize : 512
2025-01-22 04:46:43:  LastBlock : 51FFFFF
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43: QemuKernelStubFileOpen: file not found: "EFI\BOOT\BOOTX64.EFI"
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43:  BlockSize : 512
2025-01-22 04:46:43:  LastBlock : 51FFFFF
2025-01-22 04:46:43: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43:  BlockSize : 512
2025-01-22 04:46:43:  LastBlock : 51FFFFF
2025-01-22 04:46:43: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:43: PciSioSerial: Create SIO child serial device - Device Error
2025-01-22 04:46:43:  BlockSize : 512
2025-01-22 04:46:43:  LastBlock : 51FFFFF
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL before connect is 4
2025-01-22 04:46:43: UsbBusRecursivelyConnectWantedUsbIo: TPL after connect is 4
2025-01-22 04:46:43: [Bds] Expand \EFI\BOOT\BOOTX64.EFI -> <null string>
2025-01-22 04:46:43: [Bds] Unable to boot!
2025-01-22 04:46:43: BdsDxe: No bootable option was found.
<-- Hangs here

Same test had passed yesterdays master, I did git bisect which points to below commit. The commit before this passes the same boot test.

commit 459f5ffa24ae8574657c4105af0ff7dc30ac428d
Author: Gerd Hoffmann <kraxel@redhat.com>
Date:   Tue Jan 14 17:36:39 2025 +0100

    OvmfPkg/QemuKernelLoaderFsDxe: rework direct kernel boot filesystem

    Split KERNEL_BLOB struct into two:

     * One (KERNEL_BLOB_ITEMS) static array describing how to load (unnamed)
       blobs from fw_cfg.
     * And one (KERNEL_BLOB) dynamically allocated linked list carrying the
       data blobs for the pseudo filesystem.

    Also add some debug logging.  Prefix most functions with 'QemuKernel'
    for consistency and easier log file grepping.  Add some small helper
    functions.

    This refactoring prepares for loading blobs in other ways.
    No (intentional) change in filesystem protocol behavior.

    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

 .../QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.c  | 345 ++++++++++++---------
 1 file changed, 205 insertions(+), 140 deletions(-)


Qemu command line which I used:

qemu-system-x86_64 \
-machine q35,confidential-guest-support=sev0,vmport=off \
-object sev-guest,id=sev0,policy=0x5,cbitpos=51,reduced-phys-bits=1 \
-name guest=vm,debug-threads=on \
-drive if=pflash,format=raw,unit=0,file=OVMF_AmdSev/OVMF.fd,readonly  \
-cpu EPYC-v4 \
-m 179200 \
-smp 255,maxcpus=255,cores=255,threads=1,dies=1,sockets=1 \
-kernel bzImage \
-append "root=/dev/sda rw console=ttyS0 net.ifnames=0 biosdevname=0 movable_node swiotlb=65536 " \
-drive id=disk0,file=22.04-server_seves.qcow2,if=none \
-device virtio-scsi-pci,id=scsi0,disable-legacy=on,iommu_platform=true \
-device scsi-hd,drive=disk0 \
--enable-kvm \
--nographic

Other component levels:

host_kernel    v6.13
guest_kernel   v6.13
qemu    v9.2.0
edk2    current master

Thank you,

Srikanth Aithal <sraithal@amd.com>

_._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#121037) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_