]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SerialPortConsoleRedirectionTable.h
CommitLineData
42eedea9 1/** @file\r
568eb0cb 2 ACPI Serial Port Console Redirection Table as defined by Microsoft in\r
3 http://www.microsoft.com/whdc/system/platform/server/spcr.mspx\r
9095d37b
LG
4\r
5 Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
d4f293d1 6 (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
a0606fc7 7 Copyright (c) 2014 - 2016, ARM Limited. All rights reserved.<BR>\r
9344f092 8 SPDX-License-Identifier: BSD-2-Clause-Patent\r
568eb0cb 9**/\r
10\r
11#ifndef _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_\r
12#define _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_\r
13\r
ecc40942 14\r
15#include <IndustryStandard/Acpi.h>\r
568eb0cb 16\r
766f4bc1 17//\r
18// Ensure proper structure formats\r
19//\r
20#pragma pack(1)\r
21\r
1bc5d021 22///\r
23/// SPCR Revision (defined in spec)\r
24///\r
c374aa43 25#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02\r
568eb0cb 26\r
1bc5d021 27///\r
4135253b 28/// Serial Port Console Redirection Table Format\r
1bc5d021 29///\r
568eb0cb 30typedef struct {\r
31 EFI_ACPI_DESCRIPTION_HEADER Header;\r
32 UINT8 InterfaceType;\r
33 UINT8 Reserved1[3];\r
d4f293d1 34 EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE BaseAddress;\r
568eb0cb 35 UINT8 InterruptType;\r
36 UINT8 Irq;\r
37 UINT32 GlobalSystemInterrupt;\r
38 UINT8 BaudRate;\r
39 UINT8 Parity;\r
40 UINT8 StopBits;\r
41 UINT8 FlowControl;\r
42 UINT8 TerminalType;\r
c374aa43 43 UINT8 Reserved2;\r
568eb0cb 44 UINT16 PciDeviceId;\r
45 UINT16 PciVendorId;\r
46 UINT8 PciBusNumber;\r
47 UINT8 PciDeviceNumber;\r
48 UINT8 PciFunctionNumber;\r
49 UINT32 PciFlags;\r
50 UINT8 PciSegment;\r
c374aa43 51 UINT32 Reserved3;\r
568eb0cb 52} EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE;\r
766f4bc1 53\r
568eb0cb 54#pragma pack()\r
568eb0cb 55\r
56//\r
57// SPCR Definitions\r
58//\r
59\r
60//\r
61// Interface Type\r
62//\r
4135253b 63\r
64///\r
65/// Full 16550 interface\r
66///\r
a0606fc7 67#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550 0\r
4135253b 68///\r
69/// Full 16450 interface\r
70///\r
a0606fc7
SM
71#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450 1\r
72\r
73\r
74//\r
75// The Serial Port Subtypes for ARM are documented in Table 3 of the DBG2 Specification\r
76//\r
77\r
78///\r
79/// ARM PL011 UART\r
80///\r
81#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART 0x03\r
82\r
83///\r
84/// ARM SBSA Generic UART (2.x) supporting 32-bit only accesses [deprecated]\r
85///\r
86#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_SBSA_GENERIC_UART_2X 0x0d\r
87\r
88///\r
89/// ARM SBSA Generic UART\r
90///\r
91#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_SBSA_GENERIC_UART 0x0e\r
568eb0cb 92\r
93//\r
94// Interrupt Type\r
95//\r
4135253b 96\r
97///\r
98/// PC-AT-compatible dual-8259 IRQ interrupt\r
99///\r
568eb0cb 100#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259 0x1\r
4135253b 101///\r
102/// I/O APIC interrupt (Global System Interrupt)\r
103///\r
568eb0cb 104#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC 0x2\r
4135253b 105///\r
106/// I/O SAPIC interrupt (Global System Interrupt)\r
107///\r
568eb0cb 108#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC 0x4\r
c374aa43
HG
109///\r
110/// ARMH GIC interrupt (Global System Interrupt)\r
111///\r
112#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC 0x8\r
568eb0cb 113\r
114//\r
115// Baud Rate\r
116//\r
117#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600 3\r
118#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200 4\r
04cabbc0
JY
119#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600 6\r
120#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200 7\r
568eb0cb 121\r
122//\r
123// Parity\r
124//\r
125#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY 0\r
126\r
127//\r
128// Stop Bits\r
129//\r
130#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1 1\r
131\r
132//\r
133// Flow Control\r
134//\r
4135253b 135\r
136///\r
137/// DCD required for transmit\r
138///\r
568eb0cb 139#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD 0x1\r
4135253b 140///\r
141/// RTS/CTS hardware flow control\r
142///\r
568eb0cb 143#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS 0x2\r
4135253b 144///\r
145/// XON/XOFF software control\r
146///\r
568eb0cb 147#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_XON_XOFF 0x4\r
148\r
149//\r
150// Terminal Type\r
151//\r
152#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100 0\r
153#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100_PLUS 1\r
154#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8 2\r
155#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI 3\r
156\r
157#endif\r