Windows Platform Design Notes Designing Hardware for the Microsoft Windows Family of Operating Systems Serial Port Console Redirection Table This document defines the content of the Serial Port Console Redirection Table. This table is used to indicate whether a serial port or a non-legacy UART interface is available for use with Microsoft® Windows® Emergency Management Services (EMS). The table provides information about the configuration and use of the serial port or non-legacy UART interface. On a system where the BIOS or system firmware uses the serial port for console input/output, this table should be used to convey information about the settings, to ensure a seamless transition between the firmware console output and Windows EMS output. This table must be located in system memory with other ACPI tables, and it must be referenced in the ACPI RSDT table. Version 1.00 — January 11, 2002 SERIAL PORT CONSOLE REDIRECTION TABLE SPECIFICATION LICENSE IMPORTANT—READ CAREFULLY: This Microsoft License Agreement (“Agreement”) is a legal agreement between you (either an individual or a single entity) and Microsoft Corporation for the version of the Microsoft specification identified above which you are about to download (“Specification”). BY DOWNLOADING, COPYING OR OTHERWISE USING THE SPECIFICATION, YOU AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, DO NOT DOWNLOAD, COPY, OR USE THE SPECIFICATION. The Specification is owned by Microsoft or its suppliers and is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. THE SPECIFICATION IS LICENSED, NOT SOLD. 1. GRANT OF LICENSE. (a) Provided that you comply with all terms and conditions of this Agreement, Microsoft grants to you the following nonexclusive, worldwide, royalty-free, perpetual, non-transferable, non-sublicensable, limited license under any copyrights or patents that cover the table values described in the Specification and that are owned or licensable by Microsoft without payment of consideration to third parties, (i) to reproduce copies of the Specification for your and your contractor’s internal use for the sole purpose of (1) modifying your firmware and/or BIOS for computing devices (“Firmware”) so that it writes to memory the appropriate table vales in the Specification or (2) modifying your software so that it may read from memory the appropriate table values (the “Purpose”), (ii) to implement the table values in your firmware and/or BIOS, (iii) to license to third parties directly and indirectly the table values as part of your Firmware (and any related documentation), The foregoing license is granted only to the extent necessary to accomplish the Purpose and to license and/or distribute your Firmware containing the table values to third parties. The foregoing license shall not extend to any features of your Firmware that (i) are not required to comply with the Specification or (ii) to which there was a practicable alternative to infringing a patent. Serial Port Console Redirection Table — 2 (b) Microsoft reserves all other rights it may have in the Specification, its implementation and any intellectual property therein. The furnishing of this document does not give you or any other entity any license to any other Microsoft patents, trademarks, copyrights or other intellectual property rights. Microsoft does not grant to you or any other entity any implied licenses or rights whatsoever under this Agreement. Specifically, this Agreement does not grant any express or implied licenses or rights to any enabling technologies that may be necessary to fully utilize the table or the table values described in the Specification. 2. ADDITIONAL LIMITATIONS AND OBLIGATIONS. (a) You must implement the table in its entirety (e.g., all fields) and without modification (e.g., byte length, offset, and permissible values as described in the Specification). (b) Your license rights to the Specification are conditioned upon you not creating, modify, or distributing your Firmware in a way that such creation, modification, or distribution may (a) create, or purport to create, obligations for Microsoft with respect to the Specification (or intellectual property therein) or (b) grant, or purport to grant, to any third party any rights or immunities to Microsoft’s intellectual property or proprietary rights in the Specification. (c) The foregoing license is applicable only to the version of the Specification which you are about to download. It does not apply to any additional versions of or extensions to the Specification. (d) Without prejudice to any other rights, Microsoft may terminate this Agreement if you fail to comply with the terms and conditions of this Agreement. In such event you must destroy all copies of the Specification and must not further distribute the table values. 3. INTELLECTUAL PROPERTY RIGHTS. All ownership, title and intellectual property rights in and to the Specification, and any copies you are permitted to make herein, are owned by Microsoft or its suppliers 4. DISCLAIMER OF WARRANTIES. To the maximum extent permitted by applicable law, Microsoft and its suppliers provide the Specification (and all intellectual property therein) and any (if any) support services related to the Specification (“Support Services”) AS IS AND WITH ALL FAULTS, and hereby disclaim all warranties and conditions, either express, implied or statutory, including, but not limited to, any (if any) implied warranties or conditions of merchantability, of fitness for a particular purpose, of lack of viruses, of accuracy or completeness of responses, of results, and of lack of negligence or lack of workmanlike effort, all with regard to the Specification, any intellectual property therein and the provision of or failure to provide Support Services. ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NONINFRINGEMENT, WITH REGARD TO THE SPECIFICATION AND ANY INTELLECTUAL PROPERTY THEREIN. THE ENTIRE RISK AS TO THE QUALITY OF OR ARISING OUT OF USE OR PERFORMANCE OF THE SPECIFICATION, ANY INTELLECTUAL PROPERTY THEREIN, AND SUPPORT SERVICES, IF ANY, REMAINS WITH YOU. 5. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SPECIFICATION, ANY INTELLECTUAL PROPERTY THEREIN, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS AGREEMENT, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY, BREACH OF CONTRACT OR BREACH OF WARRANTY OF MICROSOFT OR ANY SUPPLIER, AND EVEN IF MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 6. LIMITATION OF LIABILITY AND REMEDIES. Notwithstanding any damages that you might incur for any reason whatsoever (including, without limitation, all damages referenced above and all direct or general damages), the entire liability of Microsoft and any of its suppliers under any provision of this Agreement and your exclusive remedy for all of the foregoing shall be limited to the greater of the amount actually paid by you for the Specification or U.S.$5.00. The foregoing limitations, exclusions and disclaimers shall apply to the maximum extent permitted by applicable law, even if any remedy fails its essential purpose. 7. APPLICABLE LAW. If you acquired this Specification in the United States, this Agreement is governed by the laws of the State of Washington. In respect of any dispute which may arise hereunder, you consent to the jurisdiction of the state and federal courts sitting in King County, Washington. 8. ENTIRE AGREEMENT. This Agreement is the entire agreement between you and Microsoft relating to the Specification supersedes all prior or contemporaneous oral or written communications, proposals and representations with respect to the Specification or any other subject matter covered by this Agreement. To the extent the terms of any Microsoft policies or programs for Support Services conflict with the terms of this Agreement, the terms of this Agreement shall control. Version 1.00 — © 2000 - 2002 Microsoft Corporation. All rights reserved. Serial Port Console Redirection Table — 3 Disclaimer: The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. Microsoft Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give you any license to the patents, trademarks, copyrights, or other intellectual property rights except as expressly provided in any written license agreement from Microsoft Corporation. Microsoft does not make any representation or warranty regarding specifications in this document or any product or item developed based on these specifications. Microsoft disclaims all express and implied warranties, including but not limited to the implied warranties or merchantability, fitness for a particular purpose and freedom from infringement. Without limiting the generality of the foregoing, Microsoft does not make any warranty of any kind that any item developed based on these specifications, or any portion of a specification, will not infringe any copyright, patent, trade secret or other intellectual property right of any person or entity in any country. It is your responsibility to seek licenses for such intellectual property rights where appropriate. Microsoft shall not be liable for any damages arising out of or in connection with the use of these specifications, including liability for lost profit, business interruption, or any other damages whatsoever. Some states do not allow the exclusion or limitation of liability or consequential or incidental damages; the above limitation may not apply to you. Microsoft, Win32, Windows, and Windows NT are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners. © 2000 Microsoft Corporation. All rights reserved. Version 1.00 — © 2000 - 2002 Microsoft Corporation. All rights reserved. Serial Port Console Redirection Table — 4 Serial Port Console Redirection Table Format Field Byte Length Byte Offset Description Header Signature 4 0 Length 4 4 Revision Checksum OEMID OEM Table ID 1 1 6 8 8 9 10 16 OEM Revision 4 24 Creator ID 4 28 Creator Revision 4 32 Interface Type 1 36 Reserved Base Address 3 12 37 40 ‘SPCR’. Signature for the Serial Port Console Redirection Table. Length, in bytes, of the entire Serial Port Console Redirection Table. 1 Entire table must sum to zero. OEM ID. For the Serial Port Console Redirection Table, the table ID is the manufacturer model ID. OEM revision of Serial Port Console Redirection Table for supplied OEM Table ID. Vendor ID of utility that created the table. For the DSDT, RSDT, SSDT, and PSDT tables, this is the ID for the ASL Compiler. Revision of utility that created the table. For the DSDT, RSDT, SSDT, and PSDT tables, this is the revision for the ASL Compiler. Indicates the type of the register interface: 0 = full 16550 interface 1 = full 16450 interface (must also accept writing to the 16550 FCR register) 2-255 = reserved Must be 0. The base address of the Serial Port register set described using the Generic Register Address Structure*. 0 = console redirection disabled Interrupt Type 1 52 Note: COM1 (0x3F8) would be: Integer Form: 0x 01 08 00 00 00000000000003F8 Viewed in Memory: 0x01080000F803000000000000 COM2 (Ox2F8) would be: Integer Form: 0x 01 08 00 00 00000000000002F8 Viewed in Memory: 0x01080000F802000000000000 Interrupt type(s) used by the UART. Bit[0] PC-AT-compatible dual-8259 IRQ interrupt Bit[1] I/O APIC interrupt (Global System Interrupt) Bit[2] I/O SAPIC interrupt (Global System Interrupt) (IRQ) Bit[3:7] reserved (must be 0) 0 = not supported 1 = supported Platforms with both a dual-8259 and an I/O APIC or I/O SAPIC must set the IRQ bit (Bit[0]) and the corresponding Global System Interrupt bit.). E.g. an system trhat supported 8259 and SAPIC would be 5 Version 1.00 — © 2000 - 2002 Microsoft Corporation. All rights reserved. Serial Port Console Redirection Table — 5 Field Byte Length 1 Byte Offset 53 Global System Interrupt 4 54 Baud Rate 1 58 Parity 1 59 Stop Bits 1 60 Flow Control 1 61 Terminal Type 1 62 Reserved PCI Device ID PCI Vendor ID PCI Bus Number 1 2 2 1 63 64 66 68 PCI Device Number 1 69 PCI Function Number PCI Flags 1 70 4 71 PCI Segment 1 75 Reserved 4 76 IRQ Description The PC-AT-compatible IRQ used by the UART. 2-7, 9-12, 14-15 = valid IRQs respectively 0-1, 8, 13, 16-255 = reserved Valid only if Bit[0] of the Interrupt Type field is set. The I/O APIC or I/O SAPIC Global System Interrupt used by the UART. Valid only if Bit[1] or Bit[2] of the Interrupt Type field is set. The baud rate the BIOS used for redirection. 3 = 9600 4 = 19200 6 = 57600 7 = 115200 0-2, 5, 8 - 255 = reserved 0 = No Parity 1-255 = reserved 1 = 1 Stop bit 0,2-255 = reserved Bit[0] = DCD required for transmit Bit[1] = RTS/CTS hardware flow control Bit[2] = XON/XOFF software control Bit[3:7] = reserved, must be zero The terminal protocol the BIOS was using for console redirection: 0 = VT100 1 = VT100+ 2 = VT-UTF8 3 = ANSI 4-255 = reserved Must be 0 Must be 0xFFFF if it is not a PCI device Must be 0xFFFF if it is not a PCI device PCI Bus Number if table describes a PCI device Must be 0x00 if it is not a PCI device PCI Slot Number if table describes a PCI device Must be 0x00 if it is not a PCI device PCI Function Number if table describes a PCI device Must be 0x00 if it is not a PCI device PCI Compatibility flags bitmask. Should be zero by default. Bit[0] = Operating System should NOT suppress PNP device enumeration or disable power management for this device. Must be 0 if it is not a PCI device Bits 1-31 = RESERVED, must be zero. PCI segment number. For systems with fewer than 255 PCI buses, this number must be 0. Must be 0 * The Generic Register Address Structure can be found on the Microsoft web site at http://www.microsoft.com/hwdev/onnow/download/LFreeACPI.doc Version 1.00 — © 2000 - 2002 Microsoft Corporation. All rights reserved. Serial Port Console Redirection Table — 6 Revision History Date 2/15/00 3/1/00 Rev .10 .50 Description Created ‘SPCR’. Signature Data added 3/20/00 3/22/00 .55 .56 3/23/00 4/24/00 .56a .6 Data revised to include port and irq Clarified port identification Added ability to disable redirection Added pointer to the Generic Register Address Structure Formatting, disclaimer, copy editing Posted on web for WinHEC 4/24/00 .6 Public review draft published 5/25/00 .61 Correction to BASE_ADDRESS description 5/25/00 .61 Public review draft published 5/31/00 .7 5/31/00 .71 Correction to BASE_ADDRESS description examples Added 16540 interface Changed the info on the GRAS from a note to a “*” 5/31/00 .71 Public review draft published 6/1/00 .72 7/12/00 .75 7/26/00 .76 8/10/00 .77 9/22/00 .78 Changed GRAS COM port examples to be littleendian Added text to the end of the line Fixed IRQ Description Fixed various format issues Added PCI bus information Update to PCI field name “Device Number” Changed intro language to include non-legacy UART Changed interrupt information, adding APIC and SAPIC Added flow control Added PCI Segment 10/25/00 .80 10/1/01 1/11/02 .95 1.00 Fixed PCI Flags section Added Terminal Types Added 16450 FCR info removed language codes adding updated licensing spec to 1.00 Version 1.00 — © 2000 - 2002 Microsoft Corporation. All rights reserved.