]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/SerialPortConsoleRedirectionTable.h
MdePkg/Include: Add DCC and BCM2835 SPCR UART types
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / SerialPortConsoleRedirectionTable.h
index b6f6140ee69acccd69d2e18d11d9ab5820cf6220..2066c7895e59942993327a5f3f28cfaaba110132 100644 (file)
@@ -1,15 +1,11 @@
 /** @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 - 2008, 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
@@ -26,7 +22,7 @@
 ///\r
 /// SPCR Revision (defined in spec)\r
 ///\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x01\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02\r
 \r
 ///\r
 /// Serial Port Console Redirection Table Format\r
@@ -35,7 +31,7 @@ typedef struct {
   EFI_ACPI_DESCRIPTION_HEADER             Header;\r
   UINT8                                   InterfaceType;\r
   UINT8                                   Reserved1[3];\r
-  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  BaseAddress;\r
+  EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE  BaseAddress;\r
   UINT8                                   InterruptType;\r
   UINT8                                   Irq;\r
   UINT32                                  GlobalSystemInterrupt;\r
@@ -44,7 +40,7 @@ typedef struct {
   UINT8                                   StopBits;\r
   UINT8                                   FlowControl;\r
   UINT8                                   TerminalType;\r
-  UINT8                                   Language;\r
+  UINT8                                   Reserved2;\r
   UINT16                                  PciDeviceId;\r
   UINT16                                  PciVendorId;\r
   UINT8                                   PciBusNumber;\r
@@ -52,7 +48,7 @@ typedef struct {
   UINT8                                   PciFunctionNumber;\r
   UINT32                                  PciFlags;\r
   UINT8                                   PciSegment;\r
-  UINT32                                  Reserved2;\r
+  UINT32                                  Reserved3;\r
 } EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE;\r
 \r
 #pragma pack()\r
@@ -68,11 +64,41 @@ typedef struct {
 ///\r
 /// Full 16550 interface\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_16550                     0\r
 ///\r
 /// Full 16450 interface\r
 ///\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450   1\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450                     1\r
+\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
+/// 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
 // Interrupt Type\r
@@ -90,14 +116,18 @@ typedef struct {
 /// 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_57600        6\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200       7\r
 \r
 //\r
 // Parity\r