]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SerialPortConsoleRedirectionTable.h
index 9162169f0c2c597974dbe24da4fe9f7c05bd56a6..eb5ae2839007c43ed50e666299012430214e603d 100644 (file)
@@ -1,67 +1,56 @@
-/**@file\r
+/** @file\r
   ACPI Serial Port Console Redirection Table as defined by Microsoft in\r
   http://www.microsoft.com/whdc/system/platform/server/spcr.mspx\r
-    \r
-  Copyright (c) 2007, Intel Corporation\r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+  Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
+  Copyright (c) 2014 - 2016, ARM Limited. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 **/\r
 \r
 #ifndef _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_\r
 #define _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_\r
 \r
-//\r
-// Include files\r
-//\r
-#include "Acpi2_0.h"\r
+#include <IndustryStandard/Acpi.h>\r
 \r
 //\r
 // Ensure proper structure formats\r
 //\r
-#ifdef _MSC_EXTENSIONS\r
 #pragma pack(1)\r
-#endif\r
 \r
-//\r
-// SPCR Revision (defined in spec)\r
-//\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x01\r
+///\r
+/// SPCR Revision (defined in spec)\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION  0x02\r
 \r
-//\r
-// SPCR Structure Definition\r
-//\r
+///\r
+/// Serial Port Console Redirection Table Format\r
+///\r
 typedef struct {\r
-  EFI_ACPI_DESCRIPTION_HEADER             Header;\r
-  UINT8                                   InterfaceType;\r
-  UINT8                                   Reserved1[3];\r
-  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  BaseAddress;\r
-  UINT8                                   InterruptType;\r
-  UINT8                                   Irq;\r
-  UINT32                                  GlobalSystemInterrupt;\r
-  UINT8                                   BaudRate;\r
-  UINT8                                   Parity;\r
-  UINT8                                   StopBits;\r
-  UINT8                                   FlowControl;\r
-  UINT8                                   TerminalType;\r
-  UINT8                                   Language;\r
-  UINT16                                  PciDeviceId;\r
-  UINT16                                  PciVendorId;\r
-  UINT8                                   PciBusNumber;\r
-  UINT8                                   PciDeviceNumber;\r
-  UINT8                                   PciFunctionNumber;\r
-  UINT32                                  PciFlags;\r
-  UINT8                                   PciSegment;\r
-  UINT32                                  Reserved2;\r
+  EFI_ACPI_DESCRIPTION_HEADER               Header;\r
+  UINT8                                     InterfaceType;\r
+  UINT8                                     Reserved1[3];\r
+  EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE    BaseAddress;\r
+  UINT8                                     InterruptType;\r
+  UINT8                                     Irq;\r
+  UINT32                                    GlobalSystemInterrupt;\r
+  UINT8                                     BaudRate;\r
+  UINT8                                     Parity;\r
+  UINT8                                     StopBits;\r
+  UINT8                                     FlowControl;\r
+  UINT8                                     TerminalType;\r
+  UINT8                                     Reserved2;\r
+  UINT16                                    PciDeviceId;\r
+  UINT16                                    PciVendorId;\r
+  UINT8                                     PciBusNumber;\r
+  UINT8                                     PciDeviceNumber;\r
+  UINT8                                     PciFunctionNumber;\r
+  UINT32                                    PciFlags;\r
+  UINT8                                     PciSegment;\r
+  UINT32                                    Reserved3;\r
 } EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE;\r
 \r
-#ifdef _MSC_EXTENSIONS\r
 #pragma pack()\r
-#endif\r
 \r
 //\r
 // SPCR Definitions\r
@@ -70,47 +59,117 @@ typedef struct {
 //\r
 // Interface Type\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550   0\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450   1\r
+\r
+///\r
+/// Full 16550 interface\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550  0\r
+///\r
+/// Full 16450 interface\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450  1\r
+\r
+//\r
+// The Serial Port Subtypes for ARM are documented in Table 3 of the DBG2 Specification\r
+//\r
+\r
+///\r
+/// ARM PL011 UART\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART  0x03\r
+\r
+///\r
+/// NVIDIA 16550 UART\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_NVIDIA_16550_UART  0x05\r
+\r
+///\r
+/// ARM SBSA Generic UART (2.x) supporting 32-bit only accesses [deprecated]\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_SBSA_GENERIC_UART_2X  0x0d\r
+\r
+///\r
+/// ARM SBSA Generic UART\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_SBSA_GENERIC_UART  0x0e\r
+\r
+///\r
+/// ARM DCC\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_DCC  0x0f\r
+\r
+///\r
+/// BCM2835 UART\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_BCM2835_UART  0x10\r
+\r
+///\r
+/// 16550-compatible with parameters defined in Generic Address Structure\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550_WITH_GAS  0x12\r
 \r
 //\r
 // Interrupt Type\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259    0x1\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC    0x2\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC   0x4\r
+\r
+///\r
+/// PC-AT-compatible dual-8259 IRQ interrupt\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259  0x1\r
+///\r
+/// I/O APIC interrupt (Global System Interrupt)\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC  0x2\r
+///\r
+/// I/O SAPIC interrupt (Global System Interrupt)\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC  0x4\r
+///\r
+/// ARMH GIC interrupt (Global System Interrupt)\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC  0x8\r
 \r
 //\r
 // Baud Rate\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600         3\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200        4\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600        5\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200       6\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600    3\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200   4\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600   6\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200  7\r
 \r
 //\r
 // Parity\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY       0\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY  0\r
 \r
 //\r
 // Stop Bits\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1            1\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1  1\r
 \r
 //\r
 // Flow Control\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD       0x1\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS   0x2\r
+\r
+///\r
+/// DCD required for transmit\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD  0x1\r
+///\r
+/// RTS/CTS hardware flow control\r
+///\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS  0x2\r
+///\r
+///  XON/XOFF software control\r
+///\r
 #define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_XON_XOFF  0x4\r
 \r
 //\r
 // Terminal Type\r
 //\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100      0\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100_PLUS 1\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8    2\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI       3\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100       0\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100_PLUS  1\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8     2\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI        3\r
 \r
 #endif\r