3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
24 #include <IndustryStandard/Usb.h>
25 extern UINT32 gBOTDebugLevel
;
26 extern UINT32 gBOTErrorLevel
;
27 #define MASS_STORAGE_CLASS 0x08
31 // Bulk Only device protocol
36 UINT32 dCBWDataTransferLength
;
46 UINT32 dCSWDataResidue
;
52 #define USB_BOT_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('u', 'b', 'o', 't')
56 EFI_DEVICE_PATH_PROTOCOL
*DevicePath
;
57 EFI_USB_ATAPI_PROTOCOL UsbAtapiProtocol
;
58 EFI_USB_IO_PROTOCOL
*UsbIo
;
59 EFI_USB_INTERFACE_DESCRIPTOR
*InterfaceDescriptor
;
60 EFI_USB_ENDPOINT_DESCRIPTOR
*BulkInEndpointDescriptor
;
61 EFI_USB_ENDPOINT_DESCRIPTOR
*BulkOutEndpointDescriptor
;
62 EFI_UNICODE_STRING_TABLE
*ControllerNameTable
;
65 #define USB_BOT_DEVICE_FROM_THIS(a) \
66 CR(a, USB_BOT_DEVICE, UsbAtapiProtocol, USB_BOT_DEVICE_SIGNATURE)
69 // Status code, see Usb Bot device spec
71 #define CSWSIG 0x53425355
72 #define CBWSIG 0x43425355
77 extern EFI_DRIVER_BINDING_PROTOCOL gUsbBotDriverBinding
;
78 extern EFI_COMPONENT_NAME_PROTOCOL gUsbBotComponentName
;
79 extern EFI_GUID gUsbBotDriverGuid
;
82 // Bot Driver Binding Protocol
86 BotDriverBindingSupported (
87 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
88 IN EFI_HANDLE ControllerHandle
,
89 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
94 BotDriverBindingStart (
95 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
96 IN EFI_HANDLE ControllerHandle
,
97 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
102 BotDriverBindingStop (
103 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
104 IN EFI_HANDLE ControllerHandle
,
105 IN UINTN NumberOfChildren
,
106 IN EFI_HANDLE
*ChildHandleBuffer
110 // EFI Component Name Functions
114 UsbBotComponentNameGetDriverName (
115 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
117 OUT CHAR16
**DriverName
122 UsbBotComponentNameGetControllerName (
123 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
124 IN EFI_HANDLE ControllerHandle
,
125 IN EFI_HANDLE ChildHandle OPTIONAL
,
127 OUT CHAR16
**ControllerName