OvmfPkg/QemuBootOrderLib: adapt Q35 SATA PMPN to UEFI spec Mantis 1353

On the Q35 machine type of QEMU, there is no port multiplier connected to
the on-board SATA controller. Therefore the AtaAtapiPassThru driver update
for Mantis ticket 1353 <https://mantis.uefi.org/mantis/view.php?id=1353>
changes the middle number (the Port Multiplier Port Number) in the Sata()
device path nodes from 0x0 to 0xFFFF.

Adapt the translation from OpenFirmware in QemuBootOrderLib.

(Note: QemuBootOrderLib is deprecated at this point (see USE_OLD_BDS in
the DSC files), but until we remove it, it should be kept in sync with
QemuNewBootOrderLib.)

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
This commit is contained in:
Laszlo Ersek 2016-05-09 19:32:27 +08:00 committed by Hao Wu
parent d5aee61bfa
commit 1da7616649
1 changed files with 5 additions and 5 deletions

View File

@ -786,11 +786,11 @@ TranslatePciOfwNodes (
// //
// UEFI device path: // UEFI device path:
// //
// PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0x0,0x0) // PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0xFFFF,0x0)
// ^ ^ ^ // ^ ^ ^
// | | LUN (always 0 on Q35) // | | LUN (always 0 on Q35)
// | port multiplier port number, // | port multiplier port number,
// | always 0 on Q35 // | always 0xFFFF on Q35
// channel (port) number // channel (port) number
// //
UINT64 Channel; UINT64 Channel;
@ -805,7 +805,7 @@ TranslatePciOfwNodes (
Written = UnicodeSPrintAsciiFormat ( Written = UnicodeSPrintAsciiFormat (
Translated, Translated,
*TranslatedSize * sizeof (*Translated), // BufferSize in bytes *TranslatedSize * sizeof (*Translated), // BufferSize in bytes
"PciRoot(0x%x)%s/Pci(0x%Lx,0x%Lx)/Sata(0x%Lx,0x0,0x0)", "PciRoot(0x%x)%s/Pci(0x%Lx,0x%Lx)/Sata(0x%Lx,0xFFFF,0x0)",
PciRoot, PciRoot,
Bridges, Bridges,
PciDevFun[0], PciDevFun[0],