Patent Publication Number: US-2007118658-A1

Title: User selectable management alert format

Description:
TECHNICAL FIELD  
      This application relates to electronic computing, and more particularly to a computing system that implements user selectable management alert format.  
     BACKGROUND  
      Computing system components may be operable in accord with multiple, different management alert protocols. For example, network interface cards (NICs) or other computing components may be operable in accord with the alert standard format (ASF) protocol or with the active management technology (AMT) protocol. In many instances, the devices may use common hardware, and the device is configured to operate in accord with a specific management alert protocol though software or firmware installed onto the device.  
     SUMMARY  
      In one embodiment a computer system, comprises a processor, a basic input/output system (BIOS) including logic instructions which, when executed by the processor, configure the processor to present, in a user interface, one or more devices coupled to a computer system and one or more management alert formats applicable to one or more devices, receive a selection signal from the user interface identifying one of the management alert formats presented in the user interface, and configure one or more devices coupled to the computing system with the identified management alert format.  
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       FIG. 1  is a schematic illustration of one embodiment of a user-selectable management alert format system.  
       FIG. 2  is a flowchart illustrating operations in one embodiment of implementing a user-selectable management alert format.  
       FIG. 3  is a schematic illustration of one embodiment of a computing environment.  
    
    
     DETAILED DESCRIPTION  
      Described herein are exemplary system and methods for implementing a user-selectable management alert format in a computing system. The methods described herein may be embodied as logic instructions on a computer-readable medium. When executed on a processor, the logic instructions cause a general purpose computing device to be programmed as a special-purpose machine that implements the described methods. The processor, when configured by the logic instructions to execute the methods recited herein, constitutes structure for performing the described methods.  
       FIG. 1  is a schematic illustration of an exemplary computing system  100  adapted to include a user-selectable management alert format. In the illustrated embodiment, system  100  may be embodied as a hand-held or stationary device for accessing the Internet, a desktop PCs, notebook computer, personal digital assistant, or any other processing devices that have a basic input/output system (BIOS) or equivalent.  
      The computing system  100  includes a computer  108  and one or more accompanying input/output devices  106  including a display  102  having a screen  104 , a keyboard  110 , other I/O device(s)  112 , and a mouse  114 . The other device(s)  112  can include a touch screen, a voice-activated input device, a track ball, and any other device that allows the system  100  to receive input from a developer and/or a user. The computer  108  includes system hardware  120  including a processing unit  126  and random access memory and/or read-only memory  130 . A file store  180  is communicatively connected to computer  108 . File store  180  may be internal such as, e.g., one or more hard drives, or external such as, e.g., one or more external hard drives, network attached storage, or a separate storage network.  
      Memory  130  includes an operating system  140  for managing operations of computer  108 . In one embodiment, operating system  140  includes a hardware interface module  154  that provides an interface to system hardware  120 . In addition, operating system  140  includes a kernel  144 , one or more file systems  146  that manage files used in the operation of computer  108  and a process control subsystem  148  that manages processes executing on computer  108 . Operating system  140  further includes one or more device drivers  150  and a system call interface module  142  that provides an interface between the operating system  140  and one or more application modules  168  and/or libraries  164 . The various device drivers  150  interface with and generally control the hardware installed in the computing system  100 .  
      In operation, one or more application modules and/or libraries executing on computer  108  make calls to the system call interface module  142  to execute one or more commands on the computer&#39;s processor. The system call interface module  142  invokes the services of the file systems  146  to manage the files required by the command(s) and the process control subsystem  148  to manage the process required by the command(s). The file system(s)  146  and the process control subsystem  148 , in turn, invoke the services of the hardware interface module  154  to interface with the system hardware  120 . The operating system kernel  144  can be generally considered as one or more software modules that are responsible for performing many operating system functions.  
      The particular embodiment of operating system  140  is not critical to the subject matter described herein. Operating system  140  may be embodied as a UNIX operating system or any derivative thereof (e.g., Linux, Solaris, etc.) or as a Windows® brand operating system.  
      In one embodiment, computing system  100  includes a non-volatile memory module  160 , which may be embodied as a flash random operational memory (ROM). The non-volatile memory module  160  may include a Basic Input/Output System (BIOS) code  162 . The BIOS is code that provides an interface between the operating system and the specific hardware configuration, allowing the same operating system to be used with different hardware configurations. Computing system  100  further includes a basic input/output system (BIOS)  162 . In one embodiment, BIOS  162  may comprise a power-on self-test (POST) module for performing system initialization and tests. In operation, when activation of computing system  100  begins processing unit  126  accesses non-volatile memory  160  and shadows the instructions of BIOS  162 , such as power-on self-test module, into operating memory ( 130 ). Processor  126  then executes power-on self-test operations to implement POST processing.  
      Non-volatile memory module  160  may further include multiple firmware images for devices coupled to computing system  100 . In the embodiment depicted in  FIG. 1  the non-volatile memory module  160  includes an ASF firmware image  164  that includes logic instructions to configure a device such as, e.g., a NIC to operate in compliance with the ASF management alert format. In one embodiment, the NIC may be an add-in card or an integrated adapter, e.g., a local area network (LAN) on motherboard. Non-volatile memory  160  may further include an AMT firmware image  166  that includes logic instructions to configure a device such as, e.g., a NIC to operate in compliance with the AMT management alert format. Typically, firmware images  164 ,  166  may be provided by a manufacturer and/or distributor of a device. Memory module  160  may include firmware images for other devices and/or operational protocols.  
       FIG. 2  is a flowchart illustrating operations in one embodiment of implementing user selectable management alert formats. In one embodiment the operations of  FIG. 2  may be implemented by the BIOS  160 , alone or in combination with other components of the operating system, when the computing system  100  is booted.  
      Referring to  FIG. 2 , at operation  210 , BIOS  162  initiates power on self test (POST) processing. At operation  215  indicia representing one or more management alert formats available to the BIOS  162  are presented in a user interface. For example, referring briefly to  FIG. 1 , in one embodiment the BIOS may present indicia representing the ASF management format and AMT on the monitor  104 .  
      At operation  220  a management format selection signal is received. In one embodiment a user of computer system  100  may select a management alert format presented on the monitor  104 , e.g., by clicking on preselected position on the screen with a pointing device such as a mouse. Alternatively, a management alert format may be selected using a keyboard, touch screen, or other input device.  
      At operation  225  the management alert format firmware identified by the selection signal is loaded from the non-volatile memory module  160 , and at operation  230  the device is configured using the selected management alert format. In one embodiment, BIOS  162  retrieves the management alert format firmware from the non-volatile memory module and mirrors the selected firmware into a memory module on a NIC. The NIC is then activated and configured with the selected management alert firmware.  
      At operation  235  POST processing is completed, and at operation  240 , any remaining BIOS processing operations are completed. Operating control of the computing system  100  may then be assumed by the operating system  140 .  
      In an alternate embodiment, computing system  100  may include logic instructions that permit selection of a management alert format while the computing system is in an operating mode, rather than during BIOS POST processing. For example, one or more management alert formats may be presented in a user interface such as, e.g., a script or a control panel. A user may select a management alert format, and the device may be configured with the management alert format firmware. In one embodiment, the device may be configured while the computer is operating. In an alternate embodiment, the interface may communicate the user selections to the BIOS, which may configure the device during POST processing on a subsequent start-up process.  
       FIG. 3  is a schematic illustration of one embodiment of a computing environment. The components shown in  FIG. 3  are only examples, and are not intended to suggest any limitation as to the scope of the functionality of the invention; the invention is not necessarily dependent on the features shown in  FIG. 3 .  
      Generally, various different general purpose or special purpose computing system configurations can be used. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.  
      The functionality of the computers is embodied in many cases by computer-executable instructions, such as program modules, that are executed by the computers. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Tasks might also be performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media.  
      The instructions and/or program modules are stored at different times in the various computer-readable media that are either part of the computer or that can be read by the computer. Programs are typically distributed, for example, on floppy disks, CD-ROMs, DVD, or some form of communication media such as a modulated signal. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer&#39;s primary electronic memory. The invention described herein includes these and other various types of computer-readable media when such media contain instructions, programs, and/or modules for implementing the steps described below in conjunction with a microprocessor or other data processors. The invention also includes the computer itself when programmed according to the methods and techniques described below.  
      For purposes of illustration, programs and other executable program components such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.  
      With reference to  FIG. 3 , the components of computer  300  may include, but are not limited to, a processing unit  304 , a system memory  306 , and a system bus  308  that couples various system components including the system memory  306  to the processing unit  304 . The system bus  308  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as the Mezzanine bus, and PCI Express (PCIE).  
      Computer  300  typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer  300  and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. “Computer storage media” includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer  300 . Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network, fiber optic networks, or direct-wired connection and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.  
      The system memory  306  includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM)  310  and random access memory (RAM)  312 . A basic input/output system  314  (BIOS), containing the basic routines that help to transfer information between elements within computer  300 , such as during start-up, is typically stored in ROM  310 . RAM  312  typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit  304 . By way of example, and not limitation,  FIG. 3  illustrates operating system  316 , application programs  318 , other software components  320 , and program data  322 .  
      The computer  300  may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, the computer system of  FIG. 3  may include a hard disk drive  324  that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive  326  that reads from or writes to a removable, nonvolatile magnetic disk  328 , and an optical disk drive  330  that reads from or writes to a removable, nonvolatile optical disk  332  such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive  324  is typically connected to the system bus  308  through a non-removable memory interface such as data media interface  334 , and magnetic disk drive  326  and optical disk drive  330  are typically connected to the system bus  308  by a removable memory interface.  
      The drives and their associated computer storage media discussed above and illustrated in  FIG. 3  provide storage of computer-readable instructions, data structures, program modules, and other data for computer  300 . In  FIG. 3 , for example, hard disk drive  324  is illustrated as storing operating system  316 ′, application programs  318 ′, software components  320 ′, and program data  322 ′. Note that these components can either be the same as or different from operating system  316 , application programs  318 , software components  320 , and program data  322 . Operating system  316 , application programs  318 , other program modules  320 , and program data  322  are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer  300  through input devices such as a keyboard  336  and pointing device  338 , commonly referred to as a mouse, trackball, or touch pad. Other input devices (not shown) may include a microphone  340 , joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit  304  through an input/output (I/O) interface  342  that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB). A monitor  344  or other type of display device is also connected to the system bus  306  via an interface, such as a video adapter  346 . In addition to the monitor  344 , computers may also include other peripheral output devices (e.g., speakers) and one or more printers  370 , which may be connected through the I/O interface  342 .  
      The computer may operate in a networked environment using logical connections to one or more remote computers, such as a remote computing device  350 . The remote computing device  350  may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer  300 . The logical connections depicted in  FIG. 3  include a local area network (LAN)  352  and a wide area network (WAN)  354 . Although the WAN  354  shown in  FIG. 3  is the Internet, the WAN  354  may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the like.  
      When used in a LAN networking environment, the computer  300  is connected to the LAN  352  through a network interface or adapter  356 . When used in a WAN networking environment, the computer  300  typically includes a modem  358  or other means for establishing communications over the Internet  354 . The modem  358 , which may be internal or external, may be connected to the system bus  306  via the I/O interface  342 , or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer  300 , or portions thereof, may be stored in the remote computing device  350 . By way of example, and not limitation,  FIG. 3  illustrates remote application programs  360  as residing on remote computing device  350 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.  
      Moreover, some embodiments may be provided as computer program products, which may include a machine-readable or computer-readable medium having stored thereon instructions used to program a computer (or other electronic devices) to perform a process discussed herein. The machine-readable medium may include, but is not limited to, floppy diskettes, hard disk, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, erasable programmable ROMs (EPROMs), electrically EPROMs (EEPROMs), magnetic or optical cards, flash memory, or other suitable types of media or computer-readable media suitable for storing electronic instructions and/or data. Moreover, data discussed herein may be stored in a single database, multiple databases, or otherwise in select forms (such as in a table).  
      Additionally, some embodiments discussed herein may be downloaded as a computer program product, wherein the program may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection). Accordingly, herein, a carrier wave shall be regarded as comprising a machine-readable medium.  
      Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least an implementation. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.