]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[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#include <IndustryStandard/Acpi.h>\r
568eb0cb 15\r
766f4bc1 16//\r
17// Ensure proper structure formats\r
18//\r
19#pragma pack(1)\r
20\r
1bc5d021 21///\r
22/// SPCR Revision (defined in spec)\r
23///\r
2f88bd3a 24#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02\r
568eb0cb 25\r
1bc5d021 26///\r
4135253b 27/// Serial Port Console Redirection Table Format\r
1bc5d021 28///\r
568eb0cb 29typedef struct {\r
2f88bd3a
MK
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
568eb0cb 51} EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE;\r
766f4bc1 52\r
568eb0cb 53#pragma pack()\r
568eb0cb 54\r
55//\r
56// SPCR Definitions\r
57//\r
58\r
59//\r
60// Interface Type\r
61//\r
4135253b 62\r
63///\r
64/// Full 16550 interface\r
65///\r
2f88bd3a 66#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550 0\r
4135253b 67///\r
68/// Full 16450 interface\r
69///\r
2f88bd3a 70#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450 1\r
a0606fc7
SM
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
2f88bd3a 79#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART 0x03\r
a0606fc7 80\r
fdf3666f
AS
81///\r
82/// NVIDIA 16550 UART\r
83///\r
2f88bd3a 84#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_NVIDIA_16550_UART 0x05\r
fdf3666f 85\r
a0606fc7
SM
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
2f88bd3a 94#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_SBSA_GENERIC_UART 0x0e\r
568eb0cb 95\r
bfb141cf
PB
96///\r
97/// ARM DCC\r
98///\r
2f88bd3a 99#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_DCC 0x0f\r
bfb141cf
PB
100\r
101///\r
102/// BCM2835 UART\r
103///\r
2f88bd3a 104#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_BCM2835_UART 0x10\r
bfb141cf 105\r
197e27c9
MW
106///\r
107/// 16550-compatible with parameters defined in Generic Address Structure\r
108///\r
2f88bd3a 109#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550_WITH_GAS 0x12\r
197e27c9 110\r
568eb0cb 111//\r
112// Interrupt Type\r
113//\r
4135253b 114\r
115///\r
116/// PC-AT-compatible dual-8259 IRQ interrupt\r
117///\r
2f88bd3a 118#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259 0x1\r
4135253b 119///\r
120/// I/O APIC interrupt (Global System Interrupt)\r
121///\r
2f88bd3a 122#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC 0x2\r
4135253b 123///\r
124/// I/O SAPIC interrupt (Global System Interrupt)\r
125///\r
2f88bd3a 126#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC 0x4\r
c374aa43
HG
127///\r
128/// ARMH GIC interrupt (Global System Interrupt)\r
129///\r
2f88bd3a 130#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC 0x8\r
568eb0cb 131\r
132//\r
133// Baud Rate\r
134//\r
2f88bd3a
MK
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
568eb0cb 139\r
140//\r
141// Parity\r
142//\r
2f88bd3a 143#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY 0\r
568eb0cb 144\r
145//\r
146// Stop Bits\r
147//\r
2f88bd3a 148#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1 1\r
568eb0cb 149\r
150//\r
151// Flow Control\r
152//\r
4135253b 153\r
154///\r
155/// DCD required for transmit\r
156///\r
2f88bd3a 157#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD 0x1\r
4135253b 158///\r
159/// RTS/CTS hardware flow control\r
160///\r
2f88bd3a 161#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS 0x2\r
4135253b 162///\r
163/// XON/XOFF software control\r
164///\r
568eb0cb 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
2f88bd3a
MK
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
568eb0cb 174\r
175#endif\r