MdeModulePkg/Usb: Boost the r/w performance by reducing stall time on polling cmd execution status
Signed-off-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Elvin Li <elvin.li@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14442 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
EHCI transfer scheduling routines.
|
EHCI transfer scheduling routines.
|
||||||
|
|
||||||
Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -694,7 +694,7 @@ EhcExecTransfer (
|
|||||||
BOOLEAN InfiniteLoop;
|
BOOLEAN InfiniteLoop;
|
||||||
|
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
Loop = (TimeOut * EHC_1_MILLISECOND / EHC_SYNC_POLL_INTERVAL) + 1;
|
Loop = TimeOut * EHC_1_MILLISECOND;
|
||||||
Finished = FALSE;
|
Finished = FALSE;
|
||||||
InfiniteLoop = FALSE;
|
InfiniteLoop = FALSE;
|
||||||
|
|
||||||
@ -714,7 +714,7 @@ EhcExecTransfer (
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBS->Stall (EHC_SYNC_POLL_INTERVAL);
|
gBS->Stall (EHC_1_MICROSECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Finished) {
|
if (!Finished) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid
|
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid
|
||||||
which is used to enable recovery function from USB Drivers.
|
which is used to enable recovery function from USB Drivers.
|
||||||
|
|
||||||
Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -532,6 +532,8 @@ EhcInitHC (
|
|||||||
the subsequent bulk transfer.
|
the subsequent bulk transfer.
|
||||||
@param TimeOut Indicates the maximum time, in millisecond, which the
|
@param TimeOut Indicates the maximum time, in millisecond, which the
|
||||||
transfer is allowed to complete.
|
transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for the function
|
||||||
|
to be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
@param Translator A pointr to the transaction translator data.
|
@param Translator A pointr to the transaction translator data.
|
||||||
@param TransferResult A pointer to the detailed result information of the
|
@param TransferResult A pointer to the detailed result information of the
|
||||||
bulk transfer.
|
bulk transfer.
|
||||||
@ -995,6 +997,8 @@ ON_EXIT:
|
|||||||
@param Data Data buffer to be transmitted or received from USB device.
|
@param Data Data buffer to be transmitted or received from USB device.
|
||||||
@param DataLength The size (in bytes) of the data buffer.
|
@param DataLength The size (in bytes) of the data buffer.
|
||||||
@param TimeOut Indicates the maximum timeout, in millisecond.
|
@param TimeOut Indicates the maximum timeout, in millisecond.
|
||||||
|
If Timeout is 0, then the caller must wait for the function
|
||||||
|
to be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
@param Translator Transaction translator to be used by this device.
|
@param Translator Transaction translator to be used by this device.
|
||||||
@param TransferResult Return the result of this control transfer.
|
@param TransferResult Return the result of this control transfer.
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid
|
PEIM to produce gPeiUsb2HostControllerPpiGuid based on gPeiUsbControllerPpiGuid
|
||||||
which is used to enable recovery function from USB Drivers.
|
which is used to enable recovery function from USB Drivers.
|
||||||
|
|
||||||
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -425,19 +425,29 @@ EhcExecTransfer (
|
|||||||
UINTN Index;
|
UINTN Index;
|
||||||
UINTN Loop;
|
UINTN Loop;
|
||||||
BOOLEAN Finished;
|
BOOLEAN Finished;
|
||||||
|
BOOLEAN InfiniteLoop;
|
||||||
|
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
Loop = (TimeOut * EHC_1_MILLISECOND / EHC_SYNC_POLL_INTERVAL) + 1;
|
Loop = TimeOut * EHC_1_MILLISECOND;
|
||||||
Finished = FALSE;
|
Finished = FALSE;
|
||||||
|
InfiniteLoop = FALSE;
|
||||||
|
|
||||||
for (Index = 0; Index < Loop; Index++) {
|
//
|
||||||
|
// If Timeout is 0, then the caller must wait for the function to be completed
|
||||||
|
// until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
|
//
|
||||||
|
if (TimeOut == 0) {
|
||||||
|
InfiniteLoop = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Index = 0; InfiniteLoop || (Index < Loop); Index++) {
|
||||||
Finished = EhcCheckUrbResult (Ehc, Urb);
|
Finished = EhcCheckUrbResult (Ehc, Urb);
|
||||||
|
|
||||||
if (Finished) {
|
if (Finished) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
MicroSecondDelay (EHC_SYNC_POLL_INTERVAL);
|
MicroSecondDelay (EHC_1_MICROSECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Finished) {
|
if (!Finished) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
The EHCI register operation routines.
|
The EHCI register operation routines.
|
||||||
|
|
||||||
Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -580,7 +580,7 @@ UhciExecuteTransfer (
|
|||||||
|
|
||||||
Finished = FALSE;
|
Finished = FALSE;
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
Delay = (TimeOut * UHC_1_MILLISECOND / UHC_SYNC_POLL_INTERVAL) + 1;
|
Delay = TimeOut * UHC_1_MILLISECOND;
|
||||||
InfiniteLoop = FALSE;
|
InfiniteLoop = FALSE;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -602,7 +602,7 @@ UhciExecuteTransfer (
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gBS->Stall (UHC_SYNC_POLL_INTERVAL);
|
gBS->Stall (UHC_1_MICROSECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Finished) {
|
if (!Finished) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
PEIM to produce gPeiUsbHostControllerPpiGuid based on gPeiUsbControllerPpiGuid
|
PEIM to produce gPeiUsbHostControllerPpiGuid based on gPeiUsbControllerPpiGuid
|
||||||
which is used to enable recovery function from USB Drivers.
|
which is used to enable recovery function from USB Drivers.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved. <BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -153,6 +153,8 @@ UhcPeimEntry (
|
|||||||
@param Data Data buffer to be transmitted or received from USB device.
|
@param Data Data buffer to be transmitted or received from USB device.
|
||||||
@param DataLength The size (in bytes) of the data buffer.
|
@param DataLength The size (in bytes) of the data buffer.
|
||||||
@param TimeOut Indicates the maximum timeout, in millisecond.
|
@param TimeOut Indicates the maximum timeout, in millisecond.
|
||||||
|
If Timeout is 0, then the caller must wait for the function
|
||||||
|
to be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
@param TransferResult Return the result of this control transfer.
|
@param TransferResult Return the result of this control transfer.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Transfer was completed successfully.
|
@retval EFI_SUCCESS Transfer was completed successfully.
|
||||||
@ -391,6 +393,8 @@ UhcControlTransfer (
|
|||||||
the subsequent bulk transfer.
|
the subsequent bulk transfer.
|
||||||
@param TimeOut Indicates the maximum time, in millisecond, which the
|
@param TimeOut Indicates the maximum time, in millisecond, which the
|
||||||
transfer is allowed to complete.
|
transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for the function
|
||||||
|
to be completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
@param TransferResult A pointer to the detailed result information of the
|
@param TransferResult A pointer to the detailed result information of the
|
||||||
bulk transfer.
|
bulk transfer.
|
||||||
|
|
||||||
@ -2508,12 +2512,21 @@ ExecuteControlTransfer (
|
|||||||
{
|
{
|
||||||
UINTN ErrTDPos;
|
UINTN ErrTDPos;
|
||||||
UINTN Delay;
|
UINTN Delay;
|
||||||
|
BOOLEAN InfiniteLoop;
|
||||||
|
|
||||||
ErrTDPos = 0;
|
ErrTDPos = 0;
|
||||||
*TransferResult = EFI_USB_NOERROR;
|
*TransferResult = EFI_USB_NOERROR;
|
||||||
*ActualLen = 0;
|
*ActualLen = 0;
|
||||||
|
InfiniteLoop = FALSE;
|
||||||
|
|
||||||
Delay = (TimeOut * STALL_1_MILLI_SECOND / 200) + 1;
|
Delay = TimeOut * STALL_1_MILLI_SECOND;
|
||||||
|
//
|
||||||
|
// If Timeout is 0, then the caller must wait for the function to be completed
|
||||||
|
// until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
|
//
|
||||||
|
if (TimeOut == 0) {
|
||||||
|
InfiniteLoop = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
@ -2525,11 +2538,10 @@ ExecuteControlTransfer (
|
|||||||
if ((*TransferResult & EFI_USB_ERR_NOTEXECUTE) != EFI_USB_ERR_NOTEXECUTE) {
|
if ((*TransferResult & EFI_USB_ERR_NOTEXECUTE) != EFI_USB_ERR_NOTEXECUTE) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
MicroSecondDelay (200);
|
MicroSecondDelay (STALL_1_MICRO_SECOND);
|
||||||
Delay--;
|
Delay--;
|
||||||
|
|
||||||
} while (Delay != 0);
|
} while (InfiniteLoop || (Delay != 0));
|
||||||
|
|
||||||
|
|
||||||
if (*TransferResult != EFI_USB_NOERROR) {
|
if (*TransferResult != EFI_USB_NOERROR) {
|
||||||
return EFI_DEVICE_ERROR;
|
return EFI_DEVICE_ERROR;
|
||||||
@ -2566,12 +2578,21 @@ ExecBulkTransfer (
|
|||||||
UINTN ErrTDPos;
|
UINTN ErrTDPos;
|
||||||
UINTN ScrollNum;
|
UINTN ScrollNum;
|
||||||
UINTN Delay;
|
UINTN Delay;
|
||||||
|
BOOLEAN InfiniteLoop;
|
||||||
|
|
||||||
ErrTDPos = 0;
|
ErrTDPos = 0;
|
||||||
*TransferResult = EFI_USB_NOERROR;
|
*TransferResult = EFI_USB_NOERROR;
|
||||||
*ActualLen = 0;
|
*ActualLen = 0;
|
||||||
|
InfiniteLoop = FALSE;
|
||||||
|
|
||||||
Delay = (TimeOut * STALL_1_MILLI_SECOND / 200) + 1;
|
Delay = TimeOut * STALL_1_MILLI_SECOND;
|
||||||
|
//
|
||||||
|
// If Timeout is 0, then the caller must wait for the function to be completed
|
||||||
|
// until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
|
//
|
||||||
|
if (TimeOut == 0) {
|
||||||
|
InfiniteLoop = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
@ -2582,10 +2603,10 @@ ExecBulkTransfer (
|
|||||||
if ((*TransferResult & EFI_USB_ERR_NOTEXECUTE) != EFI_USB_ERR_NOTEXECUTE) {
|
if ((*TransferResult & EFI_USB_ERR_NOTEXECUTE) != EFI_USB_ERR_NOTEXECUTE) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
MicroSecondDelay (200);
|
MicroSecondDelay (STALL_1_MICRO_SECOND);
|
||||||
Delay--;
|
Delay--;
|
||||||
|
|
||||||
} while (Delay != 0);
|
} while (InfiniteLoop || (Delay != 0));
|
||||||
|
|
||||||
//
|
//
|
||||||
// has error
|
// has error
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Private Header file for Usb Host Controller PEIM
|
Private Header file for Usb Host Controller PEIM
|
||||||
|
|
||||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -94,6 +94,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#define OUTPUT_PACKET_ID 0xE1
|
#define OUTPUT_PACKET_ID 0xE1
|
||||||
#define ERROR_PACKET_ID 0x55
|
#define ERROR_PACKET_ID 0x55
|
||||||
|
|
||||||
|
#define STALL_1_MICRO_SECOND 1
|
||||||
#define STALL_1_MILLI_SECOND 1000
|
#define STALL_1_MILLI_SECOND 1000
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Provides some data structure definitions used by the XHCI host controller driver.
|
Provides some data structure definitions used by the XHCI host controller driver.
|
||||||
|
|
||||||
Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -41,6 +41,10 @@ typedef struct _USB_DEV_CONTEXT USB_DEV_CONTEXT;
|
|||||||
#include "XhciSched.h"
|
#include "XhciSched.h"
|
||||||
#include "ComponentName.h"
|
#include "ComponentName.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// The unit is microsecond, setting it as 1us.
|
||||||
|
//
|
||||||
|
#define XHC_1_MICROSECOND (1)
|
||||||
//
|
//
|
||||||
// Convert millisecond to microsecond.
|
// Convert millisecond to microsecond.
|
||||||
//
|
//
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
XHCI transfer scheduling routines.
|
XHCI transfer scheduling routines.
|
||||||
|
|
||||||
Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -1101,7 +1101,7 @@ XhcExecTransfer (
|
|||||||
}
|
}
|
||||||
|
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
Loop = (Timeout * XHC_1_MILLISECOND / XHC_POLL_DELAY) + 1;
|
Loop = Timeout * XHC_1_MILLISECOND;
|
||||||
if (Timeout == 0) {
|
if (Timeout == 0) {
|
||||||
Loop = 0xFFFFFFFF;
|
Loop = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
@ -1113,7 +1113,7 @@ XhcExecTransfer (
|
|||||||
if (Urb->Finished) {
|
if (Urb->Finished) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gBS->Stall (XHC_POLL_DELAY);
|
gBS->Stall (XHC_1_MICROSECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Index == Loop) {
|
if (Index == Loop) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
The module is used to implement Usb Io PPI interfaces.
|
The module is used to implement Usb Io PPI interfaces.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved. <BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -24,7 +24,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
@param This The pointer of PEI_USB_IO_PPI.
|
@param This The pointer of PEI_USB_IO_PPI.
|
||||||
@param Request USB device request to send.
|
@param Request USB device request to send.
|
||||||
@param Direction Specifies the data direction for the data stage.
|
@param Direction Specifies the data direction for the data stage.
|
||||||
@param Timeout Indicates the maximum timeout, in millisecond.
|
@param Timeout Indicates the maximum timeout, in millisecond. If Timeout
|
||||||
|
is 0, then the caller must wait for the function to be
|
||||||
|
completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
@param Data Data buffer to be transmitted or received from USB device.
|
@param Data Data buffer to be transmitted or received from USB device.
|
||||||
@param DataLength The size (in bytes) of the data buffer.
|
@param DataLength The size (in bytes) of the data buffer.
|
||||||
|
|
||||||
@ -96,7 +98,9 @@ PeiUsbControlTransfer (
|
|||||||
from or receive into.
|
from or receive into.
|
||||||
@param DataLength The lenght of the data buffer.
|
@param DataLength The lenght of the data buffer.
|
||||||
@param Timeout Indicates the maximum time, in millisecond, which the
|
@param Timeout Indicates the maximum time, in millisecond, which the
|
||||||
transfer is allowed to complete.
|
transfer is allowed to complete. If Timeout is 0, then
|
||||||
|
the caller must wait for the function to be completed
|
||||||
|
until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The transfer was completed successfully.
|
@retval EFI_SUCCESS The transfer was completed successfully.
|
||||||
@retval EFI_OUT_OF_RESOURCES The transfer failed due to lack of resource.
|
@retval EFI_OUT_OF_RESOURCES The transfer failed due to lack of resource.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
Usb Peim definition.
|
Usb Peim definition.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved. <BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -71,7 +71,9 @@ typedef struct {
|
|||||||
@param This The pointer of PEI_USB_IO_PPI.
|
@param This The pointer of PEI_USB_IO_PPI.
|
||||||
@param Request USB device request to send.
|
@param Request USB device request to send.
|
||||||
@param Direction Specifies the data direction for the data stage.
|
@param Direction Specifies the data direction for the data stage.
|
||||||
@param Timeout Indicates the maximum timeout, in millisecond.
|
@param Timeout Indicates the maximum timeout, in millisecond. If Timeout
|
||||||
|
is 0, then the caller must wait for the function to be
|
||||||
|
completed until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
@param Data Data buffer to be transmitted or received from USB device.
|
@param Data Data buffer to be transmitted or received from USB device.
|
||||||
@param DataLength The size (in bytes) of the data buffer.
|
@param DataLength The size (in bytes) of the data buffer.
|
||||||
|
|
||||||
@ -104,7 +106,9 @@ PeiUsbControlTransfer (
|
|||||||
from or receive into.
|
from or receive into.
|
||||||
@param DataLength The lenght of the data buffer.
|
@param DataLength The lenght of the data buffer.
|
||||||
@param Timeout Indicates the maximum time, in millisecond, which the
|
@param Timeout Indicates the maximum time, in millisecond, which the
|
||||||
transfer is allowed to complete.
|
transfer is allowed to complete. If Timeout is 0, then
|
||||||
|
the caller must wait for the function to be completed
|
||||||
|
until EFI_SUCCESS or EFI_DEVICE_ERROR is returned.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The transfer was completed successfully.
|
@retval EFI_SUCCESS The transfer was completed successfully.
|
||||||
@retval EFI_OUT_OF_RESOURCES The transfer failed due to lack of resource.
|
@retval EFI_OUT_OF_RESOURCES The transfer failed due to lack of resource.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Refer to section 16.1 of the UEFI 2.3 Specification for more information on
|
Refer to section 16.1 of the UEFI 2.3 Specification for more information on
|
||||||
these interfaces.
|
these interfaces.
|
||||||
|
|
||||||
Copyright (c) 2010, Intel Corporation. All rights reserved. <BR>
|
Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved. <BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -62,6 +62,9 @@ typedef struct _PEI_USB2_HOST_CONTROLLER_PPI PEI_USB2_HOST_CONTROLLER_PPI;
|
|||||||
actually transferred.
|
actually transferred.
|
||||||
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
||||||
that the transfer is allowed to complete.
|
that the transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for
|
||||||
|
the function to be completed until EFI_SUCCESS
|
||||||
|
or EFI_DEVICE_ERROR is returned.
|
||||||
@param[in] Translator A pointer to the transaction translator data.
|
@param[in] Translator A pointer to the transaction translator data.
|
||||||
@param[out] TransferResult A pointer to the detailed result information
|
@param[out] TransferResult A pointer to the detailed result information
|
||||||
generated by this control transfer.
|
generated by this control transfer.
|
||||||
@ -114,6 +117,9 @@ EFI_STATUS
|
|||||||
@param[in,out] DataToggle A pointer to the data toggle value.
|
@param[in,out] DataToggle A pointer to the data toggle value.
|
||||||
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
||||||
in which the transfer is allowed to complete.
|
in which the transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for
|
||||||
|
the function to be completed until EFI_SUCCESS
|
||||||
|
or EFI_DEVICE_ERROR is returned.
|
||||||
@param[in] Translator A pointer to the transaction translator data.
|
@param[in] Translator A pointer to the transaction translator data.
|
||||||
@param[out] TransferResult A pointer to the detailed result information
|
@param[out] TransferResult A pointer to the detailed result information
|
||||||
of the bulk transfer.
|
of the bulk transfer.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Refer to section 16.1 of the UEFI 2.3 Specification for more information on
|
Refer to section 16.1 of the UEFI 2.3 Specification for more information on
|
||||||
these interfaces.
|
these interfaces.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -61,7 +61,10 @@ typedef struct _PEI_USB_HOST_CONTROLLER_PPI PEI_USB_HOST_CONTROLLER_PPI;
|
|||||||
On output, indicates the amount of data
|
On output, indicates the amount of data
|
||||||
actually transferred.
|
actually transferred.
|
||||||
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
||||||
that the transfer is allowed to complete.
|
that the transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for
|
||||||
|
the function to be completed until EFI_SUCCESS
|
||||||
|
or EFI_DEVICE_ERROR is returned.
|
||||||
@param[out] TransferResult A pointer to the detailed result information
|
@param[out] TransferResult A pointer to the detailed result information
|
||||||
generated by this control transfer.
|
generated by this control transfer.
|
||||||
|
|
||||||
@ -107,6 +110,9 @@ EFI_STATUS
|
|||||||
@param[in,out] DataToggle A pointer to the data toggle value.
|
@param[in,out] DataToggle A pointer to the data toggle value.
|
||||||
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
@param[in] TimeOut Indicates the maximum time, in milliseconds,
|
||||||
in which the transfer is allowed to complete.
|
in which the transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for
|
||||||
|
the function to be completed until EFI_SUCCESS
|
||||||
|
or EFI_DEVICE_ERROR is returned.
|
||||||
@param[out] TransferResult A pointer to the detailed result information
|
@param[out] TransferResult A pointer to the detailed result information
|
||||||
of the bulk transfer.
|
of the bulk transfer.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
Refer to section 16.2.4 of the UEFI 2.3 Specification for more information on
|
Refer to section 16.2.4 of the UEFI 2.3 Specification for more information on
|
||||||
these interfaces.
|
these interfaces.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions
|
are licensed and made available under the terms and conditions
|
||||||
@ -47,8 +47,11 @@ typedef struct _PEI_USB_IO_PPI PEI_USB_IO_PPI;
|
|||||||
@param[in] Direction Specifies the data direction for the transfer. There
|
@param[in] Direction Specifies the data direction for the transfer. There
|
||||||
are three values available:
|
are three values available:
|
||||||
EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.
|
EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.
|
||||||
@param[in] TimeOut Indicates the maximum time, in milliseconds, that
|
@param[in] Timeout Indicates the maximum time, in milliseconds, that
|
||||||
the transfer is allowed to complete.
|
the transfer is allowed to complete.
|
||||||
|
If Timeout is 0, then the caller must wait for the
|
||||||
|
function to be completed until EFI_SUCCESS or
|
||||||
|
EFI_DEVICE_ERROR is returned.
|
||||||
@param[in,out] Data A pointer to the buffer of data that will be
|
@param[in,out] Data A pointer to the buffer of data that will be
|
||||||
transmitted to or received from the USB device.
|
transmitted to or received from the USB device.
|
||||||
@param[in] DataLength On input, indicates the size, in bytes, of the data
|
@param[in] DataLength On input, indicates the size, in bytes, of the data
|
||||||
@ -82,10 +85,13 @@ EFI_STATUS
|
|||||||
|
|
||||||
@param[in] PeiServices The pointer to the PEI Services Table.
|
@param[in] PeiServices The pointer to the PEI Services Table.
|
||||||
@param[in] This The pointer to this instance of the PEI_USB_IO_PPI.
|
@param[in] This The pointer to this instance of the PEI_USB_IO_PPI.
|
||||||
@param[in] EndPointAddress The endpoint address.
|
@param[in] DeviceEndpoint The endpoint address.
|
||||||
@param[in] Data The data buffer to be transfered.
|
@param[in] Data The data buffer to be transfered.
|
||||||
@param[in] DataLength The length of data buffer.
|
@param[in] DataLength The length of data buffer.
|
||||||
@param[in] TimeOut The timeout for the transfer, in milliseconds.
|
@param[in] Timeout The timeout for the transfer, in milliseconds.
|
||||||
|
If Timeout is 0, then the caller must wait for the
|
||||||
|
function to be completed until EFI_SUCCESS or
|
||||||
|
EFI_DEVICE_ERROR is returned.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The bulk transfer completed successfully.
|
@retval EFI_SUCCESS The bulk transfer completed successfully.
|
||||||
@retval EFI_INVALID_PARAMETER Some parameters are invalid.
|
@retval EFI_INVALID_PARAMETER Some parameters are invalid.
|
||||||
|
Reference in New Issue
Block a user