mirror of https://github.com/acidanthera/audk.git
OvmfPkg: QemuBootOrder: recognize Ethernet OFW device paths
Tested with the e1000, ne2k_pci, pcnet, rtl8139, and virtio iPXE UEFI oprom drivers distributed with qemu-1.5.0-rc1. Also tested with Intel's e1000 driver. 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@14367 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
7628b0f5aa
commit
e7a7e48036
|
@ -677,6 +677,35 @@ TranslateOfwNodes (
|
||||||
TargetLun[0],
|
TargetLun[0],
|
||||||
TargetLun[1]
|
TargetLun[1]
|
||||||
);
|
);
|
||||||
|
} else if (NumNodes >= 3 &&
|
||||||
|
SubstringEq (OfwNode[1].DriverName, "ethernet") &&
|
||||||
|
SubstringEq (OfwNode[2].DriverName, "ethernet-phy")
|
||||||
|
) {
|
||||||
|
//
|
||||||
|
// OpenFirmware device path (Ethernet NIC):
|
||||||
|
//
|
||||||
|
// /pci@i0cf8/ethernet@3[,2]/ethernet-phy@0
|
||||||
|
// ^ ^ ^
|
||||||
|
// | | fixed
|
||||||
|
// | PCI slot[, function] holding Ethernet card
|
||||||
|
// PCI root at system bus port, PIO
|
||||||
|
//
|
||||||
|
// UEFI device path prefix (dependent on presence of nonzero PCI function):
|
||||||
|
//
|
||||||
|
// PciRoot(0x0)/Pci(0x3,0x0)/MAC(525400E15EEF,0x1)
|
||||||
|
// PciRoot(0x0)/Pci(0x3,0x2)/MAC(525400E15EEF,0x1)
|
||||||
|
// ^ ^
|
||||||
|
// MAC address IfType (1 == Ethernet)
|
||||||
|
//
|
||||||
|
// (Some UEFI NIC drivers don't set 0x1 for IfType.)
|
||||||
|
//
|
||||||
|
Written = UnicodeSPrintAsciiFormat (
|
||||||
|
Translated,
|
||||||
|
*TranslatedSize * sizeof (*Translated), // BufferSize in bytes
|
||||||
|
"PciRoot(0x0)/Pci(0x%x,0x%x)/MAC",
|
||||||
|
PciDevFun[0],
|
||||||
|
PciDevFun[1]
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return RETURN_UNSUPPORTED;
|
return RETURN_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue