142eedea958591087603bbacd1c2227d2494026afyshang/** @file 2568eb0cb4be2a61d7ae6273582438fd80223f49cqwang ACPI Serial Port Console Redirection Table as defined by Microsoft in 3568eb0cb4be2a61d7ae6273582438fd80223f49cqwang http://www.microsoft.com/whdc/system/platform/server/spcr.mspx 4568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 5c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR> 6d4f293d1dd122525bea8d241817ee239148ad6deSamer El-Haj-Mahmoud (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> 79df063a06aef048c042498e2f542fb693e93493ahhtian This program and the accompanying materials 8568eb0cb4be2a61d7ae6273582438fd80223f49cqwang are licensed and made available under the terms and conditions of the BSD License 9568eb0cb4be2a61d7ae6273582438fd80223f49cqwang which accompanies this distribution. The full text of the license may be found at 10568eb0cb4be2a61d7ae6273582438fd80223f49cqwang http://opensource.org/licenses/bsd-license.php 11568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 12568eb0cb4be2a61d7ae6273582438fd80223f49cqwang THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13568eb0cb4be2a61d7ae6273582438fd80223f49cqwang WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14568eb0cb4be2a61d7ae6273582438fd80223f49cqwang**/ 15568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 16568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#ifndef _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_ 17568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define _SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_H_ 18568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 19ecc4094208bcbdd61997dfb2cc931092dd140b0cyshang 20ecc4094208bcbdd61997dfb2cc931092dd140b0cyshang#include <IndustryStandard/Acpi.h> 21568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 22766f4bc13745f77fbcd68efc7d689f493c67b833qhuang// 23766f4bc13745f77fbcd68efc7d689f493c67b833qhuang// Ensure proper structure formats 24766f4bc13745f77fbcd68efc7d689f493c67b833qhuang// 25766f4bc13745f77fbcd68efc7d689f493c67b833qhuang#pragma pack(1) 26766f4bc13745f77fbcd68efc7d689f493c67b833qhuang 271bc5d0217a6e9e6086a14cc00c075b9003bd3f0aklu/// 281bc5d0217a6e9e6086a14cc00c075b9003bd3f0aklu/// SPCR Revision (defined in spec) 291bc5d0217a6e9e6086a14cc00c075b9003bd3f0aklu/// 30c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION 0x02 31568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 321bc5d0217a6e9e6086a14cc00c075b9003bd3f0aklu/// 334135253bde4f1bb0004844f3ab1112882c76072exli/// Serial Port Console Redirection Table Format 341bc5d0217a6e9e6086a14cc00c075b9003bd3f0aklu/// 35568eb0cb4be2a61d7ae6273582438fd80223f49cqwangtypedef struct { 36568eb0cb4be2a61d7ae6273582438fd80223f49cqwang EFI_ACPI_DESCRIPTION_HEADER Header; 37568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 InterfaceType; 38568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 Reserved1[3]; 39d4f293d1dd122525bea8d241817ee239148ad6deSamer El-Haj-Mahmoud EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE BaseAddress; 40568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 InterruptType; 41568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 Irq; 42568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT32 GlobalSystemInterrupt; 43568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 BaudRate; 44568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 Parity; 45568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 StopBits; 46568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 FlowControl; 47568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 TerminalType; 48c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo UINT8 Reserved2; 49568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT16 PciDeviceId; 50568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT16 PciVendorId; 51568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 PciBusNumber; 52568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 PciDeviceNumber; 53568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 PciFunctionNumber; 54568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT32 PciFlags; 55568eb0cb4be2a61d7ae6273582438fd80223f49cqwang UINT8 PciSegment; 56c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo UINT32 Reserved3; 57568eb0cb4be2a61d7ae6273582438fd80223f49cqwang} EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE; 58766f4bc13745f77fbcd68efc7d689f493c67b833qhuang 59568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#pragma pack() 60568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 61568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 62568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// SPCR Definitions 63568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 64568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 65568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 66568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Interface Type 67568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 684135253bde4f1bb0004844f3ab1112882c76072exli 694135253bde4f1bb0004844f3ab1112882c76072exli/// 704135253bde4f1bb0004844f3ab1112882c76072exli/// Full 16550 interface 714135253bde4f1bb0004844f3ab1112882c76072exli/// 72568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16550 0 734135253bde4f1bb0004844f3ab1112882c76072exli/// 744135253bde4f1bb0004844f3ab1112882c76072exli/// Full 16450 interface 754135253bde4f1bb0004844f3ab1112882c76072exli/// 76568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_16450 1 77568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 78568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 79568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Interrupt Type 80568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 814135253bde4f1bb0004844f3ab1112882c76072exli 824135253bde4f1bb0004844f3ab1112882c76072exli/// 834135253bde4f1bb0004844f3ab1112882c76072exli/// PC-AT-compatible dual-8259 IRQ interrupt 844135253bde4f1bb0004844f3ab1112882c76072exli/// 85568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_8259 0x1 864135253bde4f1bb0004844f3ab1112882c76072exli/// 874135253bde4f1bb0004844f3ab1112882c76072exli/// I/O APIC interrupt (Global System Interrupt) 884135253bde4f1bb0004844f3ab1112882c76072exli/// 89568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_APIC 0x2 904135253bde4f1bb0004844f3ab1112882c76072exli/// 914135253bde4f1bb0004844f3ab1112882c76072exli/// I/O SAPIC interrupt (Global System Interrupt) 924135253bde4f1bb0004844f3ab1112882c76072exli/// 93568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_SAPIC 0x4 94c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo/// 95c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo/// ARMH GIC interrupt (Global System Interrupt) 96c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo/// 97c374aa43a199a5aab53218ef3cf99284ba19ae98Heyi Guo#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC 0x8 98568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 99568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 100568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Baud Rate 101568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 102568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600 3 103568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200 4 10404cabbc0a1bbe1f4be36f0c8d855dee532ad8ad2jyao#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600 6 10504cabbc0a1bbe1f4be36f0c8d855dee532ad8ad2jyao#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200 7 106568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 107568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 108568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Parity 109568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 110568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY 0 111568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 112568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 113568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Stop Bits 114568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 115568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1 1 116568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 117568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 118568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Flow Control 119568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 1204135253bde4f1bb0004844f3ab1112882c76072exli 1214135253bde4f1bb0004844f3ab1112882c76072exli/// 1224135253bde4f1bb0004844f3ab1112882c76072exli/// DCD required for transmit 1234135253bde4f1bb0004844f3ab1112882c76072exli/// 124568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_DCD 0x1 1254135253bde4f1bb0004844f3ab1112882c76072exli/// 1264135253bde4f1bb0004844f3ab1112882c76072exli/// RTS/CTS hardware flow control 1274135253bde4f1bb0004844f3ab1112882c76072exli/// 128568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_RTS_CTS 0x2 1294135253bde4f1bb0004844f3ab1112882c76072exli/// 1304135253bde4f1bb0004844f3ab1112882c76072exli/// XON/XOFF software control 1314135253bde4f1bb0004844f3ab1112882c76072exli/// 132568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_FLOW_CONTROL_XON_XOFF 0x4 133568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 134568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 135568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// Terminal Type 136568eb0cb4be2a61d7ae6273582438fd80223f49cqwang// 137568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100 0 138568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT100_PLUS 1 139568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_VT_UTF8 2 140568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#define EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI 3 141568eb0cb4be2a61d7ae6273582438fd80223f49cqwang 142568eb0cb4be2a61d7ae6273582438fd80223f49cqwang#endif 143