If there is no port multiplier, PortMultiplierPort should be converted to 0 to follow AHCI spec. The same logic already applied in AtaAtapiPassThruDxe driver.
Signed-off-by: Neo Hsueh <hong-chih.hs...@amd.com> --- MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c b/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c index cd55272c96..7bd04661d0 100644 --- a/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c +++ b/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c @@ -3,6 +3,7 @@ mode at PEI phase. Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-Patent @@ -92,6 +93,15 @@ AhciPassThruExecute ( { EFI_STATUS Status; + if (PortMultiplierPort == 0xFFFF) { + // + // If there is no port multiplier, PortMultiplierPort will be 0xFFFF + // according to UEFI spec. Here, we convert its value to 0 to follow + // AHCI spec. + // + PortMultiplierPort = 0; + } + switch (Packet->Protocol) { case EFI_ATA_PASS_THRU_PROTOCOL_ATA_NON_DATA: Status = AhciNonDataTransfer ( -- 2.40.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#105204): https://edk2.groups.io/g/devel/message/105204 Mute This Topic: https://groups.io/mt/99093106/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-