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>