//\r
// UEFI device path:\r
//\r
- // PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0x0,0x0)\r
- // ^ ^ ^\r
- // | | LUN (always 0 on Q35)\r
+ // PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0xFFFF,0x0)\r
+ // ^ ^ ^\r
+ // | | LUN (always 0 on Q35)\r
// | port multiplier port number,\r
- // | always 0 on Q35\r
+ // | always 0xFFFF on Q35\r
// channel (port) number\r
//\r
UINT64 Channel;\r
Written = UnicodeSPrintAsciiFormat (\r
Translated,\r
*TranslatedSize * sizeof (*Translated), // BufferSize in bytes\r
- "PciRoot(0x%x)%s/Pci(0x%Lx,0x%Lx)/Sata(0x%Lx,0x0,0x0)",\r
+ "PciRoot(0x%x)%s/Pci(0x%Lx,0x%Lx)/Sata(0x%Lx,0xFFFF,0x0)",\r
PciRoot,\r
Bridges,\r
PciDevFun[0],\r
\r
Attempt to retrieve the "bootorder" fw_cfg file from QEMU. Translate the\r
OpenFirmware device paths therein to UEFI device path fragments. Match the\r
- translated fragments against BootOptionList, and rewrite the BootOrder NvVar\r
- so that it corresponds to the order described in fw_cfg.\r
-\r
- @param[in] BootOptionList A boot option list, created with\r
- BdsLibEnumerateAllBootOption ().\r
+ translated fragments against the current list of boot options, and rewrite\r
+ the BootOrder NvVar so that it corresponds to the order described in fw_cfg.\r
\r
+ Platform BDS should call this function after EfiBootManagerConnectAll () and\r
+ EfiBootManagerRefreshAllBootOption () return.\r
\r
@retval RETURN_SUCCESS BootOrder NvVar rewritten.\r
\r
**/\r
RETURN_STATUS\r
SetBootOrderFromQemu (\r
- IN CONST LIST_ENTRY *BootOptionList\r
+ VOID\r
)\r
{\r
RETURN_STATUS Status;\r
EFI_BOOT_MANAGER_LOAD_OPTION *BootOptions;\r
UINTN BootOptionCount;\r
\r
- //\r
- // The QemuBootOrderLib is linked by OvmfPkg and ArmVirtPkg.\r
- // OvmfPkg was changed to use the new BDS @ MdeModulePkg, so boot options\r
- // are no longer stored in linked list.\r
- // But we don't change the QemuBootOrderLib class interface because\r
- // ArmVirtPkg are still using old BDS @ IntelFrameworkModulePkg.\r
- //\r
- ASSERT (BootOptionList == NULL);\r
-\r
Status = QemuFwCfgFindFile ("bootorder", &FwCfgItem, &FwCfgSize);\r
if (Status != RETURN_SUCCESS) {\r
return Status;\r