SerialPortConsoleRedirectionTable.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/** @file
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe ACPI Serial Port Console Redirection Table as defined by Microsoft in
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe http://www.microsoft.com/whdc/system/platform/server/spcr.mspx
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2abYuri Pankov This program and the accompanying materials
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe are licensed and made available under the terms and conditions of the BSD License
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe which accompanies this distribution. The full text of the license may be found at
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe http://opensource.org/licenses/bsd-license.php
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2abYuri Pankov WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe**/
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#ifndef _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#include <IndustryStandard/Acpi.h>
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Ensure proper structure formats
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#pragma pack(1)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// SPCR Revision (defined in spec)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x01
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// Serial Port Console Redirection Table Format
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowetypedef struct {
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe EFI_ACPI_DESCRIPTION_HEADER Header;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 InterfaceType;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 Reserved1[3];
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddress;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 InterruptType;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 Irq;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT32 GlobalSystemInterrupt;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 BaudRate;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 Parity;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 StopBits;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 FlowControl;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 TerminalType;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 Language;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT16 PciDeviceId;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT16 PciVendorId;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 PciBusNumber;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 PciDeviceNumber;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 PciFunctionNumber;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT32 PciFlags;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT8 PciSegment;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe UINT32 Reserved2;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe} EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE;
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#pragma pack()
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// SPCR Definitions
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Interface Type
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// Full 16550 interface
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550 0
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// Full 16450 interface
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450 1
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Interrupt Type
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// PC-AT-compatible dual-8259 IRQ interrupt
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259 0x1
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// I/O APIC interrupt (Global System Interrupt)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC 0x2
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// I/O SAPIC interrupt (Global System Interrupt)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC 0x4
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Baud Rate
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600 3
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200 4
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600 5
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200 6
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2abYuri Pankov// Parity
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2abYuri Pankov#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY 0
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
ed22c7109fc5dd9e1b7a5d0333bdc7ad2718e2abYuri Pankov//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Stop Bits
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1 1
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Flow Control
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// DCD required for transmit
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD 0x1
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// RTS/CTS hardware flow control
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS 0x2
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe/// XON/XOFF software control
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe///
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_XON_XOFF 0x4
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe// Terminal Type
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe//
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100 0
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100_PLUS 1
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8 2
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI 3
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe#endif
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe