This invention relates, in general, to information handling systems, and, more particularly, to an information handling system that may discriminate between bootable devices.
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 users is information handling systems. 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 also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be 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 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.
Many information handling systems include a Basic Input/Output System (BIOS) firmware as part of a system motherboard. Among other things, the BIOS detects bootable devices that are included in an information handling system. One of the steps of the BIOS's power on system test (POST) is to detect and initialize bootable devices. The BIOS also loads an operating system (O/S) on the information handling system. The order of devices for which the BIOS attempts to load an O/S may be determined by the user or be a default setting of the computer.
Bootable devices may be added to or removed from an information handling system. The boot sequence of bootable devices following a POST may be determined, based in part, on how the BIOS identifies and handles a newly added component. For example, if a bootable device is added to an information handling system, the BIOS may place that newly added device at the end of the boot sequence. Additionally, if a newly added device replaces a previously detected bootable device, then the BIOS may add that newly added device to the end of the boot sequence. In this case, although the added device replaced an existing device, the boot sequence for the information handling system changed following the addition of the new device. As a consequence, a user would have to manually modify the boot sequence to restore the boot sequence to that order before the next boot.
In accordance with the present disclosure, one implementation of a method for maintaining a boot sequence in an information handling system includes receiving a current configuration for one or more bootable devices in an information handling system. The current configuration may include a second list, and each element of the second list may include a bootable device type and a bootable device discriminator. A bootable device discriminator may uniquely identify a bootable device having a bootable device type. The method also includes comparing the current configuration to a previous configuration of one or more bootable devices, and updating the configuration history.
One technical advantage of a method to, maintain the boot sequence of bootable devices is that the BIOS can automatically determine a boot sequence that is similar to the boot sequence that existed previously.
Another technical advantage of a method to maintain the boot sequence of bootable devices is that the boot sequence of a device that replaces an existing device in an information handling system will be unchanged.
Another technical advantage of a method to maintain the boot sequence of bootable devices is that the removal of a bootable device may create a dormant device in the information handling system. During a POST, the BIOS may skip a dormant device, and thus the boot sequence of the remaining bootable devices will be unaffected.
Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.
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:
When a computer system is turned on (or reset), the BIOS typically performs a power on system test (POST). During the POST the BIOS identifies the bootable devices in the computer system. If bootable devices have been added to a computer system, the BIOS may determine the boot sequence of the new devices.
Computer systems typically store information about bootable devices so that, among other things, the Basic Input/Output System (BIOS) can load the operating system (O/S). The boot sequence of bootable devices may be established by a user's preference, or if no user preference exists, then by a default boot order. For example, the default setting of a computer comprising a floppy drive, a hard drive, and a CD-ROM drive may be chosen so that the BIOS first attempts to boot from the floppy drive A, if that fails, from the CD-ROM Drive, if that fails from the Hard Drive C. Failing an O/S boot from hard drive C, an error message may be displayed indicating an O/S boot failure.
Some BIOS versions store information about the device type and corresponding address associated with a bootable device. If, for example, during a boot sequence, the BIOS recognizes that the address associated with a bootable device changes from its previous address, the BIOS may identify the corresponding bootable device as a new device. The BIOS may then place that bootable device in at the end of the boot sequence, and consequently change the boot sequence of a computer system. By storing a device discriminator that uniquely identifies a bootable device, a change in the address associated with the bootable device may not cause the BIOS to recognize the bootable device as a new device.
One example of a method for discriminating among bootable devices in an information handling system is shown in
Some BIOS implementations store bootable device information in one or more tables (or files). In an example system, one table may store information related to hard disk drives (or devices that appear to the BIOS as a hard disk drive), and another table may store information related to all other bootable devices and hard disk drive C. One such table is an initial program load (IPL) table. An IPL table typically stores information related to one or more IPL devices. An IPL device capable of loading and executing an O/S. Representative IPL devices include floppy disk drives, hard drives, CD-ROM and DVD Drives, PCMCIA controllers and cards, plug and play (PnP) cards, and legacy cards. With respect to hard drives, an IPL table typically contains only one entry that corresponds to a hard disk drive. In alternative example systems, the information related to bootable devices may be stored in a single table or in three or more tables. In still another alternative system, more than one entry in an IPL table may contain an entry for a hard drive.
Besides information about IPL devices, information related to hard disk drives may be stored in computer memory. In one example system, hard disk drive information may be stored in a boot connection vector (BCV) table. A BCV table contains a list of hard drives (or a list of devices that appear as a hard drive to the BIOS). If a user selects an order of hard drive devices in the BCV table, the first hard disk drive chosen by the user becomes drive C. In one example, the IPL table does not directly contain a BCV entry, but rather contains an entry that when invoked processes the BCV table. If no hard drive selection is made by the user, one hard drive is defaulted to drive C based upon a default computer configuration.
One implementation of a method to discriminate between bootable devices is shown in
The corresponding IPL table for the example computer system of
Bootable devices may be replaced, removed, or added to a computer or information handling system. From a user's perspective, the replacement, removal, or addition of bootable devices should occur with minimal effect on the boot sequence of bootable devices. For example, if a bootable device is removed from a computer system, the boot order should remain unaffected, e.g., the BIOS would skip the bootable device that has been removed, and the next device in the sequence list would be booted. In this fashion, the devices that remain in the computer should retain their position in the boot sequence.
Alternatively, if a bootable device is added to the list without affecting any other devices, the additional device should be added to the end of the boot list. The devices that are not new (e.g., devices were part of the computer during the previous boot cycle) may retain their position and state in the boot sequence with any new devices being placed at the end of the boot sequence. One such example is the addition of a network card to a computer that previously lacked a network card.
In still another example, if a bootable device that was previously removed from the computer system is reinstalled, the reinstalled device may regain its position and state in the boot sequence existing before the removal. For example, following a reinstallation of a device, the bootable devices should regain its position and state that existed before its removal. In one example system, a dormant device is a device that is not found in the system, whereas a disabled device may be present. By disabling a device, the user can select which devices are allowed to boot the system, and which are not. In one example system, the floppy drive may be disabled to boot the system to a hard drive that may be password protected. While a disabled device cannot be booted, it still exists and can be used as normal after booting. Assuming that the CD-ROM shown in
Finally if one or more devices of a boot sequence contain a dormant device, and if a device of similar type to the dormant device is added to the computer system, the new device may assume the position in the boot sequence of the dormant device without affecting any of the other devices. In one example system, the NIC card in a computer system was upgraded to a more advanced NIC card. In this case, the upgraded NIC card should assume the previous NIC card's position in the boot sequence. From the user's standpoint, only the NIC card itself, but not the boot order of the NIC card, would change. Therefore, the boot order of similar devices may be maintained when devices of similar type are added or removed from the computer system.
Similar devices may be identified by a unique identifier called a discriminator. A discriminator may be chosen to be any identifier that uniquely identifies devices within a class of device types. In the case of NIC cards, for example, the discriminator may be chosen to be a media access control (MAC) address. Other discriminators may be, for example, the contents of an address or range of addresses, the checksum of an address or range of addresses, or a cyclic redundancy check (CRC) of an address or range of addresses. In another example, the discriminator may identify a device. For example, a serial number for a device may be chosen as the discriminator. In an alternative example, the discriminator may be a pointer used by the system BIOS to identify the device. The discriminators themselves need not be unique across device types. For example, the same a hard disk drive and a CD-ROM may use the same discriminator. The uniqueness may be defined by the combination of a device type and the discriminator.
In still another example, the discriminator may include one or more parameters. The one or more parameters may be stored in memory. Example parameters include a MAC, the contents of an address or range of addresses, the checksum of an address or range of addresses, a cyclic redundancy check (CRC) of an address or range of addresses, or a serial number for a device may be chosen as the discriminator. The one or more parameters should unique identify devices having the same device types.
By storing a discriminator that can discriminate between devices with similar types, the substitution, addition, and deletion of bootable devices should not greatly affect the boot sequence of the devices of a computer system. In one implementation shown in
Additionally, as shown in
One example of a change in bootable devices is shown in
As shown in
The BIOS also stores information relating to the devices in the IPL table as shown in
Absent the discriminator B, a BIOS that identifies a device type and address would detect a change in address associated with the hard drive from
As shown in
Another implementation of a method for maintaining the boot order of bootable devices is shown in
Following the identification of devices with matching device type and discriminator, the method attempts to match a dormant entry in the previous configuration list with an entry in the current configuration list. In one example, the method replaces each remaining dormant entry in the previous configuration list with an entry in the current configuration list that has a matching type, if any (block 420). The matching entries, if any, are removed from the current configuration list in block 420. Additionally, any entries remaining in the current configuration list are added to the end of the previous configuration list (block 430).
This disclosure is not limited to computer systems, but may be applied to any information handling 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.
Number | Name | Date | Kind |
---|---|---|---|
5274816 | Oka | Dec 1993 | A |
5361358 | Cox et al. | Nov 1994 | A |
5546553 | Robertson et al. | Aug 1996 | A |
5579522 | Christeson et al. | Nov 1996 | A |
5636335 | Robertson et al. | Jun 1997 | A |
5696923 | Robertson et al. | Dec 1997 | A |
5696924 | Robertson et al. | Dec 1997 | A |
5696968 | Merkin | Dec 1997 | A |
5854905 | Garney | Dec 1998 | A |
5867106 | Bi et al. | Feb 1999 | A |
5875293 | Bell et al. | Feb 1999 | A |
5884073 | Dent | Mar 1999 | A |
5974558 | Cortopassi et al. | Oct 1999 | A |
5990875 | Bi et al. | Nov 1999 | A |
5996082 | Cortopassi | Nov 1999 | A |
6005533 | Wilson | Dec 1999 | A |
6018806 | Cortopassi et al. | Jan 2000 | A |
6092117 | Gladwin et al. | Jul 2000 | A |
6105130 | Wu et al. | Aug 2000 | A |
6108727 | Boals et al. | Aug 2000 | A |
6126327 | Bi et al. | Oct 2000 | A |
6137473 | Cortopassi et al. | Oct 2000 | A |
6141688 | Bi | Oct 2000 | A |
6148344 | Bi | Nov 2000 | A |
6154824 | Robertson et al. | Nov 2000 | A |
6189077 | Robertson et al. | Feb 2001 | B1 |
6205548 | Hasburn | Mar 2001 | B1 |
6209034 | Gladwin et al. | Mar 2001 | B1 |
6262719 | Bi et al. | Jul 2001 | B1 |
6279153 | Bi et al. | Aug 2001 | B1 |
6282641 | Christensen | Aug 2001 | B1 |
6292890 | Crisan | Sep 2001 | B1 |
6330231 | Bi | Dec 2001 | B1 |
6353599 | Bi et al. | Mar 2002 | B1 |
6353885 | Herzi et al. | Mar 2002 | B1 |
6356965 | Broyles et al. | Mar 2002 | B1 |
6401140 | Wu | Jun 2002 | B1 |
6446213 | Yamaki | Sep 2002 | B1 |
6513114 | Wu et al. | Jan 2003 | B1 |
6721883 | Khatri et al. | Apr 2004 | B1 |
6754817 | Khatri et al. | Jun 2004 | B2 |
6754818 | Lee et al. | Jun 2004 | B1 |
6785838 | Lim et al. | Aug 2004 | B2 |
6925557 | Cromer et al. | Aug 2005 | B2 |
20030233535 | Nunn et al. | Dec 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20040215949 A1 | Oct 2004 | US |