`Merkin
`
`lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
`USOOS696968A
`[11] Patent Number:
`5,696,968
`[45] Date of Patent:
`Dec. 9, 1997
`
`[54] METHOD AND APPARATUS FOR
`EFFECTING DRIVE ORDERING VIA
`ADAPTER PREFERENCE
`
`5,586,324 12/1996 Sato et al.- ............................. .. 395/652
`5,603,055
`2/1997 Evoy et a1. ......... ..
`395/652
`5,630,076 5/1997 Saulpaugh et a1. ................... .. 395/651
`
`‘
`'
`[75] Inventor: Cynthia M. Merkm, Georgetown, Tex.
`
`Primary Examiner—-Kevin A. Kriess
`Attorney, Agent, or Firm_Hayn6s and Boom’ L_L_P_
`
`[73] Assignee: Dell U.S.A., L.P., Austin, Tex.
`
`[21] APPL No': 531,671
`[22] Filed:
`sep. 21, 1995
`
`[51] Int. Cl.6 ...................................................... .. G06F 9/06
`[52] US. Cl.
`395/652
`[58] Field of Search ................................... .. 395/651, 652,
`395/653, 712, 681
`
`[56]
`
`References Cited
`
`U'S' PATENT DOCUMENTS
`5,325,532 6/1994 Crosswy et a1. ...................... .. 395/652
`5,379,430
`1/1995 Nguyen ..... ..'. . . . . .
`. . . . . . .. 395/652
`
`5,379,431
`
`l/1995 Lemon et al. . . . . .
`
`. . . . . . .. 395/652
`
`5,491,804 2/1996 Heath et a1. .......................... .. 395/652
`
`ABSTRACT
`[57]
`A method for enabling a user to designate device order and
`boot-device preference in a computer system in which the
`devices are controlled by mass storage controllers is dis
`closed. In a preferred embodiment, a customization program
`of the present invention gathers user preference order for
`any conu‘ollers present in a computer system, which infor
`mation is stored in a nonvolatile storage element in the
`computer system. During bootup of the computer, the sys
`tem’s ROM BIOS retrieves the stored preference informa
`tion and initializes the system’s mass storage controllers in
`the user-speci?ed order. This initialization ordering controls
`which set of drives is con?gured ?rst, and therefore, which
`drive is given boot priority and the drive ordering as seen by
`the operating system.
`
`16 Claims, 2 Drawing Sheets
`
`CUSTOMIZATION PROGRAM
`
`200
`
`f 202
`
`PRESENT USER WITH
`ADAPTER-PREFERENCE
`ORDER OPTIONS
`l
`RECEIVE USER SELECTIONS M204
`T
`STORE USER SELECTIONS
`IN STORAGE ELEMENT
`l
`I
`I
`I
`
`/ 206
`
`208
`
`USER
`SPECIFIED
`PREFERENCE
`ORDER?
`
`210
`
`CALL EXTENSION BIOS
`OF EACH CONTROLLER
`/
`214
`IN USER-SPECIFIED ORDER
`
`was
`
`CALL EXTENSION
`BIOS OF EACH
`CONTROLLER
`IN SYSTEM
`SPECIFIED ORDER
`
`N212
`
`1
`
`AMI/MSI/GBT EX 1003
`IPR of Pat. No. 6,282,641
`
`
`
`US. Patent
`
`Dec. 9, 1997
`
`Sheet 1 0f 2
`
`5,696,968
`
`F1 6- 7
`
`‘
`
`10
`
`\‘
`
`24
`\
`B108 ROM
`9 CUSTOMIZATION
`40"
`PROGRAM
`
`M
`
`DEvIcE
`DEvIcE
`DEvIcE
`DEvIcE
`DRIVE mm mm DRIvE
`
`‘
`
`30
`\
`NON
`VOLATILE
`STORAGE
`
`31
`/
`DEvIcE
`DRIVE
`
`26
`/
`1/0
`
`CONTROLLER
`
`II
`
`EXPANSION BUS
`
`2a
`/
`INPUT
`DEVICE
`SUBSYSTEM
`
`?
`
`\
`16
`
`3a
`I/
`ROM
`
`34
`\
`MASS
`STORAGE
`CONTROLLER
`
`3s
`1/
`ROM
`
`34
`\
`MASS
`STORAGE
`CONTROLLER
`
`32
`/
`DISPLAY
`SUBSYSTEM
`
`I9
`EXPANSKJN/
`BUS
`CONTROLLER
`
`<
`
`PC] BUS
`
`4}
`
`20/ CPU
`
`a
`
`EXPANSION
`
`CONTROLLER
`
`{I
`LOCAL BUS
`
`\
`14
`
`L2
`{}
`SYSTEM
`MEMORY ‘~22
`
`2
`
`
`
`US. Patent
`
`Dec. 9, 1997
`
`Sheet 2 of 2
`
`5,696,968
`
`CCUSTOMIZATION PROGRAM) 200
`
`202
`PRESENT USER WITH
`ADAPTER-PREFERENCE f
`ORDER OPTIONS
`I
`RECEIVE USER SELECTIONS r204
`I
`STORE USER SELECTIONS x205
`IN STORAGE ELEMENT
`
`l
`l
`|
`I
`
`C SYSTEM REBOOT )\ 208
`
`FIG. 2
`
`USER—
`SPECIFIED
`PREFERENCE
`ORDER?
`
`210
`
`CALL EXTENSION BIOS
`214/ OF EACH CONTROLLER
`IN USER~SPECIFIED ORDER
`
`@216
`
`CALL EXTENSION
`BIOS OF EACH
`CONTROLLER \212
`1N SYSTEM
`SPECIFIED ORDER
`
`3
`
`
`
`1
`METHOD AND APPARATUS FOR
`EFFECTING DRIVE ORDERING VIA
`ADAPTER PREFERENCE
`
`TECHNICAL FIELD
`
`The invention relates generally to computer system hav
`ing one or more mass storage devices connected thereto via
`mass storage controllers and, more particularly, to a method
`for enabling a user to designate which of one or more
`bootable drives connected to the system via mass storage
`controllers will serve as the boot drive, as well as the drive
`ordering of such drives.
`
`BACKGROUND OF THE INVENTION
`
`Current computer systems, especially server systems,
`tend to have more than one bootable device, such as a hard
`disks, magnetic tapes and, in some cases, CD-ROMs,
`installed in the system. The drive containing such a bootable
`device is, for obvious reasons, commonly referred to as the
`“boot drive.” The system’s access to the bootable devices is
`controlled by one or more mass storage controllers, for
`example, small computer systems interface (“SCSI”)
`controller, typically implemented as adapter cards inserted
`in expansion slots of ?re computer. More and more, these
`intelligent controllers contain BIOS extensions for control
`ling the con?guration and boot-preference order of the
`drives attached thereto.
`As a result of the use of such mass storage controllers, the
`computer’s ROM BIOS code doesn’t control the actual disk
`drives and therefore does not the order of the drives or which
`drive functions as the boot drive. Accordingly, due to the
`computer’s drive boot architecture, only the ?rst bootable
`drive con?gured for the computer that is accessed during
`power up is actually the boot drive.
`Therefore, what is needed is a means for enabling a user
`to specify the drive order, as well as which drive is to
`function as the boot-drive, in a computer system in which
`such drives are controlled by mass storage controllers. '
`
`15
`
`25
`
`35
`
`SUMMARY OF THE INVENTION
`
`The present invention, accordingly, provides a method for
`enabling a user to designate drive order and boot-drive
`preference in a computer system in which the drives are
`controlled by mass storage controllers that overcomes or
`reduces disadvantages and limitations associated with prior
`methods and systems. In a departure from the art, a cus
`tomization program of the present invention gathers user
`preference order for any controllers present in a computer
`system, which information is stored in a nonvolatile storage
`element in the computer system. Din-ing bootup of the
`computer, the system’s ROM BIOS retrieves the stored
`preference infonnation and initializes the system’s mass
`storage controllers in the user-speci?ed order. This initial
`ization ordering controls which set of drives is con?gured
`?rst, and therefore, which drive is given boot priority and the
`drive ordering as seen by the operating system.
`In a preferred embodiment, the customization program
`presents the user with a system-de?ned number of selections
`of adapter, and hence, mass storage controller, preference
`order. Within each selection, the user can choose an on board
`I/O controller, if one is present, one of the allowable slots to
`select one of the mass storage controllers, or “none” to
`disable the selection. The program then stores the user’s
`selection in the nonvolatile storage element within the
`system.
`
`45
`
`50
`
`55
`
`65
`
`5,696,968
`
`2
`The next time the system boots up, the system’s ROM
`BIOS code interrogates the nonvolatile storage element to
`determine whether the user has speci?ed a preference order.
`If so, the ROM BIOS initializes the extension BIOS of the
`mass storage controllers in the user-speci?ed order. Since it
`is the controller’s extension BIOS that determines the drives
`that are attached to the controller and the ?rst found bootable
`device is designated as the system boot-device, any devices
`attached to the ?rst-preference controller are higher in
`boot-priority than devices attached to the next highest pref
`erence controller. Each controller is responsible for assign
`ing the device level priority that the user has previously
`chosen.
`A technical advantage achieved with the invention is that
`it enables a user to modify the apparent con?guration of the
`system without recalling any devices.
`A further technical advantage achieved with the invention
`is that it provides the user with a method for controlling
`device ordering as seen by the computer system.
`Yet another technical advantage achieved with the inven
`tion is that it provides the user with a method to control the
`system boot and device ordering without opening the system
`covers.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a schematic block diagram of a computer system
`embodying features of the present invention.
`FIG. 2 is a ?owchart illustrating the preferred method of
`operation of the present invention.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`FIG. 1 is a schematic block diagram of a computer system
`10 embodying features of the present invention. As shown in
`FIG. 1, the system 10 comprises a local bus 12, a PCI bus
`14, and an expansion bus 16 electrically interconnected in a
`conventional manner via expansion bus controllers 18, 19. A
`central processing unit (“CPU”) 20 and system memory 22
`are connected to the local bus 12 in a conventional manner.
`Similarly, a basic input/output system (“BIOS”) ROM 24,
`which contains the BIOS code for the system 10, an
`on-board I/O controller 26 and an input device subsystem 28
`are connected to the expansion bus 16 in a conventional
`manner. Although not shown, ‘it should be understood that
`the input device subsystem 28 comprises one or more of a
`keyboard, mouse and other input devices and appropriate
`device controllers. A nonvolatile storage element 30, such as
`NVRAM or CMOS, is connected to the expansion bus 16
`via the 110 controller 26. In addition, one or more device
`drives 31, e.g., a hard drive or ?oppy drive, is also connected
`to the expansion bus 16 via the controller 26. Finally, a
`display subsystem 32, comprising, for example, video
`memory, a graphics controller and a display, is connected to
`the PCI bus 14. Also connected to the PCI bus 14 are one or
`more individually addressable mass storage controllers 34
`each for controlling the operation of one or more device
`drives 36 connected thereto. Each of the device drives 36
`may comprise, for example, a tape drive, a disk drive, a CD
`ROM drive or any other type of appropriate I/O device
`drive. In a preferred embodiment, the mass storage control
`lers 34 are implemented as adapter cards inserted in expan
`sion slots (not shown) of the system 10. In accordance with
`a feature of the present invention, each mass storage con
`troller 34, includes an option ROM 38 containing BIOS
`extension code for con?guring the drives 36 attached thereto
`in a user-speci?ed order in a known manner.
`
`4
`
`
`
`3
`In normal operation of the system 10, when the CPU 20
`executes the BIOS code stored in the ROM 24 during system
`power-up, one of the operations it performs is to look for any
`BIOS extensions, such as those stored in option ROMS 38,
`to be accessed and executed As is known to those skilled in
`the art, it is a function of the architecture of the system 10
`that the ?rst-called BIOS extension that is installed on a
`mass storage controller that has connected thereto a bootable
`device owns the boot drive. Accordingly, by enabling the
`user to control the order in which the option ROMs 38 of the
`controllers 34 are accessed, the user is able to control the
`order of the drives 36, as viewed by the operating system, as
`well as which drive 36 will operate as the boot-drive.
`In the preferred embodiment, a customization program 40
`is provided in the BIOS ROM 24 for presenting the user,
`during a system setup routine, with a system-de?ned number
`of selections of adapter, and hence, mass storage controller
`34, preference order. Within each selection, the user can
`select the on-board I/O controller 26, if one is present, one
`of the allowable slots to select one of the mass storage
`controllers 34, or “none” to disable the selection. The
`program 40 then stores the user’s selection in the nonvolatile
`storage element 30.
`Upon subsequent bootup of the system 10, the BIOS code
`retrieves the stored preference information from the storage
`element 30 and accesses the BIOS extensions 38 and ini—
`tializes the mass storage controllers 34 in the user-speci?ed
`order. This initialization ordering controls which set of
`drives 36 is con?gured ?rst, and therefore, which drive is
`given boot priority and the drive ordering as seen by the
`operating system.
`FIG. 2 illustrates the operation of the customization
`program 40 of the present invention. Execution begins in
`step 200. In step 202, the user is presented with adapter, and
`thereby controller 34, preference order options. In particular,
`the user is presented with a list of potential boot candidates
`from which the user can select. In step 204, the user
`preferences are received and then stored in the nonvolatile
`storage element in step 206.
`In step 208, the system 10 is rebooted to activate the
`user-selected preference order. In step 210, a determination
`is made Whether a user-speci?ed preference order is present
`by interrogating the device 30. If not, execution proceeds to
`step 212, in which the system BIOS initializes the extension
`BIOS of each controller 34 in a system-speci?ed order. Ifin
`step 210, it is determined that a user-speci?ed preference
`order is present, execution proceeds to step 214, in which the
`extension BIOS of each controller 34 is called in the
`user-speci?ed order. Once the extension BIOS 38 of each
`controller 34 has been initialized in step 212 or step 214,
`execution of the customization program terminates in step
`216.
`As a practical matter, the invention described herein may
`be particularly advantageous in server applications wherein
`two or more mass storage controllers 34 and their respective
`drives 36 contain redundant information for the following
`reason. If the drive 36 attached to the ?rst-speci?ed mass
`storage controller 34 is “bad,” the extension BIOS 38 of the
`controller 34 thereof will not “see” the drive 36 as a bootable
`drive, hence, the system 10 will bootup from the drive 36
`attached to the next-speci?ed mass storage controller 34,
`assuming that drive is “good.” In addition, the invention
`may be advantageously used where one or more operating
`systems are to be used interchangeably. In this situation, ?rst
`and second operating systems, or ?rst and second versions
`of the same operating system, may be respectively installed
`
`50
`
`55
`
`65
`
`5,696,968
`
`10
`
`15
`
`20
`
`30
`
`35
`
`4
`on drives 36 attached to ?rst and second controllers 34. By
`using the customization program 40 of the present invention
`to designate an order in which the controllers 34 are called,
`the user can designate from which drive 36 the system 10 is
`to bootup and therefore which operating system is to be
`installed in the system 10. This designation can be easily
`changed by the user’s rerunning the program 40 and chang
`ing the designation.
`It is understood that the present invention can take many
`forms and embodiments, the embodiments shown herein are
`intended to illustrate rather than limit, the invention, it being
`understood that variations may be made without departing
`from the spirit of the scope of the invention. For example,
`any number of mass storage devices 34, each having any
`number of device drives 36 connected thereto, may be
`connected to the bus 14, limited, of course, by the number
`of available expansion slots. In addition, the computer
`system 10 could include one or more onboard PCI storage
`controllers connected to the bus 14. Moreover, a single
`adapter card connected to an expansion slot could have more
`than one mass storage controller contained thereon.
`Although illustrative embodiments of the invention have
`been shown and described, a wide range of modi?cation,
`change and substitution is intended in the foregoing disclo
`sure and in some instances some features of the present
`invention may be employed without a corresponding use of
`the other features. Accordingly, it is appropriate that the
`appended claims be construed broadly and in a manner
`consistent with the scope of the invention.
`What is claimed is:
`1. In a computer system comprising a plurality of con
`trollers each for controlling the operation of one or more
`device drives connected thereto, each of said controllers
`including an extension basic input output system (“BIOS”),
`a method for enabling a user to control which of said device
`drives will serve as a boot drive for said computer system
`and a device ordering of said device drives, the method
`comprising:
`prompting a user to specify a preference order of said
`controllers;
`storing said user-speci?ed preference order in a storage
`element of said computer system;
`retrieving said user-speci?ed preference order from said
`storage element responsive to subsequent bootup of
`said computer system; and
`initializing said extension BIOS of each of said control
`lers in said user-speci?ed preference order.
`2. The method of claim 1 further comprising prior to said
`retrieving:
`responsive to subsequent bootup of said computer system,
`determining whether said user-speci?ed preference
`order is available; and
`responsive to a determination that said user-speci?ed
`preference order is not available, initializing said exten
`sion BIOS of each of said controllers in a system
`designated order.
`‘
`3. The method of claim 1 wherein each of said device
`drives comprise one of a CD-ROM drive, a disk drive or a
`tape drive.
`4. The computer program of claim 1 wherein a bootable
`device drive connected to a ?rst-designated one of said
`controllers functions as said boot drive.
`5. The computer program of claim 1 wherein said instruc
`tions for requesting and storing are executed during a setup
`routine of said computer system.
`6. The method of claim 1 wherein said initializing is
`performed by a BIOS of said computer system.
`
`5
`
`
`
`5
`7. A computer program for use in a computer system
`comprising a plurality of controllers each for controlling the
`operation of one or more device drives connected thereto,
`each of said controllers including a basic input output
`system (“BIOS”) extension, the computer program for
`enabling a user to control which of said device drives will
`serve as a boot drive for said computer system and a device
`ordering of said device drives, the computer program com
`prising:
`instructions for requesting a user to specify a preference
`order of said controllers;
`instructions for storing said user-speci?ed preference
`order in a storage element of said computer system;
`instructions for retrieving said user-speci?ed preference
`order from said storage element responsive to subse
`quent bootup of said computer system; and
`instructions for initializing said extension BIOS of each of
`said controllers in said user-speci?ed preference order.
`8. The computer program of claim 7 further comprising:
`instructions for determining whether said user-speci?ed
`preference order is available prior to said retrieving and
`responsive to subsequent bootup of said computer
`system; and
`instructions for initializing said extension BIOS of each of
`said controllers in a system-designated order respon
`sive to a determination that said user-speci?ed prefer
`ence order is not available.
`9. The computer program of claim 7 wherein each of said
`device drives comprise one of a CD-ROM drive, a disk drive
`or a tape drive.
`10. The computer program of claim 7 wherein a bootable
`device drive connected to a ?rst-designated one of said
`controllers functions as said boot drive.
`11. The computer program of claim 7 wherein said
`instructions for requesting and storing are executed during a
`setup routine of said computer system.
`
`25
`
`* * * * *
`
`5,696,968
`
`10
`
`15
`
`6
`12. Apparatus for use in a computer system comprising a
`plurality of controllers each for controlling the operation of
`one or more device drives connected thereto, each of said
`controllers including a basic input output system (“BIOS”)
`5 extension, the apparatus for enabling a user to control which
`of said device drives will serve as a boot drive for said
`computer system and a device ordering of said device drives,
`the apparatus comprising:
`means for requesting a user to specify a preference order
`of said controllers;
`means for storing said user-speci?ed preference order in
`a storage element of said computer system;
`means for retrieving said user-speci?ed preference order
`from said storage element responsive to subsequent
`bootup of said computer system; and
`means for initializing said extension BIOS of each of said
`controllers in said user-speci?ed preference order.
`13. The apparatus of claim 12 further comprising:
`means for determining whether said user-speci?ed pref
`erence order is available prior to said retrieving and
`responsive to subsequent bootup of said computer
`system; and
`means for initializing said extension BIOS of each of said
`controllers in a system-designated order responsive to
`a determination that said user-speci?ed preference
`order is not available.
`14. The apparatus of claim 12 wherein each of said device
`drives comprise one of a CD-ROM drive, a disk drive or a
`tape drive.
`15. The apparatus of claim 12 wherein a bootable device
`drive connected to a ?rst-designated one of said controllers
`functions as said boot drive.
`16. The apparatus of claim 12 wherein said means for
`requesting and storing are executed during a setup routine of
`35 said computer system.
`
`6