7 Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
8 This software and associated documentation (if any) is furnished
9 under a license and may only be used or copied in accordance
10 with the terms of the license. Except as permitted by such
11 license, no part of this software or documentation may be
12 reproduced, stored in a retrieval system, or transmitted in any
13 form or by any means without the express written consent of
32 #define SERIAL_IO_PROTOCOL \
33 { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD} }
35 INTERFACE_DECL(_SERIAL_IO_INTERFACE);
48 OneStopBit, // 1 stop bit
49 OneFiveStopBits, // 1.5 stop bits
50 TwoStopBits // 2 stop bits
53 #define EFI_SERIAL_CLEAR_TO_SEND 0x0010 // RO
54 #define EFI_SERIAL_DATA_SET_READY 0x0020 // RO
55 #define EFI_SERIAL_RING_INDICATE 0x0040 // RO
56 #define EFI_SERIAL_CARRIER_DETECT 0x0080 // RO
57 #define EFI_SERIAL_REQUEST_TO_SEND 0x0002 // WO
58 #define EFI_SERIAL_DATA_TERMINAL_READY 0x0001 // WO
59 #define EFI_SERIAL_INPUT_BUFFER_EMPTY 0x0100 // RO
60 #define EFI_SERIAL_OUTPUT_BUFFER_EMPTY 0x0200 // RO
61 #define EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE 0x1000 // RW
62 #define EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE 0x2000 // RW
63 #define EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE 0x4000 // RW
67 (EFIAPI *EFI_SERIAL_RESET) (
68 IN struct _SERIAL_IO_INTERFACE *This
73 (EFIAPI *EFI_SERIAL_SET_ATTRIBUTES) (
74 IN struct _SERIAL_IO_INTERFACE *This,
76 IN UINT32 ReceiveFifoDepth,
78 IN EFI_PARITY_TYPE Parity,
80 IN EFI_STOP_BITS_TYPE StopBits
85 (EFIAPI *EFI_SERIAL_SET_CONTROL_BITS) (
86 IN struct _SERIAL_IO_INTERFACE *This,
92 (EFIAPI *EFI_SERIAL_GET_CONTROL_BITS) (
93 IN struct _SERIAL_IO_INTERFACE *This,
99 (EFIAPI *EFI_SERIAL_WRITE) (
100 IN struct _SERIAL_IO_INTERFACE *This,
101 IN OUT UINTN *BufferSize,
107 (EFIAPI *EFI_SERIAL_READ) (
108 IN struct _SERIAL_IO_INTERFACE *This,
109 IN OUT UINTN *BufferSize,
116 // current Attributes
119 UINT32 ReceiveFifoDepth;
125 #define SERIAL_IO_INTERFACE_REVISION 0x00010000
127 typedef struct _SERIAL_IO_INTERFACE {
129 EFI_SERIAL_RESET Reset;
130 EFI_SERIAL_SET_ATTRIBUTES SetAttributes;
131 EFI_SERIAL_SET_CONTROL_BITS SetControl;
132 EFI_SERIAL_GET_CONTROL_BITS GetControl;
133 EFI_SERIAL_WRITE Write;
134 EFI_SERIAL_READ Read;
136 SERIAL_IO_MODE *Mode;
137 } SERIAL_IO_INTERFACE;