OvmfPkg: QemuBootOrder: recognize virtio-blk OFW device paths

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13801 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jljusten 2012-10-08 07:33:37 +00:00
parent ec01afdbbf
commit e06a4cd134
1 changed files with 26 additions and 0 deletions

View File

@ -606,6 +606,32 @@ TranslateOfwNodes (
PciDevFun[1],
AcpiUid
);
} else if (NumNodes >= 3 &&
SubstringEq (OfwNode[1].DriverName, "scsi") &&
SubstringEq (OfwNode[2].DriverName, "disk")
) {
//
// OpenFirmware device path (virtio-blk disk):
//
// /pci@i0cf8/scsi@6[,3]/disk@0,0
// ^ ^ ^ ^ ^
// | | | fixed
// | | PCI function corresponding to disk (optional)
// | PCI slot holding disk
// PCI root at system bus port, PIO
//
// UEFI device path prefix:
//
// PciRoot(0x0)/Pci(0x6,0x0)/HD( -- if PCI function is 0 or absent
// PciRoot(0x0)/Pci(0x6,0x3)/HD( -- if PCI function is present and nonzero
//
Written = UnicodeSPrintAsciiFormat (
Translated,
*TranslatedSize * sizeof (*Translated), // BufferSize in bytes
"PciRoot(0x0)/Pci(0x%x,0x%x)/HD(",
PciDevFun[0],
PciDevFun[1]
);
} else {
return RETURN_UNSUPPORTED;
}