summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2016-05-09 19:32:27 +0800
committerHao Wu <hao.a.wu@intel.com>2016-05-12 14:18:59 +0800
commit1da7616649491b054025fc2928211f577fbf2691 (patch)
tree37d609d01767386cb12a8065838e61d6c5c42f02
parentd5aee61bfaaa57357d0c6790d61894ef5d2aab10 (diff)
downloadedk2-1da7616649491b054025fc2928211f577fbf2691.tar.gz
edk2-1da7616649491b054025fc2928211f577fbf2691.tar.bz2
edk2-1da7616649491b054025fc2928211f577fbf2691.zip
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>
-rw-r--r--OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c b/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
index 15065b7c3d..582b0bc90e 100644
--- a/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
+++ b/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
@@ -786,11 +786,11 @@ TranslatePciOfwNodes (
//
// UEFI device path:
//
- // PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0x0,0x0)
- // ^ ^ ^
- // | | LUN (always 0 on Q35)
+ // PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0xFFFF,0x0)
+ // ^ ^ ^
+ // | | LUN (always 0 on Q35)
// | port multiplier port number,
- // | always 0 on Q35
+ // | always 0xFFFF on Q35
// channel (port) number
//
UINT64 Channel;
@@ -805,7 +805,7 @@ TranslatePciOfwNodes (
Written = UnicodeSPrintAsciiFormat (
Translated,
*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,
Bridges,
PciDevFun[0],