Systems and methods for enabling a systems management interface with an alternate frame buffer

A method may include in response to determining a host system is off, configuring a video controller of an information handling system including setting a display resolution of the video controller and writing management video data associated to a primary frame buffer such that management video data is able to be retrieved by the video controller for output to one or both of a first display associated with the host system and a second display of a management interface communicatively coupled to a management controller communicatively coupled to the processor and the memory and configured to provide out-of-band management of the information handling system. The method may further include in response to determining the host system is on, writing the management video data to an alternate frame buffer such that management video data is able to be retrieved by the video controller for output to the second display.

TECHNICAL FIELD

The present disclosure relates in general to information handling systems, and more particularly to methods and systems for enabling a systems management interface of an information handling system using an alternate video frame buffer.

BACKGROUND

An information handling system may include a management controller for providing out-of-band management facilities for management of the information handling system. Such management may be made by the management controller even if the information handling system is powered off or powered to a standby state, as a management controller may include an out-of-band network separate from and physically isolated from an in-band network interface of the information handling system. Such management controllers may include or may be an integral part of a baseboard management controller (BMC), a remote access controller (e.g., a Dell Remote Access Controller of Integrated Dell Remote Access Controller), an enclosure controller, or a chassis management controller (CMC).

In fact, management via a keyboard/video/mouse (KVM) crash cart may interface with a management controller via Universal Serial Bus (USB) and Video Graphics Array (VGA) interfaces. Crash carts historically can only interface with host system video and are not able to provide active management controller data or video while the host system is on or off. However, it may be desirable to enable systems management of a management controller through a KVM interface.

SUMMARY

In accordance with the teachings of the present disclosure, the disadvantages and problems associated with existing approaches to systems management of an information handling system may be reduced or eliminated.

In accordance with embodiments of the present disclosure, an information handling system may include a processor, a memory, a video controller for controlling display of video data stored in the memory, and a management controller communicatively coupled to the processor and the memory and configured to provide out-of-band management of the information handling system. The management controller may be configured to determine whether a host system comprising the processor is on. The management controller may also be configured to in response to determining the host system is off, configure the video controller, including setting a display resolution of the video controller, and write management video data associated to a primary frame buffer of the memory such that management video data is able to be retrieved by the video controller for output to one or both of a first display associated with the host system and a second display of a management interface communicatively coupled to the management controller. The management controller may further be configured to in response to determining the host system is on, write the management video data to an alternate frame buffer of the memory such that management video data is able to be retrieved by the video controller for output to the second display.

In accordance with these and other embodiments of the present disclosure, a method may include determining whether a host system of an information handling system is on. The method may also include in response to determining the host system is off, configuring a video controller of the information handling system including setting a display resolution of the video controller and writing management video data associated to a primary frame buffer of a memory of the information handling system such that management video data is able to be retrieved by the video controller for output to one or both of a first display associated with the host system and a second display of a management interface communicatively coupled to a management controller communicatively coupled to the processor and the memory and configured to provide out-of-band management of the information handling system. The method may further include in response to determining the host system is on, writing the management video data to an alternate frame buffer of the memory such that management video data is able to be retrieved by the video controller for output to the second display.

In accordance with these and other embodiments of the present disclosure, an article of manufacture may include a non-transitory computer-readable medium and computer-executable instructions carried on the computer-readable medium, the instructions readable by a processor. The instructions, when read and executed, may cause the processor to: (i) determine whether a host system of an information handling system is on; (ii) in response to determining the host system is off, configure a video controller of the information handling system including setting a display resolution of the video controller and write management video data associated to a primary frame buffer of a memory of the information handling system such that management video data is able to be retrieved by the video controller for output to one or both of a first display associated with the host system and a second display of a management interface communicatively coupled to a management controller communicatively coupled to the processor and the memory and configured to provide out-of-band management of the information handling system; and (iii) in response to determining the host system is on, write the management video data to an alternate frame buffer of the memory such that management video data is able to be retrieved by the video controller for output to the second display.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference toFIGS. 1 and 2, wherein like numbers are used to indicate like and corresponding parts.

FIG. 1illustrates a block diagram of an example information handling system102, in accordance with embodiments of the present disclosure. In some embodiments, information handling system102may comprise or be an integral part of a server. In other embodiments, information handling system102may be a personal computer. In these and other embodiments, information handling system102may be a portable information handling system (e.g., a laptop, notebook, tablet, handheld, smart phone, personal digital assistant, etc.). As depicted inFIG. 1, information handling system102may include a motherboard101and a network interface108communicatively coupled to a processor103of motherboard101.

Motherboard101may include a circuit board configured to provide structural support for one or more information handling resources of information handling system102and/or electrically couple one or more of such information handling resources to each other and/or to other electric or electronic components external to information handling system102. As shown inFIG. 1, motherboard101may include processor103, a memory104communicatively coupled to processor103, a platform controller hub (PCH)106communicatively coupled to processor103, a management controller112communicatively coupled to processor103, and a memory114communicatively coupled to management controller112.

Memory104may be communicatively coupled to processor103and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory104may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system102is turned off. Although memory104is depicted inFIG. 1as integral to motherboard101, in some embodiments, all or a portion of memory104may reside external to motherboard101.

BIOS105may be communicatively coupled to processor103and may include any system, device, or apparatus configured to identify, test, and/or initialize information handling resources of information handling system102. “BIOS” may broadly refer to any system, device, or apparatus configured to perform such functionality, including without limitation, a Unified Extensible Firmware Interface (UEFI). In some embodiments, BIOS105may be implemented as a program of instructions that may be read by and executed on processor103to carry out the functionality of BIOS105. In these and other embodiments, BIOS105may comprise boot firmware configured to be the first code executed by processor103when information handling system102is booted and/or powered on. As part of its initialization functionality, code for BIOS105may be configured to set components of information handling system102into a known state, so that one or more applications (e.g., an operating system or other application programs) stored on compatible media (e.g., memory104) may be executed by processor103and given control of information handling system102.

In operation, processor103, memory104, and BIOS105may comprise at least a portion of a host system98.

PCH106may be any system, device, or apparatus configured to control certain data paths (e.g., data flow between processor103, memory104, and peripherals) and support certain functions of processor103. A PCH106may also be known as a “chipset” of an information handling system102. One such function may include management engine110. Management engine110may comprise hardware and/or firmware that enables remote out-of-band management for information handling system102in order to monitor, maintain, update, upgrade, and/or repair information handling system102. In some embodiments, management engine110may include hardware and firmware compliant with Intel's Active Management Technology.

Management controller112may be configured to provide out-of-band management facilities for management of information handling system102. Such management may be made by management controller112even if information handling system102is powered off or powered to a standby state. Management controller112may include a processor113, memory114, and an out-of-band network interface118separate from and physically isolated from in-band network interface108. In certain embodiments, management controller112may include or may be an integral part of a baseboard management controller (BMC), a remote access controller (e.g., a Dell Remote Access Controller or Integrated Dell Remote Access Controller), or an enclosure controller. In other embodiments, management controller112may include or may be an integral part of a chassis management controller (CMC). As shown inFIG. 1, management controller112may comprise a processor103, a Peripheral Component Interconnect Express (PCIe)-to-Peripheral Component Interconnect (PCI) bridge116, a network interface118, a Universal Serial Bus (USB) port120, a video controller122, a shared memory controller124, and shadow resisters138.

Processor113may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation, a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor113may interpret and/or execute program instructions and/or process data stored in memory114and/or another component of information handling system102or management controller112. As shown inFIG. 1, processor may be communicatively coupled to PCIe-to-PCI bridge116via a PCI bus.

PCIe-to-PCI bridge116may provide an interface between a PCIe bus communicatively coupled to PCH106and a PCI bus internal to management controller112and communicatively coupled to processor113and video controller122. PCIe-to-PCI bridge116may comprise any suitable system, apparatus, or device operable to translate bus communications from PCIe to PCI or vice versa, in order to facilitate communication between components coupled to the PCIe bus (e.g., PCH106) and components coupled to the PCI bus (e.g., processor103, video controller122).

Network interface118may comprise any suitable system, apparatus, or device operable to serve as an interface between management controller112and/or one or more other information handling systems. Network interface118may enable management controller112to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface118may comprise a network interface card, or “NIC.”

USB port120may comprise any system, device, and apparatus configured to receive an external device and electrically couple such external device to management controller112. For example, USB port120may comprise a connector configured to receive a corresponding connector of a USB device (e.g., a KVM device). Although a USB port120is depicted inFIG. 1, in some embodiments an input/output port other than a USB port may be utilized. As shown inFIG. 1, USB port120may be communicatively coupled to processor113via a USB bus.

Video controller122may be a specialized electronic circuit or system designed to process data from host system98and/or processor113to accelerate the building of images in one or more frame buffers (which may be stored in memory114) intended for output to a display (e.g., a standard display of host system98and/or a KVM appliance communicatively coupled to video controller122). Video controller122may include or be coupled to a video processing engine that executes various video processing functions, including for example video capture, calculating differences between video frames, and video data compression. As shown inFIG. 1, video controller122may be communicatively coupled to PCIe-to-PCI bridge116and/or processor113via a PCI bus.

Shared memory controller124may be coupled to embedded processor113, video controller122, and memory114and may be any system, device, or apparatus configured to control the flow of data between memory114and each of processor113and video controller122, as video controller122and processor113may share the memory resources of memory114.

Memory114may be communicatively coupled to processor113and may include any system, device, or apparatus configured to retain program instructions and/or data for a period of time (e.g., computer-readable media). Memory114may include RAM, EEPROM, a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to management controller112is turned off.

As shown inFIG. 1, memory114may include a primary frame buffer132and an alternate frame buffer134.

Primary frame buffer132may comprise a portion of memory114comprising a bitmap that may be driven to a video display from a memory buffer containing a complete frame of video data. For example, the information in frame buffer132typically may comprise color values for every pixel to be displayed on a display device. In operation, primary frame buffer132may store display data associated with an operating system or other executable instructions executing on host system98.

Alternate frame buffer134may comprise a portion of memory114comprising a bitmap that may be driven to a video display from a memory buffer containing a complete frame of video data. For example, the information in frame buffer134typically may comprise color values for every pixel to be displayed on a display device. In operation, alternate frame buffer134may store display data associated with an operating system (e.g., management controller operating system136) or other executable instructions executing on processor113.

Also as shown inFIG. 1, memory114may have stored thereon management controller operating system136. Management controller operating system136may comprise any program of executable instructions, or aggregation of programs of executable instructions, configured for carrying out the functionality of management controller112. Active portions of management controller operating system136may be loaded from memory114for execution by processor113. In some embodiments, management controller operating system136may comprise firmware.

Network interface108may comprise any suitable system, apparatus, or device operable to serve as an interface between information handling system102and/or one or more other information handling systems. Network interface108may enable information handling system102to communicate using any suitable transmission protocol and/or standard. In these and other embodiments, network interface108may comprise a network interface card, or “NIC.”

Shadow registers138may comprise one or more memory registers for which video controller122may write information indicating video configuration information (e.g., display resolution) for host system98. In operation, processor113may read such configuration information in order to enable systems management via alternate frame buffer134, as described in greater detail below.

In operation, BIOS105and/or an operation system executing on processor103may configure video controller122and write video data to primary frame buffer132. Video controller122may read from primary frame buffer132to display video to one or more display devices for host system98and/or may output video data from primary frame buffer132to a KVM appliance coupled to management controller112.

Further, when host system98is off, and a user interfaced with management controller112(e.g., via a KVM appliance) invokes an on-screen display, processor113may configure video controller122(e.g., configure display resolution) and may write management video data to primary frame buffer132. Accordingly, such video data may be retrieved by video controller122for output to either a “local” display of host system98or to the “remote” display of the KVM appliance or other management interface.

On the other hand, when host system98is on, processor113may read video configuration information (e.g., display resolution) of host system98from shadow registers138and processor113may write video information associated with management controller112to alternate frame buffer134at the resolution indicated in shadow registers138. Concurrently, video controller122may continue writing video data for host system98to primary frame buffer132.

A user of the management interface (e.g., a KVM appliance) may toggle (e.g., by entering a keystroke or other command) between display of video data associated with host system98stored in primary frame buffer132or video data associated with management controller112stored in alternate frame buffer134. When indicating a desire to view the management video data associated with management controller112, processor113may set a read/display frame buffer variable for video controller122to alternate frame buffer134and video controller122may output alternate frame buffer134to the management interface. On the other hand, when indicating a desire to view the video data associated with host system98, processor113may set a read/display frame buffer variable for video controller122to primary frame buffer132and video controller122may output primary frame buffer132to the management interface.

Accordingly, using the system described above, a management interface communicatively coupled to a management controller (e.g., a KVM appliance) may provide a management on-screen display allowing a user to configured settings, orchestrate provisioning tasks, view logs, have command-line interface control, and toggle such on-screen display on or off. In some embodiments, the system described above may also enable a user to initiate a peer-to-peer remote KVM session to another information handling system communicatively connected to information handling system102via a network.

FIG. 2illustrates a flow chart of an example method for enabling a systems management interface with an alternate frame buffer, in accordance with embodiments of the present disclosure. According to some embodiments, method200may begin at step202. As noted above, teachings of the present disclosure may be implemented in a variety of configurations of information handling system102. As such, the preferred initialization point for method200and the order of the steps comprising method200may depend on the implementation chosen.

At step202, processor113may determine whether host system98is on or off. If host system98is off, method200may proceed to step204. Otherwise, method200may proceed to step206.

At step204, in response to host system98being off, processor113may configure video controller122(e.g., configure display resolution) and may write management video data to primary frame buffer132. Accordingly, such video data may be retrieved by video controller122for output to either a “local” display of host system98or to the “remote” display of a management interface communicatively coupled to management controller112.

At step206, in response to host system98being on, processor113may write video information associated with management controller112to alternate frame buffer134at the resolution indicated in shadow registers138. Concurrently, video controller122may continue writing video data for host system98to primary frame buffer132.

At step208, processor113may determine whether a last-received user display preference (e.g., keystroke) indicates a preference to display host system98video data to the management interface or display management controller112management video data to the management interface. If a preference to display host system98video data to the management interface, method200may proceed to step210. Otherwise, if a preference to display management controller112management video data to the management interface, method200may proceed to step212.

At step210, processor113may set a read/display frame buffer variable for video controller122to primary frame buffer132and video controller122may output primary frame buffer132to the management interface. After completion of step210, method200may proceed again to step208.

At step212, processor113may set a read/display frame buffer variable for video controller122to alternate frame buffer134and video controller122may output alternate frame buffer134to the management interface. After completion of step212, method200may proceed again to step208.

AlthoughFIG. 2discloses a particular number of steps to be taken with respect to method200, method200may be executed with greater or fewer steps than those depicted inFIG. 2. In addition, althoughFIG. 2discloses a certain order of steps to be taken with respect to method200, the steps comprising method200may be completed in any suitable order.

Method200may be implemented using information handling system102or any other system operable to implement method200. In certain embodiments, method200may be implemented partially or fully in software and/or firmware embodied in computer-readable media.