BRIEF DESCRIPTION OF THE DRAWINGS
The present invention may be better understood, and its numerous objects, features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference number throughout the several figures designates a like or similar element.
FIG. 1 depicts a block diagram of a server information handling system having an integrated management controller that selectively interfaces with local or remote I/O devices with the server information handling system in a powered down state;
FIG. 2 depicts a flow diagram of a process for selectively interfacing the local or remote I/O devices with the server information handling system in the powered down state; and
FIG. 3 depicts a flow diagram of a process for selectively interfacing the integrated management controller or the server information handling system with I/O devices with the server information handling system in an operational state.
DETAILED DESCRIPTION
Selectively interfacing local I/O devices with a server information handling system integrated management controller provides increased flexibility by allowing an end user to manage the server information handling system in a powered down state with either a network remote console session or the local I/O devices. For purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system may be a personal computer, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include random access memory (RAM), one or more processing resources such as a central processing unit (CPU) or hardware or software control logic, ROM, and/or other types of nonvolatile memory. Additional components of the information handling system may include one or more disk drives, one or more network ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communications between the various hardware components.
Referring now to FIG. 1, a block diagram depicts a server information handling system 10 having an integrated management controller (IMC) 12 that selectively interfaces with local or remote I/O devices with server information handling system 10 in a powered down state. Server information handling system 10 processes network information with plural processing components, such as a central processing unit (CPU) 14, RAM 16, a hard disk drive (HDD) 18, a chipset 20 and plural network interface cards (NICs) 22. The processing components operate with power from a primary power source while integrated management controller 12 operates with power from an auxiliary power source provided even when the server information handling system processing components are in a powered down state or other non-operational state, such as during POST before initiation of an operating system. With auxiliary power to integrated management controller 12, a user can manage power up of server information handling system 10 from a powered down state to an operating state from a remote location through an out-of-band interface. For example, a network remote console session 24 interfaced through a network 26 and an Ethernet connector 28 manages power up or power down of server information handling system 10 with a baseboard management controller (BMC) 30. BMC 30 is built on the same ASIC as other motherboard type of components in integrated management controller 12 to save space, to reduce expense and to operate more quickly and efficiently. For instance, as is depicted by FIG. 1, a VGA module 32 provides display functions, a KVM module 34 supports inputs from KVM devices and a unified memory controller 36 allows firmware operating on integrated management controller 12 to share a unified memory, such as RAM 16 of server information handling system 10 operating under auxiliary power.
Co-location in IMC 12 of VGA module 32, KVM module 34 and BMC 30 with each having access to common memory through memory controller 36 provides an architecture that supports interaction in a powered down state of both network remote console sessions 24 and local I/O devices, such as a display 38, a KVM appliance 40, keyboard 42 and mouse 44. An I/O device manager 46 running on IMC 12, such as in firmware of BMC 30, determines whether to interact through remote or local I/O devices. In a power down state before server information handling system 10 is operational, I/O device manager 46 determines whether user inputs originate from remote console session 24 or from KVM appliance 40, keyboard 42 and mouse 44 and to determine whether visual information is output at local display 32. In an operational state after POST with the operating system on line, I/O device manager 46 allows selective use of local I/O devices by server information handling system 10 or by BMC 30. For instance, during POST or after POST completes, I/O device manager 46 turns the interface with the local I/O devices over to CPU 14 and then monitors the input devices for a break sequence, such as a predetermined set of inputs at keyboard 42. Upon detection of the break sequence, BMC 30 reasserts control of the local I/O devices to allow direct user interaction with the BMC. Subsequent control of the local I/O devices is alternated between CPU 14 and BMC 30 at each detection of a break sequence.
Visual information generated by BMC 30 is available to drive a local display in the powered down state since VGA module 32 is in the same ASIC as BMC 30 and therefore powered by auxiliary power. IMC 12 has direct access through memory controller 36 of the area in RAM 16 used for the video frame buffer, typically about 8 MB for a VGA display core. In addition, IMC 12 has direct access to registers of display module 32 for configuration before the video BIOS executes. Thus, to present information at local display 38, BMC 30 writes through memory controller 36 directly to the frame buffer of display module 32, preempting frame buffer data that originates through PCI bus 48, so that management information generated at BMC 30 is driven to the local display interface, such as a VGA connector. For example, BMC 30 writes management information in a DOS style VGA screen for presentation of local LCD contents, system or sensor status, system event logs or any other information that usually requires communication with BMC 30 through a serial or NIC interface. Existing management function scripts, such as IPMI scripts, are, for instance, directly mapped to the local keyboard or mouse interface in the same manner as traditional interfaces.
Input management information to BMC 30 from KVM appliance 40, keyboard 42 or mouse 44 is managed in the powered down state by designating one or more external connectors, such as USB connectors 50, that normally connect to a host USB controller to instead connect to an IMC memory mapped USB host 52 built into IMC 12. Input devices connected to USB connectors 50 communicate management information directly to BMC 30 with server information handling system 10 in the powered down state. Once main power is applied, the input devices are automatically proxied by I/O device manager 46 between USB host 52 to a USB client 54 to connect through a southbridge USB host controller 56 to chipset 20. Thus, in an operational state, KVM appliance 40, keyboard 42 and mouse 44 are logically and directly accessible by the host BIOS and operating system in essentially a conventional manner. The composite human interface device (HID) emulation is already done for the remote keyboard and mouse functions.
Referring now to FIG. 2, a flow diagram depicts a process for selectively interfacing the local or remote I/O devices with the server information handling system in the powered down state. The process begins at step 58 with application of auxiliary power to boot the IMC. At step 60, a determination is made of whether management of the IMC is local or remote. If the management of the IMC is remote, the process continues to step 62 to establish a management interface with IPMI through the BMC and out-of-band network interface. If the management of the IMC is local, the process continues to step 64 for the IMC to configure the output of its VGA core to originate from the unified memory so that management information written by the BMC to the unified memory will be presented at a local display interfaced with the VGA core. At step 66, the IMC configures its USB host to accept KVM, keyboard and mouse inputs as management information forwarded to the BMC. At step 68, a local display interfaced with the IMC VGA core presents management information by BMC writes to the VGA frame buffer at the unified memory. At step 70, local USB KVM appliance, keyboard or mouse inputs to the USB connector are communicated from the USB host of the IMC to the BMC to be written as management information to the VGA frame buffer for presentation at the local display.
Referring now to FIG. 3, a flow diagram depicts a process for selectively interfacing the integrated management controller or the server information handling system with I/O devices with the server information handling system in an operational state. At step 72, the server information handling system boot is initiated with a transition from auxiliary to full primary power. At step 74, the IMC VGA frame buffer writes are replaced with PCI VGA writes under the direction of the server information handling system CPU. At step 76, IMC USB host management of keyboard, KVM and mouse inputs is replaced by USB client management with the forwarding of inputs to the IMC USB host to the IMC USB client. At step 78, with the server information handling system I/O devices under CPU management, inputs at the devices through the IMC USB host are snooped to detect a break sequence. If a break sequence is detected, the process continues to step 80 to transition from CPU management of I/O devices to IMC management while, if the break sequence is not detected the process continues to step 86 to continue CPU management. At step 80, the IMC blocks PCI writes to the VGA frame buffer and writes IMC information to unified memory. At step 82, the IMC manages keyboard and mouse device inputs through the USB host to the BMC so that inputs are handled by the BMC and presented at the local display. At step 84, a break sequence is again snooped with a lack of a break sequence continuing IMC management of local I/O devices at step 80 and the presence of a break sequence resulting to transition to CPU management at step 86. At step 86, PCI VGA writes are presented at the local display as output under management of the CPU. At step 88, keyboard and mouse inputs are managed by forwarding from the IMC USB host to the USB client for use at the CPU. At step 90, a break sequence is snooped so that presence of a break sequence results in IMC management of I/O devices at step 80 and absence of a break sequence continues CPU management.
Although the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made hereto without departing from the spirit and scope of the invention as defined by the appended claims.