1. Technical Field
The present invention generally relates to data processing systems and in particular to input/output adapter interfaces in data processing systems.
2. Description of the Related Art
An Input/Output (I/O) adapter provides an interface connection for one or more input/output devices to a host computer system. The interface connection may be enhanced with an optional feature card supported by the 1/0 adapter. The feature card is used to provide more functionality/capability in the adapter. An interface connection comprising the I/O adapter without the feature card represents a logically different adapter when compared to a connection comprising the I/O adapter with the feature card.
A typical conventional system may contain an adapter on a planar/motherboard and an optional additional function adapter. This conventional system consists of one or two flash modules, one flash module on the planar and an overriding flash module on the feature card, if present. Additionally, two different sets of VPD/Configuration information may be utilized, with one set located in each flash. In addition, two different firmware images may be utilized, with one firmware image located/stored in each flash. Thus, there is a duplication of components and firmware in the conventional design. When the feature card is present, the processor and memory controller are located on a different card than the flash and the firmware. Consequently, the interface connections provided in conventional systems are less reliable.
Disclosed are a method, system, and computer program product for dynamically updating vital product data (VPD) based on the presence of an installed feature card supported by an input/output (I/O) adapter in a data processing device. A VPD utility initiates the boot up process of the I/O adapter with the aid of the common boot code in the Boot/VPD segment of a flash module. The hardware configuration registers are loaded with default values. Additionally, the VPD from the (flash) Boot/VPD segment is loaded. When the feature card is present, the VPD utility retrieves configuration information of the feature card and loads the hardware configuration registers with values relevant to the feature card. The VPD utility retrieves the feature card VPD and loads available VPD updates into the (flash) alternate Open Boot segment. The flash firmware image uses the VPD to manage the adapter.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description.
The invention itself, as well as a preferred mode of use, further objects, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The illustrative embodiments provide a method, system, and computer program product for dynamically updating vital product data (VPD) based on the presence of an installed feature card supported by an input/output (I/O) adapter in a data processing device. A VPD utility initiates the boot up process of the I/O adapter with the aid of the common boot code in the Boot/VPD segment of a flash module. The hardware configuration registers are loaded with default values. Additionally, the VPD from the (flash) Boot/VPD segment is loaded. When the feature card is present, the VPD utility retrieves configuration information of the feature card and loads the hardware configuration registers with values relevant to the feature card. The VPD utility retrieves the feature card VPD and loads available VPD updates into the (flash) alternate Open Boot segment. The flash firmware image uses the VPD to manage the adapter.
In the following detailed description of exemplary embodiments of the invention, specific exemplary embodiments in which the invention may be practiced are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, architectural, programmatic, mechanical, electrical and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
Within the descriptions of the figures, similar elements are provided similar names and reference numerals as those of the previous figure(s). Where a later figure utilizes the element in a different context or with different functionality, the element is provided a different leading numeral representative of the figure number (e.g, 1xx for
It is understood that the use of specific component, device and/or parameter names are for example only and not meant to imply any limitations on the invention. The invention may thus be implemented with different nomenclature/terminology utilized to describe the components/devices/parameters herein, without limitation. Each term utilized herein is to be given its broadest interpretation given the context in which that terms is utilized.
With reference now to
DPS 100 is also illustrated with a network interface device (NID) 125, with which DPS 100 connects to one or more servers 133 via access network 130, such as the Internet. In the described embodiments, network 130 is a worldwide collection of networks and gateways that utilize the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. Of course, network access may also be provided via a number of different types of networks, such as an intranet, a local area network (LAN), a virtual private network (VPN), or other wide area network (WAN) other than the Internet, for example.
Notably, in addition to the above described hardware components of DPS 100, various features of the invention are completed via software (or firmware) code or logic stored within memory 106 or other storage (e.g., storage 107) and executed by CPU 101. Thus, illustrated within memory 106 are a number of software/firmware components, including operating system (OS) 108 (e.g., Microsoft Windows®, a trademark of Microsoft Corp, GNU®/Linux®, registered trademarks of the Free Software Foundation and Linus Torvalds, or AIX®, a registered trademark of IBM) and device drivers 103. Additionally, vital product data (VPD) utility 110 is included within flash module 105 of I/O adapter 115. VPD utility 110 is the collective name given to a number of software and firmware components which are further described by the illustration of
Among the logic/functions provided by VPD utility 110, and which are specific to the invention, are: (a) logic for initiating the booting of an I/O adapter; (b) logic for determining the presence of an adapter feature card; (c) logic for obtaining configuration information from the adapter feature card and loading the hardware configuration registers with values pertaining to the feature card; and (d) logic for obtaining VPD from the adapter feature card and loading the VPD with updates into a specified segment of the flash module. For simplicity of the description, the collective of different logic or functional components that enables these various features is referred to herein as VPD utility 110. According to the illustrative embodiment, when executed, VPD utility 110 enables DPS 100 to initiate a series of functional processes that include the above functional features as well as additional features/functionality, which are described below within the description of
Those of ordinary skill in the art will appreciate that the hardware and basic configuration depicted in
With reference now to
As shown, within I/O adapter 115 is flash module (or flash memory) 105, within which the logic components of VPD utility 110 are located. VPD utility 110 is the collective name given to a particular group of software and firmware or logic components/segments. As further shown, feature card 123 is directly connected to I/O adapter 115. Feature card 123 provides additional functionality/capability in I/O adapter 115.
Flash module 105 consists of several logic components or segments (collectively illustrated as VPD utility 110). The segment layout contains (without limitation) Boot/VPD segment 205, primary Open Boot segment 206, alternate Open Boot segment 207, firmware image 208, VPD/configuration information 211, PCI open boot architecture/protocol 212, and error logs 213 The Open Boot segments (206, 207), one for each logical adapter, must comply with PCI Open Boot architecture/protocol 212 to support the Host OS Boot. The (two) logical adapters are providing for the embodiments in which both I/O adapter 115 is and feature card 123 are present. In the alternate implementation, the I/O adapter 115 is present, while the feature card 123 is not present.
Relocatable PCI ROMBAR facility 215 within I/O adapter 115 is utilized to present the correct Open Boot segment to the Host. Relocatable PCI ROMBAR facility 215 may also be used by a Host Device Driver (103.
The illustrative embodiment, which provides a consistent adapter interface for a host system, comprises a single flash module (105) on planar 200 and serial EPROM 209 on feature card 123. A (single) firmware image (208) resides in flash module 105. Flash module 105, with firmware 208 resides on the same board as the adapter processor (101) and memory controller 203, with or without feature card 123 attached. There are two copies of VPD/Configuration information (211, 214) in persistent storage (i.e., in flash 105 and in serial EEPROM 209, respectively). Adapter 115 changes functional characteristics based on external stimulus (i.e., provided by the presence of feature card 123). Adapter VPD/configuration information is updated automatically at Boot time. A further description of the process for booting adapter 115 is illustrated by
The process of
In the flow charts above, one or more of the methods are embodied as a computer program product in a computer readable medium or containing computer readable code such that a series of steps are performed when the computer readable code is executed on a computing device. In some implementations, certain steps of the methods are combined, performed simultaneously or in a different order, or perhaps omitted, without deviating from the spirit and scope of the invention. Thus, while the method steps are described and illustrated in a particular sequence, use of a specific sequence of steps is not meant to imply any limitations on the invention. Changes may be made with regards to the sequence of steps without departing from the spirit or scope of the present invention. Use of a particular sequence is therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
As will be further appreciated, the processes in embodiments of the present invention may be implemented using any combination of software, firmware or hardware. As a preparatory step to practicing the invention in software, the programming code (whether software or firmware) will typically be stored in one or more machine readable storage mediums such as fixed (hard) drives, diskettes, optical disks, magnetic tape, semiconductor memories such as ROMs, PROMs, etc., thereby making an article of manufacture (or computer program product) in accordance with the invention. The article of manufacture containing the programming code is used by either executing the code directly from the storage device, by copying the code from the storage device into another storage device such as a hard disk, RAM, etc., or by transmitting the code for remote execution using transmission type media such as digital and analog communication links. The methods of the invention may be practiced by combining one or more machine-readable storage devices containing the code according to the present invention with appropriate processing hardware to execute the code contained therein. An apparatus for practicing the invention could be one or more processing devices and storage systems containing or having network access to program(s) coded in accordance with the invention.
Thus, it is important that while an illustrative embodiment of the present invention is described in the context of a fully functional computer (server) system with installed (or executed) software, those skilled in the art will appreciate that the software aspects of an illustrative embodiment of the present invention are capable of being distributed as a computer program product in a variety of forms, and that an illustrative embodiment of the present invention applies equally regardless of the particular type of media used to actually carry out the distribution. By way of example, a non exclusive list of types of media, includes recordable type (tangible) media such as floppy disks, thumb drives, hard disk drives, CD ROMs, DVDs, and transmission type media such as digital and analogue communication links.
While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular system, device or component thereof to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another.