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