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
;
81 // Bot Driver Binding Protocol
85 BotDriverBindingSupported (
86 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
87 IN EFI_HANDLE ControllerHandle
,
88 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
93 BotDriverBindingStart (
94 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
95 IN EFI_HANDLE ControllerHandle
,
96 IN EFI_DEVICE_PATH_PROTOCOL
*RemainingDevicePath
101 BotDriverBindingStop (
102 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
103 IN EFI_HANDLE ControllerHandle
,
104 IN UINTN NumberOfChildren
,
105 IN EFI_HANDLE
*ChildHandleBuffer
109 // EFI Component Name Functions
113 UsbBotComponentNameGetDriverName (
114 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
116 OUT CHAR16
**DriverName
121 UsbBotComponentNameGetControllerName (
122 IN EFI_COMPONENT_NAME_PROTOCOL
*This
,
123 IN EFI_HANDLE ControllerHandle
,
124 IN EFI_HANDLE ChildHandle OPTIONAL
,
126 OUT CHAR16
**ControllerName