HW FirmwareforHeadlessWindows V100a
HW FirmwareforHeadlessWindows V100a
Abstract
The Microsoft® Windows® Server 2003 family of operating systems provides native
support for “headless” server operation on Windows platforms—that is, support for
operating without a local display. This paper describes the hardware and firmware
requirements and implementations guidelines to best support Windows headless
functionality.
The current version of this information is provided at This information applies for the
following operating system:
Microsoft Windows Server™ 2003
The current version of this paper is maintained on the Web at:
http://www.microsoft.com/whdc/system/platform/server/default.mspx
Content
Introduction.............................................................................................................................. 3
Headless Implementation in the Windows Server 2003 Family..............................................3
Designing Hardware and Firmware for Windows Server 2003 Headless Systems.................4
Providing Legacy Out-of-Band Management Port Hardware for Use with EMS......................4
Providing Non-Legacy Out-of-Band Management Port Hardware for Use with EMS..............5
Out-of-Band Management Port Device Requirements........................................................5
Out-of-Band Management Port Implementation.................................................................6
Implementing Firmware for Headless Systems.......................................................................8
Firmware Localization Requirements..................................................................................9
RIS and PXE Requirements................................................................................................9
Designing Service Processor/ASIC or UPS.............................................................................9
Service Processor/ASIC General Functionality Requirements.........................................10
Service Processor/ASIC Internal Hardware Interface Requirements................................10
Service Processor/ASIC External and User Interface Requirements...........................10
Single Channel External Interfaces..............................................................................10
Multiple Channel External Interfaces............................................................................12
UPS Requirements...........................................................................................................13
Management Port Solutions for Partitioned Systems........................................................14
Security............................................................................................................................. 14
Building Hardware and Firmware to Complement Microsoft Windows Headless Operation - 2
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 after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES,
EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights
under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval
system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property
rights covering subject matter in this document. Except as expressly provided in any written license
agreement from Microsoft, the furnishing of this document does not give you any license to these
patents, trademarks, copyrights, or other intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail
addresses, logos, people, places and events depicted herein are fictitious, and no association with any
real company, organization, product, domain name, email address, logo, person, place or event is
intended or should be inferred.
Microsoft, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft
Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.
Introduction
The Microsoft Windows operating system provides many mechanisms for managing
a system when Windows is loaded, fully initialized and the system is functioning.
This type of system management is called “in-band” and typically occurs over the
network. However, a different solution is required for managing a system when the
system has failed or when Windows is not loaded, is in the process of loading, or is
in distress, because Windows network software is not available. This type of system
management is called “out-of-band” management.
The goal for out-of-band management is always to return the system to a fully
functioning state where in-band management is available. Making both in-band and
out-of-band management available remotely are key components of headless
functionality. With the exception of hardware replacement, all administrative
functions that can be accomplished locally should be available remotely. For
example, it should be able to accomplish the following remotely:
Power on a system that is currently off
Change BIOS settings or view POST results
Choose the operating system, set operating system options
Interact with specific diagnostic and recovery tools
View system blue-screens
Reset a system
To accommodate the many possible system operation states, careful thought must
be given to hardware, firmware, and operating system functionality to ensure a
comprehensive and complementary implementation of out-of-band management
capabilities. Each system component must contribute to the coherent,
complementary solution in order to avoid expensive, confusing administration.
This paper summarizes the design issues and requirements for hardware and
firmware that will ensure coherent, complementary functionality for out-of-band
management of a headless system running Microsoft Windows.
9600 baud
1 stop bit
No parity
8 data bits
No flow control
Output conventions are defined in “Standardizing Management Console
Output on the Serial Port Interface (VT100+)” later in this paper.
Note that these settings were chosen because they are the current “standard”
configuration in UNIX administration world and allow interoperability. However,
additional settings are supported if they are passed via the Serial Port Console
Redirection Table. It is suggested that higher baud rates be used whenever
possible and legacy VT100 support is not a concern. The specification for the
Serial Port Console Redirection Table can be found at
http://www.microsoft.com/hwdev/platform/server/headless/default.asp
Windows will not provide console I/O if Carrier Detect is not active. Note: Cables
with Carrier Detect shorted to RTS (Ready to Send) will work.
2. Place the UART into diagnostic mode (The UART is placed into
loopback mode by writing SERIAL_MCR_LOOP to the modem control
register).
3. The modem status register is read and the high bits are checked. This
means SERIAL_MSR_CTS, SERIAL_MSR_DSR, SERIAL_MSR_RI and
SERIAL_MSR_DCD should all be clear.
4. Place the UART in diagnostic mode and turn on OUTPUT (Loopback
Mode and OUTPUT are both turned on by writing (SERIAL_MCR_LOOP
| SERIAL_MCR_OUT1) to the modem control register).
5. The modem status register is read and the ring indicator is checked.
This means SERIAL_MSR_RI should be set.
6. Restore original modem status register.
2. UART control register must be at a well-known address
The current plan is: On x86 systems, this address must exist exclusively in
system I/O space (which includes legacy COM port address). On IA-64
systems, this address must exist at a legacy COM port address or in
Memory Mapped I/O. Support for addresses other than legacy COM ports
will be determined largely based on support by Hardware that OEM’s are
able to supply.
3. Device that the UART is on must be available before Windows is
loaded
In particular, the device must be available to the Windows loaders. This
implies that the device must be configured by the BIOS during POST.
Recommended: The BIOS should expose the out-of-band management
port in such a way that the port is available for redirecting BIOS initialization
screens or that the surrounding hardware redirects the BIOS screens
through some other method (“screen scraping”).
4. UART device must always be available to the system
For the Windows loader to communicate with this device, the address must
be “pre-translated” to the processor-relative address, because the loader
cannot call into the hardware abstraction layer (HAL) in order to translate a
bus-relative address to a processor-relative address.
5. Address of the UART device may not change
The Windows headless software is not Plug and Play-aware, and it only
stores the translated address for a device. If the device address were to be
relocated, the headless software that wrote to the translated address would
write to an invalid system address.
6. System has exclusive access to the out-of-band management port
The system will write directly to the out-of-band management port instead
of going through the Windows I/O Manager. No device driver, for example,
should also try to write to this device. In particular, there is no Windows
support for a “crashport” that is only invoked upon a blue-screen, similar in
concept to crashdebug.
7. System can include only one out-of-band management port
The Windows Server 2003 family does not support any scenario where one
device is the output out-of-band management port and another device is
the input out-of-band management port.
8. Out-of-band management port must remain highly available
For example, the device should not be powered off while the system is
running.
Mechanism must be provided for determining the base address of the out-of-
band management port
Windows Server 2003 performs a series of checks to detect the base address of the
out-of-band management port. The following is the order of precedence of the
settings that are checked (that is, 1 supercedes 2). For a system that will support
Windows Server 2003 EMS, one of these mechanisms must be provided.
1. User specifies address in Boot.ini (IA-32 only). The user can indicate
that one of the legacy COM ports is to be used for headless operation. By
detecting the keywords COM1 or COM2 in Boot.ini for redirection, the
system can deduce the I/O address of the device, because these devices
are always at a well-known address. This is the least preferred method,
because it allows conflicts between Windows and BIOS settings.
2. System detects address in Serial Port Console Redirection (SPCR)
ACPI table (ACPI-enabled platforms). An ACPI BIOS can implement the
SPCR ACPI table, which indicates the address of the out-of-band
management port. This address must be pre-translated to a processor-
relative address.
3. System detects address from EFI-based console output handle (IA-64
only). Windows can examine the console device handle (which may
include “sub-device paths” to determine whether they are “headless”
devices. If the device path for the console device is a UART device, the
device path will have a UART device sub-path. Windows can then look at
the other parts of the device path to determine the base address of the port.
This might include examining the ACPI portion of the device path for the
_CRS, and so on. Base addresses of PCI devices are not determined
using this method.
Windows Server 2003 PCI Bus driver prevents device from being
moved. During system initialization, the system bus drivers will initialize the
devices on their respective bus. The bus initialization must be able to detect
an out-of-band management port on the bus and ensure that the device is
not moved. For Windows Server 2003, PCI is the only bus besides ISA that
will be supported by Windows EMS. If the BIOS provides the PCI
information in the Serial Port Console Redirection ACPI fixed table or the
EFI console device path points to an appropriate headless port, then
Windows will ensure that the device will not be powered off or moved.
This device will not be enumerated by PNP. This protects the port from
having a PNP driver being loaded for it or being moved by PNP. Because
the device will not be enumerated by PNP, none of the other functions of
the device falling under the same header as the Out-of-Band management
port will be enumerated, making it impossible to associate a device driver
with the other functions on this device. These other devises must have
their own PCI headers and decode logic.
A PCI Out-of-Band management port device can be located using the
SPCR ACPI table, which provides sufficient information to describe the out-
of-band management port. This data includes PCI bus, slot, and function
number for the device. In addition, the device ID and vendor ID for the
device will be included in the table. (0xFFFF vendor ID and device ID will
indicate an ISA device in the SPCR table.)
It is important the firmware configuration, e.g. BIOS Setup, be available via the
same out-of-band management port as Windows Server 2003 Emergency
Management Services. If the out-of-band management port that the EMS uses is a
legacy serial port, the BIOS or system firmware must redirect its console I/O to the
same serial port and settings that Windows supports. Furthermore, if the
redirection settings can be configured, they should default to the Windows-
compatible settings cited earlier: COM1 9600 baud, 8N1 without flow control.
Serial console I/O must be in the format of VT100 plus the conventions defined in
“Standardizing Management Console Output on the Serial Port Interface (VT100+)”
later in this paper.
must be able to share this external interface in a reliable and useable way. To this
end integration between the Windows Server 2003 EMS and the Service
Processor/ASIC is particularly important since during the boot process the user will
be using the same user interface, typically some form terminal to interact with both,
and expect the same I/O conventions to be followed by both.
During the boot process the typical user experience must be
1) Power on the system (if supported) – Service Processor/ASIC Functionality
2) View and optionally interact with FW POST – Service Processor/ASIC and
Firmware Functionality
3) View and optionally interact with the Windows Server 2003 Loader – EMS
Functionality
4) View and optionally interact with the Special Admin Console (SAC) – EMS
Functionality
The Firmware and Service Process must allow Windows Server 2003 Full control of
the service processor after step 2 so that step three and on may occur. These
means that complete control of the internal UART interface must be available and
the Service Processor/ASIC must provide pass-through port functionally that allows
Windows Server 2003 EMS to communication directly with in a manner exactly
equivalent to a standard terminal attached via a null modem to a serial port.
During normal operation, service processor/ASIC must allow unconstrained
communication between Windows and the management system. In this case
Standardizing Out-of-Band Management Console Output and Terminal Emulation
(VT-UTF8 and VT100+), available at
http://www.microsoft.com/hwdev/platform/server/headless/default.asp, provides a
mechanism to invoke and exit the Service Processor or ASIC. When the pass
through-port is in use by windows, the service Processor must “snoop” the traffic on
the pass through port for the proper escape sequence. The ASIC or service
processor may interrupt the Windows use of the pass-through port when the
appropriate escape sequence is sent from the management system and the Service
Processor/ASIC “snoops” it. Then the Service Processor/ASIC sends an escape
sequence as an acknowledgment to the management system that it has been
invoked and then present its user interface on the serial connection.. The Service
Processor should intercept the escape sequence used to invoke it and any serial
traffic that follows the escape sequence until it returns to pass through mode.
When the service processor is not in pass through mode, it should lower Carrier
Detect (see the section “Exclusive access to device must be enforced” in this paper
for the special case of initial BIOS/Service Processor console redirection) unless it
buffers all data from EMS. Such a buffer should be configurable to on or off. The
Service Processor must return to pass-through mode when the appropriate escape
sequence is sent be from the management system. These escape sequences
requirements are documented in Standardizing Out-of-Band Management Console
Output and Terminal Emulation (VT-UTF8 and VT100+), available at
http://www.microsoft.com/hwdev/platform/server/headless/default.asp.
In the multi channel scenario the service processor is not required to provide any
interaction with it’s user interface via this terminal screen. However In this case, the
required service processor/ASIC and firmware functionality must be available
elsewhere in the client user interface. If the firmware is available through this
console, the firmware must adhere to the guidelines in “Implementing Firmware for
Headless Systems.” If the Service Processor/ASIC is available through this
console, the Service Processor/ASIC must adhere to the guidelines in “Single
Channel External Interfaces”.
UPS Requirements
An Uninterruptible Power Supply (UPS) can provide control of the power supplied to
the server, which can in turn provide rudimentary management capabilities such as
remote control of power off and power cycling. For the purpose of this document
the term UPS also represents smart power switches which can offer the same
management capabilities of a smart UPS but without the functionality of maintain
power to the server when external power is lost.
A UPS can also allow serial communication to pass through it between a
management system and the Windows headless server. That is, the management
port could have a serial connection to an external serial port on the UPS, which
could have a serial connection to the Windows headless server. If a UPS uses a
pass-through serial port interface externally, this port must allow unconstrained
communication between the system for which the UPS provides backup power, the
management system, and Windows. The UPS can interrupt the use by Windows of
the pass-through connection by way of an escape sequence sent from the
management system. Using this mechanism a smart UPS can provide some of key
basic functions of an onboard service processor for systems only have a serial port.
Note: To take advantage these capabilities, a server must be configured to
automatically boot when power is applied.
Note: Some UPS provide applications that access the UPS, from the server being
powered, via a serial port. The serial connection being used for EMS, between the
UPS and the Server, cannot be accessed by an application on the server to access
and configure the UPS. This requires 2 serial connections.
The following requirements apply for any UPS to be used to in conjunction with
Windows NET Server EMS:
The UPS must provide a mechanism to reset the system.
The entire end-to-end pass-through serial path must present the serial
signals from the system to be managed to the management console as
though from a serial port through a null modem cable as described in
“Selecting Hardware for Headless Systems” earlier in this paper.
UPS Pass-through Topology
The UPS may interrupt the Windows use of the pass-through serial path
when the appropriate escape sequence is sent from the management
system. The UPS sends an escape sequence as an acknowledgment to
the management system that it has been invoked and presents, if one
exists, its user interface on the serial connection. The UPS should intercept
the escape sequence used to invoke it and any serial traffic that follows the
escape sequence until it returns to pass through mode. When the UPS is
not in pass through mode, it should lower Carrier Detect unless it buffers all
data from EMS. Such a buffer should be configurable to on or off. The
UPS must return to pass-through mode when the appropriate escape
sequence is sent be from the management system. These escape
sequence requirements are documented in Standardizing Out-of-Band
Management Console Output and Terminal Emulation (VT-UTF8 and
VT100+), available at
http://www.microsoft.com/hwdev/platform/server/headless/default.asp.
The UPS user interface must adhere to the same terminal conventions as
described in the Standardizing Out-of-Band Management Console Output
and Terminal Emulation (VT-UTF8 and VT100+), available
athttp://www.microsoft.com/hwdev/platform/server/headless/default.asp,
The user interface must be accessible via a terminal or terminal emulator
supporting either VT100+ or a terminal VT100. If the UPS did not use the
same conventions as the EMS, the user would have an extremely difficult
time sending the proper commands escape sequences.
Security
Security on access to power management tool like a Service Processor and
Windows Server 2003 is an important consideration. Because of the nature of the
changing states Windows software providing the EMS during the course of boot,
Windows operation and possible failure, it would be impossible to provide a
seamless and cohesive security story using only the Windows software. Therefore,
Windows EMS relies on physical security in the case of simple hardware such as a
serial port, and the security provided by any Service Processor, ASIC, UPS,
terminal concentrator or other device providing access to the EMS if a less
physically secure medium such as the network is provided by said devices.
Note: Any device providing access to the EMS may provide security even if its
external interface is a serial port or other physically secure interface. Once the
security requirements have been satisfied by the port must behave as specified
above.