MdeModulePkg[all]  0.98
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
UsbHostController.h File Reference

Data Structures

struct  _PEI_USB_HOST_CONTROLLER_PPI
 

Macros

#define PEI_USB_HOST_CONTROLLER_PPI_GUID
 

Typedefs

typedef struct
_PEI_USB_HOST_CONTROLLER_PPI 
PEI_USB_HOST_CONTROLLER_PPI
 
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_CONTROL_TRANSFER )(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 DeviceAddress, IN UINT8 DeviceSpeed, IN UINT8 MaximumPacketLength, IN USB_DEVICE_REQUEST *Request, IN EFI_USB_DATA_DIRECTION TransferDirection, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN UINTN TimeOut, OUT UINT32 *TransferResult)
 
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_BULK_TRANSFER )(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 MaximumPacketLength, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN OUT UINT8 *DataToggle, IN UINTN TimeOut, OUT UINT32 *TransferResult)
 
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_GET_ROOTHUB_PORT_NUMBER )(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, OUT UINT8 *PortNumber)
 
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_GET_ROOTHUB_PORT_STATUS )(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 PortNumber, OUT EFI_USB_PORT_STATUS *PortStatus)
 
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_SET_ROOTHUB_PORT_FEATURE )(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 PortNumber, IN EFI_USB_PORT_FEATURE PortFeature)
 
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_CLEAR_ROOTHUB_PORT_FEATURE )(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 PortNumber, IN EFI_USB_PORT_FEATURE PortFeature)
 

Variables

EFI_GUID gPeiUsbHostControllerPpiGuid
 

Detailed Description

Defines the USB Host Controller PPI that provides I/O services for a USB Host Controller that may be used to access recovery devices. These interfaces are modeled on the UEFI 2.3 specification EFI_USB2_HOST_CONTROLLER_PROTOCOL. Refer to section 16.1 of the UEFI 2.3 Specification for more information on these interfaces.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define PEI_USB_HOST_CONTROLLER_PPI_GUID
Value:
{ \
0x652b38a9, 0x77f4, 0x453f, { 0x89, 0xd5, 0xe7, 0xbd, 0xc3, 0x52, 0xfc, 0x53} \
}

Global ID for the PEI_USB_HOST_CONTROLLER_PPI.

Typedef Documentation

typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_BULK_TRANSFER)(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 DeviceAddress, IN UINT8 EndPointAddress, IN UINT8 MaximumPacketLength, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN OUT UINT8 *DataToggle, IN UINTN TimeOut, OUT UINT32 *TransferResult)

Initiate a USB bulk transfer using a specific USB Host controller on the USB bus.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_USB_HOST_CONTROLLER_PPI.
[in]DeviceAddressRepresents the address of the target device on the USB.
[in]EndPointAddressThe combination of an endpoint number and an endpoint direction of the target USB device.
[in]MaximumPacketLengthIndicates the maximum packet size the target endpoint is capable of sending or receiving.
[in,out]DataArray of pointers to the buffers of data that will be transmitted to USB device or received from USB device.
[in,out]DataLengthWhen input, indicates the size, in bytes, of the data buffers specified by Data. When output, indicates the data size actually transferred.
[in,out]DataToggleA pointer to the data toggle value.
[in]TimeOutIndicates the maximum time, in milliseconds, 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.
[out]TransferResultA pointer to the detailed result information of the bulk transfer.
Return values
EFI_SUCCESSThe bulk transfer was completed successfully.
EFI_DEVICE_ERRORThe bulk transfer failed due to host controller or device error. Caller should check TransferResult for detailed error information.
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_CLEAR_ROOTHUB_PORT_FEATURE)(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 PortNumber, IN EFI_USB_PORT_FEATURE PortFeature)

Clears a feature for the specified root hub port.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_USB_HOST_CONTROLLER_PPI.
[in]PortNumberSpecifies the root hub port whose feature is requested to be cleared.
[in]PortFeatureIndicates the feature selector associated with the feature clear request.
Returns
EFI_SUCCESS The feature specified by PortFeature was cleared for the USB root hub port specified by PortNumber.
EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.
EFI_DEVICE_ERROR Can't read the register.
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_CONTROL_TRANSFER)(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 DeviceAddress, IN UINT8 DeviceSpeed, IN UINT8 MaximumPacketLength, IN USB_DEVICE_REQUEST *Request, IN EFI_USB_DATA_DIRECTION TransferDirection, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN UINTN TimeOut, OUT UINT32 *TransferResult)

Initiate a USB control transfer using a specific USB Host controller on the USB bus.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_USB_HOST_CONTROLLER_PPI.
[in]DeviceAddressRepresents the address of the target device on the USB.
[in]DeviceSpeedIndicates device speed.
[in]MaximumPacketLengthIndicates the maximum packet size that the default control transfer endpoint is capable of sending or receiving.
[in]RequestA pointer to the USB device request that will be sent to the USB device.
[in]TransferDirectionSpecifies the data direction for the transfer. There are three values available: EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.
[in,out]DataA pointer to the buffer of data that will be transmitted to USB device or received from USB device.
[in,out]DataLengthOn input, indicates the size, in bytes, of the data buffer specified by Data. On output, indicates the amount of data actually transferred.
[in]TimeOutIndicates the maximum time, in milliseconds, 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.
[out]TransferResultA pointer to the detailed result information generated by this control transfer.
Return values
EFI_DEVICE_ERRORThe control transfer failed due to host controller or device error.
EFI_SUCCESSThe control transfer was completed successfully.
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_GET_ROOTHUB_PORT_NUMBER)(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, OUT UINT8 *PortNumber)

Retrieves the number of root hub ports.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_USB_HOST_CONTROLLER_PPI.
[out]PortNumberThe pointer to the number of the root hub ports.
Return values
EFI_SUCCESSThe port number was retrieved successfully.
EFI_DEVICE_ERRORAn error was encountered while attempting to retrieve the port number.
EFI_INVALID_PARAMETERPortNumber is NULL.
typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_GET_ROOTHUB_PORT_STATUS)(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 PortNumber, OUT EFI_USB_PORT_STATUS *PortStatus)

Retrieves the current status of a USB root hub port.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_USB_HOST_CONTROLLER_PPI.
[in]PortNumberSpecifies the root hub port from which the status is to be retrieved. This value is zero based.
[out]PortStatusA pointer to the current port status bits and port status change bits.
Return values
EFI_SUCCESSThe status of the USB root hub port specified by PortNumber was returned in PortStatus.
EFI_INVALID_PARAMETERPortNumber is invalid.

Forward declaration for the PEI_USB_HOST_CONTROLLER_PPI.

typedef EFI_STATUS(EFIAPI * PEI_USB_HOST_CONTROLLER_SET_ROOTHUB_PORT_FEATURE)(IN EFI_PEI_SERVICES **PeiServices, IN PEI_USB_HOST_CONTROLLER_PPI *This, IN UINT8 PortNumber, IN EFI_USB_PORT_FEATURE PortFeature)

Sets a feature for the specified root hub port.

Parameters
[in]PeiServicesThe pointer to the PEI Services Table.
[in]ThisThe pointer to this instance of the PEI_USB_HOST_CONTROLLER_PPI.
[in]PortNumberSpecifies the root hub port whose feature is requested to be set. This value is zero based.
[in]PortFeatureIndicates the feature selector associated with the feature set request.
Return values
EFI_SUCCESSThe feature specified by PortFeature was set for the USB root hub port specified by PortNumber.
EFI_INVALID_PARAMETERPortNumber is invalid or PortFeature is invalid for this function.

Variable Documentation

EFI_GUID gPeiUsbHostControllerPpiGuid