summaryrefslogtreecommitdiff
path: root/Core/EM/usb/int13/UsbInt13.h
blob: eb05b029f2916a19e3a5a60744af43ee86ef6fb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
//****************************************************************************
//****************************************************************************
//**                                                                        **
//**             (C)Copyright 1985-2008, American Megatrends, Inc.          **
//**                                                                        **
//**                          All Rights Reserved.                          **
//**                                                                        **
//**                 5555 Oakbrook Pkwy, Norcross, GA 30093                 **
//**                                                                        **
//**                          Phone (770)-246-8600                          **
//**                                                                        **
//****************************************************************************
//****************************************************************************

//****************************************************************************
// $Header: /Alaska/SOURCE/Modules/USB/ALASKA/Int13/UsbInt13.h 13    12/24/14 1:13a Wilsonlee $
//
// $Revision: 13 $
//
// $Date: 12/24/14 1:13a $
//
//****************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/USB/ALASKA/Int13/UsbInt13.h $
// 
// 13    12/24/14 1:13a Wilsonlee
// [TAG]  		EIP192517
// [Category]  	Improvement
// [Description]  	USB Driver handles 0x100 NumHeads as a valid value.
// [Files]  		usbmass.c, usbdef.h, UsbInt13.c, UsbInt13.h, UI13.bin,
// Bfiusb.equ, Bfiusb.asm
// 
// 12    12/15/13 10:13p Wilsonlee
// [TAG]  		EIP136594
// [Category]  	New Feature
// [Description]  	Support 64 bits LBA of usb mass storages.
// [Files]  		Bfiusb.asm, Bfiusb.equ, UsbInt13.c, UsbInt13.h, amiusb.c,
// usbdef.h, usbmass.c, UsbMass.h, efiusbmass.c, UI13.bin
// 
// 11    7/23/13 2:11a Wilsonlee
// [TAG]  		EIP127941
// [Category]  	Improvement
// [Description]  	Replace UI13HDDFunc08 with UI13FDDFunc08 if the media
// descriptor is a fixed disk.
// [Files]  		UsbInt13.h, UsbInt13.c, usbmass.c, usbdef.h, Bfiusb.asm,
// Bfiusb.equ
// 
// 10    7/03/13 5:21a Ryanchou
// [TAG]  		EIP123988
// [Category]  	Improvement
// [Description]  	Move the code creating BBS table to end of POST.
// [Files]  		UsbBbs.c, UsbInt13.c, UsbInt13.cif, UsbInt13.h,
// UsbInt13.mak, UsbInt13.sdl, efiusbmass.c, uhcd.c, uhcd.h,
// AmiUsbController.h
// 
// 9     1/06/12 1:01a Rajeshms
// [TAG]  		EIP62737
// [Category]  	Improvement
// [Description]  	Added USB Device number into USB mass device name
// string based on SDL Token.
// [Files]  		Usb.sdl, usbport.c, usbmass.c, UsbInt13.h, UsbInt13.c,
// usbbus.c, Bfiusb.equ
// 
// 8     3/04/11 11:42a Olegi
// [TAG]  		EIP51927
// [Category]  	Improvement
// [Description]  	Support for the interface path reporting in USB INT13
// function 48.
// [Files]  		UsbInt13.c
// UsbInt13.h
// 
// 7     10/12/10 2:07a Rameshr
// [TAG]- EIP 44585
// [Category]-IMPROVEMENT
// [Description]- Number of maximum supported USB Mass Storage device
// increased from 8 to 16. 
// [Files]- Uin13.bin, UsbPort.c, UsbInt13.h, Usb.c, Usbdef.h, Uasbmass.c,
// Usb.sd, usb.uni, UsbSetup.c, UsbSrc.sdl, UsbPolicy.h
// 
// 6     5/21/09 5:14p Olegi
// 
// 5     11/25/08 5:59p Olegi
// 
// 4     11/03/08 9:53a Olegi
// 
// 3     10/24/08 3:06p Olegi
// 
// 2     6/27/08 5:50p Olegi
// 
// 1     5/16/08 12:12p Olegi
// First check-in.
// 
//****************************************************************************

#ifndef __UI13_HEADER__
#define __UI13_HEADER__

#include "efi.h"

#pragma pack(1)

//<AMI_FHDR_START>
//---------------------------------------------------------------------------
//
//  Name:           UINT13.H
//  Description:    Definitions and structures for USB INT13
//
//---------------------------------------------------------------------------
//<AMI_FHDR_END>

VOID        AmiUsbNotifyCallback (EFI_EVENT, VOID*);
VOID        ReadyToBootNotify(EFI_EVENT, VOID*);
EFI_STATUS  InstallUsbLegacyBootDevices (VOID);
EFI_STATUS  UsbInstallLegacyDevice (USB_MASS_DEV*);
EFI_STATUS  UsbUninstallLegacyDevice (USB_MASS_DEV*);

#define     USBDEVS_MAX_ENTRIES 16

typedef struct _USBMASS_INT13_DEV {
    UINT8   Handle;
    UINT8   BbsEntryNo;
    UINT8   DevBaidType;
    UINT16  NumHeads;
    UINT16  LBANumHeads;
    UINT16  NumCylinders;
    UINT16  LBANumCyls;
    UINT8   NumSectors;
    UINT8   LBANumSectors;
    UINT16  BytesPerSector;
    UINT8   MediaType;
    UINT64  LastLBA;
    UINT8   BpbMediaDesc;
    UINT8   DeviceNameString[64];
} USBMASS_INT13_DEV;

//
// The following data structure is located in UI13.BIN
//
typedef struct _UINT13_DATA {
    USBMASS_INT13_DEV   UsbMassI13Dev[USBDEVS_MAX_ENTRIES];
    UINT8               MfgGenericName[12];    // "USB Storage", 0
    UINT16              BcvOffset;
    UINT16              CheckForUsbCDROMOffset;
    UINT16              UsbSmmDataOffset;
    UINT16              UsbPciLocationTableOffset;
} UINT13_DATA;

typedef struct _USB_PCI_LOCATION {
    UINT8   Handle;         // USB device address
    UINT16  PciLocation;    // Bus[15..8] Device[7..3] Function[2..0]
} USB_PCI_LOCATION;

#pragma pack()

typedef enum {
    Floppy,
    HardDrive,
    CDROM
} HOTPLUG_DEVICE;

EFI_STATUS InitializeHotplugDevices();

#endif

//****************************************************************************
//****************************************************************************
//**                                                                        **
//**             (C)Copyright 1985-2008, American Megatrends, Inc.          **
//**                                                                        **
//**                          All Rights Reserved.                          **
//**                                                                        **
//**                 5555 Oakbrook Pkwy, Norcross, GA 30093                 **
//**                                                                        **
//**                          Phone (770)-246-8600                          **
//**                                                                        **
//****************************************************************************
//****************************************************************************