summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorINDIA\sachinganesh <sachinganesh@ami.com>2024-10-23 18:39:10 +0530
committerLiming Gao <gaoliming@byosoft.com.cn>2025-01-09 12:40:45 +0800
commit1a23fe74725da5e268f9782834fe83c85dcb4250 (patch)
tree55154ca0929ae4e51a16f3e23b54deef5d24c569
parent114b54e3fb0a45666291244e6ebfb78204784139 (diff)
downloadedk2-1a23fe74725da5e268f9782834fe83c85dcb4250.tar.gz
MdeModulePkg: Update AtaPassThru to UEFI 2.10A
UEFI 2.10A Specification has added a new error case to EFI_ATA_PASS_THRU_PROTOCOL.GetNextDevice API which handles port multiplier not being connected to the Port. Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
-rw-r--r--MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c4
-rw-r--r--MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c4
-rw-r--r--MdeModulePkg/Include/Ppi/AtaPassThru.h4
3 files changed, 12 insertions, 0 deletions
diff --git a/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c b/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c
index 7bd04661d0..a77ecfc6a2 100644
--- a/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c
+++ b/MdeModulePkg/Bus/Ata/AhciPei/AhciPeiPassThru.c
@@ -384,6 +384,10 @@ Exit:
If PortMultiplierPort is the port multiplier port number of the last ATA device
on the port of the ATA controller, then EFI_NOT_FOUND is returned.
+ When port multiplier is not connected to the Port, GetNextDevice() may either return
+ EFI_SUCCESS and set PortMultiplierPort to 0xFFFF or return EFI_NOT_FOUND (in which case the
+ PortMultiplierPort value is undefined).
+
@param[in] This The PPI instance pointer.
@param[in] Port The port number present on the ATA controller.
@param[in,out] PortMultiplierPort On input, a pointer to the port multiplier
diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c
index f39c909d06..986b3e2344 100644
--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c
+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c
@@ -1541,6 +1541,10 @@ Exit:
If PortMultiplierPort is the port multiplier port number of the last ATA device on the port of
the ATA controller, then EFI_NOT_FOUND is returned.
+ When port multiplier is not connected to the Port, GetNextDevice() may either return
+ EFI_SUCCESS and set PortMultiplierPort to 0xFFFF or return EFI_NOT_FOUND (in which case the
+ PortMultiplierPort value is undefined).
+
@param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance.
@param[in] Port The port number present on the ATA controller.
@param[in, out] PortMultiplierPort On input, a pointer to the port multiplier port number of an
diff --git a/MdeModulePkg/Include/Ppi/AtaPassThru.h b/MdeModulePkg/Include/Ppi/AtaPassThru.h
index 73fb688c8a..d0e05ae4ff 100644
--- a/MdeModulePkg/Include/Ppi/AtaPassThru.h
+++ b/MdeModulePkg/Include/Ppi/AtaPassThru.h
@@ -141,6 +141,10 @@ EFI_STATUS
If PortMultiplierPort is the port multiplier port number of the last ATA device
on the port of the ATA controller, then EFI_NOT_FOUND is returned.
+ When port multiplier is not connected to the Port, GetNextDevice() may either return
+ EFI_SUCCESS and set PortMultiplierPort to 0xFFFF or return EFI_NOT_FOUND (in which case the
+ PortMultiplierPort value is undefined).
+
@param[in] This The PPI instance pointer.
@param[in] Port The port number present on the ATA controller.
@param[in,out] PortMultiplierPort On input, a pointer to the port multiplier