Abstract:
A separate device or subsystem which contains its own processor is coupled to a host computer system and operates using specific information stored in the host system. The separate device, which may be management logic, requests the host system-specific information from the host system prior to run-time (e.g., during POST). The requested information is generally information in the form of industry standard tables that are present in the host system and used by the operating system. In addition, the separate device may have a battery to keep it operational even when the host system is non-operational. Because the separate device has information about its host, such information can be provided to external devices even when the host system is non-operational.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     Not applicable. 
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not applicable. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention generally relates controlling a computer system. More particularly, the present invention relates to uploading configuration and control tables to remote management hardware in a computer system. 
     2. Background of the Invention 
     It is becoming increasingly more common today to incorporate some sort of management hardware into server computers. Such management hardware may take the form of a card or embedded logic. In either case, the management hardware provides an external to connection to other servers and possibly other devices, such as power supplies, control modules, and the like. The management hardware generally provides a number of functions such as power management, system configuration and remote system management. 
     In order for the management hardware to perform some or all of its functions, it generally must know certain specific information about the computer system in which it resides. Examples of such system specific information include, without limitation, the type and number of central processing units (“CPUs”), interrupts, power management capabilities, and the types of disk drives present in the computer. Such information resides within the computer itself, such as in memory. One previous way for the management hardware to obtain the needed information was for the computer to have one or more drivers, i.e., specialized programs, that, upon request from the management hardware, provided the requested information to the management hardware. This process typically occurred during run-time thereby reducing the ability of the computer to perform other valuable tasks and impairing performance. Also, these drivers needed to be developed and maintained for each new server platform and the functionality of the management hardware was very limited. 
     Accordingly, a better mechanism is needed to provide the necessary system-specific information to management hardware that resides in or with a computer. 
     BRIEF SUMMARY OF THE INVENTION 
     The problems noted above are solved by a host computer system coupled to a separate device or subsystem which contains its own processor and operates using specific information stored in the host system. The separate device, which may be a management logic unit, requests the host system-specific information from the host system prior to run-time (e.g., during power on self test). The requested information is preferably information in the form of industry standard tables that are present in the host system and normally used by the operating system. 
     In addition, the separate device may have a battery to keep it operational even when the host system is non-operational. Because the separate device has information about its host, such information can be provided to external devices even when the host system is non-operational. 
     These and other features and benefits will become apparent upon reviewing the following disclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a detailed description of the preferred embodiments of the invention, reference will now be made to the accompanying drawings in which: 
         FIG. 1  depicts a block diagram of a computer system constructed in accordance with the preferred embodiment; and 
         FIG. 2  shows an exemplary table having host-specific information and a signature which a separater device uses to detect the tables present in the host system for subsequent download to the device. 
     
    
    
     NOTATION AND NOMENCLATURE 
     Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a given component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device “couples” to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. To the extent that any term is not specially defined in this specification, the intent is that the term is to be given its plain and ordinary meaning. 
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The problems noted above are solved by permitting a device or subsystem coupled to a host computer system to be able to obtain needed information from the host computer during the boot process. The information so obtained can be used by the device to perform various tasks. This concept will be described in greater detail below with regard to  FIGS. 1 and 2 . 
     Referring to  FIG. 1 , host computer system  100  is shown and may function as a server or other type of computer. As shown, computer system  100  preferably includes one or more central processing units  102 , a north bridge device  104 , system memory  106 , and one or more devices  108  and  110  coupled to the bridge  104  over a common bus  118 . The bus may comprise a peripheral component interconnect (“PCI”) bus and, as such, devices  108  and  110  preferably are PCI-compliant. Alternatively, bus  116  may be in accordance with other bus standards and devices  108  and  110  would be compliant with whatever standard is used for the implementation bus  118 . PCI device  108  may be whatever type of device is desired, such as a modem, a network interface card (“NIC”), and the like. The specific architecture shown in  FIG. 1  is exemplary only and should in no way limit the scope of this disclosure or the claims which follow. 
     PCI device  110  preferably comprises a non-volatile memory such as a system Read Only Memory (“ROM”). The system ROM  110  preferably includes various executable routines and information. These routines can be executed out of the ROM  110  itself or copied to system memory  106  for execution therefrom. The system ROM code is used for several purposes. One such purpose is to provide the CPU  102  the ability to control various low level activities such as access to the hard disk drives, CD ROM drives, keyboards, mouse, and floppy disk drives (not shown). An additional function performed by the system ROM code in the host computer is to provide a mechanism to configure the system, e.g., to set the type of keyboard, language and other sorts of configuration parameters. Further, the operating system (not specifically shown) which is executed by the host CPU  102  typically makes use of certain types of system-specific information to perform various tasks such as power management and the like. Accordingly, the system ROM code provides such information to the operating system. In accordance with the preferred embodiment of the invention, the system ROM  110  includes one or more information tables  112  labeled as T 1 , T 2 , . . . Tn. These tables may be copied to a volatile memory such as system memory  106  for access therefrom or may remain in ROM  100 . The tables  112  may include various industry standard sets of information now known or later developed. Examples of such information may include an Advanced Configuration and Power Interface (“ACPI”) table, a system management basic input/output system (“SMBIOS”), and the like. In general, the tables include extensive host-specific information and may be in a form other than a table. 
     The north bridge  104  couples together the host CPU  102 , system memory  106  and the bus  118  (and devices connected thereto). For instance, bridge  104  preferably includes a memory controller function that permits, for example, the CPU  102  and PCI device  108  to access the system memory  106 . The system memory preferably comprises any suitable type of random access memory (“RAM”) such as synchronous dynamic random access memory (“SDRAM”). The north bridge  104  also provides a mechanism through which the CPU  102  can access and control one or more of the devices coupled to bus  118 . 
     Referring still to  FIG. 1 , the host system  100  is shown coupled to a separate PCI-compliant device or subsystem  120  which preferably comprises management logic. This logic may take the form of an add-in card or embedded logic on the same circuit board comprising the rest of the computer system  100 . Further, the management logic may be operated from “auxiliary” power which is always available even if the host is powered off as long as the system is connected to AC power. As shown, the management logic  120  preferably includes its own local CPU  122  as well as firmware  124 , option ROM  126 , random access memory (“RAM”)  128 , a network interface card (“NIC”)  130  and, optionally, a battery  132 . Any one of a variety of architectures can be used to couple together the various components shown. Further, one or more of the components may be fabricated as part of the same physical device. For example, the CPU  122  may include its own RAM memory  128 . Further, the logic  120  need not comprise management logic. Instead, the logic  120  can perform any function desired. It is generally intended that logic  120  is a device or subsystem separate from the host  100  that includes its own processing capability and, although it interacts with the host system  100 , functions largely separate from the host. 
     The option ROM  126  preferably contains code that can be accessed and executed by the local CPU  122 . This code performs a variety of functions in accordance with the functions performed by the management logic as noted above. One such function, however, is to provide the management logic with the system-specific information it needs to function correctly. To this end, the management logic  120  uploads at least the information it needs from the host system preferably before run-time (e.g., during the power on self test (“POST”) process). The needed information is generally contained in the tables  112  that the computer&#39;s operating system uses as described above. Thus, preferably one or more of the tables  112  are uploaded into the management logic&#39;s RAM memory  128  for subsequent use by the management logic. The tables  112  can be uploaded using one of at least two techniques. 
     In accordance with the first technique, the option ROM code searches for a copy of the tables from the system&#39;s addressable memory space and, upon finding a desired table, copies the table to RAM  128 . The tables can generally be identified by a signature which is shown in  FIG. 2 . An exemplary table  112  includes a signature  113  that preferably precedes a data set  115  which contains system-specific information. The signature can be any predetermined value or character string and generally is defined in the specification associated with the table (e.g., ACPI specification). The option ROM code searches for these signatures and, upon locating one, requests the host CPU  102  to transfer a copy of the table  112  to the management logic&#39;s RAM  128 . The host CPU  102  then executes code to coordinate the transfer of the table from host system memory  106  to memory  128  in the management logic  120  via a block move type of instruction. If desired, the option ROM code may request some or all of the tables  112  to be uploaded to management logic  120 . 
     In accordance with the second technique, the management logic  120  becomes a master of the PCI bus  118  in accordance with the conventional PCI bus mastership protocol. Once a master of the bus, the management logic  120  runs a cycle on the bus  118  to read the desired table from memory  106 . This technique does not necessarily require the host CPU  102  to do anything. 
     As shown in  FIG. 1 , the management logic  120  may include a battery  132  and, as such, can be operational, at least to a certain extent even though the host system is turned off or placed in a reduced power state. Because the management hardware has obtained the host system-specific information before run-time begins, such information is readily available even if the host system is off or otherwise non-operational. This permits the computer  100  to be contacted via the management hardware to view or control various system-specific parameters. For example, an external device, such as another server, might want to know whether server  100  is present, what type of server it is, the number of processors server  100  contains, etc. Management logic  120  can provide this type of information on behalf of the server  100 . It may also want to power cycle server  100 . 
     The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.