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