Support for universal asynchronous receiver-transmitter (UART) port
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2022-07-31 23:55:16 +02:00
parent 231938766c
commit 66e0f0cba4
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4

View File

@ -191,6 +191,26 @@ typedef enum EFI_GRAPHICS_OUTPUT_BLT_OPERATION
EfiGraphicsOutputBltOperationMax
} EFI_GRAPHICS_OUTPUT_BLT_OPERATION, *PEFI_GRAPHICS_OUTPUT_BLT_OPERATION;
/* Enumeration of UART parity types */
typedef enum _EFI_UART_PARITY_TYPE
{
DefaultParity,
NoParity,
EvenParity,
OddParity,
MarkParity,
SpaceParity
} EFI_UART_PARITY_TYPE, *PEFI_UART_PARITY_TYPE;
/* Enumeration of UART stop bit types */
typedef enum _EFI_UART_STOP_BITS_TYPE
{
DefaultStopBits,
OneStopBit,
OneFiveStopBits,
TwoStopBits
} EFI_UART_STOP_BITS_TYPE, *PEFI_UART_STOP_BITS_TYPE;
/* EFI structures forward references */
typedef struct _EFI_CAPSULE_HEADER EFI_CAPSULE_HEADER, *PEFI_CAPSULE_HEADER;
typedef struct _EFI_GUID EFI_GUID, *PEFI_GUID;
@ -298,6 +318,8 @@ typedef struct _EFI_MBR_PARTITION_RECORD EFI_MBR_PARTITION_RECORD, *PEFI_MBR_PAR
typedef struct _EFI_MASTER_BOOT_RECORD EFI_MASTER_BOOT_RECORD, *PEFI_MASTER_BOOT_RECORD;
typedef struct _EFI_GPT_PARTITION_TABLE_HEADER EFI_GPT_PARTITION_TABLE_HEADER, *PEFI_GPT_PARTITION_TABLE_HEADER;
typedef struct _EFI_GPT_PARTITION_ENTRY EFI_GPT_PARTITION_ENTRY, *PEFI_GPT_PARTITION_ENTRY;
typedef struct _EFI_UART_IO_MODE EFI_UART_IO_MODE, *PEFI_UART_IO_MODE;
typedef struct _EFI_UART_IO_PROTOCOL EFI_UART_IO_PROTOCOL, *PEFI_UART_IO_PROTOCOL;
/* EFI unions forward references */
typedef union _EFI_DEV_PATH EFI_DEV_PATH, *PEFI_DEV_PATH;
@ -487,6 +509,12 @@ typedef EFI_STATUS (*PEFI_EBC_UNLOAD_IMAGE)(IN PEFI_EBC_PROTOCOL This, IN EFI_HA
typedef EFI_STATUS (*PEFI_EBC_ICACHE_FLUSH)(IN EFI_PHYSICAL_ADDRESS Start, IN UINT64 Length);
typedef EFI_STATUS (*PEFI_EBC_REGISTER_ICACHE_FLUSH)(IN PEFI_EBC_PROTOCOL This, IN PEFI_EBC_ICACHE_FLUSH Flush);
typedef EFI_STATUS (*PEFI_EBC_GET_VERSION)(IN PEFI_EBC_PROTOCOL This, IN OUT PUINT64 Version);
typedef EFI_STATUS (*PEFI_UART_RESET)(IN PEFI_UART_IO_PROTOCOL This);
typedef EFI_STATUS (*PEFI_UART_SET_ATTRIBUTES)(IN PEFI_UART_IO_PROTOCOL This, IN UINT64 BaudRate, IN UINT32 ReceiveFifoDepth, IN UINT32 Timeout, IN EFI_UART_PARITY_TYPE Parity, IN UINT8 DataBits, IN EFI_UART_STOP_BITS_TYPE StopBits);
typedef EFI_STATUS (*PEFI_UART_SET_CONTROL_BITS)(IN PEFI_UART_IO_PROTOCOL This, IN UINT32 Control);
typedef EFI_STATUS (*PEFI_UART_GET_CONTROL_BITS)(IN PEFI_UART_IO_PROTOCOL This, OUT PUINT32 Control);
typedef EFI_STATUS (*PEFI_UART_WRITE)(IN PEFI_UART_IO_PROTOCOL This, IN OUT PUINT_PTR BufferSize, IN PVOID Buffer);
typedef EFI_STATUS (*PEFI_UART_READ)(IN PEFI_UART_IO_PROTOCOL This, IN OUT PUINT_PTR BufferSize, OUT PVOID Buffer);
/* 128-bit buffer containing a unique identifier value */
typedef struct _EFI_GUID
@ -1648,4 +1676,28 @@ typedef struct _EFI_GPT_PARTITION_ENTRY
UINT16 PartitionName[36];
} EFI_GPT_PARTITION_ENTRY, *PEFI_GPT_PARTITION_ENTRY;
/* EFI UART I/O mode */
typedef struct _EFI_UART_IO_MODE
{
UINT32 ControlMask;
UINT32 Timeout;
UINT64 BaudRate;
UINT32 ReceiveFifoDepth;
UINT32 DataBits;
UINT32 Parity;
UINT32 StopBits;
} EFI_UART_IO_MODE, *PEFI_UART_IO_MODE;
/* EFI UART I/O protocol */
typedef struct _EFI_UART_IO_PROTOCOL {
UINT32 Revision;
PEFI_UART_RESET Reset;
PEFI_UART_SET_ATTRIBUTES SetAttributes;
PEFI_UART_SET_CONTROL_BITS SetControl;
PEFI_UART_GET_CONTROL_BITS GetControl;
PEFI_UART_WRITE Write;
PEFI_UART_READ Read;
PEFI_UART_IO_MODE Mode;
} EFI_UART_IO_PROTOCOL, *PEFI_UART_IO_PROTOCOL;
#endif /* __XTDK_XTUEFI_H */