Home | History | Annotate | Line # | Download | only in inc
efiser.h revision 1.1
      1  1.1  jakllsch /*	$NetBSD: efiser.h,v 1.1 2014/04/01 16:16:07 jakllsch Exp $	*/
      2  1.1  jakllsch 
      3  1.1  jakllsch #ifndef _EFI_SER_H
      4  1.1  jakllsch #define _EFI_SER_H
      5  1.1  jakllsch 
      6  1.1  jakllsch /*++
      7  1.1  jakllsch 
      8  1.1  jakllsch Copyright (c) 1998  Intel Corporation
      9  1.1  jakllsch 
     10  1.1  jakllsch Module Name:
     11  1.1  jakllsch 
     12  1.1  jakllsch     efiser.h
     13  1.1  jakllsch 
     14  1.1  jakllsch Abstract:
     15  1.1  jakllsch 
     16  1.1  jakllsch     EFI serial protocol
     17  1.1  jakllsch 
     18  1.1  jakllsch Revision History
     19  1.1  jakllsch 
     20  1.1  jakllsch --*/
     21  1.1  jakllsch 
     22  1.1  jakllsch //
     23  1.1  jakllsch // Serial protocol
     24  1.1  jakllsch //
     25  1.1  jakllsch 
     26  1.1  jakllsch #define SERIAL_IO_PROTOCOL \
     27  1.1  jakllsch     { 0xBB25CF6F, 0xF1D4, 0x11D2, {0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0xFD} }
     28  1.1  jakllsch 
     29  1.1  jakllsch INTERFACE_DECL(_SERIAL_IO_INTERFACE);
     30  1.1  jakllsch 
     31  1.1  jakllsch typedef enum {
     32  1.1  jakllsch     DefaultParity,
     33  1.1  jakllsch     NoParity,
     34  1.1  jakllsch     EvenParity,
     35  1.1  jakllsch     OddParity,
     36  1.1  jakllsch     MarkParity,
     37  1.1  jakllsch     SpaceParity
     38  1.1  jakllsch } EFI_PARITY_TYPE;
     39  1.1  jakllsch 
     40  1.1  jakllsch typedef enum {
     41  1.1  jakllsch     DefaultStopBits,
     42  1.1  jakllsch     OneStopBit,         // 1 stop bit
     43  1.1  jakllsch     OneFiveStopBits,    // 1.5 stop bits
     44  1.1  jakllsch     TwoStopBits         // 2 stop bits
     45  1.1  jakllsch } EFI_STOP_BITS_TYPE;
     46  1.1  jakllsch 
     47  1.1  jakllsch #define EFI_SERIAL_CLEAR_TO_SEND                   0x0010  // RO
     48  1.1  jakllsch #define EFI_SERIAL_DATA_SET_READY                  0x0020  // RO
     49  1.1  jakllsch #define EFI_SERIAL_RING_INDICATE                   0x0040  // RO
     50  1.1  jakllsch #define EFI_SERIAL_CARRIER_DETECT                  0x0080  // RO
     51  1.1  jakllsch #define EFI_SERIAL_REQUEST_TO_SEND                 0x0002  // WO
     52  1.1  jakllsch #define EFI_SERIAL_DATA_TERMINAL_READY             0x0001  // WO
     53  1.1  jakllsch #define EFI_SERIAL_INPUT_BUFFER_EMPTY              0x0100  // RO
     54  1.1  jakllsch #define EFI_SERIAL_OUTPUT_BUFFER_EMPTY             0x0200  // RO
     55  1.1  jakllsch #define EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE        0x1000  // RW
     56  1.1  jakllsch #define EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE        0x2000  // RW
     57  1.1  jakllsch #define EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE    0x4000  // RW
     58  1.1  jakllsch 
     59  1.1  jakllsch typedef
     60  1.1  jakllsch EFI_STATUS
     61  1.1  jakllsch (EFIAPI *EFI_SERIAL_RESET) (
     62  1.1  jakllsch     IN struct _SERIAL_IO_INTERFACE  *This
     63  1.1  jakllsch     );
     64  1.1  jakllsch 
     65  1.1  jakllsch typedef
     66  1.1  jakllsch EFI_STATUS
     67  1.1  jakllsch (EFIAPI *EFI_SERIAL_SET_ATTRIBUTES) (
     68  1.1  jakllsch     IN struct _SERIAL_IO_INTERFACE  *This,
     69  1.1  jakllsch     IN UINT64                       BaudRate,
     70  1.1  jakllsch     IN UINT32                       ReceiveFifoDepth,
     71  1.1  jakllsch     IN UINT32                       Timeout,
     72  1.1  jakllsch     IN EFI_PARITY_TYPE              Parity,
     73  1.1  jakllsch     IN UINT8                        DataBits,
     74  1.1  jakllsch     IN EFI_STOP_BITS_TYPE           StopBits
     75  1.1  jakllsch     );
     76  1.1  jakllsch 
     77  1.1  jakllsch typedef
     78  1.1  jakllsch EFI_STATUS
     79  1.1  jakllsch (EFIAPI *EFI_SERIAL_SET_CONTROL_BITS) (
     80  1.1  jakllsch     IN struct _SERIAL_IO_INTERFACE  *This,
     81  1.1  jakllsch     IN UINT32                       Control
     82  1.1  jakllsch     );
     83  1.1  jakllsch 
     84  1.1  jakllsch typedef
     85  1.1  jakllsch EFI_STATUS
     86  1.1  jakllsch (EFIAPI *EFI_SERIAL_GET_CONTROL_BITS) (
     87  1.1  jakllsch     IN struct _SERIAL_IO_INTERFACE  *This,
     88  1.1  jakllsch     OUT UINT32                      *Control
     89  1.1  jakllsch     );
     90  1.1  jakllsch 
     91  1.1  jakllsch typedef
     92  1.1  jakllsch EFI_STATUS
     93  1.1  jakllsch (EFIAPI *EFI_SERIAL_WRITE) (
     94  1.1  jakllsch     IN struct _SERIAL_IO_INTERFACE  *This,
     95  1.1  jakllsch     IN OUT UINTN                    *BufferSize,
     96  1.1  jakllsch     IN VOID                         *Buffer
     97  1.1  jakllsch     );
     98  1.1  jakllsch 
     99  1.1  jakllsch typedef
    100  1.1  jakllsch EFI_STATUS
    101  1.1  jakllsch (EFIAPI *EFI_SERIAL_READ) (
    102  1.1  jakllsch     IN struct _SERIAL_IO_INTERFACE  *This,
    103  1.1  jakllsch     IN OUT UINTN                    *BufferSize,
    104  1.1  jakllsch     OUT VOID                        *Buffer
    105  1.1  jakllsch     );
    106  1.1  jakllsch 
    107  1.1  jakllsch typedef struct {
    108  1.1  jakllsch     UINT32                  ControlMask;
    109  1.1  jakllsch 
    110  1.1  jakllsch     // current Attributes
    111  1.1  jakllsch     UINT32                  Timeout;
    112  1.1  jakllsch     UINT64                  BaudRate;
    113  1.1  jakllsch     UINT32                  ReceiveFifoDepth;
    114  1.1  jakllsch     UINT32                  DataBits;
    115  1.1  jakllsch     UINT32                  Parity;
    116  1.1  jakllsch     UINT32                  StopBits;
    117  1.1  jakllsch } SERIAL_IO_MODE;
    118  1.1  jakllsch 
    119  1.1  jakllsch #define SERIAL_IO_INTERFACE_REVISION    0x00010000
    120  1.1  jakllsch 
    121  1.1  jakllsch typedef struct _SERIAL_IO_INTERFACE {
    122  1.1  jakllsch     UINT32                       Revision;
    123  1.1  jakllsch     EFI_SERIAL_RESET             Reset;
    124  1.1  jakllsch     EFI_SERIAL_SET_ATTRIBUTES    SetAttributes;
    125  1.1  jakllsch     EFI_SERIAL_SET_CONTROL_BITS  SetControl;
    126  1.1  jakllsch     EFI_SERIAL_GET_CONTROL_BITS  GetControl;
    127  1.1  jakllsch     EFI_SERIAL_WRITE             Write;
    128  1.1  jakllsch     EFI_SERIAL_READ              Read;
    129  1.1  jakllsch 
    130  1.1  jakllsch     SERIAL_IO_MODE               *Mode;
    131  1.1  jakllsch } SERIAL_IO_INTERFACE;
    132  1.1  jakllsch 
    133  1.1  jakllsch #endif
    134  1.1  jakllsch 
    135