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
- 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
+ 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 <IndustryStandard/Acpi.h>\r
\r
//\r
///\r
/// SPCR Revision (defined in spec)\r
///\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02\r
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02\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_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_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
#pragma pack()\r
///\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
-\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
/// ARM PL011 UART\r
///\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART 0x03\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
/// ARM SBSA Generic UART\r
///\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_SBSA_GENERIC_UART 0x0e\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
/// PC-AT-compatible dual-8259 IRQ interrupt\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_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
+#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
+#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
+#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 6\r
-#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200 7\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
/// DCD required for transmit\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_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
+#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS 0x2\r
///\r
/// XON/XOFF software control\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