1. Field of the Invention
This invention relates to computing systems and more particularly to the boot ROM associated therewith.
2. Description of the Related Art
Computing systems typically include a set of built-in software routines that execute at power up as part of “booting the system” and occur each time the system powers up or is reset. These routines are commonly coded in assembly language, and stored in a nonvolatile memory such as a Read Only Memory (ROM) or a Programmable ROM (PROM) such as an Erasable PROM (EPROM), or an Electrically Erasable PROM (EEPROM). Storage in nonvolatile memory ensures that these routines will always be available, including for booting the system, and will not be damaged by disk failures. However, because Random Access Memory (RAM) is faster than ROM, these routines may be copied from ROM to RAM each time the computer is booted. Many modern computers store these routines in a flash memory, which allows updating these routines, if necessary.
In some computer systems (e.g., Personal Computer Advanced Technology (PC-AT) computers), these routines are included in software referred to as the basic input/output system (BIOS). The BIOS performs various functions, including inventorying, testing, and initializing system components. The BIOS facilitates programmer and user interaction with the system hardware. The operating system and application programs of a computer system can access the BIOS rather than directly manipulating I/O ports, registers and control words of the specific system hardware. The BIOS can be accessed through an interface of software interrupts and contains a plurality of entry points respectively corresponding to the different interrupts.
Computer systems often include expansion printed circuit boards (PCBs) for increasing the capabilities of the system and for connecting to peripheral devices. For example, various multimedia devices are commonly implemented as add-in cards or as integrated circuits for installation on a system board. BIOS extensions, also called ROM extensions, are BIOS routines on an option card that are detected by the system BIOS upon bootup. Typically, the BIOS extensions are provided to the system by a separate ROM, often called an option ROM, with a separate address range.
Referring to
Computer systems that give multiple clients access to the same data or resources are called servers. A server farm is a group of networked servers that reside in a single location. Processes are distributed among these servers to improve performance and reliability of processes running on the individual servers. Each server contains a BIOS ROM and can include multiple option cards. Occasionally, the BIOS and option ROM routines require debug, patches, or updates. After the original BIOS code is deployed in a system, it can be costly and inefficient to locally debug, patch, or update the BIOS ROMs and BIOS extensions in each server. Thus, it would be desirable to provide a simplified mechanism for debugging, updating, and patching the system BIOS and BIOS extensions while reducing the number of system components.
Accordingly, the invention provides a boot ROM interface hosted by a BMC circuit.
In one embodiment of the invention, the BMC includes a bus interface that responds to an access to an address range associated with the boot operations. In one embodiment, the address range is associated with the system BIOS or BIOS extensions. The BMC may include an interface coupled to receive communications from a remote computer for receiving BIOS updates, BIOS extension updates, BIOS patches, and/or diagnostic instructions from the remote computer.
In one embodiment of the invention, multiple server computers each include a CPU, a BMC-hosted BIOS ROM interface, and at least one communication link between the BMC circuit and the CPU. A remote computer may be coupled to the BMC circuit for communicating BIOS and/or diagnostic information between the BMC and the remote computer. Each server computer can receive BIOS, BIOS extensions, BIOS patch, and/or diagnostic information from a remote computer.
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 symbols in different drawings indicates similar or identical items.
The Intelligent Platform Management Interface (IPMI) architecture specification defines a common interface to the hardware that monitors server physical health characteristics including temperature, voltage, fans, power supplies, and chassis intrusion. For a detailed description of the IPMI architecture, see Intel Corp., Hewlett-Packard Corp., NEC Corp., & Dell Computer Corp., Intelligent Platform, Management Interface Specification v1.5, (Feb. 20, 2002), which is incorporated herein by reference. The IPMI standard includes automatic alerting, automatic system shutdown and restart, remote restart and power control capabilities, and asset tracking. The standard also describes an interface for remote management of servers and systems. Managers can determine the health of systems whether the servers are running normally or the servers are in a non-operational state. A characteristic of an IPMI-compliant system is that inventorying, monitoring, logging, and recovery control functions are available independent from the main processors, BIOS, and operating system.
One of the main elements of an IPMI-compliant system is the baseboard management controller (BMC).
Referring again to
In one embodiment of the present invention, the system BIOS is stored in storage 208, which may be implemented as SRAM. The bus interface 204 decodes accesses to the BIOS ROM and conveys the BIOS ROM request to memory interface 206. Memory interface 206 reads the BIOS from storage 208 and communicates it to bus interface 204 which drives the bus with the data read from corresponding locations in memory 208. The BMC may also read the data from corresponding locations in serial EEPROM 210, or from a combination of locations in storage 208 and serial EEPROM 210. The BMC 200 responds to the bus access as if a BIOS ROM was present on the bus. Thus in one embodiment, the need for a separate BIOS flash ROM is eliminated.
In an embodiment, the bus interface 204 also decodes the option ROM region of the memory map and one or both of storage 208 and serial EEPROM 210 store option ROM code. The BMC 200 can selectively include or remove an option ROM from the system. By including option ROM code within BMC 200, manufacturers save the cost of an option ROM and option ROM decode logic. Instead of providing this additional hardware, manufacturers simply supply the binary image of their option ROM to be included in the memory map of the BMC.
Baseboard management controller 200 includes network interface 202 for communicating with a remote computer 212. Remote computer 212 may download BIOS updates and patches to BMC 200. The bus interface loads these data to the bus when network interface 202 communicates information from the remote computer 212 to the bus interface 204 and to storage 208 and serial EEPROM 210. In another embodiment of the present invention, the BMC 200 implements only the option ROM while the system BIOS resides in a system ROM.
Remote computer 212 may be used to debug the system BIOS and BIOS extensions by downloading a debug instruction sequence containing, e.g., a breakpoint. Baseboard management controller 200 may replace code in the system BIOS or BIOS extension that runs on CPU 302 with a trap to the debug instruction sequence. Upon execution, the debug instruction sequence provides BMC 200 with information that can be accessed by remote computer 212. In addition, updates to the option ROM can be downloaded from remote computer 212 to memory buffer 306 to augment or replace the code stored therein. These capabilities may be adapted for other code sequences running on CPU 302 and are not limited to the system BIOS or BIOS extensions. For example, remote computer 212 may download diagnostic instruction sequences to the storage allocated for BIOS or BIOS extensions via BMC 200, for manufacturing testing during the manufacture of IPMI-compliant systems. Baseboard management controller 200 can gather results of these diagnostics and transfer them back to remote controller 212 for analysis.
The description of the invention set forth herein is illustrative, and is not intended to limit the scope of the invention as set forth in the following claims. For example, while specific computing configurations have been described, the individual components may vary. The specific hardware and software components are not critical to understanding the invention described herein and typically varies from system to system. Although the system BIOS and BIOS extensions have been described as the software routines that are loaded into system memory at power up, boot operations and the associated memory and memory range, may vary. Moreover, the applications in which the invention may be applied are not limited to servers and server farms, but extends to other computing systems with system hardware and control and monitoring functions similar to the requirement of server farms. Other variations and modifications of the embodiments disclosed herein, may be made based on the description set forth herein, without departing from the scope and spirit of the invention as set forth in the following claims.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5230052 | Dayan et al. | Jul 1993 | A |
| 5727221 | Walsh et al. | Mar 1998 | A |
| 5764593 | Turpin et al. | Jun 1998 | A |
| 5802305 | McKaughan et al. | Sep 1998 | A |
| 5826015 | Schmidt | Oct 1998 | A |
| 6493824 | Novoa et al. | Dec 2002 | B1 |
| 6629062 | Coffey et al. | Sep 2003 | B2 |
| 6826714 | Coffey et al. | Nov 2004 | B2 |
| 6950952 | Felsman | Sep 2005 | B2 |
| 6954851 | Natu | Oct 2005 | B2 |
| 7024695 | Kumar et al. | Apr 2006 | B1 |
| 20030041182 | Martwick | Feb 2003 | A1 |
| 20040025064 | Felsman | Feb 2004 | A1 |
| 20050071461 | Mihm et al. | Mar 2005 | A1 |