X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FBus%2FAta%2FAtaAtapiPassThru%2FAtaAtapiPassThru.h;h=8d6eac706c0b7a4294d19b1a80e806ef0f07732e;hp=0d93e5446752daeacb63d8ca2378c1c19ef9d79a;hb=0641808ece210dd2855a69302a0876af7bdc44a2;hpb=4b738c76f56f8eda171f14b8f9b20e34b66be476 diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.h b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.h index 0d93e54467..8d6eac706c 100644 --- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.h +++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.h @@ -1,7 +1,7 @@ /** @file Header file for ATA/ATAPI PASS THRU driver. - Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.
+ Copyright (c) 2010 - 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 @@ -100,6 +100,7 @@ typedef struct { // The attached device list // LIST_ENTRY DeviceList; + UINT64 EnabledPciAttributes; UINT64 OriginalPciAttributes; // @@ -120,6 +121,12 @@ typedef struct { // EFI_EVENT TimerEvent; LIST_ENTRY NonBlockingTaskList; + + // + // For disabling the device (especially Bus Master DMA) at + // ExitBootServices(). + // + EFI_EVENT ExitBootEvent; } ATA_ATAPI_PASS_THRU_INSTANCE; // @@ -135,10 +142,11 @@ struct _ATA_NONBLOCK_TASK { BOOLEAN IsStart; EFI_EVENT Event; UINT64 RetryTimes; - VOID *Map; // Pointer to map. - VOID *TableMap;// Pointer to PRD table map. + BOOLEAN InfiniteWait; + VOID *Map; // Pointer to map. + VOID *TableMap; // Pointer to PRD table map. EFI_ATA_DMA_PRD *MapBaseAddress; // Pointer to range Base address for Map. - UINTN PageCount; // The page numbers used by PCIO freebuffer. + UINTN PageCount; // The page numbers used by PCIO freebuffer. }; // @@ -436,7 +444,7 @@ AtaAtapiPassThruStop ( @param[in] Instance A pointer to the ATA_ATAPI_PASS_THRU_INSTANCE 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] DeviceType The device type of the ATA device. @retval The pointer to the data structure of the device info to access. @@ -458,7 +466,7 @@ SearchDeviceInfoList ( @param[in] Instance A pointer to the ATA_ATAPI_PASS_THRU_INSTANCE 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] DeviceType The device type of the ATA device. @param[in] IdentifyData The data buffer to store the output of the IDENTIFY cmd. @@ -543,7 +551,7 @@ AsyncNonBlockingTransferRoutine ( @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 @@ -680,7 +688,7 @@ AtaPassThruGetNextDevice ( 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 @@ -801,7 +809,7 @@ AtaPassThruResetPort ( @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.