]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/Debugger/Debugport/Dxe/DebugPort.h
Initial import.
[mirror_edk2.git] / EdkModulePkg / Universal / Debugger / Debugport / Dxe / DebugPort.h
CommitLineData
878ddf1f 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13 DebugPort.h\r
14\r
15Abstract:\r
16 Definitions and prototypes for DebugPort driver\r
17\r
18--*/\r
19\r
20#ifndef __DEBUGPORT_H__\r
21#define __DEBUGPORT_H__\r
22\r
23\r
24//\r
25// local type definitions\r
26//\r
27#define DEBUGPORT_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('D', 'B', 'G', 'P')\r
28\r
29//\r
30// Device structure used by driver\r
31//\r
32typedef struct {\r
33 UINT32 Signature;\r
34 EFI_HANDLE DriverBindingHandle;\r
35 EFI_HANDLE DebugPortDeviceHandle;\r
36 VOID *DebugPortVariable;\r
37\r
38 EFI_DRIVER_BINDING_PROTOCOL DriverBindingInterface;\r
39 EFI_COMPONENT_NAME_PROTOCOL ComponentNameInterface;\r
40 EFI_DEVICE_PATH_PROTOCOL *DebugPortDevicePath;\r
41 EFI_DEBUGPORT_PROTOCOL DebugPortInterface;\r
42\r
43 EFI_HANDLE SerialIoDeviceHandle;\r
44 EFI_SERIAL_IO_PROTOCOL *SerialIoBinding;\r
45 UINT64 BaudRate;\r
46 UINT32 ReceiveFifoDepth;\r
47 UINT32 Timeout;\r
48 EFI_PARITY_TYPE Parity;\r
49 UINT8 DataBits;\r
50 EFI_STOP_BITS_TYPE StopBits;\r
51} DEBUGPORT_DEVICE;\r
52\r
53#define DEBUGPORT_DEVICE_FROM_THIS(a) CR (a, DEBUGPORT_DEVICE, DebugPortInterface, DEBUGPORT_DEVICE_SIGNATURE)\r
54\r
55#define EFI_ACPI_PC_COMPORT_HID EISA_PNP_ID (0x0500)\r
56#define EFI_ACPI_16550UART_HID EISA_PNP_ID (0x0501)\r
57\r
58#define DEBUGPORT_UART_DEFAULT_BAUDRATE 115200\r
59#define DEBUGPORT_UART_DEFAULT_PARITY 0\r
60#define DEBUGPORT_UART_DEFAULT_FIFO_DEPTH 16\r
61#define DEBUGPORT_UART_DEFAULT_TIMEOUT 50000 // 5 ms\r
62#define DEBUGPORT_UART_DEFAULT_DATA_BITS 8\r
63#define DEBUGPORT_UART_DEFAULT_STOP_BITS 1\r
64\r
65#define DEBUGPORT_DRIVER_VERSION 1\r
66\r
67#define EfiIsUartDevicePath(dp) (DevicePathType (dp) == MESSAGING_DEVICE_PATH && DevicePathSubType (dp) == MSG_UART_DP)\r
68\r
69//\r
70// globals\r
71//\r
72extern DEBUGPORT_DEVICE *gDebugPortDevice;\r
73\r
74//\r
75// Driver binding interface functions...\r
76//\r
77EFI_STATUS\r
78DebugPortEntryPoint (\r
79 IN EFI_HANDLE ImageHandle,\r
80 IN EFI_SYSTEM_TABLE *SystemTable\r
81 )\r
82;\r
83\r
84EFI_STATUS\r
85EFIAPI\r
86DebugPortSupported (\r
87 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
88 IN EFI_HANDLE Controller,\r
89 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
90 )\r
91;\r
92\r
93EFI_STATUS\r
94EFIAPI\r
95DebugPortStart (\r
96 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
97 IN EFI_HANDLE Controller,\r
98 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
99 )\r
100;\r
101\r
102EFI_STATUS\r
103EFIAPI\r
104DebugPortStop (\r
105 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
106 IN EFI_HANDLE Controller,\r
107 IN UINTN NumberOfChildren,\r
108 IN EFI_HANDLE *ChildHandleBuffer\r
109 )\r
110;\r
111\r
112//\r
113// EFI Component Name Functions\r
114//\r
115EFI_STATUS\r
116EFIAPI\r
117DebugPortComponentNameGetDriverName (\r
118 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
119 IN CHAR8 *Language,\r
120 OUT CHAR16 **DriverName\r
121 )\r
122;\r
123\r
124EFI_STATUS\r
125EFIAPI\r
126DebugPortComponentNameGetControllerName (\r
127 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
128 IN EFI_HANDLE ControllerHandle,\r
129 IN EFI_HANDLE ChildHandle OPTIONAL,\r
130 IN CHAR8 *Language,\r
131 OUT CHAR16 **ControllerName\r
132 )\r
133;\r
134\r
135//\r
136// DebugPort member functions\r
137//\r
138EFI_STATUS\r
139EFIAPI\r
140DebugPortReset (\r
141 IN EFI_DEBUGPORT_PROTOCOL *This\r
142 )\r
143;\r
144\r
145EFI_STATUS\r
146EFIAPI\r
147DebugPortRead (\r
148 IN EFI_DEBUGPORT_PROTOCOL *This,\r
149 IN UINT32 Timeout,\r
150 IN OUT UINTN *BufferSize,\r
151 IN VOID *Buffer\r
152 )\r
153;\r
154\r
155EFI_STATUS\r
156EFIAPI\r
157DebugPortWrite (\r
158 IN EFI_DEBUGPORT_PROTOCOL *This,\r
159 IN UINT32 Timeout,\r
160 IN OUT UINTN *BufferSize,\r
161 OUT VOID *Buffer\r
162 )\r
163;\r
164\r
165EFI_STATUS\r
166EFIAPI\r
167DebugPortPoll (\r
168 IN EFI_DEBUGPORT_PROTOCOL *This\r
169 )\r
170;\r
171\r
172#endif\r