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