throbber
United States Patent [191
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket