From: Hao Wu Date: Fri, 8 Apr 2016 08:17:37 +0000 (+0800) Subject: MdePkg Protocol/AtaPassThru.h: Update PortMultiplierPort related comments X-Git-Tag: edk2-stable201903~7081 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=cc4036509e32413570430f7a2f8f92a37190cb6e MdePkg Protocol/AtaPassThru.h: Update PortMultiplierPort related comments The UEFI2.5 Errata (Mantis ticket 1472 - https://mantis.uefi.org/mantis/view.php?id=1472) updated 'PortMultiplierPort' parameter description for the following services in EFI_ATA_PASS_THRU_PROTOCOL: 1. PassThru 2. BuildDevicePath 3. ResetDevice Now, if there is no port multiplier on a ATA controller port, the PortMultiplierPort parameter should be set to 0xFFFF instead of 0. Please note that this is an incompatible semantic change. The consumer of EFI_ATA_PASS_THRU_PROTOCOL needs to re-examine its usage to follow UEFI 2.5 Errata mantis 1472. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu Reviewed-by: Feng Tian --- diff --git a/MdePkg/Include/Protocol/AtaPassThru.h b/MdePkg/Include/Protocol/AtaPassThru.h index 6153b704f1..c0545547bd 100644 --- a/MdePkg/Include/Protocol/AtaPassThru.h +++ b/MdePkg/Include/Protocol/AtaPassThru.h @@ -3,7 +3,7 @@ to send ATA Command Blocks to any ATA device attached to that ATA controller. The information includes the attributes of the ATA controller. - Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -180,7 +180,7 @@ typedef struct { @param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance. @param[in] Port The port number of the ATA device to send the command. @param[in] PortMultiplierPort The port multiplier port number of the ATA device to send the command. - If there is no port multiplier, then specify 0. + If there is no port multiplier, then specify 0xFFFF. @param[in,out] Packet A pointer to the ATA command to send to the ATA device specified by Port and PortMultiplierPort. @param[in] Event If non-blocking I/O is not supported then Event is ignored, and blocking @@ -317,7 +317,7 @@ EFI_STATUS device path node is to be allocated and built. @param[in] PortMultiplierPort The port multiplier port number of the ATA device for which a device path node is to be allocated and built. If there is no - port multiplier, then specify 0. + port multiplier, then specify 0xFFFF. @param[in,out] DevicePath A pointer to a single device path node that describes the ATA device specified by Port and PortMultiplierPort. This function is responsible for allocating the buffer DevicePath with the @@ -437,7 +437,7 @@ EFI_STATUS @param[in] This A pointer to the EFI_ATA_PASS_THRU_PROTOCOL instance. @param[in] Port Port represents the port number of the ATA device to be reset. @param[in] PortMultiplierPort The port multiplier port number of the ATA device to reset. - If there is no port multiplier, then specify 0. + If there is no port multiplier, then specify 0xFFFF. @retval EFI_SUCCESS The ATA device specified by Port and PortMultiplierPort was reset. @retval EFI_UNSUPPORTED The ATA controller does not support a device reset operation. @retval EFI_INVALID_PARAMETER Port or PortMultiplierPort are invalid.