A computer systems implemented with i2O devices having no option rom associated therewith needs to boot an OS from such an i2O device without restricting the arrangement of the system bios boot sequence. A virtual option rom is integrated into the system bios boot sequence code so that the bios can detect an i2O device, and then get instructions from the virtual option rom to initialize an i2O Platform of an i2O subsystem, wherein the i2O device resides. Once the communication between the i2O subsystem and the bios is subsequently achieved, the OS can be booted from the i2O device. Further, by implementing the virtual rom, an i2O device having no real option rom attached thereto can also be identified and used as a system boot device in a selective boot process. The initialization process of an IOP is skipped if a non-i2O bootable device has been found before the detection of an i2O device during the Power On Self Test.
|
7. A computer system supporting an intelligent i/O architecture and having at least one bootable non-intelligent i/O data storage, said computer system comprising:
at least one intelligent i/O device having no option rom associated therewith, configured to communicate with a first operating system using a messaging layer, and configured to communicate with a second operating system using the messaging layer; and a virtual option rom stored in a computer system bios boot sequence code for enabling said computer system to boot from said at least one intelligent i/O device.
27. A computer program stored on a computer-readable medium for executions by a computer system for booting the computer system from at least one intelligent i/O device having no option rom associated therewith, configured to communicate with a first operating system using a messaging layer, and configured to communicate with a second operating system using the messaging layer, said computer system including at least one bootable non-intelligent i/O data storage and at least one intelligent i/O device subsystem, said computer program comprising:
instructions for establishing a virtual option rom; instructions for detecting the at least one intelligent i/O device using the messaging layer; instructions for initiating the at least one intelligent i/O device subsystem using the messaging layer wherein the at least one intelligent i/O device resides; and instructions for booting the computer system from the intelligent i/O device with the assistance of the virtual option rom.
15. A computer system supporting an intelligent i/O architecture and having at least one bootable non-intelligent i/O data storage, said computer system comprising:
at least one intelligent i/O device subsystem, said at least one intelligent i/O device subsystem having at least one intelligent i/O device with no option rom associated therewith, configured to communicate with a first operating system using a messaging layer, and configured to communicate with a second operating system using the messaging layer; a data storage detecting circuit for identifying the at least one intelligent i/O device; an intelligent i/O device subsystem initializing circuit for configuring said at least one intelligent i/O device subsystem; and a memory storing a virtual option rom for enabling said computer system to boot from said at least one intelligent i/O device after the at least one intelligent i/O device is identified using the messaging layer and said at least one intelligent i/O device subsystem is configured using the messaging layer.
22. A method for booting a computer system implemented with at least one intelligent i/O device with no option rom associated therewith, configured to communicate with a first operating system using a messaging layer, and configured to communicate with a second operating system using the messaging layer, said computer system including at least one bootable non-intelligent i/O data storage and at least one intelligent i/O device subsystem, said method comprising:
detecting the at least one intelligent i/O device; establishing a virtual option rom for the at least one intelligent i/O device in a computer system bios boot sequence code; initializing the at least one intelligent i/O device subsystem wherein the at least one intelligent i/O device resides; and booting the computer system from the at least one intelligent i/O device with the assistance of the virtual option rom after detecting the at least one intelligent i/O device using the messaging layer and initializing the at least one intelligent i/O device subsystem using the messaging layer.
1. A computer system supporting an intelligent i/O architecture and having at least one bootable non-intelligent i/O data storage, said computer system comprising:
at least one intelligent i/O subsystem; at least one intelligent i/O device having no option rom associated therewith, said at least one intelligent i/O device residing within said intelligent i/O subsystem, configured to communicate with a first operating system using a messaging layer, and configured to communicate with a second operating system using the messaging layer; a data storage detector for identifying the intelligent i/O device; an intelligent i/O subsystem initializer for configuring said intelligent i/O subsystem; and a virtual option rom stored in a computer system bios boot sequence code for enabling said computer system to boot from said at least one intelligent i/O device subsequent to said at least one intelligent i/O device being identified by said data storage detector using the messaging layer and said intelligent i/O subsystem being fully configured by said intelligent i/O subsystem initializer using the messaging layer.
2. The system of
3. The system of
4. The system of
5. The system of
6. The system of
8. The system of
9. The system of
10. The system of
11. The system of
12. The system of
13. The system of
14. The system of
16. The system of
17. The system of
18. The system of
19. The system of
20. The system of
21. The system of
23. The method of
24. The method of
25. The method of
26. The method of
checking the status of at least one intelligent i/O device platform of the at least one intelligent i/O device subsystem; initializing outbound message queues of the at least one intelligent i/O device platform; determining the at least one intelligent i/O device associated with the at least one intelligent i/O device platform; sequentially setting the at least one intelligent i/O device platform into a Ready state and then into an Operational state; claiming at least one unclaimed intelligent i/O device controlled by the at least one intelligent i/O device platform for the purpose of booting the computer system; obtaining a Logic Configuration Table from the at least one intelligent i/O device platform; searching for at least one unclaimed intelligent i/O device of Random Block storage Device Class in the Logic Configuration Table; determining the bootability of the at least one unclaimed intelligent i/O device; and configuring the at least one unclaimed intelligent i/O device as a system boot device.
28. The program of
29. The program of
30. The program of
|
The disclosures herein relate generally to computer systems supporting the Intelligent Input/Output Architecture Specification, and more particularly, to a booting mechanism enabling the computer systems to boot from an Intelligent Input/Output (I2O) device having no Option ROM attached thereto.
The Intelligent Input/Output Architecture is an open architecture for the development of device drivers that are independent of any specific operation system (OS), processor platform, and I/O system bus. With reference to
In order to boot from an I2O device in a computer system, the BIOS of the computer system must be prepared at least to recognize bootable I2O devices. The BIOS must be modified to send, receive, and properly handle I2O messages as required to initialize and utilize an I2O device by sending a subset of the complete set of I2O messages to an IOP. An IOP can be plugged in any system Peripheral Component Interconnect (PCI) bus, and upon system reset, both the BIOS and the I2O subsystem begin initialization. When the BIOS performs its initialization tasks, it scans the entire PCI bus. An IOP would hold off this scan by retrying the PCI bus configuration access to guarantee that the IOP is fully initialized to the first known state (Init State) while preventing the BIOS from seeing invalid information. Only after the IOP is initialized to the Init State can the BIOS continue the normal PCI bus scan knowing that the communication between the IOP and the BIOS is fully completed. However, an I2O device without an Option ROM does not permit the IOP to complete an initialization as expected. In such an instance, the BIOS would not establish the communication with the IOP, and consequently would not recognize the I2O device as an active device. As a result, the OS can not be booted from the I2O device. Even if an bootable OS disk drive is attached to such an I2O device, if the I2O device has no Option ROM, the OS still can not be booted because there has been no initialization of the IOP to establish the communication with the BIOS, and thus the BIOS would still view the I2O device as an unbootable device.
There are two common methods of booting an OS of a computer system. One is called a sequential boot wherein the BIOS scans from one of the two ends of the PCI bus and boots the OS from the first bootable device. The other is called a selective boot in Setup mode wherein a user can select any bootable device on the PCI bus as the system boot device for booting the OS. In a selective boot, if an I2O device has no Option ROM attached, it can not be used as a bootable device at all. In a sequential boot, unless an I2O device is at either end of the PCI bus and the I2O device has an Option ROM, the only way to boot the OS from an I2O device, is to "hard code" the BIOS with detailed instructions to use the I2O device as a boot device regardless of its location on the PCI bus. Only with this arrangement in the BIOS boot sequence, the BIOS can initialize the IOP for the I2O device.
Turning now to
It is thus desirable to provide a computer system that is capable of booting the OS from an I2O device having no Option ROM to boot from a regular bootable non-I2O device, such as a PCI SCSI device, without restricting the arrangement of the system BIOS boot sequence. In addition, it is also desirable to use such an I2O device as a boot device in a selective boot process.
In order to support I2O Architecture and conform to the existing Sequential Boot Specification known in the art, what is provided is a computer system supporting an Intelligent I/O architecture having at least one bootable non-Intelligent I/O data storage and including at least one Intelligent I/O subsystem and at least one Intelligent I/O device having no Option ROM associated therewith and residing within the Intelligent I/O subsystem. A data storage detector is provided for identifying the Intelligent I/O device. An Intelligent I/O subsystem initializer configures the Intelligent I/O subsystem. A Virtual Option ROM is stored in a computer system BIOS boot sequence code for enabling the computer system to boot from at least one Intelligent I/O device subsequent to being identified by the data storage detector and the Intelligent I/O subsystem being fully configured by the Intelligent subsystem initializer.
For a computer system installed with I2O compliant operating system, the embodiments of the present disclosure advantageously skip the initialization process of an IOP if a non-I2O bootable device has been found before the detection of an I2O device during the Power On Self Test. In this case, it is rather convenient to let the OS be booted from a non-I2O bootable device such as a hard disk drive. Once the OS is functional, it can initialize the relevant IOP afterwards in order to utilize the I2O device thereunder.
The present disclosure proposes a method to boot an OS of a computer system from an I2O device having no Option ROM associated therewith. By implementing a Virtual Option ROM in the BIOS, the BIOS can detect the I2O device, and then get instructions from the Virtual Option ROM to initialize the I2O subsystem, wherein the I2O device resides. Accordingly, such an I2O device can be used as a system boot device just as a regular bootable non-I2O device, such as a PCI SCSI device.
In general, with reference to
Referring now to
If, in step 62, an I2O device instead of a bootable non-I2O device, such as a boot disk drive, happens to be the first device found, then the subsystem will be initialized in steps 64, 66, and 68 in a manner similar to steps 26, 28 and 30 respectively discussed in FIG. 2. As a result, in step 69, the OS will be booted from the I2O device with the assistance of the established Virtual Option ROM.
Turning now to
Once an IOP is ready to operate, the BIOS then searches for a bootable I2O device under its control. First, in step 82, the BIOS checks the LCT to seek an unclaimed Random Block Storage device. Once found, a claim message is sent to claim the device for use by the BIOS in step 84. Next, in step 86, the BIOS verifies the status of the device by sending out a BsaStatusCheck message. If the status check is successful, then, in step 88, the BIOS reads the boot sector by sending the device a BsaBlockRead message. If not, another unclaimed I2O device will be sought. In order to read the boot sector, the BIOS INT 13h code must be modified to support the I2O devices. When the BIOS finishes examining the data reply returned by the device for the BsaBlockRead message, it can determine whether the device is bootable, as shown in step 90. If it is, the BIOS acknowledges the I2O device as bootable, and sends an ExecbootDeviceSet message over to the IOP. This message will set the BootDevice field of the LCT to the I2O Target ID (TID) of this device. If the device is not bootable, then the BIOS will simply search for another unclaimed Random Block Storage device as a candidate. Finally in step 92, if a bootable I2O device has been identified, the BIOS assigns a drive name to the device, such as "C:", and sends a ExecBlocklnfoSet message to the IOP to update its LCT. Consequently, this I2O device is ready for booting the OS. It needs to be noticed that if the BIOS predetermines that the boot sequence is a sequential boot, then the BIOS will boot the OS from the first found I2O device or other bootable non-I2O device, and no other I2O subsystem will be initialized. However, if the BIOS intends to have selective boot sequence, then every I2O subsystem installed will be initialized regardless of the location of the I2O device in the PCI bus.
Referring now to
With respect to
A principal advantage according to the present disclosure is that with the implementation of a Virtual Option ROM, an I2O device having no Option ROM originally associated thereto can now be recognized by the computer system as a bootable device in the Setup mode. Consequently, a user can freely select any I2O device as the system boot device for booting the OS.
Although illustrative embodiments have been shown and described, a wide range of modification, change and substitution is contemplated in the foregoing disclosure and in some instances, some features of the embodiments may be employed without a corresponding use of other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the embodiments disclosed herein.
Patent | Priority | Assignee | Title |
10263790, | Sep 30 2016 | Data I/O Corporation | Unified programming environment for programmable devices |
10671419, | Feb 29 2016 | Red Hat Israel, Ltd. | Multiple input-output memory management units with fine grained device scopes for virtual machines |
10673638, | Sep 30 2016 | Data I/O Corporation | Unified programming environment for programmable devices |
11374772, | Sep 30 2016 | Data I/O Corporation | Unified programming environment for programmable devices |
11870915, | Sep 30 2016 | Data I/O Corporation | Unified programming environment for programmable devices |
6529989, | May 03 2000 | PMC-SIERRA, INC | Intelligent expansion ROM sharing bus subsystem |
6691160, | Apr 19 2000 | PMC-SIERRA, INC | Input/output communication networks and booting protocols |
6721883, | Jan 25 2000 | DELL USA, L P | System and method for managing the boot order of a computer system |
6725294, | Feb 20 2001 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Installation and access of a device handler for a peripheral device in a computer |
6993649, | Dec 17 2002 | Seagate Technology LLC | Method of altering a computer operating system to boot and run from protected media |
6999913, | Dec 10 2002 | III Holdings 1, LLC | Emulated read-write disk drive using a protected medium |
7017039, | Dec 31 2002 | III Holdings 1, LLC | Method of booting a computer operating system to run from a normally unsupported system device |
7114067, | Jun 08 2001 | TEAC Corporation | Method of efficiently detecting whether a device is connected to an information processing system by detecting short circuits to predetermined signal lines of an IDE interface |
7174446, | Apr 25 2003 | Dell Products L.P. | System and method for managing the boot sequence of an information handling system |
7318149, | Sep 28 2001 | Hewlett Packard Enterprise Development LP | Semi-persistent relocatable ram-based virtual floppy disk method |
7464228, | May 31 2006 | Dell Products L.P.; Dell Products L P | System and method to conserve conventional memory required to implement serial ATA advanced host controller interface |
7925802, | Jun 21 2007 | SEAMICRO, INC | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric |
7958343, | Sep 08 2006 | VALTRUS INNOVATIONS LIMITED | BIOS bootable RAID support |
8051217, | Jan 12 2007 | Dell Products L.P.; Dell Products L P | System and method for providing PCIe over displayport |
8291208, | Sep 08 2006 | VALTRUS INNOVATIONS LIMITED | BIOS bootable RAID support |
8341325, | Jan 12 2007 | Dell Products L.P. | System and method for providing PCIE over displayport |
8898366, | Jan 12 2007 | Dell Products L.P. | System and method for providing PCIE over displayport |
8938774, | May 28 2010 | Dell Products, LP | System and method for I/O port assignment and security policy application in a client hosted virtualization system |
8990584, | May 28 2010 | Dell Products, LP | System and method for supporting task oriented devices in a client hosted virtualization system |
9367335, | Jul 12 2013 | LENOVO INTERNATIONAL LIMITED | State dependent optimization for sequential booting of heterogeneous systems |
9858232, | Jan 12 2007 | Dell Products L.P. | System and method for providing PCIE over displayport |
Patent | Priority | Assignee | Title |
5283872, | Mar 15 1990 | Fujitsu Limited; Fujitsu VLSI Limited | SCSI device having transfer parameter storage memory blocks which correspond to each apparatus |
5546585, | Apr 08 1992 | Olympus Optical Co., Ltd. | Personal computer system with start-up capability from an external mass storage device |
5603056, | Sep 13 1993 | Kabushiki Kaisha Toshiba | Disk drive control computer and method for rewriting control program in flash EEPROM with serial communication using unassigned pins of SCSI or ATA connector |
5694583, | Sep 27 1994 | Lenovo PC International | BIOS emulation parameter preservation across computer bootstrapping |
6115815, | Jul 19 1996 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Boot drive selection and hibernation file detection |
6145078, | Dec 02 1997 | NEC Corporation | Data processing apparatus and method of starting-up extensions |
6158002, | Aug 14 1998 | PMC-SIERRA, INC | Method and apparatus of boot device switching by a floppy disk |
Date | Maintenance Fee Events |
Dec 05 2005 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 10 2006 | ASPN: Payor Number Assigned. |
Feb 10 2006 | RMPN: Payer Number De-assigned. |
Dec 04 2009 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 04 2013 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 04 2005 | 4 years fee payment window open |
Dec 04 2005 | 6 months grace period start (w surcharge) |
Jun 04 2006 | patent expiry (for year 4) |
Jun 04 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 04 2009 | 8 years fee payment window open |
Dec 04 2009 | 6 months grace period start (w surcharge) |
Jun 04 2010 | patent expiry (for year 8) |
Jun 04 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 04 2013 | 12 years fee payment window open |
Dec 04 2013 | 6 months grace period start (w surcharge) |
Jun 04 2014 | patent expiry (for year 12) |
Jun 04 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |