]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
MdePkg/Include: Add DCC and BCM2835 SPCR UART types
[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
bfb141cf
PB
93///\r
94/// ARM DCC\r
95///\r
96#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_DCC 0x0f\r
97\r
98///\r
99/// BCM2835 UART\r
100///\r
101#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_BCM2835_UART 0x10\r
102\r
568eb0cb 103//\r
104// Interrupt Type\r
105//\r
4135253b 106\r
107///\r
108/// PC-AT-compatible dual-8259 IRQ interrupt\r
109///\r
568eb0cb 110#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259 0x1\r
4135253b 111///\r
112/// I/O APIC interrupt (Global System Interrupt)\r
113///\r
568eb0cb 114#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC 0x2\r
4135253b 115///\r
116/// I/O SAPIC interrupt (Global System Interrupt)\r
117///\r
568eb0cb 118#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC 0x4\r
c374aa43
HG
119///\r
120/// ARMH GIC interrupt (Global System Interrupt)\r
121///\r
122#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC 0x8\r
568eb0cb 123\r
124//\r
125// Baud Rate\r
126//\r
127#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600 3\r
128#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200 4\r
04cabbc0
JY
129#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600 6\r
130#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200 7\r
568eb0cb 131\r
132//\r
133// Parity\r
134//\r
135#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY 0\r
136\r
137//\r
138// Stop Bits\r
139//\r
140#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1 1\r
141\r
142//\r
143// Flow Control\r
144//\r
4135253b 145\r
146///\r
147/// DCD required for transmit\r
148///\r
568eb0cb 149#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD 0x1\r
4135253b 150///\r
151/// RTS/CTS hardware flow control\r
152///\r
568eb0cb 153#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS 0x2\r
4135253b 154///\r
155/// XON/XOFF software control\r
156///\r
568eb0cb 157#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_XON_XOFF 0x4\r
158\r
159//\r
160// Terminal Type\r
161//\r
162#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100 0\r
163#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100_PLUS 1\r
164#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8 2\r
165#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI 3\r
166\r
167#endif\r