Abstract:
A system and method is disclosed for extending the BIOS Boot Specification. The specification is extended to accommodate the identification of a greater number of bootable devices. The specification is also extended so that the identifier for each bootable device identifies the default boot order of the device. The specification is also extended to provide additional information about the type of each bootable device and whether each bootable device is an onboard or add-in device. The extension of the BIOS Boot Specification also allows for the designation of certain entries as placeholders for devices that that are supported by the computer system, but not present in the computer system.

Description:
TECHNICAL FIELD 
       [0001]    The present disclosure relates generally to computer systems and information handling systems, and, more particularly, to a system and method for the extension of the BIOS Boot Specification. 
       BACKGROUND 
       [0002]    As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to these users is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may vary with respect to the type of information handled; the methods for handling the information; the methods for processing, storing or communicating the information; the amount of information processed, stored, or communicated; and the speed and efficiency with which the information is processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include or comprise a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems. 
         [0003]    A computing system will typically include a Basic Input/Output System (BIOS), which is the firmware code executed by the computing system when the computing system is first powered-up or rebooted. The BIOS may be stored in flash memory and initializes the computer system. One function of the BIOS is to identify the bootable devices of the computing system, prioritize them as source for booting the computing system, and sequentially target each device for booting the computer system. The methodology used by the computing system to perform the function of identifying the bootable devices of the computer system and prioritize them is included in the BIOS Boot Specification, which is a specification that was first established in 1996 by Compaq Computer Corporation; Phoenix Technologies, Ltd.; and Intel Corporation. Although the BIOS Boot Specification is still followed, it has some limitations, including limits on the number of supported devices, a limit on the flexible reordering of entries, an inability to designate absent devices as placeholders, and an inability to discriminate between variations in bootable devices. 
       SUMMARY 
       [0004]    In accordance with the present disclosure, a system and method is disclosed for extending the BIOS Boot Specification. The specification is extended to accommodate the identification of a greater number of bootable devices. In the example provided herein, the specification is extended to accommodate 256 bootable devices. The specification is also extended so that the identifier for each bootable device identifies the default boot order of the device. The specification is also extended to provide additional information about the type of each bootable device and whether each bootable device is an onboard or add-in device. The extension of the BIOS Boot Specification also allows for the designation of certain entries as placeholders for devices that that are supported by the computer system, but not present in the computer system. 
         [0005]    The system and method disclosed herein is technically advantageous because it provides a method for returning the computer system to its default boot order. Each bootable device is associated with an entry that sets out the default boot order for the bootable device. In this manner, upon the occurrence of a system event or at the initiation of the user, the computer system can return to its default boot order. Another technical advantage of the system and method set out herein is a BIOS Boot Specification that allows for certain entries to serve as placeholders for bootable devices that are not currently part of the computer system. In this manner, a placeholder can be used for a bootable device and the computer system will not discard the entry as being vacant. The extension of the BIOS Boot Specification is also technically advantageous because the extension provides additional granularity as to the type of each bootable device and whether the bootable device is an onboard device or an add-in device. Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]    A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein: 
           [0007]      FIG. 1  is a block diagram of the components of a computing system; 
           [0008]      FIG. 2  is a diagram of a StatusFlags field of the BIOS Boot Specification; 
           [0009]      FIG. 3  is a flow diagram of the transition from a current boot order to a default boot order; and 
           [0010]      FIG. 4  is a diagram of the deviceType field. 
       
    
    
     DETAILED DESCRIPTION 
       [0011]    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 communication 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. 
         [0012]    Shown in  FIG. 1  is a block diagram of the components of a computing system. A processor or CPU  30  of an example computer system  10  is communicatively coupled to a memory controller hub  32 . Memory controller hub  32  is coupled to memory  34  and a graphics processing unit  36 . Memory controller hub  32  is coupled to an I/O controller hub  34 . I/O hub  34  is coupled to storage elements of the computer system, including a storage element  40  for the BIOS of the computer system and the hard drive  42  of the computer system. I/O hub  34  may also be coupled to a Super I/O chip  44 , which is itself coupled to many of the I/O ports of the computer system, including keyboard  46 , mouse  48 , and parallel ports. The BIOS of the computer system may operate according to the BIOS Boot Specification. 
         [0013]    A bootable device is any component in the computer system that can boot and load an operating system. The boot order of the bootable devices is shown in the boot connection vector (BCV) table and the BCV priority field. For each bootable device, the BIOS Boot Specification includes a sixteen-bit StatusFlags field, which is shown in  FIG. 2  at  50 . Bits  0  through  3  of the StatusFlags field are the Old Position bits, which identify the index of the device at the time of the last boot of the computer system and are indicated at  52 . Bits  4  through  7  of the StatusFlags field, which are indicated at  54 , are unused. In the extension of the BIOS Boot Specification disclosed herein, bits  4  through  7  will be used, enabling the computer system to include as many as 256 bootable devices. Bits  0  through  3  of the StatusFlags field, as an alternative to comprising the Old Position bits, could also indicate the default index of the device. 
         [0014]    In the BIOS Boot Specification extension of the present invention, the entire range of bits  0  through  7  will be used to display the default boot order of the bootable device. In this manner, the bits  0  through  7  can be used by a utility to revert the computer system to a default boot order when the computer system encounters a system event, event such as an interrupt event or a user-initiated event, that indicates that the computer system should revert to the default boot order for the next subsequent boot of the computer system. In the BIOS Boot Specification extension of the present invention, bit  15 , which is indicated at  58 , is used to indicate that the entry is a place holder entry. The use of the bit  15  to identify the entry as a place holder entry provides a marker that indicates that the entry should not be removed during the execution of any routine that removes unused entries from the BCV table. In addition, the use of bit  15  as a place holder entry allows for entries for bootable devices that are supported by the system but are not yet included in the system. In this manner, although the entry associated with the bootable device is not present in the system, the bootable device can be added to the system and its position in the boot order is set through the place holder entry, which can be unchecked as being no longer dormant. 
         [0015]    An example of the use of the default boot order bits is shown at  FIG. 3 . At step  80 , the BIOS of the computer system initiates a boot of the computer system. At step  82 , the computer system follows the boot order set out in the BIOS Boot Specification to boot the computer system. At step  84 , the computer system encounters a fault that necessitates the return to the default or original boot order of the computer system. At step  86 , a flag in the computer system is set to identify for the BIOS that, at the next boot of the computer system, the boot order of the system will revert to the default boot order, as set out in bits  0  through  7  of the StatusFlags field. At step  88 , at the next boot of the computer system, the computer system boots according to the default boot order of the computer system. 
         [0016]    For each bootable device of the computer system, the BIOS Boot Specification includes a sixteen-bit deviceType field, which is shown in  FIG. 4  at  62 . Bits  0  through  7 , which are indicated at  64 , identify the type of device according to a set of designations set out in the BIOS Boot Specification. Bits  8  through  15 , which are indicated at  65 , are currently not used as part of the BIOS Boot Specification. As part of the system and method disclosed herein, bits  8  through  15 , which are indicated at  65 , will be used for a class identification of the device. The inclusion of a class identification in the deviceType field will allow the BIOS to better discriminate between the devices of the computer system. 
         [0017]    As an example, the class identifiers could be the class and subclass identifiers used in the PCI Local Bus Specification. For example the following identifiers could be used in the class identifier bits  65  to identify the bootable device as being one of the following devices within a master controller class:
       00h—SCSI bus controller   01h—IDE controller   02h—chip set (SIO or ICH, for example)   03h—IPI bus controller   04h—RAID controller   05h—ATA controller   06h—Serial ATA direct port access   07h—SAS controller   08h-0Eh—reserved   0Fh—other mass controller
 
In addition, the following identifiers could be used in the class identifier bits  65  to identify the bootable device as being one of the following devices within a master controller class:
   10h—Ethernet controller   11h—Token Ring controller   12h—FDDI controller   13h—ATM controller   14h—ISDN controller   15h—WorldFip controller   16h—PICMG 2.4 Multi Computing   17h-1Eh—Reserved   1Fh—Other network controller
 
In addition, the following identifiers could be used in the class identifier bits  65  to identify the bootable device as being one of the following devices within a serial controller class:
   20h—IEEE 1394 (Firewire)   21h—ACCESS.bus   22h—SSA   23h—USB   24h—Fibre Channel   25h—SMBus   26h—InfinBand   27h—IPMI   28h—SERCOS Interface Standard   29h—CANbus   2Ah-2Eh—Reserved   2Fh—Other serial bus
 
Identifiers 30-7F could be reserved. Through the use of the foregoing identifies in the class identifier bits  65 , the code of the BIOS is better able to discriminate between the features of the bootable devices of the computing. In this manner, the identification of the bootable devices is more granular and more information is used to describe each entry, allowing the BIOS to execute routines that depend, at least in part, on the content of the class identifier bits  65 . In addition, bit  15  of sixteen-bit deviceType field  62  would identify whether the bootable device is an onboard device (logical 0) or an add-in device (logical 1).
       
 
         [0049]    Another modification of the BIOS Boot Specification would involve the addition of a new set of definitions to the device type bits  64 . The new definitions would be 81 h for a floppy device; 82h for a hard drive device; and 83h for a CD-ROM device. The addition of these device types would also add more information to the definition of at least some of the bootable devices of the computing system. 
         [0050]    It should be recognized that the system and method disclosed herein is not limited for use in the BIOS Boot Specification. Rather, the system and method disclosed herein may be employed with any boot specification that includes a data structure with reserved entries in the definitions of the bootable devices of the system. Although the present disclosure 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 the scope of the invention as defined by the appended claims.